Fitur apa yang dimiliki Darwin yang tidak dimiliki Unix lain, atau sebaliknya?

19

Apakah Darwin memiliki fitur yang spesifik untuknya? Apakah Unixe lain memiliki fitur yang kurang dimiliki Darwin?

Am1rr3zA
sumber

Jawaban:

20

OS X adalah satu-satunya sistem operasi yang tersisa berdasarkan mikrokernel Mach yang juga masih relevan secara komersial. Ada beberapa proyek penelitian yang sedang berlangsung dan OS usang yang tidak diragukan lagi masih digunakan dalam pengaturan produksi pada mesin lama, tetapi tidak ada yang dapat Anda keluar dan beli pada mesin baru hari ini.

OS X memiliki bermacam-macam ketidakcocokan fitur kernel seperti yang dimiliki * ix. Yang terbesar saya yang paling baru-baru ini harus bekerja di sekitar adalah kurangnya antrian pesan System V . ( msgget(2)dan teman-teman.) Kami harus mengganti kode antrian pesan kami - yang ditulis untuk varian Sistem V "asli" dan kemudian diangkut ke Linux - dengan TCP / IP agar perangkat lunak kami dapat berjalan di OS X. Untuk aplikasi kami, perbedaan antara kedua metode IPC ini penting pada saat kami membuat pilihan untuk pergi dengan antrian pesan, tetapi karena perubahan arsitektur kemudian, itu akhirnya tidak menjadi masalah besar untuk beralih ke TCP / IP.

Warren Young
sumber
11

Ketika tiba saatnya, bukankah Darwin hanya lapisan BSD tipis di atas Mach 2.0?

Saya dulu menggunakan NeXTStep, saya tidak tahu berapa banyak MacOSX saat ini berangkat dari NeXTStep, tapi ...

Mach 2.0 menawarkan serangkaian abstraksi yang berbeda di tingkat kernel:

  1. "Tugas": itu adalah ruang alamat + set "port", mungkin dengan utas yang berjalan di dalamnya.
  2. Utas. Ini adalah unit eksekusi yang dapat dijadwalkan. Suatu tugas (ruang alamat) dapat memiliki lebih dari 1 yang berjalan di dalamnya. Saya percaya bahwa file Mach-O (format file yang dapat dieksekusi Mach) dapat menentukan lebih dari satu utas pada saat proses dijalankan: tidak ada fungsi utama () yang memulai lebih banyak Cthreads, OS akan memulai satu.
  3. Pelabuhan Ini tidak seperti port TCP atau UDP. Mereka diketik, memerintahkan aliran pesan. Agak seperti RPC. Anda membuat file spesifikasi protokol, lalu menjalankannya melalui kompiler untuk mendapatkan server dan potongan sisi klien, menyusun dan menghapus rutinitas, dll.
  4. Pager memori tingkat pengguna. Anda bisa mengatur tugas + utas untuk menangani paging ruang alamat tugas lain.

Orang-orang CMU Mach asli menggunakan abstraksi ini untuk meniru proses BSD Unix, proses MS-DOS, dan sangat cocok dengan keanehan, tugas VMS. Setiap tugas VMS mengambil 2 tugas Mach, ditambah banyak utas. Seseorang yang digunakan untuk menjual emulator Mac OS (pre-OSX) untuk NeXTStep yang menggunakan pager pengguna-ruang untuk efek yang baik.

Halaman publikasi CMU Mach yang lama: http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/documents_top.html

Makalah VMS-on-Mach: http://www.sture.ch/vms/Usenix_VMS-on-Mach.pdf

Bruce Ediger
sumber
2
Mac OS X (dan karenanya Darwin) menggunakan Mach 3.0.
bahamat
5

Ini bukan jawaban tetapi, DTrace adalah alat debugging sistem yang luar biasa yang ada untuk Solaris, Darwin / OS X, dan * BSD, tetapi tidak untuk Linux.

kbyrd
sumber
3
Oracle mengirim DTrace ke Linux pada 2011.
MattBianco
1
Pada Oktober 2011, Oracle mengumumkan porting DTrace dari Solaris ke Linux, tetapi pada 13 Oktober 2014, ia tetap tidak tersedia secara resmi. ( slideshare.net/brendangregg/from-dtrace-to-linux )
scravy
4

Darwin memiliki sejumlah kecil tipe sistem file yang didukung. Terlepas dari spesial seperti devfs dan tipe jaringan seperti webdav, daftarnya adalah:

  • HFS / HFS +
  • UFS / FFS
  • ISO-9660 / UDF / CDDA
  • NTFS
  • LEMAK

Dari daftar ini, hanya UFS yang dirancang untuk Unix, meskipun HFS + telah ditingkatkan untuk mendukung semua fungsionalitas Unix yang diperlukan. Pada Mac OS X 10.6, UFS tidak dapat digunakan untuk partisi root, meskipun pembatasan ini mungkin tidak berlaku untuk Darwin. Secara default, HFS + tidak peka huruf besar-kecil, meskipun sensitivitas huruf dapat diminta pada waktu pembuatan. Meskipun Mac OS X akan berjalan pada partisi case-sensitive, banyak aplikasi Mac profil tinggi tidak akan (mis. Adobe CS).

