Mac OS X đến từ đâu?


43

Thảo luận với chủ sở hữu máy Mac, tôi có một số phiên bản Mac OS X đến từ đâu. Nó được biết là có một số gốc trong BSD, nhưng bao nhiêu, và ở đâu?

Một số người nói rằng Mac OS X có kernel FreeBSD, với tất cả các tiện ích ở trên làm cho nó trở thành một hệ điều hành cụ thể cho Mac. (Không nói về các ứng dụng sử dụng ở đây, chỉ có tất cả các init, ls, cd, và những người khác. Binutils? )

Những người khác nói Mac OS X là hạt nhân Darwin, đó là Mac thuần túy và các tiện ích HĐH đến từ BSD.

Sự thật ở đâu?


11
Tiêu đề của câu hỏi này thực sự phải là "Mac OS X đến từ đâu", vì tất cả các phiên bản Mac OS trước X là một hệ điều hành hoàn toàn không dựa trên nền tảng khác.
Sandy

1
@Sandy: đã sửa lỗi Xes
Warren Young

Tôi định gợi ý 'địa ngục' nhưng sau đó tôi có ký ức khó chịu về Microsoft và 'Windows' ghê gớm của họ ... Khác với điều đó? NeXTSTEP và BSD nếu bộ nhớ phục vụ tôi đúng và tôi chắc chắn câu trả lời lưu ý điều đó.
Pryftan

Câu trả lời:


67

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: văn bản thay thế


Theo hiểu biết của tôi, lý do chính khiến Stallman tại FSF theo đuổi Mach không phải là hiệu năng mà là dễ sử dụng trình gỡ lỗi: anh ta có thể sử dụng trình gỡ lỗi để gỡ lỗi máy chủ Mach dễ dàng hơn nhiều so với gỡ lỗi mã chạy trong không gian kernel. Mặc dù có lẽ chính màn trình diễn đã thuyết phục anh nhưng đây là một cách khả thi để thực hiện.
Skiphoppy

4
Nếu bạn thực sự muốn thấy một hạt nhân thực sự hoạt động, hãy thử QNX. Trong QNX4, kernel chỉ có 32 K-byte và chỉ xử lý chuyển tin nhắn, lập lịch và ngắt CPU. Tất cả các bộ phận khác của HĐH QNX có thể được hoán đổi mà không cần tắt hoặc khởi động lại hệ thống, và nó cực kỳ mạnh mẽ. Tại một thời điểm, có một trình giả lập cửa sổ cho QNX được gọi là Willows chạy các ứng dụng windows nhanh hơn các cửa sổ gốc. Mặc dù điều này không liên quan gì đến OS-X per se, QNX đã chứng minh rằng microkernels thực sự khả thi khi được thực hiện đúng.

20
hình ảnh không còn nữa.
Hermann Ingjaldsson

7
Hình ảnh vẫn chưa khả dụng
Sildoreth

Steve Jobs đã đề nghị Linus một công việc vào năm 2000. Linus nói về nó ở đây. có dây.com / 2012/03 / mr
Alistair McMillan

24

Về phía Unix, OS X là hậu duệ của NeXTSTEP , được lấy từ 4.3BSD với các phần cốt lõi của kernel được thay thế bằng Mach .

API lập trình NeXT, cuối cùng được gọi là OpenStep , là nền tảng của API Cacao ngày nay cho OS X. Hai API đã chuyển hướng rất nhiều kể từ khi Apple mua NeXT vào năm 1997, mặc dù vẫn có những nỗ lực liên tục để cung cấp các bản sao Cacao tương thích API nguồn mở .

Thêm vào đó là API tương thích MacOS cổ điển, được gọi là Carbon và bạn có giao diện lập trình OS X.

(Có nhiều hơn nữa đối với OS X, nhưng chúng là các ứng dụng vượt trên tất cả: Công cụ tìm kiếm, công cụ người dùng BSD và GNU, v.v.)

Đối với ý tưởng hạt nhân FreeBSD, nó hoàn toàn chính xác, nhưng đó là một cách không phức tạp để xem xét nó. Hạt nhân ban đầu đến, như tôi đã nói, từ NeXT, đã lắp ráp hạt nhân đầu tiên của họ từ 4.3BSD và Mach. Điều này có nghĩa là cả FreeBSD và NeXTSTEP đã chia sẻ một số mã thông qua 4.3BSD.

Các meme rằng OS X dựa trên FreeBSD có hai nguồn gần đây hơn. Đầu tiên, Apple đã tiếp tục mượn những đổi mới từ thế giới BSD, thường là từ FreeBSD. Thứ hai, Apple đã thuê người đồng sáng lập dự án FreeBSD Jordan Hubbard ngay sau khi phát hành OS X công khai đầu tiên. Ông làm việc cho Apple đến tháng 6 năm 2013.


0

Khi bạn được bảo OSX có hương vị riêng của Unix, họ đúng về mặt kỹ thuật.

Các thành phần BSD + từ NeXTSTEP + Apple Tweaks = DARWIN

Theo một cách khác. Chỉ đặt hàng Hot Fudge / ice cream (BSD) thêm Nuts (NeXTStep) cộng với kem roi da và cherry (Bổ trợ Apple và chỉnh sửa) = A Hot Fudge Sundae (Darwin)

Nhưng BSD là cơ sở mà những người khác đã được thêm vào, đó là lý do tại sao phần lớn BSD sẽ hoạt động ở Darwin (với một tinh chỉnh ở đây và đó)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.