Linus Torvalds giải thích các vấn đề khi triển khai ZFS cho nhân Linux

Trong cuộc thảo luận bài kiểm tra người lập lịch tác vụ, một trong những người tham gia thảo luận đã đưa ra ví dụ rằng bất chấp các tuyên bố về nhu cầu duy trì khả năng tương thích khi phát triển nhân Linux, những thay đổi gần đây trong nhân đã làm gián đoạn hoạt động chính xác của mô-đun "ZFS trên Linux". Linus Torvalds đã trả lờinguyên tắc đó"không phá vở người sử dụng" đề cập đến việc bảo toàn các giao diện hạt nhân bên ngoài được sử dụng bởi các ứng dụng không gian người dùng cũng như chính hạt nhân đó. Nhưng nó không bao gồm các tiện ích bổ sung của bên thứ ba được phát triển riêng biệt trên hạt nhân không được chấp nhận vào thành phần chính của hạt nhân, các tác giả của chúng phải tự chịu rủi ro và nguy hiểm khi theo dõi những thay đổi trong hạt nhân.

Đối với dự án ZFS trên Linux, Linus không khuyến nghị sử dụng mô-đun zfs do tính không tương thích của giấy phép CDDL và GPLv2. Tình hình là do chính sách cấp phép của Oracle, khả năng ZFS có thể xâm nhập vào kernel chính là rất nhỏ. Các lớp được đề xuất để bỏ qua tính không tương thích cấp phép, dịch quyền truy cập vào các chức năng hạt nhân sang mã bên ngoài, là một giải pháp đáng ngờ - luật sư tiếp tục tranh cãi về việc liệu việc tái xuất các hàm nhân GPL thông qua các trình bao bọc có dẫn đến việc tạo ra tác phẩm phái sinh phải được phân phối theo GPL hay không.

Lựa chọn duy nhất mà Linus đồng ý chấp nhận mã ZFS vào kernel chính là xin phép chính thức từ Oracle, được chứng nhận bởi luật sư chính, hoặc tốt hơn là chính Larry Ellison. Không cho phép các giải pháp trung gian, chẳng hạn như các lớp giữa hạt nhân và mã ZFS, do chính sách mạnh mẽ của Oracle liên quan đến sở hữu trí tuệ của các giao diện lập trình (ví dụ: sự thử nghiệm với Google về API Java). Ngoài ra, Linus coi mong muốn sử dụng ZFS chỉ là một sự tôn vinh cho thời trang chứ không phải lợi thế kỹ thuật. Các điểm chuẩn mà Linus đã kiểm tra không hỗ trợ ZFS và việc thiếu hỗ trợ đầy đủ không đảm bảo sự ổn định lâu dài.

Hãy để chúng tôi nhắc bạn rằng mã ZFS được phân phối theo giấy phép CDDL miễn phí, không tương thích với GPLv2, không cho phép ZFS trên Linux được tích hợp vào nhánh chính của nhân Linux, vì trộn mã theo giấy phép GPLv2 và CDDL là không thể chấp nhận được. Để tránh sự không tương thích cấp phép này, dự án ZFS trên Linux đã quyết định phân phối toàn bộ sản phẩm theo giấy phép CDDL dưới dạng một mô-đun được tải riêng được cung cấp riêng biệt với hạt nhân.

Khả năng phân phối mô-đun ZFS làm sẵn như một phần của bộ phân phối đang gây tranh cãi giữa các luật sư. Luật sư của Tổ chức Bảo vệ Tự do Phần mềm (SFC) xem xétrằng việc phân phối mô-đun hạt nhân nhị phân trong bản phân phối tạo thành một sản phẩm được kết hợp với GPL với yêu cầu rằng sản phẩm tạo ra phải được phân phối theo GPL. Luật sư kinh điển không đồng ý và tuyên bố rằng việc phân phối mô-đun zfs có thể được chấp nhận nếu thành phần được cung cấp dưới dạng mô-đun độc lập, tách biệt với gói hạt nhân. Canonical lưu ý rằng các bản phân phối từ lâu đã sử dụng cách tiếp cận tương tự để cung cấp trình điều khiển độc quyền, chẳng hạn như trình điều khiển NVIDIA.

Phía bên kia phản đối rằng vấn đề tương thích kernel trong trình điều khiển độc quyền được giải quyết bằng cách cung cấp một lớp nhỏ được phân phối theo giấy phép GPL (một mô-đun theo giấy phép GPL được tải vào kernel, lớp này đã tải các thành phần độc quyền). Đối với ZFS, lớp như vậy chỉ có thể được chuẩn bị nếu các ngoại lệ giấy phép được cung cấp từ Oracle. Trong Oracle Linux, tính không tương thích với GPL được giải quyết bằng cách Oracle cung cấp một ngoại lệ cấp phép loại bỏ yêu cầu cấp phép cho công việc kết hợp theo CDDL, nhưng ngoại lệ này không áp dụng cho các bản phân phối khác.

Một giải pháp thay thế là chỉ cung cấp mã nguồn của mô-đun trong bản phân phối, điều này không dẫn đến việc đóng gói và được coi là việc phân phối hai sản phẩm riêng biệt. Trong Debian, hệ thống DKMS (Hỗ trợ mô-đun hạt nhân động) được sử dụng cho việc này, trong đó mô-đun được cung cấp dưới dạng mã nguồn và được lắp ráp trên hệ thống của người dùng ngay sau khi cài đặt gói.

Nguồn: opennet.ru

Thêm một lời nhận xét