Ext4

Hệ thống file nhật ký ext4 hoặc Hệ thống file mở rộng thứ tư là một hệ thống file nhật ký cho Linux, được phát triển như là sự kế thừa cho ext3. Đây là hệ thống file mặc định cho hầu hết các bản phân phối Linux.

Lịch sử

ext4 ban đầu là một loạt các phần mở rộng tương thích ngược với ext3, nhiều phần mở rộng ban đầu được phát triển bởi Cluster File Systems cho hệ thống file Luster giữa năm 2003 và 2006, nhằm mở rộng giới hạn lưu trữ và thêm các cải tiến hiệu suất khác. Tuy nhiên, các nhà phát triển nhân Linux khác phản đối việc chấp nhận các phần mở rộng cho, và đề nghị fork mã nguồn của ext3, đổi tên nó thành ext4, và thực hiện tất cả sự phát triển đó, mà không ảnh hưởng đến người dùng ext3 hiện tại. Đề xuất này đã được chấp nhận và vào ngày 28 tháng 6 năm 2006, Theodore Ts'o, người duy trì ext3, đã công bố kế hoạch phát triển mới cho ext4.
Phiên bản phát triển sơ bộ của ext4 đã được đưa vào phiên bản 2.6.19  của nhân Linux. Ngày 11 tháng 10 năm 2008, các bản vá đánh dấu ext4 là mã ổn định đã được hợp nhất trong kho lưu trữ mã nguồn Linux 2.6.28, biểu thị sự kết thúc của giai đoạn phát triển và khuyến nghị áp dụng ext4. Kernel 2.6.28, chứa hệ thống file ext4, cuối cùng đã được phát hành ngày 25 tháng 12 năm 2008 Ngày 15 tháng 1 năm 2010, Google đã thông báo rằng họ sẽ nâng cấp cơ sở hạ tầng lưu trữ của mình từ ext2 lên ext4. Ngày 14 tháng 12 năm 2010, Google cũng tuyên bố sẽ sử dụng ext4, thay vì YAFFS, trên Android 2.3.

Hạn chế

Năm 2008, nhà phát triển chính của hệ thống file ext3 và ext4, Theodore Ts'o, đã tuyên bố rằng mặc dù ext4 có các tính năng được cải thiện, nhưng nó không phải là một bước tiến lớn, nó sử dụng công nghệ cũ và là một điểm dừng. Ts'o tin rằng Btrfs là hướng tốt hơn bởi vì "nó mang lại sự cải thiện về khả năng mở rộng, độ tin cậy và dễ quản lý". Btrfs cũng có "một số ý tưởng thiết kế tương tự mà reiser3/4 đã có". Tuy nhiên, ext4 đã tiếp tục đạt được các tính năng mới như mã hóa file và kiểm siêu dữ liệu.
Hệ thống file ext4 không xem trọng thuộc tính file "xóa an toàn", được cho là gây ra việc ghi đè các file khi xóa. Một bản vá để thực hiện xóa an toàn đã được đề xuất vào năm 2011, nhưng không giải quyết được vấn đề dữ liệu nhạy cảm kết thúc trong hệ thống file nhật ký.

Triển khai

Linux kernel Virtual File System là một hệ thống con hoặc lớp bên trong kernel Linux. Đó là kết quả của nỗ lực rất nghiêm túc để tích hợp nhiều hệ thống file vào một cấu trúc đơn có trật tự. Ý tưởng chính, bắt nguồn từ công việc tiên phong được thực hiện bởi các nhân viên của Sun Microsystems vào năm 1986, là trừu tượng hóa một phần của hệ thống file phổ biến cho tất cả các hệ thống file và đặt mã đó vào một lớp riêng gọi hệ thống tập tin cụ thể để thực sự quản lý dữ liệu.
Tất cả các lời gọi hệ thống liên quan đến các file (hoặc file giả) được chuyển đến Linux kernel Virtual File System để xử lý ban đầu. Các lời gọi này, đến từ các quy trình của người dùng, là các lời gọi POSIX tiêu chuẩn, chẳng hạn như open, read, write, lseek, v.v.

Khả năng tương thích với Windows và Macintosh

ext4 chưa có nhiều hỗ trợ như ext2 và ext3 trên các hệ điều hành không phải Linux. ext2 và ext3 có các trình điều khiển ổn định như Ext2IFS, chưa có sẵn cho ext4. Có thể tạo các hệ thống file ext4 tương thích bằng cách vô hiệu hóa tính năng phạm vi và đôi khi chỉ định kích thước inode. Một tùy chọn khác để sử dụng ext4 trong Windows là sử dụng Ext2Fsd, trình điều khiển nguồn mở hỗ trợ ghi trong phân vùng ext4 với ghi nhật ký hạn chế. Cũng có thể xem và sao chép các file từ ext4 sang Windows, ngay cả khi đã bật tính năng mở rộng, với phần mềm Ext2Read. Gần đây, Paragon đã phát hành sản phẩm thương mại ExtFS for Windows, cho phép khả năng đọc/ghi cho ext2/3/4.
macOS có đầy đủ khả năng đọc/ghi ext2/3/4  thông qua phần mềm Paragon ExtFS , là một sản phẩm thương mại. Phần mềm miễn phí như ext4fuse chỉ hỗ trợ chỉ đọc với chức năng hạn chế.