Seperti halnya semua sistem operasi pada umumnya Linux memiliki konsep sama dalam hal
arsitektur. Perbedaanya adalah bentuk disetiap komponen pada arsitektur tersebut. Komponen pada
arsitektur sistem operasi Linux adalah sebagai berikut :
1. Kernel
Kernel adalah bagian terpenting dari sebuah sistem operasi. Pada sistem operasi kernel
berfungsi untuk mengendalikan semua perangkat keras yang ada di PC seperti CPU(Central
Processing Unit), Graphic Cards, Sound Card, Perangkat USB, Harddisk, dll. Selain itu juga kernel
berfungsi untuk menjembatani antara applikasi yang berjalan dengan perangkat keras yang diakses
oleh applikasi tersebut. Sebagai contoh applikasi text editor (vi,notepad,emacs)
membutuhkanresources layar monitor sebagai tampilan bagi penggunanya, dalam kasus ini maka
applikasi tersebut akan dihubungkan oleh kernel melalui device driver VGA Card untuk
mengeluarkan data menuju layar monitor. Selain dari applikasi kernel juga menjembatai perintah
yang ditulis oleh pengguna melalui shell atau GUI. Kernel Linux merupakan turunan dari Unix
BSD dan SYSV, dan model dari kernel Linux mengacu pada spesifikasi POSIX(Portable Operating
System IX).
Sistem kerja dari kernel adalah ketika PC melakukan booting pertama kali maka file biner
dari kernel akan dipindah menuju memory dan akan mejalankan semua fungsi manajemen resources
pada PC tersebut. Setiap PC memiliki jenis perangkat keras yang berbeda-beda, sehingga kernel
akan menginisialisasi perangkat tersebut dengan module device driver yang berbeda. File biner
kernel linux dapat dilihat pada direktori “/boot/vmlinuz” sedangkan source kode dapat dilihat di
“/usr/src/linux”. Untuk lebih detail mengenai perkembangan generasi kernel dapat dilihat pada
situs http://www.kernel.org/.
2. Shells/GUI
Shell merupakan antarmuka linux kernel dengan penggunanya. Di dalam shell pengguna
dapat menuliskan perintah yang kemudian akan dieksekusi langsung oleh kernel. Perintah-perintah
yang dapat dituliskan merupakan perintah yang berhunbungan dengan pengelolaan sistem operasi,
misalnya melihat isi file yang tersimpan dalam sebuah direktori,membuat file baru, atau melihat isi
dari sebuah file. Selain operasi file shell juga dapat digunakan untuk operasi I/O atau operasi
penanganan pengguna. Pada sistem operasi linux ada dua jenis shell atau penghubung antara
pengguna dengan sistem operasi yang pertama adalah text-based shell dan yang kedua adalah
GUI(Graphic User Interface). Beda dari keduanya adalah cara penyajiannya kepada pengguna,
jenis text-based adalah antarmuka paling sederhana dimana pengguna hanya dapat berinteraksi
melalui keyboard saja, sedangkan GUI memungkinkan pengguna berinteraksi dengan system
operasi melalui keyboard saja,mouse dan perangkat lainnya dapat digunakan.selain itu tampilan
pada GUI sudah lebih modern yaitu berbasiskan tampilan grafis.
3. Utilitas sistem.
Setiap sistem operasi pada dasarnya mengacu pada sebuah spesifikasi tertentu seperti halnya
Unix pada POSIX.2 dimana pada spesifikasi ini dijelaskan konsep implementasi utilitas sistem
untuk membantu pengguna berinteraksi dengan sistem operasi. Utilitas sistem dalam sebuah sistem
operasi berfungsi sebagai pengaturan sumber daya yang sudah diinisialisasi oleh sistem operasi
pada saat proses booting awal dilakukan. Fungsi monitoring, fungsi pengaktifan dan penon-aktifan
sebuah service dalam sistem operasi merupakan pekerjaan yang dapat dilakukan dengan
menggunakan utilitas sistem yang ada dalam sebuah sistem operasi seperti Linux. Beberapa contoh
utilitas sistem dalam Linux adalah ls, man, fdisk, grep, awk, sed, cp, mv, more, dan lain sebagainya.
Seperti halnya dalam sistem operasi Windows beberapa utilitas misalnya control panel, dir, cd, dan
lain-lain.
Selain itu juga utilitas sistem juga termasuk program yang bersifat server, dimana program
ini akan berjalan secara background (tidak tampak), seperti misalnya utilitas untuk menangani
koneksi dari jarak jauh dengan telnet atau ssh, kedua layanan ini merupakan utilitas sistem yang
bersifat server dan dijalankan secara background. contoh lain dari server program dalam Linux
adalah lpd untuk mengangani proses printer, httpd sebagai web server, crond untuk menjalankan
tugas administratif sistem operasi secara reguler. Utilitas sistem yang bersifat server dan dijalankan
secara backgroung dalam Linux disebut DAEMON(Disk And Execution MONitor). daemon
diaktifkan pada saat proses booting sistem operasi, dan akan berjalan secara terus menerus. Program
ini akan memantau event yang terjadi dan apabila sesusai dengan yang dikehendaki maka daemon
akan menjalankan sesuatu. Sebagai contoh program daemon telnet server. Daemon ini akan
melakukan pemantauan pada semua koneksi yang datang dari luar PC melalui jaringan pada nomer
port 23. jika ada koneksi dari luar yang menghubungi nomer tersebut maka telnet server akan
menerima koneksi tersebut dan melayani proses yang akan dilakukan.
4. Applikasi
Applikasi merupakan level tertinggi pada sistem operasi. Dimana pada applikasi ini
pengguna sistem operasi dapat menggunakan applikasi berdasarkan kebutuhannya. Misalnya
applikasi untuk menulis, pada sistem operasi Linux dapat dilakukan dengan menggunakan bantuan
applikasi Open Office, sedangkan untuk melakukan editing gambar dapat menggunakan GIMP.
Karena applikasi merupakan level tertinggi dari sebuah sistem operasi maka setiap applikasi
dibentuk dengan cara berbeda untuk masing-masing sistem operasi dan hanya bisa berjalan pada
sistem operasi tempat dimana applikasi tersebut dibangun. Misalnya MS Office tidak dapat berjalan
pada sistem operasi Linux, kecuali pembangun MS Office mengeluarkan distribusi paket MS Office
for Linux.
Distribusi Linux yang beredar saat ini, selain kernel juga menyertakan paket-paket applikasi
yang dapat dimanfaatkan oleh pengguna, namun tidak semua applikasi disertakan, tergantung sifat
dari applikasi tersebut komersial atau open source.sementara ini yang bersifat open source saja yang
disertakan.contoh applikasi open source GCC,G++,Xfix,Latex,dll.
Operating system dapat didefinisikan sebagai perangkat lunak (software) yang mengendalikan
sumber daya perangkat keras (hardware) dan menyediakan tempat dimana program aplikasi dapat
dijalankan. Secara umum, kita menyebut software tersebut (operating system) sebagai kernel (inti).
Gambar di bawah ini memperlihatkan diagram dari system arsitektur UNIX.
Alat yang menghubungkan (interface) ke kernel, kita sebut dengan system call, library yang
berfungsi secara umum dibangun di atas interface system call. Tetapi program aplikasi bebas
menggunakan keduanya (system call dan kernel). Shell adalah suatu aplikasi khusus yang
menyediakan alat penghubung (interface), untuk menjalankan aplikasi yang lain.
Didalam pengertian yang lebih luas, operating system adalah kernel itu sendiri dan semua sofftware
yang lain digunakan sesuai kepentingan user (pengguna komputer). Software tersebut antara lain :
sistem utiliti, applikasi, shell, library yang berfungsi secara umum, dan seterusnya.
Sebagai contoh, linux adalah kernel yang digunakan oleh sistem operasi di bawah lisensi GNU.
Beberapa orang mereferensikan sistem operasi ini dengan GNU/Linux operating system, tetapi yang
lainnya hanya menyebut linux saja. Walaupun hal itu dapat dikatakan tidak benar, tetapi dapat
dimengerti, hanya karena berbeda dua ungkapan, tetapi maksudnya sama.
Kernel Linux
Merupakan inti dari sistem operasi linux yang mengatur penggunaan memori linux, piranti
masukan, keluaran, proses-proses, pemakaian file pada file system dll. Kernel juga menyediakan
sekumpulan layanan yang di gunakan untuk mengakses kernel yang di sebut dengan System Call.
System Call di gunakan untuk mengimplementasikan berbagai layanan yang di butuhkan oleh
sistem operasi.
Kernel Linux terdiri atas proses ,managemen memory, hardware device driver , file system driver,
Manajemen jaringan dll.
Program System
Program Aplikasi
a. FIFO (First In First Out) atau FCFS (First Come First Serve)
a. RR (Round Robin)
c. PS (Priority Schedulling)
d. GS (Guaranteed Schedulling)
Klasifikasi lain selain berdasarkan dapat/tidaknya suatu proses diambil secara paksa adalah
klasifikasi berdasarkan adanya prioritas di proses-proses, yaitu :
a. Berprioritas static
b. Berprioritas dinamis
Algoritma Nonpreemptive
First In First Out (FIFO) merupakan penjadwalan tidak berprioritas. FIFO adalah penjadwalan
paling sederhana, yaitu proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan.
Pada saat proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai.
• Adil, dalam arti resmi (proses yang datang duluan akan dilayani lebih dulu), tapi dinyatakan tidak
adil karena job-job yang perlu waktu lama membuat job-job pendek menunggu. Job-job yang tidak
penting dapat membuat job-job penting menunggu lama.
• Waktu tanggap sangat jelek, tidak cocok untuk sistem interaktif apalagi untuk sistem waktu nyata.
• Throughtput kurang baik. FIFO jarang digunakan secara mandiri, tetapi dikombinasikan dengan
skema lain.
• Baik untuk sistem batch yang sangat jarang berinteraksi dengan pemakai.
• Sangat tidak baik (tidak berguna) untuk sistem interaktif, karena tidak memberi waktu tanggap
yang baik.
Penjadwalan ini mengasumsikan waktu berjalannya proses sampai selesai telah diketahui
sebelumnya. Mekanismenya adalah menjadwalkan proses dengan waktu jalan terpendek lebih dulu
sampai selesai, sehingga memberikan efisiensi yang tinggi dan turn around time rendah dan
penjadwalannya tak berprioritas.
Contoh :
Terdapat empat proses (job) yaitu A,B,C,D dengan waktu jalannya masing-masing adalah 8,4,4 dan
4 menit. Apabila proses-proses tersebut dijalankan, maka turn around time untuk A adalah 8 menit,
untuk B adalah 12, untuk C adalah 16 dan untuk D adalah 20. Apabila keempat proses tersebut
menggunakan penjadwalan shortest job fisrt, maka turn around time untuk B adalah 4, untuk C
adalah 8, untuk D adalah 12 dan untuk A adalah 20.
Karena SJF selalu memperhatikan rata-rata waktu respon terkecil, maka sangat baik untuk proses
interaktif. Umumnya proses interaktif memiliki pola, yaitu menunggu perintah, menjalankan
perintah, menunggu perintah dan menjalankan perintah, begitu seterusnya. Masalah yang muncul
adalah tidak mengetahui ukuran job saat job masuk. Untuk mengetahui ukuran job adalah dengan
membuat estimasi berdasarkan kelakukan sebelumnya. Prosesnya tidak datang bersamaan, sehingga
penetapannya harus dinamis. Penjadwalan ini jarang digunakan karena merupakan kajian teoritis
untuk pembandingan turn around time.
Highest Ratio Next merupakan strategi penjadwalan dengan prioritas proses tidak hanya
berdasarkan fungsi waktu layanan tetapi juga jumlah waktu tunggu proses. Begitu proses mendapat
jatah pemroses, proses berjalan sampai selesai.
Prioritas dinamis HRN dihitung berdasarkan rumus : Prioritas = (waktu tunggu + waktu layanan ) /
waktu layanan Karena waktu layanan muncul sebagai pembagi, maka job lebih pendek berprioritas
lebih baik, karena waktu tunggu sebagai pembilang maka proses yang telah menunggu lebih lama
juga mempunyai kesempatan lebih bagus. Disebut HRN, karena waktu tunggu ditambah waktu
layanan adalah waktu tanggap, yang berarti waktu tanggap tertinggi yang harus dilayani.
• Jika proses menggunakan seluruh kwanta yang dialokasikan, maka diturunkan kelas prioritasnya.
• Proses yang masuk untuk pertama kali ke sistem langsung diberi kelas tertinggi.
Mekanisme ini mencegah proses yang perlu berjalan lama swapping berkali-kali dan mencegah
proses-proses interaktif yang singkat harus menunggu lama.
Algoritma Preemptive
Penjadwalan yang paling tua, sederhana, adil, banyak digunakan algoritmanya dan mudah
diimplementasikan.
Penjadwalan ini bukan dipreempt oleh proses lain tetapi oleh penjadwal berdasarkan lama waktu
berjalannya proses (preempt by time).
Penjadwalan tanpa prioritas.
Berasumsi bahwa semua proses memiliki kepentingan yang sama, sehingga tidak ada prioritas
tertentu. Semua proses dianggap penting sehingga diberi sejumlah waktu oleh pemroses yang
disebut kwanta (quantum) atau time slice dimana proses itu berjalan.Jika proses masih running
sampai akhir quantum, maka CPU akan mempreempt proses itu dan memberikannya ke proses lain.
Penjadwal membutuhkannya dengan memelihara daftar proses dari runnable. Ketika quantum habis
untuk satu proses tertentu, maka proses tersebut akan diletakkan diakhir daftar (list).
Merupakan :
• Penjadwalan berprioritas.dinamis.
• Melengkapi SJF
Pada SRF, proses dengan sisa waktu jalan diestimasi terendah dijalankan, termasuk proses-proses
yang barutiba.Pada SJF, begitu proses dieksekusi, proses dijalankan sampai selesai.Pada SRF,
proses yang sedang berjalan (running) dapat diambil alihproses baru dengan sisa waktu jalan yang
diestimasi lebih rendah.
Kelemahan :
• Mempunyai overhead lebih besar dibanding SJF. SRF perlu penyimpanan waktu layanan yang
telah dihabiskan job dan kadang-kadang harus menangani peralihan.
• Job-job lebih lama berarti dengan lama dan variasi waktu tunggu lebih lama dibanding pada SJF.
SRF perlu menyimpan waktu layanan yang telah dihabiskan , menambah overhead. Secara teoritis,
SRF memberi waktu tunggu minimum tetapi karena overhead peralihan, maka pada situasi tertentu
SFJ bisa memberi kinerja lebih baik dibanding SRF.
Setiap proses diberi prioritas dan proses yang berprioritas tertinggi mendapat jatah waktu lebih dulu
(running). Diasumsikan bahwa masing-masing proses memiliki prioritas tertentu, sehingga akan
dilaksanakan berdasar prioritas yang dimilikinya. Ilustrasi yang dapat memperjelas prioritas
tersebut adalah dalam komputer militer, dimana proses dari jendral berprioritas 100, proses dari
kolonel 90, mayor berprioritas 80, kapten berprioritas 70, letnan berprioritas 60 dan seterusnya.
Dalam UNIX perintah untuk mengubah prioritas menggunakan perintah nice. Pemberian prioritas
diberikan secara:
Keunggulan :
• Mudah diimplementasikan.
Kelemahan :
• Tidak tanggap terhadap perubahan lingkungan yang mungkin menghendaki penyesuaian prioritas.
Kelemahan :
Implementasi mekanisme prioritas dinamis lebih kompleks dan mempunyai overhead lebih besar.
Overhead ini diimbangi dengan peningkatan daya tanggap sistem.
Proses-proses yang sangat banyak operasi I/O-nya, kalau harus menunggu lama untuk memakai
pemroses (karena prioritas rendah) hanya akan membebani memori, karena harus disimpan tanpa
perlu proses-proses itu dimemori karena tidak selesai-selesai menunggu operasi masukan dan
menunggu jatah pemroses.
Penjadwalan ini memberikan janji yang realistis (memberi daya pemroses yang sama) untuk
membuat dan menyesuaikan performance adalah jika ada N pemakai, sehingga setiap proses
(pemakai) akan mendapatkan 1/N dari daya pemroses CPU. Untuk mewujudkannya, sistem harus
selalu menyimpan informasi tentang jumlah waktu CPU untuk semua proses sejak login dan juga
berapa lama pemakai sedang login. Kemudian jumlah waktu CPU, yaitu waktu mulai login dibagi
dengan n, sehingga lebih mudah menghitung rasio waktu CPU. Karena jumlah waktu pemroses tiap
pemakai dapat diketahui, maka dapat dihitung rasio antara waktu pemroses yang sesungguhnya
harus diperoleh, yaitu 1/N waktu pemroses seluruhnya dan waktu pemroses yang telah
diperuntukkan proses itu. Rasio 0,5 berarti sebuah proses hanya punya 0,5 dari apa yang waktu
CPU miliki dan rasio 2,0 berarti sebuah proses hanya punya 2,0 dari apa yang waktu CPU miliki.
Algoritma akan menjalankan proses dengan rasio paling rendah hingga naik ketingkat lebih tinggi
diatas pesaing terdekatnya. Ide sederhana ini dapat diimplementasikan ke sistem real-time dan
memiliki penjadwalan berprioritas dinamis.
Memori fisik dan memori virtual dibagi menjadi bagian-bagian yang disebut page. Page ini
memiliki ukuran yang sama besar. Tiap page ini punya nomor yang unik, yaitu Page Frame Number
(PFN). Untuk setiap instruksi dalam program, CPU melakukan mapping dari alamat virtual ke
memori fisik yang sebenarnya.
Penerjemahan alamat di antara virtual dan memori fisik dilakukan oleh CPU menggunakan
tabel page untuk proses x dan proses y. Ini menunjukkan virtial PFN 0 dari proses x dimap ke
memori fisik PFN 1. Setiap anggota tabel page mengandung informasi berikut ini:
1. Virtual PFN
2. PFN fisik
3. informasi akses page dari page tersebut
Untuk menerjemahkan alamat virtual ke alamat fisik, pertama-tama CPU harus menangani alamat
virtual PFN dan offsetnya di virtual page. CPU mencari tabel page proses dan mancari anggota
yang sesuai degan virtual PFN. Ini memberikan PFN fisik yang dicari. CPU kemudian mengambil
PFN fisik dan mengalikannya dengan besar page untuk mendapat alamat basis page tersebut di
dalam memori fisik. Terakhir, CPU menambahkan offset ke instruksi atau data yang dibutuhkan.
Dengan cara ini, memori virtual dapat dimap ke page fisik dengan urutan yang teracak.
Demand Paging
Cara untuk menghemat memori fisik adalah dengan hanya meload page virtual yang sedang
digunakan oleh program yang sedang dieksekusi. Tehnik dimana hanya meload page virtual ke
memori hanya ketika program dijalankan disebut demand paging.
Ketika proses mencoba mengakses alamat virtual yang tidak ada di dalam memori, CPU tidak dapat
menemukan anggota tabel page. Contohnya, dalam gambar, tidak ada anggota tabel page untuk
proses x untuk virtual PFN 2 dan jika proses x ingin membaca alamat dari virtual PFN 2, CPU tidak
dapat menterjemahkan alamat ke alamat fisik. Saat ini CPU bergantung pada sistem operasi untuk
menangani masalah ini. CPU menginformasikan kepada sistem operasi bahwa page fault telah
terjadi, dan sistem operasi membuat proses menunggu selama sistem operasi menagani masalah ini.
CPU harus membawa page yang benar ke memori dari image di disk. Akses disk membutuhkan
waktu yang sangat lama dan proses harus menunggu sampai page selesai diambil. Jika ada proses
lain yang dapat dijalankan, maka sistem operai akan memilihnya untuk kemudian
dijalankan. Page yang diambil kemudian dituliskan di dalam page fisik yang masih kosong dan
anggota dari virtual PFN ditambahkan dalam tabel page proses. Proses kemudian dimulai lagi pada
tempat dimana page fault terjadi. Saat ini terjadi pengaksesan memori virtual, CPU membuat
penerjemahan dan kemudian proses dijalankan kembali.
Demand paging terjadi saat sistem sedang sibuk atau saat image pertama kali diload ke memori.
Mekanisme ini berarti sebuah proses dapat mengeksekusi image dimana hanya sebagian dari image
tersebut terdapat dalam memori fisik.
Swaping
Jika memori fisik tiba-tiba habis dan proses ingin memindahkan sebuah page ke memori, sistem
operasi harus memutuskan apa yang harus dilakukan. Sistem operasi harus adil dalam
mambagi page fisik dalam sistem diantara proses yang ada, bisa juga sistem operasi menghapus
satu atau lebih page dari memori untuk membuat ruang untuk page baru yang dibawa ke memori.
Cara page virtual dipilih dari memori fisik berpengaruh pada efisiensi sistem.
Linux menggunakan tehnik page aging agar adil dalam memilih page yang akan dihapus dari
sistem. Ini berarti setiap page memiliki usia sesuai dengan berapa sering page itu diakses. Semakin
sering sebuah page diakses, semakin muda page tersebut. Page yang tua adalah kandidat untuk
diswap.
Pengaksesan Memori Virtual Bersama
Memori virtual mempermudah proses untuk berbagi memori saat semua akses ke memori
menggunakan tabel page. Proses yang akan berbagi memori virtual yang sama, page fisik yang
sama direference oleh banyak proses. Tabel page untuk setiap proses mengandung
anggota page table yang mempunyai PFN fisik yang sama.
Efisiensi
Desainer dari CPU dan sistem operasi berusaha meningkatkan kinerja dari sistem. Disamping
membuat prosesor, memori semakin cepat, jalan terbaik adalah manggunakan cache. Berikut ini
adalah beberapa cache dalam managemen memori di linux:
1. Page Cache
Digunakan untuk meningkatkan akses ke image dan data dalam disk. Saat dibaca dari
disk, page dicache di page cache. Jika page ini tidak dibutuhkan lagi pada suatu saat, tetapi
dibutuhkan lagi pada saat yang lain,page ini dapat segera diambil dari page cache.
2. Buffer Cache
Page mungkin mengandung buffer data yang sedang digunakan oleh kernel, device driver
dan lain-lain. Buffer cache tampak seperti daftar buffer. Contohnya, device driver
membutuhkan buffer 256 bytes, adalah lebih cepat untuk mengambil buffer dari buffer
cache daripada mengalokasikan page fisik lalu kemudian memecahnya menjadi 256 bytes
buffer-buffer.
3. Swap Cache
Hanya page yang telah ditulis ditempatkan dalam swap file. Selama page ini tidak
mengalami perubahan setelah ditulis ke dalam swap file, maka saat berikutnya page di swap
out tidak perlu menuliskan kembali jikapage telah ada di swap file. Di sistem yang sering
mengalami swap, ini dapat menghemat akses disk yang tidak perlu.
Salah satu implementasi yang umum dari hardware cache adalah di CPU, cache dari anggota
tabel page. Dalam hal ini, CPU tidak secara langsung membaca tabel page, tetap mencache
terjemahan page yang dibutuhkan.
Load dan Eksekusi Program
1. Penempatan program dalam memori
Linux membuat tabel-tabel fungsi untuk loading program, memberikan kesempatan kepada
setiap fungsi untuk meload file yang diberikan saat sistem call exec dijalankan.
Pertama-tama file binari dari pageditempatkan pada memori virtual. Hanya pada saat
program mencoba mengakses page yang telah diberikan terjadi page fault, maka page akan
diload ke memori fisik.
2. Linking statis dan linking dinamis
a. Linking statis:
librari-librari yang digunakan oleh program ditaruh secara langsung dalam file binari
yang dapat dieksekusi. Kerugian dari linking statis adalah setiap program harus
mengandung kopi library sistem yang umum.
b. Linking dinamis:
hanya sekali meload librari sistem menuju memori. Linking dinamis lebih efisien
dalam hal memori fisik dan ruang disk.
Managemen I/O pada linux
Dalam Linux system i/o kurang lebih mirip dengan yang terdapat pada Unix. User dapat membuka
saluran akses ke perangkat sama seperti membuka file-perangkat lain yang tampak sebagai objek
dalam file sistem. Linux membagi semua perangkat i/o menjadi 3 kelas: “block devices”, “character
devices”, dan “network devices”.
“Block devices” yaitu menyimpan, menerima, dan mengirim informasi sebagai blok-blok berukuran
tetap yang berukuran 128 sampai 1024 byte dan memiliki alamat tersendiri, sehingga
memungkinkan membaca atau menulis blok-blok secara independen, yaitu dapat membaca atau
menulis sembarang blok tanpa harus melewati blok-blok lain. Contoh : disk, tape, CD ROM, optical
disk. Fungsi “block devices” sendiri didukung oleh 2 sistem component, block buffer cache dan
request manager. Block buffer cache bertugas sebagai pool dari buffer i/o aktif dan cache dari
“completed i/o”. “Request manager” adalah lapisan software yang mengelola konten read dan write
buffer dari dan menuju block-device driver.
“Character devices” yaitu perangkat yang menerima, dan mengirimkan aliran karakter tanpa
membentuk suatu struktur blok. Contoh : terminal, line printer, pita kertas, kartu-kartu berlubang,
mouse. Perangkat ini tidak memerlukan random access untuk sebuah block data. Akan tetapi, tiap
perangkat telah memiliki berbagai fungsi yang telah terdaftar pada kernel yang diimplementasikan
pada file operasi i/o.
Sedangkan “network devices” berbeda dengan block atau character devices, user harus
berkomunikasi secara tidak langsung dengan cara harus membuka sambungan dengan subsistem
jaringan kernel.