Nim : 1605551120
Mata
Kuliah : Network Operating Sistem
Dosen : I Putu Agus Eka Pratama, ST.,
MT
Teknologi
Informasi / Fakultas Teknik / Universitas Udayana
Pendahuluan
Matakuliah Network
Operating System merupakan matakuliah yang membahas kernel secara umum pada
semua OS, serta praktek sederhana mempelajari sumber kode Kernel Linux versi
awal (1991).
Kernel
Kernel merupakan
program komputer yang menjadi inti dari sebuah sistem operasi komputer, dengan
kontrol terhadap segala hal atas sistem tersebut. Pada dasarnya, kernel
merupakan salah satu dari program yang dijalankan dalam urutan pertama saat
komputer dinyalakan. Kernel menangani fungsi-fungsi selanjutnya atas proses
penyiapan komputer dari sejak komputer dinyalakan seperti menangani layanan
input/output dari program lain, menerjemahkanya ke dalam instruksi-instruksi
untuk dieksekusi oleh prosesor. Kernel juga menangani perangkat kerja lain
seperti memori, papan ketik, tetikus, monitor, printer, speaker, serta
perangkat-perangkat lainnya.
Para arsitek sistem
operasi mengembangkan kernel sistem operasi yang pada akhirnya terbagi menjadi
empat bagian yang secara desain berbeda, sebagai berikut:
1.
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.
2.
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.
3.
Kernel
hibrida. Kernel hibrida adalah pendekatan desain
microkernel yang dimodifikasi. Pada hybrid kernel, terdapat beberapa tambahan
kode di dalam ruangan kernel untuk meningkatkan performanya.
4.
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.
Kernel
monolitik
Pendekatan kernel
monolitik didefinisikan sebagai sebuah antarmuka virtual yang berada pada
tingkat tinggi di atas perangkat keras, dengan sekumpulan primitif atau system
call untuk mengimplementasikan layanan-layanan sistem operasi, seperti halnya
manajemen proses, konkurensi (concurrency), dan manajemen memori pada
modul-modul kernel yang berjalan di dalam mode supervisor. Di bawah ini ada
beberapa sistem operasi yang menggunakan Monolithic kernel:
- Kernel sistem operasi UNIX tradisional, seperti halnya kernel dari sistem operasi UNIX keluarga BSD (NetBSD, BSD/I, FreeBSD, dan lainnya).
- Kernel sistem operasi GNU/Linux, Linux.
- Kernel sistem operasi Windows (versi 1.x hingga 4.x; kecuali Windows NT).
Mikrokernel
Pendekatan mikrokernel
berisi sebuah abstraksi yang sederhana terhadap hardware, dengan sekumpulan
primitif atau system call yang dapat digunakan untuk membuat sebuah sistem
operasi agar dapat berjalan, dengan layanan-layanan seperti manajemen thread,
komunikasi antar address space, dan komunikasi antar proses. Layanan-layanan
lainnya, yang biasanya disediakan oleh kernel, seperti halnya dukungan
jaringan, pada pendekatan microkernel justru diimplementasikan di dalam ruangan
pengguna (user-space), dan disebut dengan server. Beberapa sistem operasi yang
menggunakan microkernel:
- IBM AIX, sebuah versi UNIX dari IBM
- Amoeba, sebuah kernel yang dikembangkan untuk tujuan edukasi
- Kernel Mach, yang digunakan di dalam sistem operasi GNU/Hurd, NexTSTEP, OPENSTEP, dan Mac OS/X
- Minix, kernel yang dikembangkan oleh Andrew Tanenbaum untuk tujuan edukasi
- Symbian OS, sebuah sistem operasi yang populer digunakan pada hand phone, handheld device, embedded device, dan PDA Phone.
Kernel
hibrida
Kernel hibrida aslinya
adalah mikrokernel yang memiliki kode yang tidak menunjukkan bahwa kernel
tersebut adalah mikrokernel di dalam ruangan kernel-nya. Kode-kode tersebut
ditaruh di dalam ruangan kernel agar dapat dieksekusi lebih cepat dibandingkan
jika ditaruh di dalam ruangan user. Hal ini dilakukan oleh para arsitek sistem
operasi sebagai solusi awal terhadap masalah yang terjadi di dalam mikrokernel
kinerja. Di bawah ini adalah
beberapa sistem operasi yang menggunakan kernel hibrida:
- BeOS, sebuah sistem operasi yang memiliki kinerja tinggi untuk aplikasi multimedia.
- Novell NetWare, sebuah sistem operasi yang pernah populer sebagai sistem operasi jaringan berbasis IBM PC dan kompatibelnya.
- Microsoft Windows NT (dan semua keturunannya).
- Android
Exokernel
Exokernel bukanlah
pendekatan kernel sistem operasi yang umum—seperti halnya microkernel atau
monolithic kernel yang populer, melainkan sebuah struktur sistem operasi yang
disusun secara vertikal. Ide di balik exokernel adalah untuk memaksa abstraksi
yang dilakukan oleh developer sesedikit mungkin, sehingga membuat mereka dapat
memiliki banyak keputusan tentang abstraksi hardware. Exokernel biasanya
berbentuk sangat kecil, karena fungsionalitas yang dimilikinya hanya terbatas
pada proteksi dan penggandaan sumber daya.
Linux
Kernel
Secara umum, kernel
memiliki fungsi melayani bermacam program aplikasi untuk mengakses perangkat
keras komputer secara aman. Dimana, akses ke perangkat keras secara langsung
merupakan masalah yang kompleks. Karena itu, kernel biasanya
mengimplementasikan sekumpulan abstraksi hardware.
|
Linux
Kernel 0.01 Walkthrough
1.
Direktori boot dari Linux 0.01 berisi
head.s dan boot.s.
boot.s
|
Bootstrap
loader dijalankan dari startup BIOS
|
head.s
|
Merupakan
blok startup 32-bit untuk linux. Panggilan init _main ()
|
2.
Direktori
fs dari Linux 0.01 berisi fungsi-fungsi sistem file
bitmap.c
|
new_block(),
free_block(), new_inode(), free_inode()
|
block_dev.c
|
block_write(),
block_read(), ll_rw_block()
|
buffer.c
|
get_hash_table(),
getblk(), sys_sync(), brelse(), bread(), buffer_init()
|
char_dev.c
|
rw_char()
|
exec.c
|
read_head(),
read_ind(), read_area(), do_execve()
|
fcntl.c
|
sys_dup2(),
sys_dup(), sys_fcntl()
|
file_dev.c
|
file_read(),
file_write()
|
file_table.c
|
file_table[]
|
inode.c
|
sync_inodes(),
bmap(), create_block(), iput(), get_empty_inode(), get_pipe_inode(), iget()
|
ioctl.c
|
sys_ioctl()
|
namei.c
|
namei(),
open_namei(), sys_mkdir(), sys_rmdir(), sys_unlink(), sys_link()
|
open.c
|
sys_utime(),
sys_access(), sys_chdir(), sys_chroot(), sys_chmod(), sys_chown(),
sys_open(), sys_creat(), sys_close()
|
pipe.c
|
read_pipe(),
write_pipe(), sys_pipe()
|
read_write.c
|
sys_lseek(),
sys_read(), sys_write()
|
stat.c
|
sys_stat(),
sys_fstat()
|
super.c
|
superblock[],
do_mount(), mount_root()
|
truncate.c
|
truncate()
|
tty_ioctl.c
|
tty_ioctl()
|
3.
Daftar file pada linux kerner 0.01
asm.s
|
Perakit
tingkat rendah untuk interupsi perangkat keras (kecuali pengecualian halaman,
ditangani oleh mm)
|
console.c
|
Fungsi
output terminal VT sederhana (konsol)
|
exit.c
|
Fungsi sistem exit dan waitpid
|
fork.c
|
Fungsi sistem fork
|
hd.c
|
Berfungsi
sebagai hard disk interrupt handler,
hard disk I / O
|
keyboard.c
|
Berfungsi sebagai keyboard
interrupt handler
|
mktime.c
|
Versi sederhana dari mktime untuk digunakan di kernel
|
panic.c
|
Fungsi panik kernel sederhana
|
printk.c
|
Versi
Kernel dari printf yang mempertahankan register FS
|
rs_io.s
|
RS-232 (serial) interrupt handler
|
sys.c
|
Fungsi sistem
|
system_call.c
|
Antarmuka pemanggilan sistem
|
traps.c
|
Trap
handler - mencetak informasi
proses dan
informasi berakhir
|
tty_io.c
|
tty interface untuk serial dan konsol I / O
|
vsprintf.c
|
Versi kernel dari vsprintf ()
|
4.
Direktori
mm Linux 0.01 berisi fungsi-fungsi manajemen memori.
page.s
|
Page fault exception handler
|
memory.c
|
Paged memory management functions. get_free_page(),
free_page(), free_page_tables(), copy_page_tables(), put_page(),
un_wp_page(), do_wp_page(), write_verify(), do_no_page(), calc_mem()
|
Referensi
[1] I Putu Agus Eka Pratama,“PPT Matakuliah Network Operating System Pertemuan 8 : Kernel dan Kernel Linux ” 2018.
0 komentar:
Posting Komentar