Pada bagian ini, dijabarkan pengelompokan kernel freeBSD dalam dua hal..
• Sebagai bodi statis software, dikategorikan dengan fungsi dalam module-module yang membentuk kernel. |
Bagian terbesar dari kernel adalah mewujudkan service sistem dimana aplikasi mengakses melalui apa yang dinamakan “system calls”. Dalam operating sistem FreeBSD, software ini disatukan menurut:
• Fasilitas dasar kernel: penanganan waktu dan jam sistem, manajemen descriptor, dan manajemen proses.
• Support untuk pengaturan memory: paging & swapping.
• Interface Sistem Generic: pengaturan I/O [ input/output ], dan operasi multiplexing pada descriptor-descriptor.
• Filesystem: files, directories, pathname translation, file locking, and I/O buffer management
• Terminal-handling support: the pseudo-terminal interface dan terminal line disciplines
• Fasilitas komunikasi antar proses: sockets
• Support untuk komunikasi jaringan: protokol-protokol komunikasi dan fasilitas jaringan seperti: routing.
Hampir semua software pd kategori ini adalah program machine-independent dan bisa disesuaikan pd arsitektur hardware yang berbeda.
Apsek-aspek machine-dependent dari kernel dipisahkan dari alur code utama. Pada dasarnya, tidak ada code dalam program machine-independent yang mengandung code yang memuat kondisi untuk arsitek tertentu. Pada saat untuk arsitektur [architecture-dependent] dibutuhkanm maka code dalam program “machine-independent “ akan memnggil fungsi architecture-dependent yang berlokasi dalam program “machine-dependent “. Software didalam program “machine-dependent “ :
• Start-up awal pada level hardware.
• Penanganan Trapping dan Faulting
• Manipulasi tingkat bawah [ h/w] untuk waktu operasional dari suatu proses.
• Konfigurasi dan pPengaturan awal dari perangkat-perangkat keras.
• Support pengaturan waktu untuk perangkat Input/Output.
Tabel 2.1 adalah ringkasan program machine-independent yang diterapkan pada kernel FreeBSD. Nilai pada kolom 2 adalah baris-baris Bahasa C source code, file-file header, dan Bahasa Mesin. Secara virtual semua program dalam kernel ditulis dalam bahasa C hanya sekitar 6% ditulis dalam bahasa mesin.
Tabel 2.2. Program Machine-dependent untuk PC dalam kernel. | ||
Category | Lines of Code | Percentage of Kernel |
machine dependent headers | 16,115 | 2.0% |
ISA bus | 50,882 | 6.4% |
PCI bus | 2,266 | 0.3% |
virtual memory | 3,118 | 0.4% |
other machine dependent | 26,708 | 3.3% |
routines in assembly language | 4,400 | 0.6% |
Linux compatibility | 4,857 | 0.6% |
Total machine dependent | 108,346 | 13.6% |
Key: ISA—Industry Standard Architecture; PCI—Peripheral Component Interconnect. | ||
Hanya sebagian kecil dari kernel diambil pengawalan sistem. Kode ini digunakan pada saat sistem melakukan “Bootstrapping” ke dalam operasional dan bertugas untuk menyusun lingkungan kernel hardware maupun software (pada Chapter 14). Beberapa sistem operasi (terutama yang dengan fisikal memori yang terbatas) mengabaikan atau menggantungkan program yang bertugas menjalankan fungsi-fungsi tersebut stelah program tersebut dijalankan. Kernel FreeBSD tidak mengambil kembali memori yang digunakan pada saat ‘startup' karena persentasi pemakaiannya hanya sedikit sekali sekitar 0.2 % dari sumber kernel yang terpakai. Proses kode startup tidak tampak pada satu tempat – tersebar secara menyeluruh.
Tidak ada komentar:
Posting Komentar