GNU/Linux >> Belajar Linux >  >> FreeBSD

Freebsd – Dari Mana Mac Os X Berasal?

Berdiskusi dengan pemilik Mac, saya mendapatkan beberapa versi dari mana Mac OS X berasal. Diketahui memiliki beberapa akar di BSD, tetapi berapa banyak, dan di mana?

Beberapa orang mengatakan bahwa Mac OS X memiliki kernel FreeBSD, dengan semua utilitas di atas yang membuatnya menjadi OS yang spesifik untuk Mac. (Tidak berbicara tentang aplikasi pengguna di sini, hanya semua init , ls , cd , dan lain-lain. binutils? )

Yang lain mengatakan Mac OS X adalah kernel Darwin, yang merupakan Mac murni, dan bahwa utilitas OS berasal dari BSD.

Di mana kebenarannya?

Jawaban yang Diterima:

Sejarah MacOS sedikit lebih berbelit-belit. Saya sangat tertarik dengan ini di akhir tahun 90-an karena Mach telah diperkenalkan di seluruh dunia sebagai cara yang lebih cepat untuk membangun sistem Unix.

Asal kernel sedikit lebih rumit.

Semuanya dimulai dengan AT&T mendistribusikan sistem operasi mereka ke beberapa universitas secara gratis. Unix ini ditingkatkan secara ekstensif di Berkeley dan menjadi dasar untuk variasi BSD dari Unix dan memasukkan beberapa inovasi baru seperti "Sistem File Cepat" (UFS), memperkenalkan symlink dan API soket. AT&T berjalan dengan caranya sendiri dan membangun Sistem V secara bersamaan.

Sementara itu, penelitian terus berlanjut dan beberapa orang mengadopsi karya dari BSD sebagai landasan. Di CMU, kernel BSD digunakan sebagai dasar untuk membuat prototipe beberapa ide baru:utas, API untuk mengontrol sistem memori virtual (melalui “pager” yang dapat dipasang – mmap tingkat pengguna), sistem panggilan prosedur jarak jauh tingkat kernel dan sebagian besar penting gagasan untuk memindahkan beberapa operasi tingkat kernel ke ruang pengguna. Ini menjadi kernel Mach.

Saya tidak yakin 100% apakah mmap berasal dari Mach, dan kemudian diadopsi oleh BSD, atau jika Mach hanya mempelopori ide tersebut dan BSD menambahkan mmap mereka sendiri berdasarkan ide Mach.

Meskipun kernel Mach dideskripsikan sebagai kernel mikro, hingga versi 2.5 itu hanyalah sebuah sistem yang menyediakan fitur-fitur thread, mmap, penyampaian pesan tetapi tetap kernel monolitik, semua layanan berjalan pada mode kernel.

Saat ini Rick Rashid (sekarang di Microsoft) dan Avie Tevanian (sekarang di Apple) telah menemukan ide baru yang dapat mempercepat Unix. Idenya adalah menggunakan panggilan sistem mmap untuk meneruskan data yang akan disalin dari ruang pengguna ke "server" yang mengimplementasikan sistem file. Ide ini pada dasarnya adalah variasi dari mencoba untuk menghindari membuat salinan dari data yang sama, tetapi itu diajukan sebagai manfaat dari kernel mikro, bahkan jika fitur tersebut dapat diisolasi dari kernel mikro.

Tolok ukur sistem Unix lebih cepat yang didukung VM inilah yang mendorong orang-orang di NeXT dan FSF untuk memilih Mach sebagai fondasi kernel mereka.

NeXT menggunakan kernel Mach 2.5 (yang didasarkan pada BSD 4.2 atau 4.3) dan GNU tidak akan benar-benar mulai bekerja selama bertahun-tahun. Inilah yang digunakan sistem operasi NeXTSTEP.

Sementara itu di CMU, pekerjaan dilanjutkan pada Mach dan mereka akhirnya menyadari visi memiliki banyak server yang berjalan di atas kernel mikro dengan versi 3.0. Saya tidak mengetahui siapa pun di alam liar yang dapat menjalankan Mach 3.0 karena semua server tingkat pengguna yang menarik menggunakan kode AT&T sehingga dianggap terbebani, sehingga tetap merupakan produk penelitian.

Sekitar waktu ini tim Jolitz telah melakukan port 4.3+ BSD ke arsitektur 386 dan mempublikasikan upaya porting mereka di DrDobbs. 386BSD tidak dipelihara secara aktif dan sebuah grup muncul untuk memelihara dan memajukan 386BSD, tim NetBSD. Perkelahian internal dalam grup NetBSD menyebabkan perpecahan pertama dan FreeBSD terbentuk dari ini. NetBSD pada saat itu ingin fokus untuk memiliki BSD lintas platform, dan FreeBSD ingin fokus untuk memiliki Unix yang bekerja dengan baik di platform x86. Beberapa saat kemudian, NetBSD pecah lagi karena beberapa perselisihan lain dan ini mengarah pada pembuatan OpenBSD.

Terkait:Mac – Apakah mungkin menggunakan Apple Time Capsule hanya sebagai drive cadangan yang terhubung ke jaringan dan bukan sebagai router?

Sebuah garpu BSD 4.3 untuk platform x86 menjadi komersial dengan sebuah perusahaan bernama BSDi, dan berbagai anggota tim Berkeley asli bekerja di sana dan menjaga hubungan baik dengan tim BSD di Universitas.

