Báo cáo đề tài: tìm hiểu hệ thống tập tin

Lí do là: với kích thước cluster nhỏ, các file sẽ bao gồm nhiều cluster hơn và do đó việc đọc ghi sẽ lâu hơn. Chẳng hạn trong hệ thống có kích thước cluster là 16KB, một file ảnh 320KB sẽ bao gồm 20 cluster, việc mở file này sẽ phải thực hiện 20 lần thao tác đọc cluster. Nhưng nếu kích thước cluster là 2KB thì file đó sẽ bao gồm 160 cluster và việc mở file sẽ phải thực hiện tới 160 lần thao tác đọc cluster. Do đó các ứng dụng có nhiều tác vụ đọc ghi đĩa sẽ chậm đi rõ rệt. Thế nhưng nếu bạn sử dụng cluster lớn hơn thì slack cũng lại lớn dẫn đến lãng phí đĩa cứng.

ppt46 trang | Chia sẻ: franklove | Lượt xem: 5058 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Báo cáo đề tài: tìm hiểu hệ thống tập tin, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
BÁO CÁO ĐỀ TÀI: FILE SYSTEM ( TÌM HIỂU HỆ THỐNG TẬP TIN) Nội dung đề tài bao gồm: I Tìm hiều về File System (hệ thống file) II. File system trong windows III. File system trong linux IV Chương trình đọc file trên windows. V. Tổng Kết Phần I: Tìm hiểu Hệ thống file 1 . File system ( Hệ thống tập tin ) là gì? File system hay hệ thống tập tin (HTTT) có chức năng tổ chức và kiểm soát các tập tin và siêu dữ liệu tương ứng, được lưu trên ổ đĩa nhằm cho phép truy cập nhanh chóng và an toàn. HTTT sắp xếp dữ liệu được lưu trên đĩa cứng của máy tính, kiểm soát thường xuyên vị trí vật lý Cho phép người dùng truy cập nhanh chóng và an toàn khi cần thiết. HTTT làm việc như một hệ chỉ mục số, cho phép máy tính nhanh chóng tìm thấy một tập tin nào đó, bất chấp kích thước hay cấu hình của ổ đĩa lưu trữ Mọi hệ điều hành từ MS-DOS cho đến Windows 95, Windows XP và Linux đều có HTTT riêng. Tuy mọi HTTT đều thực hiện cùng chức năng nhưng chúng lại khác nhau về thiết kế và mức độ phức tạp. 2. Các loại file System trong Windows và Linux a. File system trong windows Các hệ thống file trong windows gồm 2 hệ thống chính là FAT và NTFS, trong đó NTFS là hệ thống file với nhiều đặc tính hiện đại mà hệ thống FAT không có. b. File system trong Linux. Với sự hình thành và phát triển của hệ điều hành Linux, giờ đây chúng ta có rất nhiều chọn lựa các hệ thống file (file system) cho từng loại ứng dụng. Các hệ thống file tiên tiến được sử dụng trong Linux như Ext3, Reiserfs, XFS, và JFS vì nó có độ tin cậy cao và có khả năng ghi nhớ quá trình thao tác trên dữ liệu (journaling). Phần 2: File system trong windows Khái niệm về FAT (File Allocation Table ) Khái niệm về NTFS (New Technology File System) So sánh giữa FAT và NTFS Khái niệm về FAT (File Allocation Table - Bảng phân hoạch tập tin ) FAT được chia làm 2 loại đó là : FAT16 và FAT32 FAT16 (File Allocation Table 16 bits ): Với HĐH MS-DOS, hệ thống tập tin FAT (FAT16 – để phân biệt với FAT32) được công bố vào năm 1981 đưa ra một cách thức mới về việc tổ chức và quản lý tập tin trên đĩa cứng, đĩa mềm. Tuy nhiên, khi dung lượng đĩa cứng ngày càng tăng nhanh, FAT16 đã bộc lộ nhiều hạn chế. Với không gian địa chỉ 16 bit, FAT16 chỉ hỗ trợ đến 65.536 liên cung (clusters) trên một partition, gây ra sự lãng phí dung lượng đáng kể (đến 50% dung lượng đối với những ổ đĩa cứng trên 2 GB). FAT16 không hỗ trợ các paritition lớn hơn 2GB. FAT32(File Allocation Table 16 bits ): được giới thiệu trong phiên bản Windows 95 Service Pack 2 (OSR 2), được xem là phiên bản mở rộng của FAT16. Do sử dụng không gian địa chỉ 32 bit nên FAT32 hỗ trợ nhiều cluster trên một partition hơn, do vậy không gian đĩa cứng được tận dụng nhiều hơn. Với khả năng hỗ trợ kích thước của phân vùng từ 2GB lên 2TB và chiều dài tối đa của tên tập tin được mở rộng đến 255 ký tự đã làm cho FAT16 nhanh chóng bị lãng quên. Tuy nhiên, nhược điểm của FAT32 là tính bảo mật và khả năng chịu lỗi (Fault Tolerance) không cao. Nhược Điểm của FAT32 Nếu đĩa cứng của bạn có kích thước cluster càng nhỏ thì máy càng chậm. Điều này đúng với mọi hệ điều hành, mọi dạng FAT. Lí do là: với kích thước cluster nhỏ, các file sẽ bao gồm nhiều cluster hơn và do đó việc đọc ghi sẽ lâu hơn. Chẳng hạn trong hệ thống có kích thước cluster là 16KB, một file ảnh 320KB sẽ bao gồm 20 cluster, việc mở file này sẽ phải thực hiện 20 lần thao tác đọc cluster. Nhưng nếu kích thước cluster là 2KB thì file đó sẽ bao gồm 160 cluster và việc mở file sẽ phải thực hiện tới 160 lần thao tác đọc cluster. Do đó các ứng dụng có nhiều tác vụ đọc ghi đĩa sẽ chậm đi rõ rệt. Thế nhưng nếu bạn sử dụng cluster lớn hơn thì slack cũng lại lớn dẫn đến lãng phí đĩa cứng. Bạn không thể thực hiện chức năng nén đĩa với FAT32 ngay cả bằng một số chương trình ví dụ như: DriveSpace3 đi kèm với OSR2 và Memphis Để nhận biết một đĩa cứng đã sử dụng FAT32 hay chưa bạn nhất nút phải chuột vào biểu tượng một ổ đĩa đó trong My Computer rồi chọn chọn properties . Nếu thấy tham số Type là FAT32 là đúng 2. Khái niệm NTFS NTFS (New Technology File System-bảng phân hoạch tập tin công nghệ mới ): được giới thiệu cùng với phiên bản Windows NT đầu tiên , Microsoft đã thay thế hệ thống file FAT MS-DOS bằng một hệ thống file mới 32-bit nhanh hơn, bảo mật hơn. Với không gian địa chỉ 64 bit, khả năng thay đổi kích thước của cluster độc lập với dung lượng đĩa cứng, NTFS hầu như đã loại trừ được những hạn chế về số cluster, kích thước tối đa của tập tin trên một phân vùng đĩa cứng. NTFS sử dụng bảng quản lý tập tin MFT (Master File Table) thay cho bảng FAT quen thuộc nhằm tăng cường khả năng lưu trữ, tính bảo mật cho tập tin và thư mục, khả năng mã hóa dữ liệu đến từng tập tin. Ngoài ra, NTFS có khả năng chịu lỗi cao, cho phép người dùng đóng một ứng dụng “chết” (not responding) mà không làm ảnh hưởng đến những ứng dụng khác. Tuy nhiên, NTFS lại không thích hợp với những ổ đĩa có dung lượng thấp (dưới 400 MB) và không sử dụng được trên đĩa mềm. Hệ thống file NTFS có khả năng hoạt động cao và có chức năng tự sửa chữa. Nhờ có tính năng lưu giữ lại các thông tin xử lý, NTFS có khả năng phục hồi file cao hơn trong những trường hợp ổ đĩa có sự cố. Nó hỗ trợ chế độ bảo mật ở mức độ file, nén và kiểm định. Nó cũng hỗ trợ các ổ đĩa lớn và các giải pháp lưu trữ mạnh mẽ như RAID. NTFS hiện có các phiên bản: v1.0, v1.1, v1.2 ở các phiên bản Windows NT 3.51 và 4, v3.0 . Riêng Windows XP và Windows Server 2003 còn hỗ trợ các phiên bản v4.0, v5.0, v5.1. Chức năng mới quan trọng nhất của NTFS là khả năng mã hóa file và folder để bảo vệ các dữ liệu nhạy cảm của người dùng máy tính. Đáng tiếc là NTFS và FAT không tương thích nhau. Hậu quả là chỉ có các hệ điều hành Windows NT/2000/ XP mới “nhìn” thấy các ổ đĩa được định dạng với hệ thống file NTFS. Trong khi đó, tính tương thích giữa các phiên bản NTFS cao hơn. Tuy có hệ thống file NTFS 1.1, Windows NT SP4 trở lên (với driver NTFS.SYS mới) có thể truy xuất các ổ đĩa NTFS 5.0 (nhưng dĩ nhiên là không khai thác được các chức năng của NTFS 5.0). Trong Windows 2000 có chức năng tự động chuyển đổi các file NTFS cũ thành NTFS 5.0. Để nhận biết một đĩa cứng đã sử dụng NTFS hay chưa bạn nhất nút phải chuột vào biểu tượng một ổ đĩa đó trong My Computer rồi chọn chọn properties . Nếu thấy tham số Type là NTFS là đúng Và để chuyển FAT thành NTFS file system thì có thể làm như sau: Ở Windows XP, click Start, click Run, gõ cmd . cmd: convert [driveletter]: /FS:NTFS. Hoặc ta có thể dùng 1 số chương trình trong đĩa hiren boot để chuyển từ FAT sang NTFS lưu ý cách này dễ làm mất dữ liệu trong ổ cứng. So sánh giữa FAT32 và NTFS NTFS là hệ thống file tiên tiến hơn rất nhiều so với FAT32. Nó có đầy đủ các đặc tính của hệ thống file hiện đại và FAT32 không hề có. Bạn nên dùng NTFS để thay thế cho FAT32 vì các lý do sau: FAT32 không hỗ trợ các tính năng bảo mật như phần quyền quản lý, mã hoá.. như NTFS. Vấn đề này đặc biệt hiệu quả đối với Windows. Với NTFS, bạn có thể không cần sử dụng các tiện ích mã hoá hay đặt mật khẩu giấu thư mục v.v, vì đây là đặc tính đã có sẵn của NTFS, chỉ cần bạn biết khai thác. FAT32 có khả năng phục hồi và chịu lỗi rất kém so với NTFS. NTFS là hệ thống file có khả năng ghi lại được các hoạt động mà hệ điều hành đã và đang thao tác trên dữ liệu, nó có khả năng xác định được ngay những file bị sự cố mà không cần phải quét lại toàn bộ hệ thống file, giúp quá trình phục hồi dữ liệu trở nên tin cậy và nhanh chóng hơn. Đây là ưu điểm mà FAT 32 hoàn toàn không có. Khi mà mất điện đột ngột thì Windows 98, 2000, XP… đều phải quét lại đĩa khi khởi động lại nếu đĩa đó được format bằng chuẩn FAT32. Trong khi đó đĩa cứng bằng NTFS thì lại hoàn toàn không cần quét đĩa lại, bởi vì hệ thống dùng NTFS có được những thông tin về tính toàn vẹn dữ liệu. Với FAT32 thì nó phải rà quét toàn bộ lâu hơn nhiều. Một hệ thống Windows 2000, XP sẽ ổn định hơn nhiều nếu cài trên phân vùng được format bằng NTFS. Ngoài ra NTFS còn được trang bị công cụ kiểm tra và sửa đĩa rất tốt của Microsoft. NTFS có khả năng truy cập và xử lý file nén ngon lành hệt như truy cập vào các file chưa nén, điều này không chỉ tiết kiệm được đĩa cứng mà còn gia tăng được tuổi thọ của đĩa cứng. Nhiều người phàn nàn rằng không thể truy cập vào các đĩa cứng được format bằng NTFS khi đang ở DOS . NTFS đặt được quota sử dụng cho người dùng, vô cùng tiện dụng cho các hệ thống máy ở công ty. Đặc biệt tiện dụng khi “âm thầm” cấm được con cái sao chép những phim ảnh độc hại vào các thư mục “bí mật” của chúng trong đĩa cứng. FAT32 vẫn còn tỏ ra hữu dụng trên các máy tính cấu hình quá yếu ớt, chỉ có thể chạy được Windows 98. FAT16 và FAT32 vẫn được dùng để định dạng cho các loại thẻ nhớ, vì các thiết bị chấp nhận thẻ nhớ như máy ảnh số, máy nghe nhạc vẫn chưa thấy loại nào tương thích với NTFS cả. FAT16 luôn là lựa chọn hàng đầu khi bạn muốn copy dữ liệu của mình từ một máy tính chạy Windows sang máy chạy hệ điều hành khác như Mac chẳng hạn. Hầu hết các máy Mac hiện nay đều không thể nhận dạng các thẻ nhớ USB được định dạng bằng FAT 32. Bảng so sánh giữa FAT và NTFS PHẦN III: File system trong linux I. Các hệ thống file sử dụng trong linux Thế nào là journaling file system? (Hệ thống file nhật ký) Hệ thống file Ext3 (Third extended file system – ext3fs) Hệ thống file Reiserfs Hệ thống file XFS Hệ thống file JFS (Journaled File System) II. Các hệ thông tập tin thư mục trong linux I. Các hệ thống file sử dụng trong linux Với sự hình thành và phát triển của hệ điều hành Linux, giờ đây chúng ta có rất nhiều chọn lựa các hệ thống file (file system) cho từng loại ứng dụng. Các hệ thống file tiên tiến được sử dụng trong Linux như Ext3, Reiserfs, XFS, và JFS có độ tin cậy cao và có khả năng ghi nhớ quá trình thao tác trên dữ liệu (journaling). 1. Thế nào là journaling file system? Khi khởi động, hệ điều hành luôn luôn dùng một chương trình để kiểm tra tính toàn vẹn của hệ thống file, đó là trình fsck. Nếu nó phát hiện hệ thống file có dấu hiệu bất thường hoặc chưa được unmount do các nguyên nhân như mất điện hoặc hệ thống bị đứng đột ngột trong khi đang chạy, lúc đó fsck sẽ quét lại toàn bộ hệ thống file để cố gắng khôi phục lại dữ liệu. Cách làm này được áp dụng trên các hệ thống file Unix chuẩn ufs (Sun & HP) hoặc ext2 mà Linux đang sử dụng. Nếu hệ thống file có khả năng ghi lại (log) được các hoạt động mà hệ điều hành đã và đang thao tác trên dữ liệu thì hệ thống xác định được ngay những file bị sự cố mà không cần phải quét lại toàn bộ hệ thống file, giúp quá trình phục hồi dữ liệu trở nên tin cậy và nhanh chóng hơn. Hệ thống file như vậy được gọi là journaling file system (Hệ thống nhật ký tập tin). 2. Hệ thống file Ext3 Được xây dựng dựa trên cơ sở của hệ thống file chuẩn ext2 mà Linux đang sử dụng, ext3 đưa vào thêm chức năng mới vô cùng quan trọng, journaling file system, giúp thao tác dữ liệu an toàn hơn. Ext3 còn sử dụng cơ chế JBD (Journaling Block Device) để bảo vệ thông tin thao tác trên dữ liệu và được đánh giá là tin cậy hơn so với các hệ thống chỉ thực hiện journaling trên chỉ mục dữ liệu (journaling of meta-data only) như Reiserfs, XFS hay JFS. Với mode data=writeback, quá trình khởi động nhanh, dữ liệu được ghi vào đĩa ngay sau khi đã ghi xong thông tin trong journal log (write back), với mode này đôi khi cũng xảy ra tình trạng dữ liệu bị hư nếu sự cố xảy ra ngay sau khi ghi journal log mà chưa kịp ghi vào đĩa, nhưng bù lại tốc độ thao tác file nhanh hơn trong một vài trường hợp. Với chế độ data=ordered, dữ liệu được ghi lên đĩa trước rồi mới đến journal log, cho phép luôn luôn bảo đảm tính toàn vẹn của dữ liệu trong mọi tình huống và đây cũng chính là chế độ mặc định của ext3. bản chất cấu trúc của ext3 được xây dựng hoàn toàn dựa trên cơ sở của ext2 nên ta có thể chuyển đổi dễ dàng các dữ liệu đang tồn tại trên các hệ thống ext2 sang ext3 mà dữ liệu không hề bị ảnh hưởng và thực hiện tương đối dễ dàng, đơn giản. 3. Hệ thống file Reiserfs Việc xây dựng hệ thống file Reiserfs xuất phát từ yêu cầu tối ưu việc lưu trữ các file nhỏ và tăng tốc độ truy cập đến các file này. Ngoài ra, Reiserfs cũng không cấp phát cố định dung lượng theo các khối 1KB hoặc 4KB như các hệ thống file khác thường làm mà sẽ cấp chính xác kích thước khối lưu trữ cần thiết; nhờ vậy tối ưu được dung lượng khi lưu trữ các file có kích thước nhỏ. Chọn Reiserfs để lưu trữ và truy cập các file nhỏ là tối ưu, với tốc độ truy cập file tăng từ 8-15 lần và dung lượng tiết kiệm được khoảng trên 5% so với hệ thống ext2 với các loại file có kích thước dưới 1 KB.  Reiserfs hỗ trợ thực hiện journaling trên chỉ mục dữ liệu (journaling of meta-data only). Muốn sử dụng Reiserfs trên Linux ta phải đưa các module này vào kernel và dùng các công cụ Reiserfs để định dạng partition. 4. Hệ thống file XFS Được phát triển bởi công ty Silicon Graphic từ năm 1990 để khắc phục hạn chế của các hệ thống file hiện hành về kích thước và số lượng partition, directory và file. Ngày nay XFS đã sẵn sàng để sử dụng trong Linux với các tính năng vô cùng mạnh mẽ và ứng dụng trong các hệ thống có tính chuyên nghiệp cao. XFS là hệ thống file 64 bit, nó có thể quản lý được file có kích thước là 264-1 byte = 9 Exabyte  (do sử dụng số nguyên có dấu nên 1 bit dùng để biểu thị dấu), có kèm theo công cụ  Volume Manager cho phép quản lý lên tới 128 Volume, mỗi Volume có thể được ghép lên tới 100 partition đĩa cứng vật lý, hỗ trợ chức năng journaling đối với dữ liệu. Một đặc tính quan trọng của XFS đó là khả năng bảo đảm tốc độ truy cập dữ liệu cho các ứng dụng (Guaranteed Rate I/O),  cho phép các ứng dụng duy trì được tốc độ truy xuất dữ liệu trên đĩa, rất quan trọng đối với các hệ thống phân phối dịch vụ video có độ phân giải cao hoặc các ứng dụng xử lý thông tin vệ tinh đòi hỏi duy trì ổn định tốc độ thao tác dữ liệu. 5. Hệ thống file JFS Được phát triển bởi IBM, JFS là hệ thống file 64 bit, xây dựng cho các internet file server với đặc điểm thời gian khởi động máy nhanh, dung lượng chứa dữ liệu cao. JFS hỗ trợ journaling cho dữ liệu, dựa trên phương pháp thường được sử dụng trong hệ cơ sở dữ liệu: ghi lại quá trình thao tác thay đổi file (transaction). Trong trường hợp có sự cố xảy ra thì hệ thống chỉ cần cho khôi phục lại transaction trước đó mà không cần phải đọc lại hết journal log, giúp cho quá trình phục hồi được nhanh hơn JFS hỗ trợ tính năng Logical Volumes cho phép nối các partition vật lý thành các partition logic với dung lượng cao. Ngoài ra nó còn cho phép người dùng tuỳ biến cấp phát các khối từ  512, 1.024, 2.048 và 4.096 byte cho lưu trữ dữ liệu trên đĩa. Bảng so sánh các hệ thống file trong linux II. Các hệ thống tập tin thư mục trong linux Hệ thống tập tin trong Linux (cũng giống như trong Unix và Mac OS) khác hẳn Windows. Không còn các chữ cái thay tên ổ đĩa như A, C, D, E…, không còn khái niệm phân vùng, đĩa cứng… thay vào đó chỉ còn lại một thứ duy nhất, đó là thư mục và tệp. Thực chất ra thì trong Linux thư mục cũng là một loại tệp tin, chỉ có thêm một số thuộc tính đặc biệt mà thôi. Giới thiệu cây thư mục và tập tin trong Linux Trong hệ điều hành Linux, những tập tin mà người sử dụng nhìn thấy được đều theo cấu trúc cây thư mục, với root nằm ở trên cùng. Các thư mục và tập tin mới mọc nhánh ra lan dần xuống phía dưới. Thư mục cao nhất, được ký hiệu bằng vạch /, được gọi là root directory (thư mục gốc). Trên thực tế, nhiều thư mục trong cây thư mục này nằm ở nhiều vị trí vật lý khác nhau, trên các partition khác nhau, và thậm chí trên các ổ đĩa khác nhau. Khi một trong các partition ấy được kết nối với cấu trúc cây tại một thư mục gọi là mount point (điểm kết nối, điểm lắp ráp), thì mount point này và tất cả các thư mục cấp dưới được gọi là file system. Hệ điều hành Linux hình thành từ nhiều thư mục và tập tin khác nhau. Các thư mục có thể lập thành nhiều file system khác nhau, tùy vào cách cài đặt bạn đã chọn. Đa phần hệ điều hành nằm ở hai file system: root file system (file system gốc) được ký hiệu là /, và một file system khác được kết nối theo /usr (đọc là user). Trong linux người ta dùng lệnh để đọc file và thư mục hiện hành. 2. Các lệnh và cây thư mục trong Linux Thư mục /boot: Chứa phần nhân khởi động Linux và file cấu hình khởi động (grub cũng trong thư mục này) Thư mục /bin chứa các chương trình thi hành được, còn gọi là các binaries (nhị phân). Chúng là chương trình hệ thống chủ yếu . Thư mục /sbin chứa các file nhị phân hệ thống. Hầu hết các tập tin ở đây dùng để quản trị hệ thống. (superuser-bin). Thư mục /etc rất quan trọng vì chứa nhiều file cấu hình Linux. Chúng giúp cho hệ thống máy bạn có "cá tính". File mật khẩu passwd nằm ở thư mục này, cũng như fstab , danh sách các file system cần nạp vào khi khởi động máy. Các thư viện dùng chung được chứa trong thư mục /lib. Khi dùng chung thư viện, nhiều chương trình sẽ sử dụng lại cùng loại mã, hơn nữa khi được chứa cùng chỗ, thư viện sẽ giúp giảm thiểu kích cỡ chương trình ở khía cạnh thời gian chạy. Thư mục /dev chứa các file đặc biệt gọi là device files (file thiết bị, được hệ thống sử dụng để chạy các phần cứng. Ví dụ file /dev/mouse sẽ đọc thông tin từ chuột. Khi tổ chức sử dụng phần cứng theo cách này, Linux làm cho việc tương tác với phần cứng trông giống như một phần mềm. Thư mục /root: Thư mục nhà của người dùng có quyền cao nhất (root), người ngoài thường bị cấm truy cập. Bảng Các thiết bị thường dùng chứa trong thư mục /dev Thư mục /proc là một file system ảo, dùng để đọc thông tin từ bộ nhớ. Thư mục /tmp chứa các file tạm mà chương trình tạo ra trong khi chạy. Thư mục /home là thư mục cơ sở của các home directory cho các user. Quản trị viên thường đặt /home thành file system riêng rẽ nhằm tạo nhiều khoảng trống cho user sử dụng. Thư mục /var lưu các file có thể thay đổi kích thước theo thời gian. Nhiều file đăng nhập hệ thống (system log file) thường nằm trong thư mục này. Thư mục /usr và các thư mục con rất quan trọng cho hệ thống Linux, bởi vì chứa đựng nhiều thư mục trong đó có những chương trình cần thiết nhất cho hệ thống. Bảng các thư mục thứ cấp quan trọng trong file system /usr. IV. Chương trình đọc file trên windows.
Tài liệu liên quan