Untuk memperluas jawaban pertama tentang POSIX, untuk memahami apa arti "seperti-unix", yah, yang pertama harus mencoba untuk memahami apa sebenarnya UNIX. Melihat dokumentasi dari Open Group , yang memiliki merek dagang Unix, Anda akan menemukan detail tentang evolusi spesifikasi Single UNIX - inilah UNIX03 :
Standar Produk UNIX 03 adalah tanda untuk sistem yang sesuai dengan Versi 3 dari Spesifikasi UNIX Tunggal. Ini adalah versi yang ditingkatkan secara signifikan dari Standar Produk UNIX 98. Perangkat tambahan wajib mencakup penyelarasan dengan ISO / IEC 9989: 1999 C Programming Language, IEEE Std 1003.1-2001 dan ISO / IEC 9945: 2002. Standar Produk ini mencakup Standar Produk wajib berikut: Panggilan dan Pustaka Sistem Internasionalisasi Extended V3, Perintah dan Utilitas V4, Bahasa C V2, dan Antarmuka Terminal Internasionalisasi.
UNIX98 :
Standar Produk UNIX 98 adalah versi yang ditingkatkan secara signifikan dari Standar Produk UNIX 95. Peningkatan wajib termasuk (1) antarmuka Threads, (2) Multibyte Support Extension (MSE), (3) Dukungan File Besar, (4) Dynamic Linking, (5) perubahan untuk menghapus dependensi atau batasan panjang data perangkat keras, dan (6) ) Tahun 2000 berubah. Selain itu, peningkatan tambahan opsional berikut disertakan: Fasilitas Administrasi Perangkat Lunak dan satu set API untuk dukungan waktu nyata. Standar Produk ini mencakup Standar Produk wajib berikut: Panggilan dan Pustaka Sistem Internasionalisasi Extended V2, Perintah dan Utilitas V3, Bahasa C, Layanan Transportasi (XTI) V2, Soket V2 dan Antarmuka Terminal Internasionalisasi. Selain itu, mungkin juga sesuai dengan Standar Produk Administrasi Perangkat Lunak.
UNIX95 (penekanan saya):
Standar Produk ini mendefinisikan platform terkonsolidasi untuk mendukung berbagai aplikasi yang awalnya dikembangkan untuk salah satu kelas sistem operasi yang berasal dari kode Sistem Operasi UNIX dan / atau antarmuka yang awalnya dikembangkan oleh AT&T , di samping fasilitas yang disediakan oleh Standar Produk Dasar. Ini memiliki cakupan yang lebih luas daripada Base. Standar Produk ini mencakup Standar Produk berikut ini: Panggilan dan Pustaka Sistem yang Diperluas secara Internasional, Perintah dan Utilitas V2, Bahasa C, Layanan Transportasi (XTI), Soket dan Antarmuka Terminal yang Diinternasionalkan.
Versi server standar menambahkan Internet Server dan IPv6 dalam beberapa kasus.
Jadi tentu saja kita melihat referensi ke AT&T Bell Laboratories dan bahasa C adalah jantung dari apa UNIX adalah: bahasa C, alat basis modular, dan shell dan bagaimana kernel, sistem file dan komponen OS kunci lainnya dirancang dan diimplementasikan .
Di situlah buku Desain Sistem Operasi UNIX oleh Maurice J. Bach menjadi bacaan yang tak ternilai karena itu masalah sejarah pada saat ini. Dari catatan tentu saja adalah bagaimana ini terkait dengan penemuan lain seperti bahasa C memang. C dikembangkan oleh AT&T Bell untuk mengimplementasikan Unix dengan bahasa yang bisa secepat perakitan tetapi portabel di berbagai perangkat keras, dan banyak POSIX merupakan perluasan ke standar C.
Sejauh menyangkut kernel itu sendiri, Anda akan sering menemukan diagram konseptual seperti ini untuk menggambarkan apa yang dimaksud dengan kernel UNIX secara tradisional:
Berikut adalah beberapa kutipan dari buku klasik Mr Bach (1986) yang membahas dasar-dasar kernel UNIX System V:
Namun, mereka [subsistem aplikasi dan program] semuanya menggunakan layanan tingkat rendah yang pada akhirnya disediakan oleh kernel, dan mereka memanfaatkan layanan-layanan tersebut melalui serangkaian panggilan sistem. Ada sekitar 64 panggilan sistem dalam Sistem V, yang kurang dari 32 sering digunakan. Mereka memiliki opsi sederhana yang membuatnya mudah digunakan tetapi memberi pengguna banyak daya. Himpunan panggilan sistem dan algoritma internal yang mengimplementasikannya membentuk tubuh dari kernel [...]
[...] dua komponen utamanya adalah subsistem file dan subsistem proses.
File disusun dalam sistem file, yang diperlakukan sebagai perangkat logis; perangkat fisik seperti disk dapat berisi beberapa perangkat logis (sistem file). Setiap sistem file memiliki superblock yang menggambarkan struktur dan isi sistem file, dan setiap file dalam sistem file dijelaskan oleh inode yang memberikan atribut file. Panggilan sistem yang memanipulasi file melakukannya melalui inode. [dan kolam penyangga]
[...] Ada dua versi inode: salinan disk yang menyimpan informasi inode ketika file tidak digunakan dan salinan in-core yang merekam informasi tentang file yang aktif.
Eksekusi proses pengguna pada sistem UNIX dibagi menjadi dua tingkatan: pengguna dan kernel. Ketika suatu proses mengeksekusi panggilan sistem, mode eksekusi dari proses berubah dari mode pengguna ke mode kernel : sistem operasi mengeksekusi dan mencoba untuk melayani permintaan pengguna [...]
[...] filosofi sistem UNIX adalah untuk menyediakan primitif sistem operasi yang memungkinkan pengguna untuk menulis program modular kecil yang dapat digunakan sebagai blok bangunan untuk membangun program yang lebih kompleks. Salah satu seperti primitif terlihat shell pengguna adalah kemampuan untuk mengarahkan I / O .
[...] Selain melayani panggilan sistem, kernel melakukan pembukuan umum untuk komunitas pengguna, mengendalikan penjadwalan proses, mengelola penyimpanan dan perlindungan proses dalam memori utama, memotong interupsi, mengelola file dan perangkat, serta menangani kesalahan sistem kondisi.
Jika Anda tertarik dengan implementasi kernel yang berbeda di sistem operasi mirip unix, Anda juga dapat melihat implementasi FreeBSD (4.4BSD) atau di kernel Mach atau melihat perbandingan fitur-fiturnya.
Semakin banyak Anda tahu tentang desain UNIX, semakin Anda memahami apa yang terjadi dalam diagram berikut tentang nenek moyang UNIX dan sejarahnya . Mr Bach kebanyakan berbicara tentang Sistem V dalam bukunya, tetapi ia juga membahas BSD:
Ada lebih dari ini benar-benar memenuhi mata . Sebagai contoh, Mac OSX bersertifikat UNIX03 tetapi apakah Anda melihatnya terhubung ke UNIX murni (sebagian besar berwarna merah)?
Di atas Anda dapat melihat bagaimana kontribusi BSD, GNU, Microsoft dan beragam individu ke alam semesta ini. Meskipun GNU dan akhirnya linux tidak memiliki garis keturunan langsung ke UNIX, Anda melihat bahwa GNU adalah upaya untuk merekayasa ulang di dunia open source alat dan perangkat lunak dari UNIX komersial yang telah ditutup. Jadi melihat perangkat lunak yang dikelola GNU memberikan ide misalnya di aplikasi prototipe awal dan perpustakaan.
Perang lisensi memainkan peran dalam evolusi (dan terkadang stagnasi) UNIX. Anda dapat segera melihat bahwa UNIX berbaris sesuai dengan jenis lisensi - ditutup vs BSD ( BSD memungkinkan untuk membuat kode sumber tertutup ... lihat OSX) dan GPL yang memungkinkan Linux dan GNU untuk melengkapi diri mereka di dunia copyleft. Berikut adalah peta klasik dari kernel linux yang awalnya dikembangkan oleh Linus Torvalds, yang juga mengungkapkan apa yang kernel "dapat" berada dalam sistem operasi mirip Unix:
Ini mengisyaratkan gagasan bahwa tipe desain " kernel " bukanlah yang membuat standar UNIX atau apa yang mendefinisikan OS seperti-unix. Ini dibuktikan oleh fakta bahwa banyak OS mirip unix mungkin memiliki kernel monolitik atau microkernel - monolitik adalah tipe desain klasik untuk UNIX. Bahkan, bahkan di dalam UNIXes murni, HPUX memiliki kernel monolitik sedangkan AIX menggunakan microkernel. Ini perdebatan tentang desain adalah tentang kinerja dan tidak berhubungan dengan Unix keturunan atau identitas. Di sisi lain, ada pendekatan konseptual tradisional untuk menyediakan layanan untuk perangkat lunak, berurusan dengan sistem file dll di bawah sistem operasi UNIX / unix-like.
Saya percaya pertimbangan seperti itu akan menambah konteks ke bagian OS dari pertanyaan Anda.