Sistem operasi modern adalah suatu sistem yang besar dan kompleks. Dan
tentu saja proses mendesain sistem operasi bukanlah pekerjaan mudah. Karena itu,
didalam desain sistem operasi digunakan suatu struktur agar sistem tersebut bisa
dipelajari dengan mudah. digunakan, dan dikembangkan ebih lanjut. Jika pada bab
sebelumnya, kita memandang sistem operasi dari luar, yaitu dengan system call yang
bisa digunakan, maka dalam bab ini kita akan melihat dari dalam, yaitu bagaimana
sistem operasi disusun. Ternyata, ada beberapa pendekatan/model yang digunakan,
seperti struktur sederhana, struktur berlapis, dan mikro kernel.
Struktur Sederhana
Pada awalnya, sistem operasi dimulai sebagai sistem yang kecil, sederhana,
dan terbatas. Lama kelamaan, sistem operasi semakin berkembang menjadi suatu
sistem yang lebih besar dari awalnya. Dalam perkembangannya, ada sistem yang
terstruktur dengan kurang baik, dan ada juga yang baik. Contoh sistem yang
terstruktur kurang baik adalah MS-DOS. Sistem operasi ini dirancang sedemikian
rupa agar mampu berjalan pada hardware yang terbatas. Memang memiliki struktur,
tapi belum terbagi-bagi dalam modul-modul, dan interface serta fungsionalitas tidak
begitu jelas batasannya.
Begitu pula dengan UNIX, yang pada awalnya juga terbatas oleh hardware
yang ada. Sistem ini dapat dibagi menjadi dua bagian, yaitu kernel dan program
sistem. Kernel sendiri dapat dibagi menjadi dua bagian, yaitu device driver dan
interface, yang kemudian terus berkembang seiring dengan perkembangan UNIX.
Berikut ini adalah skema struktur UNIX.
• Lapisan 1. Berisi berbagai sirkuit elektronik, misal register, memory cells, dan
logic gate.
• Lapisan 2. Berisi instruksi prosesor, misal instruksi aritmatika, instruksi
transfer data, dsb.
• Lapisan 3. Penambahan konsep seperti prosedur/subrutin, maupun fungsi
yang me-return nilai tertentu.
• Lapisan 4. Penambahan interrupt.
• Lapisan 5. Program sebagai sekumpulan instruksi yang dijalankan oleh
prosesor.
• Lapisan 6. Berhubungan dengan secondary storage device, yaitu
membaca/menulis head, track, dan sektor.
• Lapisan 7. Menciptakan alamat logika untuk proses. Mengatur hubungan
antara main memory, virtual memory, dan secondary memory.
• Lapisan 8. Program sebagai sekumpulan instruksi yang dijalankan oleh
prosesor.
• Lapisan 9. Berhubungan dengan secondary storage device, yaitu
membaca/menulis head,track, dan sektor.
• Lapisan 10. Menciptakan alamat logika untuk proses. Mengatur hubungan
antara main memory, virtual memory, dan secondary memory.
• Lapisan 11. Program sebagai sekumpulan instruksi yang dijalankan oleh
prosesor.
• Lapisan 12. File adalah objek yang memiliki nama dan ukuran. Abstraksi dari
lapisan 9.
• Lapisan 13. Menyediakan interface agar bisa berinteraksi dengan pengguna.
Lapisan-lapisan dari 1-4 bukanlah bagian dari sistem operasi dan masih menjadi
bagian dari prosesor secara ekslusif.
Lapisan ke-5 hingga ke-7, sistem operasi sudah berhubungan dengan prosesor.
Selanjutnya dari lapisan ke-8 hingga 13, sistem operasi berhubungan dengan media
penyimpanan maupun perlatan-peralatan lain yang ditancapkan, misalnya peralatan
jaringan.
Mikro Kernel
Pada pembahasan "Struktur Sederhana", sempat disinggung istilah "kernel".
Apakah kernel itu? Kernel adalah komponen sentral dari sistem operasi. Ia mengatur
hal-hal seperti interrupt handler(untuk menyediakan layanan interupsi), process
scheduler(membagi-bagi proses dalam prosesor), memory management, I/O, dan
sebagainya. Atau dengan kata lain, ia adalah jembatan antara hardware dengan
software.
Cara yang lebih modern, adalah dengan menggunakan kernel mikro. Pada
awalnya, konsep mikro kernel dikembangkan pada sistem operasi Mach. Ide dasar
dari pengembangan kernel mikro adalah bahwa hanya fitur-fitur yang perlu saja yang
diimplementasikan dalam kernel (mengenai fitur-fitur apa saja yang perlu
diimplementasikan, ini bisa berbeda tergantung desain sistem operasi).
Walaupun garis pembatas mengenai apa saja yang berada di dalam dan luar
kernel mikro bisa berbeda antara desain yang satu dengan yang lain, namun ada
karakteristik yang umum, yaitu servis-servis yang umumnya menjadi bagian sistem
operasi menjadi subsistem eksternal yang bisa berinteraksi satu sama lain dan dengan
kernel tentunya. Ini mencakup device driver, file system, virtual memory manager,
windowing system, dan security devices. Pendekatan kernel mikro menggantikan
pendekatan berlapis yang vertikal tradisional.