Sau đây nhóm chúng em xin được trình bày về vấn đề: Quản lý hệ thống file trong hệ điều hành Linux.. Linux là một hệ điều hành mã nguồn mở Open Source và miễn phí dưới bản quyền của tổ c
Trang 1
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
- -KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO BÀI TẬP LỚN MÔN HỌC:NGUYÊN LÝ HỆ ĐIỀU HÀNH
Đề tài: Nghiên cứu tìm hiểu về hệ thống tệp tin
trong HĐH LINUX
Giáo viên: Ths.Nguyễn Thanh Hải.
Nhóm: 10.
Lớp: ĐH Khoa Học Máy Tính 1- K10
Hà Nội, 2017.
Trang 2ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
- -KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO BÀI TẬP LỚN MÔN: NGUYÊN LÝ HỆ ĐIỀU HÀNH
Đề tài: Nghiên cứu tìm hiểu về hệ thống tệp tin
trong HĐH LINUX Giảng viên hướng dẫn: ThS.Nguyễn Thanh Hải.
Nhóm thực hiện: Nhóm 10.
Lớp: KHMT1_K10.
Thành viên:
-Vũ Quang Dương.
-Nguyễn Đức Hiệp.
-Nguyễn Văn Quang Huy.
-Phùng Quang Vũ.
Hà Nội,2017.
Trang 3MỤC LỤC
LỜI NÓI ĐẦU 2
CHƯƠNG 1 GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH LINUX VÀ HỆ THỐNG TỆP TIN 3 1.1 Sơ lược về hệ điều hành Linux 3
1.1.1 Linux là gì? 3
1.1.2 Những điểm ưu tú của Linux 4
1.1.3 Một vài nhược điểm của Linux 4
1.2 Hệ thống tệp tin 4
1.2.1 Khái niệm về hệ thống tệp tin 4
1.2.2 Các thao tác của hệ thống tệp tin 5
1.2.3 Quản lý tệp tin 6
CHƯƠNG 2 HỆ THỐNG QUẢN LÝ TỆP TIN TRONG LINUX 7
2.1 Hệ thống file EXT2 7
2.1.1 Giới thiệu 7
2.1.2 Các thành phần trong tệp tin 8
2.1.3 Cách tổ chức tập tin trên Linux 9
2.2 Hệ thống File EXT3 12
2.2.1.Giới thiệu 12
2.2.2.Journaling File 13
2.2.3 Cơ chế và khả năng chuyển đổi 14
2.3 Liên hệ so sánh với nguyên lý quản lý hệ tệp đã học 16
Trang 4LỜI NÓI ĐẦU
Hệ điều hành là một chương trình quản lý phần cứng máy tính Nó cung cấp nền tảng cho các chương trình ứng dụng và đóng vai trò trung gian giao tiếp giữa người dùng máy tính và phần cứng của máy tính đó Nó giúp máy tính dễ sử dụng hơn, thuận lợi và hiệu quả hơn
Tài nguyên máy tính mà điển hình là hệ cơ sở dữ liệu (Database System) có ảnh hưởng rất nhiều tới tính hiệu quả của việc sử dụng máy tính Mà trong đó hệ thống các file là hệ thống chủ yếu Bởi vậy quản lí hệ thống file như thế nào có ảnh hưởng lớn và trực tiếp tới hiệu quả sử dụng máy tính Việc quản lí hệ thống file được xây dựng và tổ chức tùy thuộc vào từng hệ điều hành
Sau đây nhóm chúng em xin được trình bày về vấn đề: Quản lý hệ thống file trong
hệ điều hành Linux
Nhóm sinh viên thực hiện
Trang 5CHƯƠNG 1: GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH
LINUXVÀ HỆ THỐNG TỆP TIN 1.1.Sơ lược về hệ điều hành Linux
1.1.1.Linux là gì?
Linux là một hệ điều hành mã nguồn mở (Open Source) và miễn phí dưới bản quyền của tổ chức GNU (Gnu’s Not Unix).Mặc dù các hệ thống này thường được gọi là Linux nhưng tên chính xác cho các hệ thống này là Hệ điều hành GNU/Linux
Linux đạt được những thành công một cách nhanh chóng là nhờ vào các đặc tính nổi bật so với các hệ thống khác: Chi phí phần cứng thấp, tốc độ cao (so với Unix)
và khả năng bảo mật tốt, độ tin cậy cao (so sánh với Windows) cũng như là các đặc điểm về giá thành rẻ, không bị phụ thuộc vào nhà cung cấp Một đặc tính nổi trội của
nó là được phát triển bởi một mô hình phát triển phần mềm mã nguồn mở hiệu quả Đó
là một thách thức đối với sự thống trị của Microsofft Windows trong một số lĩnh vực Khởi đầu, Linux được phát triển cho dòng vi xử lý 386 Intel với khả năng đa tác vụ Hiện tại tất cả các phiên bản của Linux đều có chung phần kernel (nhân) và các tính năng đặc trưng cùng với các ứng dụng mang tính chuyên dụng và phổ cập như:Open Office,Mozilla Firefox,Pidgin,Scim,Unikey,…
Tuy nhiên, hiện tại số lượng phần cứng được hỗ trợ bởi Linux vẫn còn rất khiêm tốn so với Windows vì các trình điều khiển thiết bị tương thích với Windows nhiều hơn là Linux Nhưng trong tương lai số lượng phần cứng được hỗ trợ cho Linux sẽ tăng lên
Cuối cùng, Linux là mở, có nghĩa là trên thực tế bất cứ ai cũng có thể xem và cải thiện dựa vào nguồn gốc của nó Tính mở này cũng giảm thiểu các cơ hội bị lợi dụng, tạo ra một nền tảng an toàn hơn Nhiều công ty đóng góp cho Linux, bảo đảm rằng nó sẽ tiếp tục giải quyết một loạt các mô hình sử dụng trong khi vẫn duy trì các đặc tính cốt lõi của mình
Trang 61.1.2.Những ưu điểm của Linux
-Linh hoạt và uyển chuyển:
Linux là một HĐH mã nguồn mở nên người dùng có thể tùy ý sửa chữa theo như mình thích.Người dùng có thể chỉnh sửa Linux và các ứng dụng trên đó sao cho phù hợp với mình nhất.Tính linh hoạt của Linux còn được thể hiện ở chỗ nó tương thích được với rất nhiều môi trường Hiện tại, ngoài Linux dành cho server,máy tính để bàn nhân Linux (Linux kernel) còn được nhúng vào các thiết bị điều khiển như máy tính palm, robot,
-Độ an toàn cao:
Trước hết, trong Linux có một cơ cấu phân quyền hết sức rõ ràng Chỉ có
"root"( người dùng tối cao) mới có quyền cài đặt và thay đổi hệ thống Ngoài ra Linux cũng có cơ chế để một người dùng bình thường có thể chuyển tạm thời chuyển sang quyền "root" để thực hiện một số thao tác
-Thích hợp cho quản trị mạng:
Được thiết kế ngay từ đầu cho chế độ đa người dùng, Linux được xem là một hệ điều hành mạng rất giá trị.Đó là do Linux có rất nhiều ưu điểm thỏa mãn đòi hỏi của một hệ điều hành mạng: tính bảo mật cao, chạy ổn định, các cơ chế chia sẻ tài nguyên tốt Giao thức TCP/IP mà chúng ta vẫn thấy ngày nay chính là một giao thức truyền tin của Linux (sau này mới được đưa vào Windows)
-Chạy thống nhất trên các hệ thống phần cứng:
Dù cho có rất nhiều phiên bản Linux được các nhà phân phối khác nhau ban hành nhưng nhìn chung đều chạy khá ổn định trên mọi thiết bị phần cứng, từ Intel 486 đến những máy Pentium mới nhất, từ những máy có dung lượng RAM chỉ 4MB đến những máy có cấu hình cực mạnh
1.1.3.Một vài nhược điểm của Linux
- Đòi hỏi người dùng phải thành thạo:
Trước kia việc sử dụng và cấu hình Linux được xem là một công việc chỉ dành cho những chuyên gia.Hầu như mọi công việc đều thực hiện trên các dòng lệnh và phải cấu hình nhờ sửa trực tiếp các file Mặc dù trong những phiên bản gần đây, các HĐH Linux đã có những cải tiến đáng kể, nhưng so với Windows tính thân thiện của Linux
Trang 7vẫn còn là một vấn đề lớn Đây là một trong những nguyên nhân chủ yếu khiến Linux mặc dù có rất nhiều đặc tính kỹ thuật tốt nhưng vẫn chưa đến được với người dùng cuối
- Tính tiêu chuẩn hóa:
Linux được phát hành miễn phí nên bất cứ ai cũng có thể tự mình đóng gói, phân phối theo những cách riêng Hiện tại có khá nhiều bản Linux phát triển từ một nhân ban đầu cùng tồn tại như: RedHat, SuSE, Knoppix Người dùng phải tự so sánh xem bản nào
là phù hợp với mình Điều này có thể gây khó khăn cho người dùng, nhất là những người còn có kiến thức về tin học hạn chế
-Số lượng các ứng dụng chất lượng cao trên Linux còn hạn chế:
Mặc dù Windows có sản phẩm nào thì Linux cũng gần như có phần mềm tương tự (VD: OpenOffice trên Linux tương tự như MSOffice, hay GIMP tương tự như Photoshopv v ) Tuy nhiên chất lượng những sản phẩm này là chưa thể so sánh được với các sản phẩm viết cho Windows
-Một số nhà sản xuất phần cứng không có driver hỗ trợ Linux:
Do hiện nay Linux chưa phổ biến bằng Windows nên nhiều nhà sản xuất không hỗ trợ các driver chạy trên Linux
1.2.Hệ thống tệp tin
1.2.1.Khái niệm về hệ thống tệp tin
Dữ liệu máy tính được lưu trữ trên các thiết bị nhớ ngoài như : băng từ, đĩa từ,…
và được tập hợp một cách có tổ chức theo đơn vị lưu trữ gọi là hệ thống tệp tin Như vậy , hệ thống tệp tin là đơn vị logic để hệ điều hành quản lý thông tin trên đĩa Hệ thống tệp tin có thể là một chương trình của người sử dụng, một chương trình của một
hệ thống hoặc một tập hợp dữ liệu của người sử dụng
Trên phương diện người sử dụng , dữ liệu trong hệ thống tệp tin được tổ chức thành các bản ghi logic mà mỗi bản ghi logic có thể là một byte hoặc một cấu trúc dữ liệu nào đó Bản ghi logic chính là đơn vị dữ liệu mà các chương trình cần xử lý trong quá trình hoạt động của mình
1.2.2.Các thao tác của hệ thống tệp tin
Một hệ thống tệp tin dù phức tạp hay đơn giản cũng đều phải cung cấp cho người
sử dụng những công cụ đơn giản để thao tác với tệp tin Trong hệ thống tệp tin thường
có những thao tác sau:
-Tạo/Xóa tệp tin
Trang 8-Đọc tệp tin.
-Bổ sung dữ liệu vào tệp tin
-Thay đổi thuộc tính tệp tin
Để truy nhập tới các tệp tin, hệ thống tệp tin sử dụng hai phương pháp :
-Truy nhập tuần tự: các bản ghi logic trong tệp tin được truy nhập lần lượt từ đầu đến cuối theo đúng trình tự sắp xếp trong tệp tin Với cách thức truy nhập này thì hoàn toàn có thể biết trước được bản ghi logic kế tiếp truy nhập sẽ là bản ghi nào vì vậy hệ điều hành biết được vị trí trên bộ nhớ ngoài của bản ghi logic kế tiếp cần xử lý Cách thức truy nhập tuần tự có mức độ tự động hóa cao tuy nhiên chỉ áp dụng được với các tệp tin được tổ chức theo kiểu tuần tự Mặt khác, để đảm bảo được mức độ tự động hóa cao thì hệ thống phải đảm bảo thực hiện mọi công việc chuẩn bị liên quan đến bản ghi cho trương trình của người sử dụng
-Truy nhập trực tiếp: theo cách thức này, hệ thống hoàn toàn không có trước thông tin về bản ghi nào là bản ghi kế tiếp cần xử lý Người lập trình cần phải tự xác định về bản ghi cần xử lý và để tìm được nó, mọi vấn đề đồng bộ hóa phải được đặt ra Tuy mức độ tự động hóa thấp nhưng cách thức truy nhập trực tiếp cho phép truy xuất các tệp tin hết sức mềm dẻo, linh hoạt, đạt được mức độ chủ động của chương trình người sử dụng đối với các tệp tin
1.2.3 Quản lý tệp tin
Quản lý tệp tin là tổ chức các thư mục thiết bị sao cho việc thao tác với các tệp tin là tối ưu nhất
Các hệ điều hành thực tế tồn tại một số kiểu tổ chức:
-Tổ chức thư mục một mức
-Tổ chức thư mục hai mức
-Tổ chức theo cấu trúc cây
Trang 9-Tổ chức theo đồ thị không chu trình1.2.4 Bảo v tệp tin và đảm bảo tính toàn ệ vẹn dữ liệu
Bảo vệ tệp tin thông qua giới hạn quyền truy nhập của người sử đụng như: đọc, viết, xóa…
Một số phương pháp bảo vệ tệp tin được áp dụng là: đặt tên, đặt mật khẩu, liệt kê quyền truy nhâp…
Để đảm bảo tính toàn vẹn dữ liệu, các hệ điều hành thương áp dụng các biện pháp như: lưu trạng thái của tệp tin qua các quá trình sử dụng, lưu trạng thái qua các thời điểm…
Trang 10CHƯƠNG 2: HỆ THỐNG QUẢN LÝ TỆP TIN
TRONG LINUX 2.1.Hệ thống file EXT2
2.1.1.Giới thiệu
Ext2 hay hệ thống tập tin mở rộng thứ hai là một hệ thống tập tin dành cho các hệ thống nhân Linux Lúc đầu nó được thiết kế để thay thế cho hệ thống tập tin mở
rộng.Nó đủ nhanh để dùng làm tiêu chuẩn để công năng của các loại hệ điều hành Linux Hạn chế chính của nó là không có hệ thống tập tin nhật ký.Hệ thống file ext2 được giới thiệu vào đầu năm 1993 và được thiết kế riêng cho Linux Nó có nhiều tính năng tăng cường để khắc phục các hạn chế của các hệ thống file khác
Kích thước file hệ
Kích thước file lớn
Chiều đa tối đa tên
Hình 2:Bảng so sánh tính năng các hệ thống file Minix, EXT, EXT2
Những đặc trưng của hệ thống tập tin Ext2 chuẩn:
-Hệ thống tập tin Ext2 hỗ trợ các kiểu tập tin Unix chuẩn: các tập tin thông thường, các tập tin thiết bị đặc biệt và các tập tin liên kết
-Hệ thống tập tin Ext2 có khả năng quản lý các hệ thống tập tin trên những phân vùng kích cỡ rất lớn Trong khi mã nhân (kernel) gốc giới hạn kích cỡ hệ thống tập tin lớn nhất là 2GB, nghiên cứu gần đây trong lớp VFS đã tăng lên đến giới hạn là
Trang 114TB.Vì vậy, ngày nay nó có thể sử dụng các đĩa dung lượng lớn mà không cần tạo nhiều phân vùng
-Hệ thống tập tin Ext2 cung cấp tên tập tin dài Đây là khả năng của Linux mà trên các hệ thống UNIX chuẩn không hề cung cấp Tối đa một tên tập tin là 255 ký tự và có thể có khoảng trắng.Hệ thống tập tin Ext2 dự trữ một vài block cho super user (root) Thông thường có khoảng 5% các block này được dự trữ Điều này cho phép người quản lý phục hồi dễ dàng từ quá trình người dùng làm đầy các hệ thống tập tin
2.1.2.Các thành phần trong tệp tin
Super Block:Là một cấu trúc được tạo tại vị trí bắt đầu hệ thống tập tin Nó lưu trữ thông tin về hệ thống tập tin như: Thông tin về block-size, free block, thời gian gắn kết(mount) cuối cùng của tập tin
Inode:Lưu những thông tin về những tập tin và thư mục được tạo ra trong hệ thống tập tin Nhưng chúng không lưu tên tập tin và thư mục thực sự Mỗi tập tin tạo ra sẽ được phân bổ một inode lưu thông tin sau:
- Loại tập tin và quyền hạn truy cập tập tin
- Người sở hữu tập tin
- Kích thước của tập tin và số hard link đến tập tin
- Ngày và thời gian chỉnh sửa tập tin lần cuối cùng
- Vị trí lưu nội dung tập tin trong hệ thống tập tin
Storageblock:Là vùng lưu dữ liệu thực sự của tập tin và thư mục Nó chia thành những Data Block Dữ liệu lưu trữ vào đĩa trong các data block Mỗi block thường chứa
1024 byte Ngay khi tập tin chỉ có 1 ký tự thì cũng phải cấp phát 1 block để lưu nó Không có ký tự kết thúc tập tin
2.1.3.Cách tổ chức tập tin trên Linux
Hệ thống tập tin của Linux và Unix được tổ chức theo một hệ thống phân bậc tương tự cấu trúc của một cây phân cấp Bậc cao nhất của hệ thống tập tin là thư mục gốc, được
ký hiệu bằng vạch chéo “/” (root directory) Đối với các hệ điều hành Unix và Linux tất các thiết bị kết nối vào máy tính đều được nhận dạng như các tập tin, kể cả những
Trang 12linh kiện như ổ đĩa cứng, các phân vùng đĩa cứng và các ổ USB Điều này có nghĩa là tất cả các tập tin và thư mục đều nằm dưới thư mục gốc, ngay cả những tập tin biểu tượng cho các ổ đĩa cứng
Hình 3:Cách tổ chức tệp tin trên Linux.
2.1.31 / – Root
- Mỗi một file và thư mục điều bắt đầu từ root directory
- Chỉ có user root có quyền trên các thư mục ở cấp bên dưới
- Còn /root là home directory của user root
.1.3.2 /bin – User Binaries
- Chứa file thực thi dạng binary
Trang 13- Các lệnh sử dụng thông thường trong linux được sử dụng single-user mode được đặt dưới cấu trúc thư mục này
- Các câu lệnh được sử dụng bởi user trong hệ thống sẽ được đặt trong đây
2.1.3.3 /sbin – System Binaries
- Giống như /bin, bên trong /sbin cũng chứa đựng các file thực thi dạng binary Các lệnh bên trong /sbin thường được sử dụng bởi system administrator và dùng cho các mục đích là duy trì quản trị hệ thống
2.1.3.4 /etc – Configuration Files
- Thông thường ở /etc sẽ chứa file cấu hình cho các chương trình hoạt động
- Ở /etc cũng thường chứa các scripts dùng để start, stop, kiểm tra status cho các chương trình
- Ví dụ /etc/resolv.conf (cấu hình dns-server ), hay /etc/network dùng để quản lý dịch
vụ network
2.1.3.5 /dev – Device Files
- Chứa các file device để đại diện các hardware
- Ví dụ /dev/tty1 hay /dev/sda
2.1.3.6 /proc – Process Information
- Chứa đựng thông tin về quá trình xử lý của hệ thống
- Đây là một pseudo filesystem chứa đựng các thông tin về các process đang chạy
- Đây là một virtual filesystem chứa đựng các thông tin tài nguyên hệ thống Ví dụ: /proc/cpuinfo cung cấp cho ta thông số kỹ thuật của CPU
2.1.3.7 /var – Variable Files
- Chứa đựng các file có sự thay đổi trong quá trình hoạt động của hệ điều hành
- Ví dụ system log sẽ được đặt tại vị trí này
+ System log file /var/log
+ database file /var/lib
+ email /var/mail
+ Các print queue /var/spool
+ lock file /var/lock
+ Các file tạm thời cần cho quá trình reboot /var/tmp