Lịch sử của MacOS phức tạp hơn một chút. Tôi đã rất hứng thú với điều này vào cuối những năm 90 vì Mach đã được quảng cáo khắp thế giới như là một cách nhanh hơn để xây dựng một hệ thống Unix.
Nguồn gốc của kernel phức tạp hơn một chút.
Tất cả bắt đầu với việc AT & T phân phối hệ điều hành của họ cho một số trường đại học miễn phí. Unix này đã được cải tiến rộng rãi tại Berkeley và trở thành nền tảng cho các biến thể BSD của Unix và kết hợp một số cải tiến mới như "Hệ thống tệp nhanh" (UFS), giới thiệu symlink và API socket. AT & T đã đi trên con đường của riêng họ và xây dựng System V cùng một lúc.
Trong khi đó, nghiên cứu vẫn tiếp tục và một số người đã chấp nhận công việc từ BSD làm nền tảng. Tại CMU, hạt nhân BSD đã được sử dụng làm nền tảng để tạo ra một vài ý tưởng mới: luồng, API để điều khiển hệ thống bộ nhớ ảo (thông qua "máy nhắn tin" có thể cắm được - mmap cấp độ người dùng), hệ thống gọi thủ tục từ xa cấp hạt nhân và hầu hết quan trọng là ý tưởng di chuyển một số hoạt động cấp kernel vào không gian người dùng. Điều này đã trở thành hạt nhân Mach.
Tôi không chắc chắn 100% nếu mmap đến từ Mach, và sau đó được BSD chấp nhận, hoặc nếu Mach chỉ đi tiên phong về ý tưởng và BSD đã thêm mmap của riêng họ dựa trên ý tưởng của Mach.
Mặc dù hạt nhân Mach được mô tả là một hạt nhân siêu nhỏ, cho đến phiên bản 2.5, nó chỉ là một hệ thống cung cấp các tính năng luồng, mmap, thông điệp nhưng vẫn là một hạt nhân nguyên khối, tất cả các dịch vụ đều chạy trên chế độ kernel.
Tại thời điểm này, Rick Rashid (hiện tại Microsoft) và Avie Tevanian (hiện tại Apple) đã đưa ra một ý tưởng mới lạ có thể tăng tốc Unix. Ý tưởng là sử dụng lệnh gọi hệ thống mmap để truyền dữ liệu được sao chép từ không gian người dùng đến "máy chủ" thực hiện hệ thống tệp. Ý tưởng này về cơ bản là một biến thể của việc cố gắng tránh tạo ra các bản sao của cùng một dữ liệu, nhưng nó được coi là một lợi ích của hạt nhân vi mô, ngay cả khi tính năng này có thể được tách ra khỏi hạt nhân vi mô.
Điểm chuẩn của hệ thống Unix nhanh hơn được hỗ trợ bởi VM này là điều đã thúc đẩy mọi người tại NeXT và tại FSF chọn Mach làm nền tảng cho hạt nhân của họ.
NeXT đã sử dụng kernel Mach 2.5 (dựa trên BSD 4.2 hoặc 4.3) và GNU sẽ không thực sự bắt đầu công việc trong nhiều năm. Đây là những gì hệ điều hành NeXTSTEP đang sử dụng.
Trong khi đó tại CMU, công việc vẫn tiếp tục trên Mach và cuối cùng họ đã nhận ra tầm nhìn về việc có nhiều máy chủ chạy trên một hạt nhân siêu nhỏ với phiên bản 3.0. Tôi không biết bất kỳ ai trong tự nhiên có thể chạy Mach 3.0 vì tất cả các máy chủ cấp người dùng thú vị đều sử dụng mã AT & T để chúng được coi là bị đóng gói, vì vậy nó vẫn là một sản phẩm nghiên cứu.
Trong khoảng thời gian này, nhóm Jolitz đã thực hiện một cổng 4.3+ BSD cho kiến trúc 386 và công bố những nỗ lực chuyển của họ trên DrDobbs. 386BSD đã không được duy trì tích cực và một nhóm đã xuất hiện để duy trì và di chuyển 386BSD về phía trước, nhóm NetBSD. Các trận đánh nội bộ trong nhóm NetBSD đã gây ra sự chia rẽ đầu tiên và FreeBSD được hình thành từ điều này. NetBSD tại thời điểm đó muốn tập trung vào việc có BSD đa nền tảng và FreeBSD muốn tập trung vào việc có một Unix hoạt động tốt trên nền tảng x86. Một lát sau, NetBSD lại tách ra do một số tranh chấp khác và điều này dẫn đến việc tạo ra OpenBSD.
Một nhánh của BSD 4.3 cho các nền tảng x86 đã được thương mại với một công ty tên là BSDi và các thành viên khác nhau của nhóm Berkeley ban đầu làm việc ở đó và giữ mối quan hệ tốt với nhóm BSD tại Đại học.
AT & T không thích thú và bắt đầu vụ kiện AT & T vs BSDi, sau đó được mở rộng để kiện Đại học. Vụ kiện là về BSDi sử dụng mã độc quyền từ AT & T chưa được Berkeley viết lại. Điều này đặt lại BSD so với hệ điều hành Linux sắp ra mắt.
Mặc dù mọi thứ có vẻ không tốt cho các bị cáo, nhưng đến một lúc nào đó, ai đó nhận ra rằng SystemV đã kết hợp các đoạn mã BSD lớn theo giấy phép BSD và AT & T đã không hoàn thành nghĩa vụ của họ trong giấy phép. Một thỏa thuận đã đạt được trong đó AT & T sẽ không phải rút sản phẩm của họ khỏi thị trường và Đại học đã đồng ý tách ra bất kỳ mã nào vẫn có thể dựa trên mã AT & T.
Trường đại học sau đó đã phát hành hai phiên bản BSD 4.4 được mã hóa và 4.4 lite. Phiên bản bị mã hóa sẽ khởi động và chạy, nhưng chứa mã AT & T. Phiên bản lite không chứa bất kỳ mã nào từ AT & T nhưng không hoạt động.
Các nỗ lực BSD khác nhau đã thực hiện lại công việc của họ trên phiên bản phát hành mới 4.4 và có hệ thống khởi động trong vòng vài tháng.
Trong khi đó, hạt nhân Mach 3.0 vẫn không hữu dụng nếu không có bất kỳ máy chủ nào của người dùng.
Một sinh viên từ một trường đại học Scandinavia (tôi tin rằng, tôi có thể có lỗi này) là người đầu tiên tạo ra một hệ thống Mach 3.0 đầy đủ với một hệ điều hành hoàn chỉnh dựa trên bản phát hành 4.4, tôi tin rằng đây được gọi là "Lites". Hệ thống hoạt động, nhưng chậm.
Trong thời gian 1992-1996 và đến nay, BSD đã có lệnh gọi hệ thống mmap () cũng như hầu hết các hệ thống Unix khác. "Lợi thế vi nhân" không có ở đó, chưa bao giờ thực sự trở thành hiện thực. NeXT vẫn có một hạt nhân nguyên khối. FSF vẫn đang cố gắng để Mach xây dựng và không muốn chạm vào mã BSD hoặc đóng góp cho bất kỳ nỗ lực BSD nguồn mở nào, họ tiếp tục thu phí ở tầm nhìn hạt nhân được chỉ định kém và họ đã tự mình chìm đắm vào các giao thức RPC nhân. Hạt nhân siêu nhỏ trông tuyệt vời trên giấy, nhưng hóa ra là quá kỹ thuật và chỉ làm mọi thứ chậm hơn.
Tại thời điểm này, chúng tôi cũng đã có cuộc tranh luận giữa Linus và Andy về hạt nhân siêu nhỏ và hạt nhân nguyên khối và thế giới bắt đầu nhận ra rằng không thể thêm tất cả các chu kỳ bổ sung đó vào một hạt nhân siêu nhỏ và vẫn đi trước một hạt nhân nguyên khối được thiết kế tốt .
Apple vẫn chưa mua NeXTSTEP, nhưng cũng bắt đầu xem Mach như một hạt nhân tiềm năng cho các hệ điều hành trong tương lai của họ. Họ đã thuê Tổ chức phần mềm mở để chuyển Linux sang nhân Mach và việc này được thực hiện từ các văn phòng Grenoble của họ, tôi tin rằng điều này được gọi là "mklinux".
Khi Apple mua NeXT những gì họ có trong tay là một nền tảng Unix tương đối cũ, một phiên bản Unix dựa trên 4.2 hoặc 4.3 và cho đến nay, thậm chí không có phần mềm miễn phí nào chạy tốt trên các hệ thống đó. Họ đã thuê Jordan Hubbard rời khỏi FreeBSD để nâng cấp ngăn xếp Unix của họ. Nhóm của anh chịu trách nhiệm nâng cấp vùng đất người dùng và không có gì ngạc nhiên khi vùng người dùng MacOS được nâng cấp lên các phiên bản mới nhất có sẵn trên BSD.
Apple đã chuyển Mach của họ từ 2.5 sang 3.0 tại một số thời điểm, nhưng quyết định không đi theo phương pháp vi nhân và thay vào đó giữ mọi thứ trong quá trình. Tôi chưa bao giờ có thể xác nhận nếu Apple sử dụng Lites, thuê hacker scandinavian hay họ chấp nhận 4.4 lite làm HĐH của họ. Tôi nghi ngờ họ đã làm, nhưng tôi đã chuyển sang Linux và đã ngừng theo dõi thế giới BSD / Mach.
Có một tin đồn vào cuối những năm 90 rằng Avie tại Apple đã cố gắng thuê Linus (người đã nổi tiếng vào thời điểm này) để làm việc cho em bé của mình, nhưng Linus đã chọn tiếp tục làm việc trên Linux.
Bỏ qua lịch sử, trang này mô tả vùng người dùng và nhân Mach / Unix:
http://developer.apple.com/mac/lvern/documentation/Darwin/Conceptual/KernelProgramming/Arch architecture / Arch architecture.html # / // numplef
Tôi tìm thấy đồ họa này về lịch sử của OSX: