Kernel (operating system)
Kali ini saya
ingin berbagi informasi tentang jantung dari sistem operasi yang kita kenal
sebagai Kernel. Sistem operasi
baik yang digunakan dalam komputer ataupun dalam gadget yang kita pakai,
misalnya Handphone, mempunyai kernel. Dalam ilmu komputer, kernel
merupakan suatu perangkat lunak yang mengakses perangkat keras komputer atau
gadget yang kita gunakan.
Akses yang dilakukan terhadap perangkat keras terbatas, sedangkan terdapat lebih dari satu program yang harus dilayani dalam waktu yang bersamaan, maka kernel juga bertugas untuk mengatur kapan dan berapa lama suatu program dapat menggunakan perangkat keras tersebut yang disebut dengan Multiplexing. Suatu akses terhadap komputer secara langsung merupakan suatu masalah yang kompleks, oleh karena itu kernel mengimplementasikan sekumpulan abstraksi hardware yang berguna untuk menyembunyikan kompleksitas dan memungkinkan akses terhadap perangkat keras menjadi lebih mudah dan seragam, dan juga untuk memudahkan pekerjaan programmer.
Kernel sistem operasi tidak harus ada dan dibutuhkan untuk menjalankan suatu komputer. Program dapat langsung dijalankan secara langsung dalam mesin. (contohnya CMOS Setup) sehingga para pembuat program tersebut membuat program tanpa adanya dukungan dari sistem operasi atau hardware abstraction. Cara kerja seperti ini, adalah cara kerja yang digunakan pada zaman awal-awal dikembangkannya komputer (pada sekitar tahun 1950). Kerugian dari diterapkannya metode ini adalah pengguna harus melakukan reset ulang komputer tersebut dan memuatkan program lainnya untuk berpindah program, dari satu program ke program lainnya.
Kemampuan Dasar Kernel
Tujuan utama kernel adalah untuk
mengelola sumber daya komputer dan memungkinkan program lain untuk menjalankan
dan menggunakan sumber daya. Biasanya, sumber daya terdiri atas:
- Central Processing Unit. Ini adalah bagian paling sentral dari sebuah sistem komputer, yang bertanggung jawab untuk menjalankan atau mengeksekusi program-program. Kernel bertanggung jawab untuk memutuskan saat mana saja dari banyak program yang sedang berjalan yang harus dialokasikan ke prosesor atau prosesor (masing-masing yang biasanya hanya dapat menjalankan satu program pada satu waktu)
- Memori Komputer. Memori digunakan untuk menyimpan instruksi program kedua dan data. Biasanya, keduanya harus hadir dalam memori dalam rangka untuk mengeksekusi sebuah progam. Seringkali beberapa program akan menginginkan akses ke memori, sering menuntut memori lebih dari komputer telah tersedia. Kernel bertanggung jawab untuk memutuskan yang memori setiap proses dapat menggunakan, dan menentukan apa yang harus dilakukan bila memori tidak tersedia.
- Setiap Input / Output (I / O) yang ada di komputer perangkat, seperti keyboard, mouse, disk drive, printer, display, dll Kernel mengalokasikan permintaan dari aplikasi untuk melakukan I / O ke perangkat yang sesuai (atau sub-bagian dari perangkat, dalam kasus file pada disk atau jendela di layar) dan memberikan metode yang nyaman untuk menggunakan perangkat (biasanya diabstraksikan ke titik di mana aplikasi tidak perlu tahu detail implementasi perangkat). Aspek utama yang diperlukan dalam manajemen sumber daya adalah definisi dari domain eksekusi (address space) dan mekanisme perlindungan yang digunakan untuk memediasi akses ke sumber daya dalam sebuah domain. Kernel juga biasanya menyediakan metode untuk sinkronisasi dan komunikasi antar proses (disebut inter-proses komunikasi atau IPC). Kernel mungkin mengimplementasikan fitur ini sendiri, atau bergantung pada beberapa proses berjalan untuk menyediakan fasilitas untuk proses lainnya, meskipun dalam kasus ini harus menyediakan mekanisme IPC untuk memungkinkan proses untuk mengakses fasilitas yang disediakan oleh masing-masing lain. Akhirnya, kernel harus menyediakan menjalankan program dengan metode untuk membuat permintaan untuk mengakses fasilitas tersebut.
Perkembangan komputer telah
membuat para arsitek sistem operasi untuk ikut mengembangkan kernel sistem
operasi. Kernel dibagi menjadi 4 bagian yang memiliki desain berbeda, yaitu:
- Kernel monolitik. Kernel monolitik mengintegrasikan banyak fungsi di dalam kernel dan menyediakan lapisan abstraksi perangkat keras secara penuh terhadap perangkat keras yang berada di bawah sistem operasi.
- Mikrokernel. Mikrokernel menyediakan sedikit saja dari abstraksi perangkat keras dan menggunakan aplikasi yang berjalan di atasnya—yang disebut dengan server—untuk melakukan beberapa fungsionalitas lainnya.
- Kernel hibrida. Kernel hibrida adalah pendekatan desain microkernel yang dimodifikasi. Pada hybrid kernel, terdapat beberapa tambahan kode di dalam ruangan kernel untuk meningkatkan performanya.
- Exokernel. Exokernel menyediakan hardware abstraction secara minimal, sehingga program dapat mengakses hardware secara langsung. Dalam pendekatan desain exokernel, library yang dimiliki oleh sistem operasi dapat melakukan abstraksi yang mirip dengan abstraksi yang dilakukan dalam desain monolithic kernel.
Komentar
Posting Komentar