Prinsip Rancangan Linux

Dalam rancangan keseluruhan, Linux menyerupai implementasi UNIX non-microkernel yang lain. Ia adalah sistem yang multi-user, multi-tasking dengan alat-alat UNIX-compatible yang lengkap. Sistem berkas Linux mengikuti semantik tradisional UNIX, dan model jaringan standar UNIX diimplementasikan secara keseluruhan. Ciri internal desain Linux telah dipengaruhi oleh sejarah perkembangan sistem operasi ini.
Walau pun Linux dapat berjalan pada berbagai macam platform, pada awalnya dia dikembangkan secara eksklusif pada arsitektur PC. Sebagian besar dari pengembangan awal tersebut dilakukan oleh peminat individual, bukan oleh fasilitas riset yang berdana besar, sehingga dari awal Linux berusaha untuk memasukkan fungsionalitas sebanyak mungkin dengan dana yang sangat terbatas.

Prinsip Desain Linux
Akibat semakin berkembangnya teknologi PC, kernel Linux juga semakin lengkap dalam mengimplementasikan fungsi UNIX. Cepat dan efisien merupakan tujuan desain yang penting, tetapi akhir-akhir ini konsentrasi perkembangan Linux lebih pada tujuan desain yang ketiga yaitu standarisasi. Standar POSIX terdiri dari kumpulan spesifikasi dari aspek berbeda kelakuan sistem operasi. Ada dokumen POSIX untuk fungsi sistem operasi biasa dan untuk ekstensi seperti proses untuk thread dan operasi real-time. Linux di desain supaya sesuai dengan dokumen POSIX yang relevan; sedikitnya ada dua distribusi Linux yang sudah memperoleh sertifikasi ofisial POSIX.
Karena Linux memberikan interface standar ke programmer dan pengguna, Linux tidak membuat banyak kejutan kepada siapa pun yang sudah terbiasa dengan UNIX. Namun interface pemrograman Linux merujuk pada semantik SVR4 UNIX daripada kelakuan BSD. Kumpulan perpustakaan yang berbeda tersedia untuk mengimplementasi semantik BSD di tempat dimana kedua kelakuan sangat berbeda.
Ada banyak standar lain di dunia UNIX, tetapi sertifikasi penuh Linux terhadap standar lain UNIX terkadang menjadi lambat karena lebih sering tersedia dengan harga tertentu (tidak secara bebas), dan ada harga yang harus dibayar jika melibatkan sertifikasi persetujuan atau kecocokan sebuah system operasi terhadap kebanyakan standar. Mendukung aplikasi yang luas penting untuk semua sistem operasi sehingga implementasi dari standar merupakan tujuan utama pengembangan Linux walau pun implementasinya tidak sah secara formal. Selain standar POSIX, Linux saat ini mendukung ekstensi thread POSIX dan subset dari ekstensi untuk kontrol proses real-time POSIX.
Komponen Sistem Linux
Sistem Linux terdiri dari tiga bagian kode penting:
1.    Kernel: Bertanggung jawab memelihara semua abstraksi penting dari sistem operasi, termasuk hal seperti proses-proses dan memori virtual.
2.    Perpustakaan system (system Library): menentukan kumpulan fungsi standar dimana aplikasi dapat berinteraksi dengan kernel, dan mengimplementasi hampir semua fungsi sistem operasi yang tidak memerlukan hak penuh atas kernel.
3.    Utilitas Sistem (System Utility): adalah program yang melakukan pekerjaan manajemen secara individu dan khusus.

