RSS

Praktikum Sistem Operasi

Tugas Pendahuluan Modul 1

File adalah sekumpulan data/informasi yang saling berhubungan sesuai dengan tujuan pembuatnya.

Data pada file bisa berupa numerik, alpha numerik binary atau text. Setiap File memiliki nama dan pengacuan terhadap suatu file menggunakan nama file tersebut. Pada Linux penamaan File bersifat case sensitif yaitu membedakan antara lower case dan upper case letters sehingga file-file Tugas, tugas, TUGAS, TUGas merupakan file-file yang berbeda. Sebagai perbandingan, pada MS-DOS, file-file tadi dianggap sama.

Pemberian nama dan extention pada Linux tidak dibatasi jumlah karakternya dan suatu file dapat memiliki lebih dari satu extention. Contohnya: prog.c.z yairu prog.c yang sudah dikompres. Selain nama, file memiliki atribut seperti tipe, size, time, date, dan user identification, protection dll. Tipe dari file dikenal dari extentionnya. Dengan tipe inilah OS dapat merespon file secara tepat.

Pathname

 

Setiap file memiliki pathname ada 2 macam pathname yaitu:

  • Pathname absolut suatu file didapat dari menelusuri path dari root directory, melewati semua direktori sampai ke file yang diinginkan. Pathname absolute diawali dengan /.
  • Pathname relatif menelusuri path dari direktori yang sedang digunakan(direktori kerja). Suatu pathname yang tidak diawali / adalah suatu pathname relatif. Seperti pathname absolute, pathname ini mendeskripsikan path melalui direktori yang dilewati.

Tabel Subdirektori dari Direktori Root

Direktori Isi
/bin Program-program umum, dipakai oleh system, administrator dan user
/boot File startup dan kernel, vmlinuz. Pada distribusi sekarang ini termasuk grub data. Grub adalah GRand Unified Boot loader dan dapat menggantikan banyak boot-loaders yang berbeda yang kita ketahui sekaranag ini.
/dev Berisi referensi kepada semua komponen hardware CPU, yang direpresentasikan dengan property khusus.
/etc File konfigurasi sistem paling penting terdapat pada /etc, direktori ini meyimpan data yang mirip dengan Control Panel pada Windows.
/home Direktori home untuk semua user umum.
/initrd (pada beberapa distribusi) Berisi informasi untuk booting. Tidak boleh dihapus!
/lib File library, termasuk file – file untuk semua jenis program yang dibutuhkan oleh sistem dan user.
/lost+found Setiap partisi memiliki sebuah lost+found pada setiap direktori diatasnya. File – file yang tersimpan sebelum terjadi crash tersimpan disini.
/misc Untuk pengunaan serba guna.
/mnt Titik penyambungan standar untuk file sistem eksternal, seperti CD-ROM, kamera digital, floppy, USB
/net Titik penyambungan standar untuk file sistem remote
/opt Pada umumnya berisi software ekstra dan pihak ketiga (tambahan)
/proc Sebuah virtual file system yang mengandung informasi mengenai system resource. Informasi lebih lanjut mengenai pengertian dari file pada proc diketahui dengan memasukkan perintah man proc pada terminal. File proc.txt membicarakan detil dari virtual file system.
/root Direktori home dari user administrator. Perlu dibedakan antara /,direktori root dan /root, direktori home dari user root
/sbin Program-program yang dipakai oleh sistem dan administrator
/tmp Memori sementara yang dipakai oleh sistem.
/usr Program-program, libraries, dokumentasi dll. Untuk semua program yang terkait dengan user.
/var Media penyimpanan untuk semua file variabel dan file sementara yang dibuat oleh user seperti file log, antrian mail, print spooler area, memori untuk penyimpanan sementara dari file yang sudah di download dari internet atau untuk menyimpan image dari CD sebelum dibakar.

