UNIX telah dianggap sebagai ibu dari sebagian besar sistem operasi. Beberapa anggota populer dari keluarga ini Termasuk :
- Sistem V Rilis 4(SVR4) dikembangkan oleh AT&T.
- 4.4 BSD Dari universitas California
- AIX dari IBM.
- HP-UX dari Hewlett-Packard.
- Solaris dari Sun Microsystems.
Linux relatif merupakan anggota baru dari keluarga ini. Linux awalnya ditulis oleh Linus Torvalds pada tahun 1991 untuk komputer pribadi yang kompatibel dengan IBM. Sebagai sebuah OS, GNU Linux telah mengalami kesuksesan dan popularitas besar dalam 20 tahun terakhir dengan sebagian besar server komersial sekarang menggunakan GNU Linux. Untuk menambah popularitas, pengguna akhir juga mulai menggunakan Linux akhir-akhir ini dengan sebagian besar produsen Laptop dan PC yang populer memberikan GNU Linux sebagai OS per-instal.
Bagi mereka yang masih bingung antara Linux menjadi OS atau kernel, Linux dalam arti sebenarnya seperti yang ditulis oleh Linus adalah kernel yang ditulis dengan mengacu pada buku tentang internal Unix (Meskipun kernel Linux telah mengadopsi fitur yang baik dari banyak Unix lain seperti kernel juga) sedangkan distribusi yang tersedia secara komersial yang berisi utilitas seperti desktop grafis, editor teks, kompiler dll di atas kernel Linux adalah sistem operasi yang lengkap.
Meskipun Kernel Linux meminjam sebagian besar fiturnya dari kernel Unix/Unix-Like tetapi masih ada banyak poin di mana kedua jenis kernel tersebut berbeda secara signifikan. Dalam artikel ini, fokus utamanya adalah pada perbedaan-perbedaan ini. Daftar ini tidak lengkap tetapi berisi perbedaan utama.
1. Pendekatan Monolitik Vs Mikro-kernel
Kernel monolitik adalah kernel di mana semua kode kernel berjalan sebagai satu proses sedangkan kernel Micro-kernel adalah kernel di mana inti dari kernel (yang mengontrol bagian-bagian berbeda dari OS) berjalan dalam satu proses sementara layanan lain seperti driver perangkat dll berjalan sebagai berbeda proses. Linux mengikuti pendekatan monolitik sementara ada beberapa pengecualian di kernel Unix-Like yang mengikuti pendekatan Micro-kernel.
2. Menambahkan/Menghapus fitur ke kernel
Sementara sistem tradisional mirip Unix/Unix memerlukan penautan statis dari modul baru yang ditambahkan, Linux mendukung fitur canggih di mana komponen kernel seperti driver perangkat dll dapat dimuat dan dibongkar secara dinamis. Fitur ini dikenal sebagai Loadable kernel modules (LKM). Setiap komponen baru dapat ditambahkan/dihapus sebagai LKM ke kernel. Ini berarti tidak perlu mengkompilasi seluruh kernel lagi. Juga, jika suatu komponen tidak diperlukan, dapat dengan mudah dibongkar. Fitur ini membuat kernel Linux sangat fleksibel.
3. Threading Kernel
Banyak kernel Unix-Like diatur sebagai satu set utas kernel. Utas kernel dapat dianggap sebagai aliran eksekusi independen. Utas kernel dapat menjalankan proses pengguna atau beberapa kode kernel. Ide dasarnya adalah melakukan sakelar konteks di antara utas kernel yang lebih murah daripada sakelar konteks di antara proses karena utas beroperasi di ruang alamat yang sama. Sementara banyak OS Unix-Like menggunakan utas kernel untuk pengalihan konteks proses, Linux menggunakan utas kernel hanya untuk mengeksekusi beberapa kode kernel secara berkala.
4. Dukungan aplikasi multi-utas
Hampir semua OS modern, baik itu distribusi Unix-Like atau Linux, mendukung multi-threading. Aplikasi multi-utas adalah aplikasi yang membuat lebih dari satu alur eksekusi. Alur eksekusi independen ini dikenal sebagai utas. Thread adalah proses yang ringan. Di sebagian besar sistem Unix-Like, proses ringan didasarkan pada utas kernel sementara di Linux LWP ini dibuat oleh panggilan ke fungsi clone() yang memungkinkan aplikasi untuk membuat proses terpisah seperti fork() tetapi perbedaannya adalah bahwa dengan clone() proses yang baru dibuat dapat berbagi memori fisiknya, file yang dibuka, ruang alamat, dll. Karena proses yang baru dibuat ini bekerja di lingkungan bersama, maka mereka diberi nama 'utas' yang berbeda. Jadi kami melihat bahwa Linux dan Unix/Unix-Like berbeda dalam cara menangani lingkungan multi-utas secara internal.
5. STREAM
Subsistem I/O Streams disertakan di sebagian besar kernel Unix dan telah menjadi antarmuka pilihan untuk menulis driver perangkat, driver terminal, dll. Sementara di sisi lain, Streams di Linux tidak ada.
6. Kernel Preemptive Vs Non-Preemptive
Kernel preemptive adalah kernel yang dapat mendahului proses yang sedang dijalankan. Ini berarti bahwa proses yang sedang dieksekusi dapat dihentikan secara paksa jika proses dengan prioritas lebih tinggi siap untuk dieksekusi. Di sisi lain, kernel Non preemptive adalah kernel di mana proses yang sedang berjalan tidak dapat dihentikan secara paksa bahkan jika proses dengan prioritas lebih tinggi siap untuk dieksekusi. Biasanya, OS Linux adalah Non preemptive sementara beberapa sistem Unix seperti Solaris 2.x dll sepenuhnya preemptive. Biasanya Real time OS memiliki kernel yang sepenuhnya preemptive. Saat ini kami memiliki Linux Real time OS yang memiliki kernel preemptive penuh.
Jadi kita melihat bahwa meskipun Linux lahir dari ide dasar dari Unix tetapi masih berbeda dari kernel Unix/Unix-Like dalam banyak hal. Terlepas dari perbedaan ini, Linux masih mewarisi banyak dari Unix dan masih dianggap sebagai anggota keluarga kernel Unix.