Kernel
v  Sistem operasi modern lain mengadopsi arsitektur message-passing bagi kernel internal mereka, Linux memakai model historis UNIX, dimana kernel diciptakan sebagai biner yang tunggal dan monolitis. Alasan utamanya adalah untuk meningkatkan performa.
v  Karena semua struktur data dan kode kernel disimpan dalam satu address space, alih konteks tidak diperlukan ketika sebuah proses memanggil sebuah fungsi sistem operasi atau ketika interupsi perangkat keras dikirim. Tidak hanya scheduling inti dan kode memori virtual menempati address space ini, semua kode kernel, termasuk semua device drivers, sistem berkas, dan kode jaringan, hadir dalam satu address space yang sama.
v  Kernel Linux membentuk inti dari sistem operasi Linux, yang menyediakan semua fungsi yang diperlukan untuk menjalankan proses, dan menyediakan servis sistem untuk memberikan pengaturan dan proteksi akses ke sumber daya (resource) perangkat keras.
v  Kernel mengimplementasi semua fitur yang diperlukan supaya dapat bekerja sebagai sistem operasi. Namun, jika sendiri, sistem operasi yang disediakan oleh kernel Linux sama sekali tidak mirip dengan sistem UNIX.
v  Kernel Linux tidak memiliki banyak fitur ekstra UNIX, dan fitur yang disediakan tidak selalu dalam format yang diharapkan oleh aplikasi UNIX.
v  Interface dari sistem operasi yang terlihat oleh aplikasi yang sedang berjalan tidak dipelihara secara langsung oleh kernel. Melainkan, aplikasi membuat panggilan (calls) ke library sistem, yang kemudian memanggil servis sistem operasi yang dibutuhkan.
v  Kernel Linux terdiri dari beberapa bagian penting, seperti:
v  manajemen proses,
v  manajemen memori,
v  hardware device drivers,
v  filesystem drivers,
v  manajemen jaringan dan lain-lain.
Namun bagian yang terpenting ialah manajemen proses dan manajemen memori.  
§  Manajemen memori menangani daerah pemakaian memori, daerah swap, bagian-bagian kernel dan untuk buffer cache.
§  Manajemen proses menangani pembuatan proses-proses dan penjadwalan proses. Pada bagian dasar kernel berisi hardware device drivers untuk setiap jenis hardware yang didukung.
Selain mengatur penggunaan memori, piranti masukan keluaran (perangkat I/O), proses-proses, pemakaian file pada file system dan lain-lain, kernel juga menyediakan sekumpulan layanan yang digunakan untuk mengakses kernel yang disebut “system call”.  System call ini digunakan untuk mengimplementasikan berbagai layanan yang dibutuhkan oleh sistem operasi.

Perpustakaan Sistem (System Library)
v  Perpustakaan sistem (termasuk sekumpulan layanan yang dimiliki kernel) menyediakan banyak tipe fungsi. Pada level yang paling mudah, mereka membolehkan aplikasi melakukan permintaan pada servis sistem kernel.
v  Library system membuat sebuah panggilan sistem (system calls), melibatkan transfer kontrol dari mode user yang tidak penting ke mode kernel yang penting, detil dari transfer ini berbeda pada masing-masing arsitektur.
v  library bertugas untuk mengumpulkan argumen system-call dan jika perlu mengatur argumen tersebut dalam bentuk khusus yang diperlukan untuk melakukan system call.
v  Semua fungsi yang diperlukan untuk mendukung jalannya aplikasi UNIX atau POSIX diimplementasikan dalam perpustakaan sistem.
v  Sistem Library dan semua program-program lainnya yang berjalan di atas kernel disebut “user mode”.
v  Perbedaan mendasar antara perpustakaan sistem dan program aplikasi adalah perpustakaan sistem dibutuhkan agar suatu sistem operasi dapat berjalan sedangkan program aplikasi adalah program yang dibutuhkan untuk menjalankan suatu aplikasi tertentu. Contoh : daemon merupakan system library dan pengolah kata (word processor) merupakan program aplikasi.

Utilitas Sistem
Sistem linux mengandung banyak program-program user-mode:
v  utilitas sistem dan
v  utilitas user.
Utilitas sistem termasuk semua program yang diperlukan untuk meng-inisialisasi sistem, seperti program untuk konfigurasi alat jaringan (network device) atau untuk load modul kernel. Program server yang berjalan secara kontinu juga termasuk sebagai utilitas sistem, program semacam ini mengatur permintaan user login, koneksi jaringan yang masuk, dan antrian printer.
Tidak semua utilitas standar melakukan fungsi administrasi sistem yang penting. Lingkungan pengguna UNIX mengandung utilitas standar dalam jumlah besar untuk melakukan pekerjaan sehari-hari, seperti membuat daftar direktori, memindahkan dan menghapus file, atau menunjukkan isi dari sebuah file.

Utilitas yang lebih kompleks dapat melakukan fungsi text-processing, seperti menyusun data tekstual atau melakukan pattern-searches pada input teks. Jika digabung, utilitas-utilitas tersebut membentuk toolset standar yang diharapkan oleh user pada sistem UNIX mana saja, walau pun tidak melakukan fungsi sistem operasi apapun, utilitas tetap merupakan bagian penting dari sistem Linux dasar.

0 komentar:

Posting Komentar

 

Serba Ada Blog Copyright © 2011-2012 | Powered by Blogger