Untuk sementara, Apple berencana untuk menggantikan HFS dengan ZFS , dan bahkan mengirim ZFS dengan beberapa versi Mac OS X, tetapi sayangnya percobaan ini akhirnya gagal karena masalah perizinan yang tidak terselesaikan .

Neil Mayhew
sumber
Saya percaya dukungan penulisan OS X / macOS NTFS dilaporkan masih buggy, karena masih eksperimental dan tidak pernah stabil, seingat saya.
RandomDSdevel
3

Saya pikir yang terbaik untuk menggambarkan Darwin hanyalah rasa UNIX . Solaris adalah satu. HP / UX adalah yang lain. Ada banyak lagi , mungkin bukan sebagai "profil tinggi" tetapi mereka ada di sana. Dan dengan setiap rasa hadir spesifiknya sendiri. Itu sebabnya ada rasa di tempat pertama. Beberapa perusahaan memikirkan sesuatu yang akan membantu menjualnya (atau hanya bekerja dengannya atau bahkan mengadministrasikannya) dan menciptakannya dan memberinya nama sendiri.

reiche
sumber
2
UNIX (dalam semua batas) adalah merek dagang terdaftar dari The Open Group di banyak negara; untuk sesuatu yang menjadi "UNIX" (dalam semua batas), sertifikasi diperlukan . Darwin bukanlah "rasa UNIX" yang lain - tetapi Mac OS X 10.10 pada Intel x86-64 disertifikasi sebagai UNIX lain.
user314104
0

Jika saya telah mendengar dengan benar Darwin, sebagaimana dirilis oleh Apple, tidak lagi berfungsi sebagai sistem operasi independen, maka saya akan menunjukkan bahwa perbedaan terbesar yang dimilikinya adalah OS X di atasnya. : D

Meskipun integrasi antara OS Mac lama, Mac OS X baru, dan hal-hal NeXT kadang-kadang menggelikan, utilitas kecil seperti diskutil dan hdiutil sangat bagus. Mungkin beberapa arsitek kernel Mach lama dari NeXT yang menggunakan hal-hal kecil ini dan peduli pada mereka yang telah memastikan XCode alat yang bagus juga.

Kevin Cantu
sumber
-1

Darwin didasarkan pada FreeBSD. Salah satu fitur keren yang tidak ada di sistem operasi Unix lain (menurut pengalaman saya) adalah Berkeley Packet Filter , alias /dev/bpf. Ini adalah sangat serbaguna perangkat yang dapat digunakan untuk paket menangkap.

Bran the Blessed
sumber
1
Darwin sebenarnya tidak berdasarkan pada FreeBSD, meskipun ia meminjam beberapa hal dari pengguna. Komentar lain di sini menjelaskannya dengan lebih baik. bpf (4) bukan semata-mata Darwin dan FreeBSD / NetBSD / OpenBSD, dan saya punya perasaan bahwa seseorang mungkin bahkan mengimplementasikannya untuk kernel Linux sebelumnya. SCO (dalam-) terkenal memilikinya dalam penawaran Unixware mereka.
jrg
-11

Tinju yang muncul di benak saya adalah semua alat yang dimiliki OSX di konsol .. ada banyak perintah yang lebih berguna yang dimiliki unix. Diskutil itu seperti partisi ajaib dalam shell, alat ini memiliki begitu banyak pilihan untuk operasi disk sehingga fdisk benar-benar hanya 10% dari apa yang dimiliki binatang ini ... jenis .. apakah benar-benar unix memilikinya? dalam mimpimu!! ; D

SystemProfiler - alat hebat yang menampilkan semua perangkat keras id, nama, model, sn dan hal-hal seperti itu dengan cara yang SANGAT nyaman.

kernel darwin tidak sepenuhnya transparan seperti di unix.

darwin punya killall util = P unix jangan, hanya skill

sistem file yang berbeda juga .. HFS, HFS +

mungkin yang terakhir saya akan mengingat lebih banyak =)

holms
sumber
2
Apakah maksud Anda Darwin memiliki 'killall' dan varian Unix lainnya tidak? Itu tidak benar.
kbyrd
2
jawaban ini adalah tersangka trolling. Tidak perlu begitu memfitnah dalam pernyataan Anda tentang * nix selain os X. Juga, terakhir kali saya PERNAH DIGUNAKAN * NIX killall benar-benar hadir di PATH saya. Juga, linux memiliki profiler sistem. Kerjakan pekerjaan rumah Anda. Jangan menjadi déuche. sunting: Saya menggunakan dan sangat menyukai OS X.
Eli Frey
2
Saya punya killall di linux, jadi tidak unik untuk darwin
xenoterracide
2
Jawaban ini tidak jelas dan tidak akurat. Apa fitur berguna yang tidak dimiliki fdisk? RAID Linux (mdadm) memang memiliki concatenation (LINEAR), striping (RAID0) dan mirroring (RAID1), antara lain. Linux juga mendukung HFS dan HFS +.
Matthew Flaschen
3
BTW: Linux-killall dan Solaris-killall sangat berbeda
EricSchaefer