Struktur File

  • f_list :              menyambungkan semua file ke dalam beberapa list
  • f_dentry :        pointer yang menunjuk pada objek dentry yang berkaitan
  • f_op :               pointer yang menunjuk pada tabel operasi tabel
  • f_mode :          mode proses akses
  • f_pos :             current file offset (pointer file)
  • f_count :          counter penggunaan obyek file
  • f_flags :           flag yang dibuat saat file dibuka
  • f_reada :          flag yang digunakan untuk read head
  • f_ramax :         jumlah maksimum page yang akan di-read ahead
  • f_raend :          pointer file setelah read ahead terakhir
  • f_ralen :           jumlah byte yang di-read ahead
  • f_rawin :          jumlah page yang di-read ahead
  • f_owner :         data untuk I/O asynchronous melalui signal
  • f_uid :                         ID user pemilik file
  • f_gid :                         ID grup user pemilik file
  • f_error :           kode kesalahan untuk operasi write network

Tugas Pendahuluan Modul2

Shell programming adalah penyusunan atau pengelompokkan beberapa perintah shell (internal atupun eksternal command) menjadi beberapa kumpulan perintah yang melakukan dapat tugas-tugas tertentu sesuai dengan tujuan dari user. Dengan kata lain kita dapat menggunakan shell untuk membuat suatu program layaknya sebuah bahasa pemrograman (kita dapat melakukan proses perulangan/looping, memasukkan input dan output ataupun membuat suatu fungsi bersyarat

Shell merupakan program yang dapat membaca instruksi-instruksi yang diinputkan (Biasanya menggunakan Keyboard) dan mengartikan kontrol statements agar dapat di proses sesuai perintah yang diinginkan (command interpreter). Dengan kata lain shell merupakan program yang berfungsi menghubungkan secara lansung antara user dengan sistem operasi. Ketika kita mengetikkan sesuatu di keyboard maka shell akan menafsirkan apa yang kita ketikkan. Sebagai contoh apabila kita ketikkan ls pada shell dan ls ternyata merupakan program yang dapat di eksekusi maka shell akan menjalankan program tersebut.

Contoh :

antoro@drutz:~$ ls

test

antoro@drutz:~$ hello

bash: hello: command not found

antoro@drutz:~$

macam-macam Shell yang terdapat di berbagai sistem operasi keluarga unix, jelaskan beserta kelebihan dan kekurangannya!

Jawab:

a. Bourne Shell (sh)

sh adalah shell standar Unix yang dibuat tahun 1979 oleh Stephen Bourne dari AT&T dengan memakai bahasa pemrograman Algol. sh terkenal karena sederhana, compact, and cepat. Kelemahannya adalah kurang interkatif seperti tidak ada history, aliasing, dan job control. Default prompt shell sh adalah $ (dolar).

b. C Shell (csh)

csh memiliki feature yang lebih lengkap dibandingkan sh. Shel ini dibuat tahun 1970an oleh Bill Joy dari University of California at Berkeley dengan menggunakan bahasa C.

Fitur yang terdapat dalam csh antara lain command-line history, aliasing, built-in arithmetic, filename completion, dan job control. Kelemahnnya adalah karena didesain untuk mesin skala besar dan memiliki banyak fitur maka shel ini cenderung lambat bila digunakan pada mesin kecil. Default prompt shell csh adalah % (persen).

c. Korn Shell (ksh)

Korn shell merupakan pengembangan dari bourne shell yang ditulis oleh David Korn dari AT&T pada pertengahan 1980an. Feature Korn shell antara lain editable history, aliases, functions, regular expression wildcards, built-in arithmetic, job control, coprocessing, dan special debugging. Default prompt shell ksh adalah $ (dolar).

d. Bourne Again Shell (bash)

Bash merupakan default shell Linux yang merupakan pengembangan dari bourne shell sehingga kompatibel juga di Unix. Shell ini dibuat pada tahun 1988 oleh Brian Fox dari FSF GNU. Fitur yang dimiliki bash antara lain interaktif, dapat membuat shortcut, bisa berwarna, dll.Default Bash prompt adalah $ (dolar).

Tugas Pendahuluan Modul3

Perintah-perintah dasar dalam Linux

cat

Perintah cat ini menampilkan isi dari suatu file ke standart output (stdout)

Syntax:

$ cat <namafile>

Contoh:

antoro@drutz:~$ cat test

ini hanya sebuah test dari output redirection

hehehehehe……..

baris ini tambahan dari yang lama…

catdapat jugadigunakan untuk memasukkansebuah isidari suatu filekedalamfileyang lain.

Syntax:

$ cat file1 file2 file3 > file4

clear

Perintah clear ini mirip dengan cls pada DOS yang gunanya membersihkan layar

Syntax:

$ clear

cp

Mirip dengan copy pada DOS, perintah cp ini berfungsi mengkopi file.

Syntax:

$ cp [option] file /dir/path/

Untuk lebihjelas silahkan dibaca pilihan-pilihannya dengan menjalankan :

$ cp –help

cut

Perintah cu tmendefinisikan suatu file yang berisi data berdasarkan kolom

Syntax:

$ cut [option] file

Contoh: kita akan cut file test dari kolom 1-7

antoro@drutz:~$ cut -c 1-7 test

ini han

heheheh

baris i

antoro@drutz:~$ cat test

ini hanya sebuah test dari output redirection

hehehehehe……..

baris ini tambahan dari yang lama…

antoro@drutz:~$

Dari contoh dapat terlihat bahwa cut hanya menampilkan isi dari filetest dari kolom1 -7

find

Dari namanya sudah dapat diterka bahwa perintah ini berfungsi untuk mencari file ataupun directori.

Syntax:

$ find /path [option]

Contoh:

antoro@drutz:~$ find . -name te*

./test

antoro@drutz:~$

grep

Perintah ini berguna untuk pencarian data di dalam file, penggunaan grep akan lebih mengefisienkan waktu ketimbang harus membaca satu persatu

Syntax:

$ grep [option] “data” file

Contoh:

antoro@drutz:~$ grep “ini” test

ini hanya sebuah test dari output redirection

baris ini tambahan dari yang lama…

antoro@drutz:~$

ln

Kegunaan perintah ini adalah untuk membuat link dari satu file/directori ke file/directori lain

Syntax:

$ ln -s /path/to/source target

Contoh:

antoro@drutz:~$ ln -s test uji

antoro@drutz:~$ ls -l

total 2

-rw-r–r– 1 antoro antoro 102 Nov 9 14:11 test

lrwxrwxrwx 1 antoro antoro 4 Nov 10 03:21 uji -> test

antoro@drutz:~$

Dari contoh dapat dilihat bahwafile uji adalah merupakan link dari filetest

locate

Perintah ini digunakan untuk mengetahui dimana letaknya sebuah file atau directori. Fungsinya kurang lebih sama

dengan find, bedanya locate menggunakan sebuah database (biasanya terletak di /var/lib/locatedb ) yang

dapat di updat emenggunakan perintah updatedb.

Syntax:

$ locate <something>

Contoh:

antoro@drutz:~$ locate uji

/home/antoro/uji

antoro@drutz:~$

Tugas Pendahuluan Modul 4

MENGONTROL DAN MEMONITOR PROSES
Ketika suatu sistem linux dijalankan, dan berbagai program dieksekusi, hal ini memerlukan suatu managemen dalam mengontrol dan memonitor setiap proses. Proses di linux tercatat dalam bentuk bilangan angka (PID), sehingga setiap proses dapat diamati dari memory yang dipakai, user yang menjalankannya (process owner), lamanya proses tersebut di jalankan dan lain sebagainya. Proses yang berlangsung dapat berupa daemon, aplikasi pengguna, utilitas dan lain lain.
Proses yang dijalankan di console, shell, xterm, dan lain-lainnya disebut sebagai foreground process. sedangkan background process adalah proses yang dijalankan secara background dan biasanya di jalankan dengan menambahkan “&” pada akhir dari baris perintah.

contoh :
$ ping 192.168.0.1 &
Perintah diatas akan mengakibatkan mesin akan melakukan ping ke sistem dengan ip 192.168.0.1 secara kontinyu dan bekerja di background (di belakang layar) Untuk memonitor proses-proses yang dijalankan oleh system dapat di gunakan perintah ps dan top. Sedankan untuk mengontrol proses dalam dilakukan dengan utilitas kill,yang akan mengirim signal kepada suatu proses.
ps
Utilitas ps ini digunakan untuk melihat proses apa saja yang sedang dijalankan system. option yang umum digunakan adalah “-aux”, untuk option lengkapnya dapat dilihat dengan mengeksekusi “ps –help”.
Sintaks dari utilitas ini:
$ ps [option]
top
Utilitas ini secara mendasar fungsinya sama seperti ps, hanya saja top lebih aktual karena setelah kita eksekusi, top akan update proses yang dijalankan secara berkala. Juga top lebih spesifik dalam menjelaskan keadaan sistem. Kelemahannya adalah proses top ini lebih memakan banyak memory. Sintaks dari utilitas ini :
$ top
Dari dua perintah ps dan top diatas dikenal sebutan proses zombie. Proses zombie adalah suatu proses (biasanya proses anak) yang telah mati/dimatikan tetapi tetap ada. Hal ini dikarenakan proses ibunya (parent process) tidak mematikan proses anaknya dengan sempurna. Proses zombie ini akan mati apabila parent prosesnya mati.
kill
Setiap proses yang dijalankan dilinux dapat dideteksi dan kemudian di matikan, seperti telah dijelaskan pada Modul sebelumnya dalam perintah-perintah dasar Linux.

BOOTING DAN PROCESS INIT
Booting
Ada beberapa tahapan proses booting dalam system operasi linux. Pertama lilo akan meload kernel, kemudian kernel akan memeriksa setiap device yang ada di mesin, dan selanjutnya akan menjalankan script init. Init adalah proses pertama yang dijalankan oleh system, init sendiri kemudian menjalankan proses-proses lain yang dijalankan pada saat booting. Init menjalankan semua proses berdasarkan /etc/inittab. Dalam init dikenal istilah runlevel, dalam *nix dikenal runlevel 0-6 dan runlevel S. Masing-masing runlevel dijalankan berdasarkan keadaan system, runlevel 0,1 dan 6 sudah disiapkan secara default (0 untuk halt, 1 untuk single-user, 6 untuk reboot system, 2,3,4,5 untuk multi user), selain itu dapat disesuaikan dengan keinginan dari administrator sistem.

Mekanisme log dan pesan sistem
Di dalam Linux dikenal dua cara logging, yaitu dengan
• syslogd
• klogd.
Syslogd digunakan oleh berbagai macam program yang menggunakan fungsi syslog() untuk memasukkan catatan (log) ke dalam log file yang disediakan fasilitasnya oleh syslogd. File konfigurasi dari syslogd terletak di /etc/syslog.conf, dari file ini administrator sistem dapat menentukan dimana log file diletakkan. Secara default log file akan diletakkan di /var/log.
Setelah syslogd hal yang perlu diketahui adalah klogd. Klogd adalah system daemon yang mencatat segala aktifitas kernel dan kemudian mendokumentasikannya ke dalam file.

Modul 5

BAB III

TUGAS PENDAHULUAN

Kernel adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi. Tugasnya melayani bermacam program aplikasi untuk mengakses perangkat keras komputer secara aman.Karena akses terhadap perangkat keras terbatas, sedangkan ada 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 satu bagian perangkat keras tersebut. Hal tersebut dinamakan sebagai multiplexing.

Akses kepada perangkat keras secara langsung merupakan masalah yang kompleks, oleh karena itu kernel biasanya mengimplementasikan sekumpulan abstraksi hardware. Abstraksi-abstraksi tersebut merupakan sebuah cara untuk menyembunyikan kompleksitas, dan memungkinkan akses kepada perangkat keras menjadi mudah dan seragam. Sehingga abstraksi pada akhirnya memudahkan pekerjaan programer.

Untuk menjalankan sebuah komputer kita tidak harus menggunakan kernel sistem operasi. Sebuah program dapat saja langsung diload dan dijalankan diatas mesin ‘telanjang’ komputer, yaitu bilamana pembuat program ingin melakukan pekerjaannya tanpa bantuan abstraksi perangkat keras atau bantuan sistem operasi. Teknik ini digunakan oleh komputer generasi awal, sehingga bila kita ingin berpindah dari satu program ke program lain, kita harus mereset dan meload kembali program-program tersebut.

Beberapa desain Kernel

Sebuah kernel sistem operasi tidak harus ada dan dibutuhkan untuk menjalankan sebuah komputer. Program dapat langsung dijalankan secara langsung di dalam sebuah mesin (contohnya adalah 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. Selanjutnya, para pembuat program tersebut membuat beberapa komponen program yang sengaja ditinggalkan di dalam komputer, seperti halnya loader atau debugger, atau dimuat dari dalam ROM (Read-Only Memory). Seiring dengan perkembangan zaman komputer yang mengalami akselerasi yang signifikan, metode ini selanjutnya membentuk apa yang disebut dengan kernel sistem operasi.

Selanjutnya, para arsitek sistem operasi mengembangkan kernel sistem operasi yang pada akhirnya terbagi menjadi empat bagian yang secara desain berbeda, sebagai berikut:

  • 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.

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.

Meskipun jika setiap modul memiliki layanan operasi-operasi tersebut terpisah dari modul utama, integrasi kode yang terjadi di dalam monolithic kernel sangatlah kuat, dan karena semua modul berjalan di dalam address space yang sama, sebuah bug dalam salah satu modul dapat merusak keseluruhan sistem. Akan tetapi, ketika implementasi dilakukan dengan benar, integrasi komponen internal yang sangat kuat tersebut justru akan mengizinkan fitur-fitur yang dimiliki oleh sistem yang berada di bawahnya dieksploitasi secara efektif, sehingga membuat sistem operasi dengan monolithic kernel sangatlah efisien—meskipun sangat sulit dalam pembuatannya.

Pada sistem operasi modern yang menggunakan monolithic kernel, seperti halnya Linux,FreeBSD,Solaris dan Microsoft Windows, dapat memuat modul-modul yang dapat dieksekusi pada saat kernel tersebut dijalankan sehingga mengizinkan ekstensi terhadap kemampuan kernel sesuai kebutuhan, dan tentu saja dapat membantu menjaga agar kode yang berjalan di dalam ruangan kernel (kernel-space) seminim mungkin.

Di bawah ini ada beberapa sistem operasi yang menggunakan Monolithic kernel:

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.

Server atau disebut sebagai peladen adalah sebuah program, seperti halnya program lainnya. Server dapat mengizinkan sistem operasi agar dapat dimodifikasi hanya dengan menjalankan program atau menghentikannya. Sebagai contoh, untuk sebuah mesin yang kecil tanpa dukungan jaringan, server jaringan (istilah server di sini tidak dimaksudkan sebagai komputer pusat pengatur jaringan) tidak perlu dijalankan. Pada sistem operasi tradisional yang menggunakan monolithic kernel, hal ini dapat mengakibatkan pengguna harus melakukan rekompilasi terhadap kernel, yang tentu saja sulit untuk dilakukan oleh pengguna biasa yang awam.

Dalam teorinya, sistem operasi yang menggunakan microkernel disebut jauh lebih stabil dibandingkan dengan monolithic kernel, karena sebuah server yang gagal bekerja, tidak akan menyebabkan kernel menjadi tidak dapat berjalan, dan server tersebut akan dihentikan oleh kernel utama. Akan tetapi, dalam prakteknya, bagian dari system state dapat hilang oleh server yang gagal bekerja tersebut, dan biasanya untuk melakukan proses eksekusi aplikasi pun menjadi sulit, atau bahkan untuk menjalankan server-server lainnya.

Sistem operasi yang menggunakan microkernel umumnya secara dramatis memiliki kinerja di bawah kinerja sistem operasi yang menggunakan monolithic kernel. Hal ini disebabkan oleh adanya overhead yang terjadi akibat proses input/output dalam kernel yang ditujukan untuk mengganti konteks (context switch) untuk memindahkan data antara aplikasi dan server.

Beberapa sistem operasi yang menggunakan microkernel:

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.

Beberapa orang banyak yang bingung dalam membedakan antara kernel hibrida dan kernel monolitik yang dapat memuat modul kernel setelah proses booting, dan cenderung menyamakannya. Antara kernel hibrida dan kernel monolitik jelas berbeda. Kernel hibrida berarti bahwa konsep yang digunakannya diturunkan dari konsep desain kernel monolitik dan mikrokernel. Kernel hibrida juga memiliki secara spesifik memiliki teknologi pertukaran pesan (message passing) yang digunakan dalam mikrokernel, dan juga dapat memindahkan beberapa kode yang seharusnya bukan kode kernel ke dalam ruangan kode kernel karena alasan kinerja.

Di bawah ini adalah beberapa sistem operasi yang menggunakan kernel hibrida:

Exokernel

Sebenarnya, 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.

Kernel-kernel klasik yang populer seperti halnya monolithic dan microkernel melakukan abstraksi terhadap hardware dengan menyembunyikan semua sumber daya yang berada di bawah hardware abstraction layer atau di balik driver untuk hardware. Sebagai contoh, jika sistem operasi klasik yang berbasis kedua kernel telah mengalokasikan sebuah lokasi memori untuk sebuah hardware tertentu, maka hardware lainnya tidak akan dapat menggunakan lokasi memori tersebut kembali.

Exokernel mengizinkan akses terhadap hardware secara langsung pada tingkat yang rendah: aplikasi dan abstraksi dapat melakukan request sebuah alamat memori spesifik baik itu berupa lokasi alamat physical memory dan blok di dalam hard disk. Tugas kernel hanya memastikan bahwa sumber daya yang diminta itu sedang berada dalam keadaan kosong—belum digunakan oleh yang lainnya—dan tentu saja mengizinkan aplikasi untuk mengakses sumber daya tersebut. Akses hardware pada tingkat rendah ini mengizinkan para programmer untuk mengimplementasikan sebuah abstraksi yang dikhususkan untuk sebuah aplikasi tertentu, dan tentu saja mengeluarkan sesuatu yang tidak perlu dari kernel agar membuat kernel lebih kecil, dan tentu saja meningkatkan performa.

Exokernel biasanya menggunakan library yang disebut dengan libOS untuk melakukan abstraksi. libOS memungkinkan para pembuat aplikasi untuk menulis abstraksi yang berada pada level yang lebih tinggi, seperti halnya abstraksi yang dilakukan pada sistem operasi tradisional, dengan menggunakan cara-cara yang lebih fleksibel, karena aplikasi mungkin memiliki abstraksinya masing-masing. Secara teori, sebuah sistem operasi berbasis Exokernel dapat membuat sistem operasi yang berbeda seperti halnya Linux, Unix, dan Windows, dapat berjalan di atas sistem operasi tersebut.

 

2 responses to “Praktikum Sistem Operasi

Tinggalkan komentar