AT&T tidak geli dan memulai gugatan AT&T vs BSDi, yang kemudian diperluas untuk menuntut Universitas juga. Gugatan itu tentang BSDi menggunakan kode kepemilikan dari AT&T yang belum ditulis ulang oleh Berkeley. Ini mengembalikan BSD dibandingkan dengan sistem operasi Linux yang akan datang.

Meskipun hal-hal tidak terlihat baik bagi para terdakwa, pada titik tertentu seseorang menyadari bahwa SystemV telah memasukkan potongan besar kode BSD di bawah lisensi BSD dan AT&T tidak memenuhi kewajiban mereka dalam lisensi. Penyelesaian tercapai di mana AT&T tidak perlu menarik produk mereka dari pasar, dan Universitas setuju untuk menghapus kode apa pun yang masih dapat didasarkan pada kode AT&T.

Universitas kemudian merilis dua versi BSD 4.4 encumbered dan 4.4 lite. Versi terbebani akan boot dan dijalankan, tetapi berisi kode AT&T. Versi lite tidak mengandung kode apa pun dari AT&T tetapi tidak berfungsi.

Berbagai upaya BSD melakukan kembali pekerjaan mereka di atas rilis 4.4 lite yang baru dan memiliki sistem booting dalam beberapa bulan.

Sementara itu, kernel mikro Mach 3.0 tetap tidak terlalu berguna tanpa server pengguna.

Seorang mahasiswa dari universitas Skandinavia (saya percaya, saya mungkin salah) adalah orang pertama yang membuat sistem penuh Mach 3.0 dengan OS lengkap berdasarkan rilis 4.4 lite, saya percaya ini disebut "Lites". Sistem bekerja, tetapi lambat.

Selama tahun 1992-1996 dan sekarang BSD telah memiliki system call mmap() serta kebanyakan sistem Unix lainnya. “Keuntungan kernel mikro” yang tidak ada, tidak pernah benar-benar membuahkan hasil. NeXT masih memiliki kernel monolitik. FSF masih mencoba untuk membuat Mach untuk dibangun, dan tidak ingin menyentuh kode BSD atau berkontribusi pada upaya BSD open source mana pun, mereka terus menggunakan visi kernel yang ditentukan dengan buruk dan mereka tenggelam pada protokol RPC untuk mereka sendiri inti. Kernel mikro tampak hebat di atas kertas, tetapi ternyata direkayasa secara berlebihan dan membuat semuanya menjadi lebih lambat.

Pada titik ini kami juga memiliki perdebatan Linus vs Andy tentang kernel mikro vs kernel monolitik dan dunia mulai menyadari bahwa tidak mungkin untuk menambahkan semua siklus ekstra itu ke kernel mikro dan masih mendahului kernel monolitik yang dirancang dengan baik. .

Apple belum mengakuisisi NeXTSTEP, tetapi juga mulai melihat Mach sebagai kernel potensial untuk sistem operasi masa depan mereka. Mereka menyewa Open Software Foundation untuk mem-porting Linux ke kernel Mach, dan ini dilakukan di luar kantor Grenoble mereka, saya yakin ini disebut "mklinux".

Ketika Apple membeli NeXT, apa yang mereka miliki adalah fondasi Unix yang relatif lama, Unix berbasis 4.2 atau 4.3 dan sekarang, bahkan perangkat lunak bebas pun tidak berjalan dengan baik di sistem tersebut. Mereka menyewa Jordan Hubbard dari FreeBSD untuk mengupgrade tumpukan Unix mereka. Timnya bertanggung jawab untuk memutakhirkan wilayah pengguna, dan tidak mengherankan jika wilayah pengguna MacOS ditingkatkan ke versi terbaru yang tersedia di BSD.

Terkait:Mac – Menginstal Mac OS X Mountain lion Apple iD Error?

Apple memang mengubah Mach mereka dari 2,5 menjadi 3,0 di beberapa titik, tetapi memutuskan untuk tidak menggunakan pendekatan mikro-kernel dan malah membuat semuanya tetap dalam proses. Saya tidak pernah bisa memastikan apakah Apple menggunakan Lites, menyewa peretas Skandinavia, atau apakah mereka mengadopsi 4.4 lite sebagai OS mereka. Saya menduga mereka melakukannya, tetapi saya telah pindah ke Linux dan telah berhenti melacak dunia BSD/Mach.

Ada desas-desus di akhir 90-an bahwa Avie di Apple mencoba mempekerjakan Linus (yang sudah terkenal saat ini) untuk mengerjakan bayinya, tetapi Linus memilih untuk terus bekerja di Linux.

Selain sejarah, halaman ini menjelaskan userland dan kernel Mach/Unix:

http://developer.apple.com/mac/library/documentation/Darwin/Conceptual/KernelProgramming/Architecture/Architecture.html#//apple_ref/doc/uid/TP30000905-CH1g-CACDAEDC

Saya menemukan grafik sejarah OSX ini:


FreeBSD
  1. Di mana Wine Menyimpan File?

  2. Di mana linux menyimpan syslog saya?

  3. dari mana 'pkg-config' mengambil informasinya?

  1. Mengapa saya beralih dari Mac ke Linux

  2. Dari Mana Skrip Shell Dijalankan?

  3. Dari mana datangnya rute ke 169.254.0.0?

  1. Bagaimana Ubuntu Berbeda Dari Debian?

  2. Apa yang Hilang+Ditemukan Dan Dari Mana Asalnya?

  3. Mengapa Ls -l Menghasilkan Ukuran Yang Berbeda Dari Ls -s?