Bất kể tổ chức nào được chọn, nó sẽ làm cho một số điều dễ dàng hơn và một số điều khó khăn hơn.
Tổ chức các tập tin bằng các loại, cách Unix (vào bin
, man
, lib/python
, ...), làm cho nó dễ dàng hơn để sử dụng tập tin. Nếu bạn muốn chạy một lệnh, bạn biết nơi tìm nó, bất kể gói nào cung cấp nó. Nếu bạn muốn tìm kiếm thông qua tài liệu, tất cả ở một nơi. Nếu một số chương trình cung cấp mô-đun tô sáng cú pháp Vim, hàm hoàn thành zsh hoặc các ràng buộc Python, thì tệp có liên quan sẽ ở nơi vim / zsh / python có thể tìm thấy nó.
Unix cũng tổ chức các tệp theo mô hình sử dụng. Các tệp cấu hình đi vào /etc
, các tệp không thay đổi trong hoạt động bình thường đi vào /usr
và các tệp thay đổi tự động đi vào /var
. Dữ liệu người dùng đi theo /home
. Điều này rất hữu ích cho việc quản lý cấu hình (quản lý những gì /etc
cộng với danh sách các gói đã cài đặt). Nó cũng hữu ích để xác định các chiến lược sao lưu: những gì trong /etc
và /home
cực kỳ quan trọng, trong khi những gì trong đó /usr
có thể dễ dàng được tải xuống lại.
Chi phí chính của cách Unix là cài đặt một phần mềm được trải đều trên nhiều thư mục. Tuy nhiên, các hệ thống unix hiện đại vẫn có trình quản lý gói; quản lý tập tin trong nhiều thư mục cho đến nay không phải là điều phức tạp nhất họ làm (theo dõi phụ thuộc là rất hữu ích và khó hơn).
Tương phản với Windows. Windows khởi đầu không có quản lý gói và mỗi ứng dụng tạo thư mục riêng ở đâu đó. Tất cả các tệp thường nằm trong thư mục đó: chương trình, dữ liệu tĩnh, dữ liệu người dùng, trừ khi đôi khi đối với các thư viện mà các chương trình sẽ thả vào một thư mục hệ thống chung mà không liên quan đến xung đột (vụ DLL hell hell). Theo thời gian, Windows trở thành đa người dùng, yêu cầu tách các thư mục người dùng khỏi các thư mục hệ thống. Windows cũng tạo một vị trí trung tâm cho các tệp cấu hình (Unix /etc
) và một số dữ liệu hệ thống (Unix/var
), đăng ký. Đây không chỉ là một tạo tác lịch sử phần lớn là do thiếu quản lý gói và lịch sử ban đầu là một hệ thống người dùng đơn lẻ. Cách tiếp cận Windows có rất nhiều hạn chế: nó không cho phép các gói phần mềm tương tác dễ dàng. Ví dụ: hầu hết các phần mềm được cài đặt không kết thúc trên đường dẫn tìm kiếm lệnh mặc định, vì vậy phần mềm này tương tác xấu với bất kỳ hình thức kịch bản lệnh nào. Trình cài đặt thường cung cấp một biểu tượng menu dưới dạng trường hợp đặc biệt - được thả vào một thư mục hệ thống riêng (à la Unix!).
Một hạn chế của phương pháp Unix là nó không dễ dàng cho phép cùng tồn tại nhiều phiên bản của một gói, điều này đặc biệt có vấn đề trong khi gói đang được nâng cấp. Một cách để có được điều tốt nhất của cả hai thế giới là giải nén từng gói trong thư mục riêng của nó (một /opt
cấu trúc) và tạo các rừng liên kết tượng trưng từ các thư mục gói đến một /usr
cấu trúc. Đây là những gì phần mềm như stow làm.
Tóm lại, cách tiếp cận Unix giúp sử dụng tệp dễ dàng hơn, quản lý tệp và cho phép các gói tương tác; nó đòi hỏi phần mềm quản lý gói, nhưng dù sao đó cũng là điều mong muốn. Cách tiếp cận Windows giúp quản lý các gói theo cách thủ công dễ dàng hơn, nhưng phải hướng tới mô hình Unix để có được chức năng hữu ích.