Để mở rộng câu trả lời đầu tiên về POSIX, để hiểu "giống như unix" nghĩa là gì, trước tiên, bạn nên cố gắng hiểu chính xác UNIX là gì. Nhìn vào tài liệu từ Open Group , công ty sở hữu nhãn hiệu Unix, bạn sẽ tìm thấy chi tiết về sự tiến hóa của đặc tả UNIX đơn - đây là UNIX03 :
Tiêu chuẩn sản phẩm UNIX 03 là nhãn hiệu cho các hệ thống tuân thủ Phiên bản 3 của Đặc tả UNIX đơn. Đây là phiên bản nâng cao đáng kể của Tiêu chuẩn sản phẩm UNIX 98. Các cải tiến bắt buộc bao gồm căn chỉnh với Ngôn ngữ lập trình ISO / IEC 9989: 1999 C, IEEE Std 1003.1-2001 và ISO / IEC 9945: 2002. Tiêu chuẩn sản phẩm này bao gồm các tiêu chuẩn sản phẩm bắt buộc sau: Các cuộc gọi và thư viện hệ thống quốc tế mở rộng V3, lệnh và tiện ích V4, ngôn ngữ C V2 và giao diện đầu cuối quốc tế hóa.
UNIX98 :
Tiêu chuẩn sản phẩm UNIX 98 là phiên bản nâng cao đáng kể của Tiêu chuẩn sản phẩm UNIX 95. Các cải tiến bắt buộc bao gồm (1) Giao diện luồng, (2) Tiện ích mở rộng hỗ trợ đa lõi (MSE), (3) Hỗ trợ tệp lớn, (4) Liên kết động, (5) thay đổi để loại bỏ phụ thuộc hoặc hạn chế độ dài dữ liệu phần cứng và (6 ) Năm 2000 thay đổi. Ngoài ra, các cải tiến tùy chọn sau được bao gồm: Các cơ sở quản trị phần mềm và một bộ API để hỗ trợ thời gian thực. Tiêu chuẩn sản phẩm này bao gồm các tiêu chuẩn sản phẩm bắt buộc sau: Thư viện và cuộc gọi hệ thống quốc tế mở rộng V2, Lệnh và tiện ích V3, Ngôn ngữ C, Dịch vụ vận tải (XTI) V2, Ổ cắm V2 và Giao diện thiết bị đầu cuối quốc tế hóa. Ngoài ra, nó cũng có thể phù hợp với Tiêu chuẩn Sản phẩm Quản trị Phần mềm.
UNIX95 (nhấn mạnh của tôi):
Tiêu chuẩn sản phẩm này xác định một nền tảng hợp nhất để hỗ trợ một loạt các ứng dụng ban đầu được phát triển cho một trong các loại hệ điều hành được lấy từ mã và / hoặc giao diện của Hệ điều hành UNIX do AT & T phát triển , ngoài các phương tiện được cung cấp theo tiêu chuẩn sản phẩm cơ sở. Nó có phạm vi rộng hơn Base. Tiêu chuẩn sản phẩm này bao gồm các tiêu chuẩn sản phẩm sau: Các cuộc gọi và thư viện hệ thống quốc tế được mở rộng, các lệnh và tiện ích V2, Ngôn ngữ C, Dịch vụ vận tải (XTI), Ổ cắm và Giao diện thiết bị đầu cuối quốc tế hóa.
Phiên bản máy chủ của tiêu chuẩn thêm Máy chủ Internet và IPv6 trong một số trường hợp.
Vì vậy, tất nhiên chúng ta thấy tham chiếu đến Phòng thí nghiệm AT & T Bell và ngôn ngữ C là trung tâm của UNIX là gì: ngôn ngữ C, công cụ cơ sở mô-đun và trình bao và cách thức nhân, hệ thống tập tin và các thành phần hệ điều hành quan trọng khác được thiết kế và triển khai .
Đó là nơi cuốn sách Thiết kế hệ điều hành UNIX của Maurice J. Bach trở thành cuốn sách vô giá vì nó là vấn đề lịch sử vào thời điểm này. Tất nhiên lưu ý là làm thế nào điều này có liên quan đến các phát minh khác như ngôn ngữ C thực sự. C được AT & T Bell phát triển để triển khai Unix với ngôn ngữ có thể nhanh như lắp ráp nhưng di động trên các phần cứng khác nhau và rất nhiều POSIX là một phần mở rộng cho tiêu chuẩn C.
Trong trường hợp có liên quan đến hạt nhân, bạn sẽ thường tìm thấy một sơ đồ khái niệm như sơ đồ này để minh họa cho một hạt nhân UNIX truyền thống là về cái gì:
Dưới đây là một số trích đoạn từ cuốn sách kinh điển của Mr Bach (1986) bàn về nền tảng của hạt nhân UNIX System V:
Tuy nhiên, tất cả chúng [các hệ thống con và chương trình ứng dụng] đều sử dụng các dịch vụ cấp thấp hơn cuối cùng được cung cấp bởi kernel và chúng tận dụng các dịch vụ đó thông qua các lệnh gọi hệ thống. Có khoảng 64 cuộc gọi hệ thống trong Hệ thống V, trong đó ít hơn 32 cuộc gọi được sử dụng thường xuyên. Chúng có các tùy chọn đơn giản giúp chúng dễ sử dụng nhưng cung cấp cho người dùng nhiều năng lượng. Tập hợp các lệnh gọi hệ thống và các thuật toán bên trong thực hiện chúng tạo thành phần thân của hạt nhân [...]
[...] Hai thành phần chính của nó là hệ thống con tập tin và hệ thống con quy trình.
Các tệp được tổ chức thành các hệ thống tệp, được coi là các thiết bị logic; một thiết bị vật lý như đĩa có thể chứa một số thiết bị logic (hệ thống tệp). Mỗi hệ thống tệp có một siêu khối mô tả cấu trúc và nội dung của hệ thống tệp và mỗi tệp trong một hệ thống tệp được mô tả bằng một nút cung cấp các thuộc tính của tệp. Các cuộc gọi hệ thống thao tác các tập tin thực hiện thông qua các nút. [và vùng đệm]
[...] Có hai phiên bản của inode: bản sao đĩa lưu trữ thông tin inode khi tệp không được sử dụng và bản sao trong lõi ghi thông tin về các tệp đang hoạt động.
Việc thực thi các quy trình người dùng trên các hệ thống UNIX được chia thành hai cấp độ: người dùng và hạt nhân. Khi một quy trình thực hiện một cuộc gọi hệ thống, chế độ thực thi của quy trình sẽ thay đổi từ chế độ người dùng sang chế độ kernel : hệ điều hành thực thi và cố gắng phục vụ yêu cầu người dùng [...]
[...] Triết lý của hệ thống UNIX là cung cấp các nguyên hàm của hệ điều hành cho phép người dùng viết các chương trình nhỏ, mô-đun có thể được sử dụng làm các khối xây dựng để xây dựng các chương trình phức tạp hơn. Một trong những nguyên thủy có thể nhìn thấy bao người dùng là khả năng chuyển hướng I / O .
[...] Ngoài việc phục vụ các cuộc gọi hệ thống, kernel còn ghi sổ chung cho cộng đồng người dùng, kiểm soát lập lịch quy trình, quản lý lưu trữ và bảo vệ các tiến trình trong bộ nhớ chính, bảo vệ các ngắt, quản lý tệp và thiết bị và xử lý lỗi hệ thống điều kiện.
Nếu bạn quan tâm đến việc triển khai các hạt nhân khác nhau trong các hệ điều hành giống như unix, bạn cũng có thể xem triển khai FreeBSD (4.4BSD) hoặc tại nhân Mach hoặc xem xét so sánh các tính năng này của chúng.
Bạn càng biết nhiều về thiết kế của UNIX, bạn càng hiểu những gì đã xảy ra trong sơ đồ sau về tổ tiên của UNIX và lịch sử của nó . Ông Bach đang nói chủ yếu về Hệ thống V trong cuốn sách của mình nhưng ông cũng thảo luận về BSD:
Có nhiều thứ hơn là bắt mắt . Chẳng hạn, Mac OSX được chứng nhận UNIX03 nhưng bạn có thấy nó được kết nối với bất kỳ UNIX thuần nào (chủ yếu là màu đỏ) không?
Ở trên bạn có thể thấy BSD, GNU, Microsoft và các cá nhân đa dạng đã đóng góp cho vũ trụ này như thế nào. Mặc dù GNU và cuối cùng là linux không có dòng dõi trực tiếp với UNIX, bạn thấy rằng GNU là một nỗ lực để tái thiết kế trong thế giới nguồn mở, các công cụ và phần mềm từ UNIX thương mại đã bị đóng. Vì vậy, nhìn vào phần mềm được duy trì GNU đưa ra một ý tưởng ví dụ tại các ứng dụng và thư viện nguyên mẫu ban đầu.
Các cuộc chiến cấp phép đã đóng một vai trò trong sự tiến hóa (và đôi khi đình trệ) của UNIX. Bạn có thể thấy ngay rằng các UNIX được xếp theo loại giấy phép - đóng so với BSD ( BSD cho phép tạo mã nguồn đóng ... xem OSX) và GPL cho phép Linux và GNU tự bổ sung trong thế giới copyleft. Đây là bản đồ cổ điển của kernel linux do Linus Torvalds phát triển ban đầu, nó cũng tiết lộ những gì kernel "có thể" có trong một hệ điều hành giống Unix:
Điều này gợi ý về ý tưởng rằng kiểu thiết kế " kernel " không phải là thứ tạo ra tiêu chuẩn UNIX hoặc định nghĩa một hệ điều hành giống như unix. Điều này được chứng minh bằng thực tế là nhiều hệ điều hành giống như unix có thể có nhân nguyên khối hoặc nhân vi mô - nguyên khối là kiểu thiết kế cổ điển cho UNIX. Trên thực tế, ngay cả trong các UNIX thuần, HPUX có một hạt nhân nguyên khối trong khi AIX sử dụng một hạt nhân. Cuộc tranh luận về thiết kế này là về hiệu năng và không liên quan đến tổ tiên hoặc danh tính Unix. Mặt khác, có một cách tiếp cận khái niệm truyền thống để cung cấp dịch vụ cho phần mềm, xử lý các hệ thống tệp, v.v. trong các hệ điều hành giống như UNIX / unix.
Tôi tin rằng những cân nhắc như vậy sẽ thêm bối cảnh vào phần hệ điều hành trong câu hỏi của bạn.