Pembuatan Sistem Operasi Komputer Sederhana

advertisement
Pembuatan Sistem Operasi Komputer Sederhana dengan ....
ISSN 2356 - 4393
Pembuatan Sistem Operasi Komputer Sederhana
dengan Menggunakan Bahasa Assembly
Mochamad Rizqian Zulkarnaen1), Tedi Lesmana Marselino 2)
Informatika, Institut Teknologi dan Bisnis Kalbis, Jakarta
Jalan Pulomas Selatan Kav.22 Jakarta Timur 13210
1)
Email: [email protected]
2)
Email: [email protected]
Abstract: 16-bit operating systems worth studying because it can be a reference for understanding the
machine instructions on computer hardware and microcontroller devices. This research aims to develop
a 16-bit operating system with functions essentially: the execution process, memory allocation, and file
management. Posts in this study discusses how to manufacture core programs such as the operating
system bootloader, kernel, shell, system calls, file management, and handling input-output on the
keyboard, the mouse, disk, and memory using Assembly language programming with NASM compiler.
Therefore, this study also discusses the workings of computer hardware as a knowledge base. The
Waterfall method is used to create an application that meets the basic functions of the operating system.
VirtualBox software is used as a container for additional operating systems so that the operating system
is made to run on existing operating systems.
Keywords: hardware, programs, kernel, system calls, process, memory
Abstrak: Sistem operasi 16 bit layak diteliti karena dapat menjadi acuan untuk memahami instruksi
mesin pada perangkat keras komputer dan perangkat microcontroller. Penelitian ini bertujuan
mengembangkan sistem operasi 16 bit dengan fungsi-fungsi dasarnya yaitu eksekusi proses,
pengalokasian memory, dan manajemen file. Tulisan dalam penelitian ini membahas cara pembuatan
program-program inti sistem operasi seperti bootloader, kernel, shell, system calls, file management,
dan penanganan input-output pada keyboard, mouse, disk, dan memory menggunakan bahasa
pemrograman Assembly dengan compiler NASM. Oleh karena itu, penelitian ini juga membahas
cara kerja perangkat keras komputer sebagai pengetahuan dasarnya. Untuk membuat aplikasi yang
memenuhi fungsi-fungsi dasar sistem operasi tersebut digunakan metode Waterfall. Software VirtualBox
digunakan sebagai penampung sistem operasi tambahan sehingga sistem operasi yang dibuat dapat
berjalan pada sistem operasi yang sudah ada.
Kata Kunci: perangkat keras, program, kernel, system calls, proses, memory
I. PENDAHULUAN
Sistem operasi adalah seperangkat program yang
mengelola sumber daya perangkat keras komputer,
dan menyediakan layanan umum untuk aplikasi
perangkat lunak. Tanpa sistem operasi di zaman
sekarang, pengguna tidak dapat menjalankan
aplikasi pada komputer mereka, kecuali aplikasi
bootloader. Sistem operasi menyembunyikan segala
kerumitan yang terdapat pada perangkat keras dengan
menyediakan fungsi-fungsi tingkat mesin untuk
menghindari kerumitan pemrograman sehingga
memudahkan perancang program aplikasi [1].
Untuk memahami cara mengembangkan sistem
operasi, maka tidak hanya diperlukan algoritma
program yang baik, tetapi juga mengetahui bagaimana
perangkat keras komputer bekerja. Hal ini disebabkan
karena sistem operasi harus bisa menangani aplikasiaplikasi yang berjalan di atasnya dan menangani
perangkat-perangkat keras komputer. Fungsifungsi seperti eksekusi proses, alokasi memory, dan
manajemen file merupakan fungsi-fungsi dasar yang
harus dimiliki oleh sebuah sistem operasi.
Sistem operasi yang akan dibuat dalam penelitian
ini adalah sistem operasi 16 bit dengan kemampuan
single-tasking. Sistem operasi ini merupakan
langkah awal yang bagus dalam memahami sistem
operasi yang lebih kompleks. Sistem operasi dibuat
berdasarkan sistem operasi Mike OS Project. Source
code yang terdapat pada Mike OS Project ini dibuat
murni dengan bahasa Assembly dengan compiler
NASM, sehingga diharapkan pembaca bisa tahu lebih
1
Kalbiscentia,Volume 2 No.1 Februari 2015
rinci apa yang sebenarnya terjadi dalam sebuah mesin
komputer ketika komputer sedang berjalan [2]. Selain
itu, penelitian ini juga dapat dijadikan acuan dalam
memahami pemrograman microcontroller yang
masih banyak menggunakan prosesor 16 bit.
Pemrograman pada prosesor 16 bit juga banyak
digunakan dalam pemrograman robotik. Hal ini
disebabkan karena microcontroller dan robotik
menggunakan sumber daya listrik yang lebih hemat
dibandingkan dengan komputer pada masa sekarang.
Prosesor dengan jumlah bit yang lebih kecil akan
memakan sumber daya listrik yang lebih sedikit
dibandingkan dengan prosesor dengan jumlah bit
yang lebih banyak.
Sistem operasi yang dibuat akan dapat disimpan
dalam Floppy Disk dan di USB Removable Disk.
Tetapi, dalam penelitian penulis memilih media USB
karena lebih mudah mendapatkannya. Hasil akhir
dari penelitian berupa program bootloader yang akan
memanggil kernel utama yang memiliki fungsi-fungsi
pokok antarmuka pengguna dengan sistem komputer.
Kernel yang dibuat memiliki beberapa fungsi
untuk mengeksekusi program pengguna atau
ditempatkan sebagai proses, mengalokasikan memori
untuk setiap proses sehingga tidak terjadi konflik
pengalokasian antara proses-proses yang akan
dijalankan, mendeteksi input keyboard dan mouse,
menampilkan output ke layar monitor, memuat
system calls ke dalam memory, dan menjalankan
tugas dari menu-menu yang dipilih pengguna. Selain
itu program kernel juga sudah memiliki kemampuan
untuk mendeteksi penekanan tombol keyboard
dan mouse, menampilkan output ke layar monitor,
memuat beberapa system calls ke dalam memori
dan menjalankan beberapa tugas dari menu-menu
yang dapat dipilih oleh pengguna. Sistem operasi
juga memiliki kemampuan shell sederhana untuk
mengeksekusi perintah-perintah pengguna. Kepada
sistem operasi ditambahkan fungsi interpreter bahasa
BASIC untuk dapat mengeksekusi program-program
dengan ekstension .bas. Kemudian sistem operasi ini
akan diberi nama FROS.
II. METODE PENELITIAN
Metode pengembangan sistem operasi yang dipilih
yaitu metode pengembangan software Waterfall.
Metode Waterfall dipilih karena dari data yang didapat
oleh penulis, yaitu IBM dan Microsoft menggunakan
metode Waterfall ketika membuat sistem operasi
pertama mereka [3].
2
Gambar 1 Model Waterfall
Tahap Analisis kebutuhan sistem dilakukan
dengan melihat lingkup sistem operasi yang akan
dikembangkan. Pada dasarnya sistem operasi ini
dimulai dari pembuatan program boot loader dan
pemanggilan kernel. Kernel sendiri dibuat dengan
memiliki fungsi-fungsi dasar berupa system calls.
Untuk membuat kernel digunakan source program
dari MIKE OS Project.
Mike OS Project adalah proyek non profit yang
bertujuan untuk meneliti dan membagi pengetahuan
tentang sistem operasi. Tahap penentuan kebutuhan
perangkat keras adalah penentuan platform yang
akan digunakan di mana sistem operasi ini berjalan
dan dikembangkan. Sistem operasi dikembangkan
dengan memilih target arsitektur x86 prosesor dengan
kompatibilitasnya. Pada arsitektur x86 terdapat dua
mode pemrograman, yaitu real mode dan protected
mode. Untuk mode real terdapat sistem interupsi
yang siap digunakan di mana sudah disediakan oleh
sistem BIOS, sedangkan untuk mode protected harus
membuat system calls sendiri. Untuk itu peran source
code yang ada di Mike OS Project di sini digunakan.
Sebagai platform pengembangan digunakan
mesin virtual. Dengan mesin virtual pengembangan
menjadi lebih mudah dan murah. Mesin virtual
memudah proses pengembangan yang membutuhkan
proses restart atau booting berulang, untuk itu
penggunakan mesin virtual akan sangat efektif dan
efisien. Media sistem operasi sendiri menggunakan
virtual floppy disk dan USB. Pada dasarnya kedua
media tersebut adalah sama karena menggunakan
format struktur disk yang terdiri atas track dan
sector. Teknik penempatan bootloader, image disk,
pembuatan sistem file dan peletakkan kernel akan
Pembuatan Sistem Operasi Komputer Sederhana dengan ....
menyesuaikan dengan struktur disk yang digunakan
sebagai media.
Alur kerja program adalah sistem virtual akan
bekerja seperti pada mesin nyata komputer. Proses
startup akan mencari media boot untuk dicari program
bootloader-nya. Program bootloader kemudian
mencari kernel dan menempatkannya pada lokasi
memori tertentu. Setelah itu proses akan diserahkan
kepada kendali shell atau sistem interface yang
berinteraksi kepada pengguna.
Keseluruhan proyek sistem operasi pada
dasarnya terdiri dari bagian-bagian modul yang
dieksekusi secara bergiliran sampai siap dialokasikan
di memori untuk mengeksekusi setiap proses program
yang sudah dipanggil oleh kernel. System calls akan
menerjemahkan setiap instruksi yang dieksekusi dari
proses. Tahap pengembangan menggunakan assembly
NASM yang bersifat open source, yang cukup banyak
digunakan di masyarakat. Proses pengembangan perlu
menerjemahkan source code dari Mike OS Project
ke dalam bentuk NASM. Sistem operasi diuji pada
sistem virtual dan fisik menggunakan USB drive.
III. PEMBAHASAN
A. Dasar Pengembangan Sistem Operasi
1.
Konsep Dasar Sistem Operasi
Sistem operasi adalah sebuah program yang
bekerja sebagai penghubung antara program
aplikasi dengan perangkat keras komputer dan
mengendalikan setiap eksekusi dari semua program
komputer [4]. Secara teknis, sistem operasi adalah
perangkat lunak yang mengatur perangkat keras.
Sistem operasilah yang mengatur alokasi sumber
daya memory, processor, device, dan data sehingga
dapat mengeksekusi program yang dijalankan oleh
pengguna [5].
l
Manajemen memory
l
Manajemen proses
l
Manajemen file
l
Manajemen I/O
l
Manajemen media penyimpanan
l
Networking
l
Sistem Proteksi
l
Command Interpreter System
Tetapi dalam sistem operasi 16 bit, seperti
dalam penelitian ini hanya ada manajemen memory,
manajemen file, manajemen media penyimpanan, dan
command interpreter system, karena sistem operasi ini
bersifat single-tasking sehingga tidak membutuhkan
manajemen proses dan tidak memerlukan driver
untuk menangani proses input-output.
Prinsip dasar sebuah program layak dikatakan
sebagai sebuah sistem operasi adalah jika program
tersebut dapat melakukan manajemen perangkat
keras dan dapat menjalankan program yang berjalan
di atas sistem operasi. Program yang berjalan di atas
sistem operasi pun tidak perlu melakukan manajemen
perangkat keras karena semuanya sudah dikendalikan
oleh sistem operasi.
2.
Manajemen memory
Manajemen memory mengacu pada manajemen
memory utama (main memory). Memory utama adalah
deretan word atau byte dimana setiap word atau
byte mempunyai alamat masing-masing. Memory
utama memberikan penempatan data secara cepat
yang bisa diakses secara langsung oleh CPU. Jadi,
sebuah program yang akan dieksekusi, harus berada
di memory utama. Memory utama disebut juga RAM
(Random Access Memory). Sistem operasi melakukan
beberapa aktifitas berikut dalam manajemen memory:
a. Menjaga setiap alamat memory yang sedang
dipakai dan yang tidak
b.Memberikan memory ketika suatu proses
membutuhkannya
c.Mengambil memory ketika suatu proses telah
selesai menggunakan
Gambar 2 Tampilan abstrak komponenkomponen dalam sistem komputer
Delapan komponen penting dari sistem operasi
32 bit adalah sebagai berikut [6]:
Untuk prosesor 32 bit, ada proteksi memori
karena adanya protected-mode sehingga setiap proses
mempunyai alamat memorinya masing-masing
sehingga tidak ada dua proses yang mempunyai alamat
yang sama. Hal inilah yang menyebabkan prosesor 32
bit mempunyai kemampuan multi-tasking. Berbeda
3
Kalbiscentia,Volume 2 No.1 Februari 2015
dengan prosesor 32 bit, prosesor 16 bit yang hanya
mendukung real-mode dimana tidak ada proteksi
memory sehingga memungkinkan ada dua proses
yang bisa mempunyai alamat memory yang sama.
Oleh karena itu, dalam prosesor 16 bit, harus dibuat
sistem operasi yang bersifat single-tasking.
e. Terminated: Proses telah selesai mengeksekusi
3. Manajemen File
Sebuah sistem berkas (file system) normalnya
membentuk direktori-direktori untuk memudahkan
pencarian. Direktori ini biasanya memiliki berkasberkas (files) dan direktori-direktori lainnya. Sistem
operasi melakukan beberapa aktifitas berikut untuk
sebuah manajemen berkas:
a. Menjaga setiap informasi, lokasi, dan isi suatu file
tetap pada tempatnya
b.Memutuskan berkas mana yang akan
mendapatkan sumber daya, sehingga pengguna
dapat membuka dan menjalankan file yang
dipilih
c. Memberikan sumber daya kepada file yang
membutuhkan
Gambar 3 Fase-fase proses
6. Kernel
Secara program, sistem operasi adalah sebuah
kernel, yaitu program yang terus berjalan selama
komputer dijalankan. Kernel merupakan jantung dari
sistem operasi. Semua proses input dan output yang
berlangsung selama komputer berjalan diatur oleh
kernel, seperti pembacaan dan penulisan terhadap
disk, manajemen memory, dan penjadwalan program
aplikasi [6].
c. Manupulasi sistem file
Semua aplikasi yang berjalan di atas kernel harus
mendapat izin dari kernel agar aplikasi tersebut dapat
berjalan di komputer. Contohnya, ketika seorang
pengguna membuka sebuah web browser, maka
yang terjadi sebenarnya adalah kernel mengecek
input dari pengguna, bisa berupa input keyboard atau
mouse, lalu kernel mengecek sumber daya yang ada
pada komputer untuk menentukan apakah program
ini boleh dijalankan, jika boleh maka kernel akan
memanggil alamat instruksi awal yang terdapat pada
browser tersebut lalu browser akan berjalan.
d. Mendeteksi kesalahan
7. Shell
d. Mengambil sumber daya apabila sudah tidak
membutuhkan
4. Layanan-layanan dalam sistem operasi
Beberapa layanan yang biasa diberikan oleh
sistem operasi adalah sebagai berikut:
a. Eksekusi program
b.Operasi input-output
e. Alokasi sumber daya
f.Proteksi
5. Memahami proses
Proses dapat diartikan sebagai program yang
sedang berjalan. Proses juga memiliki fase-fase
keadaan, yaitu:
a. New: Proses sedang diciptakan
b. Ready: Proses sedang menunggu
memberikan tugas ke prosesor
untuk
c. Running: Instruksi proses sedang dijalankan
d. Waiting: Proses sedang menunggu sesuatu
terjadi (seperti menunggu operasi I/O sampai
dengan selesai)
4
Shell adalah aplikasi yang menghubungkan
pengguna komputer dengan sistem operasi. Segala
perintah yang diberikan oleh pengguna komputer
akan melalui perantara shell, agar bisa diproses untuk
memberikan output yang diinginkan. Contoh sebuah
shell adalah Command Prompt pada Windows. Shell
ada yang berada di dalam kernel, ada juga yang berada
di luar kernel. Dalam sistem operasi ini, shell berada
di luar kernel, tepatnya ada di program command.bin.
8. System Calls
System Calls, yang merupakan interface untuk
layanan sistem operasi, adalah sekumpulan fungsi
yang ditawarkan sistem operasi untuk digunakan oleh
aplikasi pengguna. Fungsi-fungsi ini menjelaskan
Pembuatan Sistem Operasi Komputer Sederhana dengan ....
perilaku dari mesin virtual. Programmer dapat
menulis program mereka untuk berjalan di atas mesin
virtual ini tanpa perlu memperhatikan perangkat
keras di mana aplikasi tersebut sebenarnya berjalan.
Hal ini selain mempermudah penulisan program
juga memudahkan porting ke perangkat keras secara
langsung [6].
Bila sebuah fungsi dalam system calls dipanggil,
maka system akan mengeksekusi instruksi trap, yaitu
interrupt yang dihasilkan oleh perangkat lunak, yang
akan mengubah mode operasi dari user mode ke kernel
mode dan memindahkan kontrol ke sistem operasi.
Sistem operasi akan menentukan call mana yang
dipanggil dan memanggil kode kernel yang tepat.
System calls sendiri merupakan kumpulan libray yang
sudah disediakan oleh sistem operasi. Pada UNIX,
system calls ini dinamakan POSIX, sedangkan pada
Windows dinamakan Win32 API. Pada sistem-sistem
operasi tersebut, system calls dibuat dengan bahasa
C atau C++. Tabel 1 adalah beberapa perbandingan
antara system calls POSIX dan Win32:
Tabel1 1Perbandingan
Perbandingan system
system calls
dan
Win32
Tabel
callsPOSIX
POSIX
dan
Win32
POSIX
Win32
Deskripsi
fork()
CreateProcess()
Menciptakan proses baru
open()
CreateFile()
Membuka file untuk baca dan tulis
close()
CloseHandle()
Menutup file yang sudah dibuka
read()
ReadFile()
Membaca data dari file ke buffer
write()
WriteFile()
Menulis data dari buffer ke file
mkdir()
CreateDirectory()
Membuat direktory baru
rmdir()
RemoveDirectory()
Menghapus directory yang kosong
unlink()
DeleteFile()
Menghapus file
Tabel 2 Perangkat keras yang dibutuhkan
Selain memudahkan menulis program dengan
adanya
system calls, system calls
juga membuat
No. Jenis
Spesifikasi
1.
Processor
Intel
Pentium
IV 2,6
bahasa-bahasa program tingkat tinggi yang berjalan
GHz
atau
lebih
di atas sistem operasi menjadi portable. Sebagai
2.
RAM
2 GB atau lebih, 192
contoh, dalam bahasa programMB
C, kita
tahu bahwa
untuk
mesin
untuk membuka suatu file kita perlu
membuat
objek
virtual
dari
ofstream, misalnya output,
kemudian kita
3. kelas
Motherboard
4. filePS/2
atau buka
denganmouse
fungsi open().
touchpad pada laptop
Gambaran
jelasnya seperti berikut:
atau notebook
Keyboard
5. ofstream
output;
6.
Monitor
output.open(“D:\berkas.txt”);
7.
USB Removable Disk
-
Pada penggalan source code di atas, kita akan
Tabel 3 Perangkat
lunak yang dibutuhkan
membuka
file berkas.txt
yang ada di drive D. Fungsi
Jenis untuk bahasa C,Keterangan
iniNo.berlaku
tak masalah sistem
1.
Sistem
Operasi
Sebagai
sistem
operasi
operasi yang digunakan, sintaks di atas
akan
selalu
Windows XP
awal untuk membuat
sama. Pada saat source codesistem
itu di-compile,
maka
operasi FROS
ini
compiler
C akan
memanggil Sebagai
system calls
ada
2.
Oracle
VirtualBox
mesinyang
virtual
di sistem operasi yang bersangkutan.
penampung Jika sistem
Guest
3.
Notepad++
4.
Netwide Assembler
Operating System
Sebagai text-editor
untuk bahasa
pemrograman Assembly
Sebagai Assembler
operasi tersebut adalah Unix, maka akan memanggil
fungsi open() pada library POSIX (bahasa C memang
sengaja dibuat untuk membuat sistem operasi Unix,
jadi banyak kesamaan sintaks), lalu jika sistem operasi
tersebut adalah Windows, maka akan memanggil
fungsi CreateFile() pada Win32 API. Dari system
calls, maka selanjutnya kernel yang akan mengambil
alih untuk melaksanakan tugas yang dimaksud.
9. Bootloader
Bootloader adalah bagian sistem operasi yang
melakukan pengambil alihan tugas dari BIOS ke sistem
operasi, selanjutnya bootloader akan menjalankan
kernel sehingga tugas pun beralih kepada kernel. Pada
bootloader juga tersimpan informasi-informasi yang
dibutuhkan oleh sistem operasi [7]. Ketika seorang
pengguna menekan tombol power pada komputer,
kabel yang terhubung ke tombol akan mengirim
sinyal elektronik ke motherboard, lalu motherboard
akan meneruskan sinyal ke Power Supply. Sinyal
elektronik tersebut mempunyai rangkaian data byte
[8]. BIOS sendiri berisi program yang sudah dibuat
sebelumnya di pabrik dimana komputer tersebut
dibuat untuk melakukan beberapa tugas. BIOS
tersimpan di dalam ROM (Read Only Memory).
BIOS akan menjalankan beberapa tugas seperti
menciptakan Interrupt Vector Tabel, memberikan
beberapa interrupt services, dan menjamin semua
perangkat keras dalam keadaan baik.
Selanjutnya BIOS akan mencari bootable device
seperti floppy disk, harddisk, USB Removable Disk,
atau CD. Lalu BIOS akan mencari program bootloader
pada device yang sesuai dengan pengaturan menu
boot di BIOS dan memuatnya di memory pada
alamat 0x07C0. Jika pada device tersebut tidak
ditemukan program bootloader, maka BIOS akan
memberikan pesan “No Operating System Found”
lalu akan menghentikan sistem. Program bootloader
harus berada dalam keadaan real-mode yang masih
didukung prosesor 16 bit.
Syarat sebuah program bisa menjadi program
bootloader adalah program tersebut harus memuat
instruksi awalnya di alamat 0x07C0, lalu program
tersebut maksimal berukuran 512 byte, dimana 2 byte
terakhir harus bernilai 0AA55h. Program bootloader
akan melaksanakan beberapa tugas seperti mereset disk yang menjadi bootloader device tersebut,
membaca sector-sector pada disk tersebut, lalu
akan mencari file kernel.bin untuk kemudian tugas
selanjutnya akan diberikan file kernel.bin tersebut,
dan disitulah sistem operasi mulai berjalan.
5
Kalbiscentia,Volume 2 No.1 Februari 2015
10. Struktur Komputer
dari semua cluster yang ada di disk. Jika FAT hilang
atau rusak, maka isi disk tak akan bisa dibaca oleh
sistem operasi. Ada beberapa tipe FAT, yaitu FAT12,
FAT16, dan FAT32 [10]. Dalam sistem operasi ini,
FAT12 yang akan dipakai. FAT12 ini juga dipakai
oleh sistem operasi DOS.
Struktur harddisk mirip dengan floppy disk,
hanya saja harddisk bisa terdiri dari banyak kepingan
yang disebut platter, dan floppy hanya ada satu. Untuk
pembuatan sistem operasi FROS ini, penulis hanya
membahas struktur dari perangkat keras floppy disk.
Gambar 4 Struktur komputer [9]
Gambar 4 adalah garis besar dari struktur
perangkat keras komputer. CPU atau prosesor, RAM,
dan peralatan-peralatan lainnya seperti keyboard,
mouse, monitor, dan harddisk, semuanya saling
terhubung dengan system bus yang terdapat pada
motherboard.
Meski sistem operasi ini juga bisa berjalan
pada media USB, itu disebabkan karena media USB
tersebut nantinya akan diformat menjadi seperti floppy
disk dengan aplikasi flashnul. Dengan begitu, struktur
pada USB tersebut akan memiliki struktur yang
seolah-olah mirip dengan struktur floppy. Gambaran
struktur floppy sdapat dilihat pada Gambar 5:
System bus mempunyai 3 jalur bus, yaitu data
bus, control bus, dan address bus. Pada saat CPU
melakukan sebuah tugas atau instruksi, misalnya ingin
membaca data pada alamat 2000:0010h, maka CPU
akan mengirimkan nilai 2000:0010h melalui address
bus menuju memory controller dan memberi sinyal
bahwa ini adalah read operation pada control bus.
Kemudian memory controller akan mengerti bahwa
CPU ingin membaca data pada alamat 2000:0010h,
maka memory controller akan mengambil data dari
alamat memory 2000:0010h dan mengirimkan balik
ke CPU melalui data bus. Jika yang terjadi adalah
write operation, maka memory controller akan
menulis data pada memory yang berasal dari data bus.
Jika CPU ingin membaca data dari harddisk,
maka CPU juga akan mengirimkan ke disk
controller. Disk controller akan membaca sectorsector yang diminta CPU agar kemudian bisa di-load
ke memory. Pada dasarnnya CPU hanya akan bisa
memproses data yang berada pada memory, tetapi
karena memory bersifat volatile, yang artinya isi
memory akan hilang jika tak ada arus listrik, maka
komputer membutuhkan media penyimpanan kedua
seperti harddisk, floppy disk, USB, dan sebagainya.
Sedangkan pada monitor, sudah mempunyai graphic
controller yang akan menerjemahkan setiap byte data
yang dikirim kepadanya.
Gambar 5 Struktur floppy [11]
Floppy Disk 1,44 MB mempunyai rincian
sebagai berikut:
l
l
l
Floppy Disk mempunyai 2 sisi, dan setiap sisi
dinamakan head
Drive head bergerak di atas permukaan kedua
sisi
Jarak drive head dengan permukaan sangat
kecil, bisa 5000-10000 mikron
l
Setiap sisi mempunyai 80 track (nomor 0-79)
11. File Allocation Table
l
Setiap track mempunyai 18 track (nomor 1-18)
FAT (File Allocation Tabel) adalah tabel yang
diletakkan di media penyimpanan seperti harddisk,
USB atau floppy yang menunjukkan lokasi dan data
l
Setiap sector mempunyai 512 byte
6
l
Total ukuran floppy adalah 2 x 80 x 18 x 512 =
1.472.560 byte atau setara 1,44 MB
Pembuatan Sistem Operasi Komputer Sederhana dengan ....
Ruang penempatan untuk file dalam floppy
dibagi ke dalam unit-unit yang disebut sector. Dalam
device yang lebih besar, seperti harddisk, sekumpulan
sector membentuk cluster. Khusus untuk floppy
disk, jumlah sector dalam setiap cluster hanya satu.
Dengan demikian, ukuran cluster untuk floppy disk
adalah 512 byte.
Struktur FAT12 pada floppy mempunyai 4 sector
utama, yaitu : boot sector, FAT tabels, root directory,
dan data area.
Nama-nama file dalam FAT12 membatasi 8
karakter untuk nama dan 3 karakter untuk ekstensi.
Aturan-aturan untuk penamaan file dalam FAT12
adalah sebagai berikut:
l
l
l
Gambar 6 Struktur FAT12
Masing-masing
sebagai berikut [12]:
l
l
l
l
penjelasan
l
sector
adalah
Boot sector terdapat pada sector pertama
(sector 1) pada disk. Boot sector mengandung
informasi spesifik tentang struktur dari sistem
file, termasuk berapa banyak salinan dari FAT
tabels yang ada, seberapa besar masing-masing
sector, berapa banyak sector yang ada dalam
cluster dan lain-lain.
FAT tables mengandung pointer untuk setiap
cluster pada disk, dan mengindikasikan nomor
dari cluster berikutnya dalam sebuah rantai
cluster, akhir dari rantai cluster, apakah cluster
dalam keadaan kosong atau dalam keadaaan
error. FAT tables adalah satu-satunya metode
untuk menemukan lokasi file dan direktori
dalam disk. Biasanya ada 2 salinan FAT tables,
yang satu berguna untuk keamanan data dan
satu lagi untuk tujuan recover data. Pada floppy,
karena hanya ada satu cluster untuk satu sector,
maka ada FAT entry pointer untuk setiap sector
pada disk.
l
l
Nama file, directory, atau ekstensi tidak diakhiri
dengan karakter null.
Nama file dan directory selalu menempati 8
byte, jika nama file atau directory lebih pendek
dari 8 byte, maka sisa byte diisi dengan spasi
(dengan kode ASCII 20). Ini juga berlaku untuk
3 karakter extensi file.
Nama file, directory, atau ekstensi selalu huruf
besar. Bila pengguna membuat nama file
dengan huruf kecil, maka sistem operasi akan
mengubahnya menjadi besar.
Nama directory juga bisa memiliki ekstensi.
“FILE1” dan FILE1.TXT” adalah 2 nama yang
berbeda.
File dan directory tidak boleh memiliki nama
yang sama, meskipun atributnya berbeda.
B. TAHAP PENGEMBANGAN SISTEM
OPERASI
1. Analisis Tingkat Kebutuhan Sistem
Sistem operasi yang dikembangkan dalam
Tabel 1 Perbandingan system calls POSIX dan Win32
penelitian ini bertujuan untuk dapat berjalan pada
POSIX komputer
Win32 dengan prosesor
Deskripsi tipe x-86 atau x-64.
semua
fork()
CreateProcess()
Menciptakan proses baru
close()
CloseHandle()
Menutup file yang sudah dibuka
CreateFile()
file untuk
baca dan tulis
2.open()
Analisis
KebutuhanMembuka
Perangkat
Keras
tipe x-86 atau
x-64data
umumnya
read()Prosesor
ReadFile()
Membaca
dari file ke berasal
buffer
dari
keluarga
Intel
dan
AMD.
Untuk
write()
WriteFile()
Menulis data dariprosesor
buffer ke fileyang
bukan
atau x-64, sistem
operasi
mkdir() x-86
CreateDirectory()
Membuat
direktoryini
baru tak akan
bisa
berjalan
karena mempunyai
yang
rmdir()
RemoveDirectory()
Menghapusbahasa
directorymesin
yang kosong
unlink()
DeleteFile()
Menghapus
file
berbeda.
Tabel
kerasyang
yangdibutuhkan
dibutuhkan
Tabel22Perangkat
Perangkat keras
Root directory adalah directory utama pada disk.
Tidak seperti directory lainnya yang berada
dalam data area, root directory mempunyai
ukuran yang terbatas (untuk FAT12, 14 sector *
16 directory = 224 possible entries), angka 224
ini menunjukkan jumlah maksimum file dan
directory yang dapat ditampung oleh floppy disk
dalam struktur FAT12.
No.
1.
Data Area mengandung data isi file dan
directory dan mengisi sisa seluruh sector yang
ada di floppy.
5.
6.
7.
2.
3.
4.
Jenis
Processor
Spesifikasi
Intel Pentium IV 2,6
GHz atau lebih
RAM
2 GB atau lebih, 192
MB
untuk
mesin
virtual
Motherboard
PS/2
mouse
atau touchpad pada laptop
atau notebook
Keyboard
Monitor
USB Removable Disk
-
Tabel 3 Perangkat lunak yang dibutuhkan
No.
1.
Jenis
Sistem Operasi
Windows XP
Keterangan
Sebagai sistem operasi
awal untuk membuat
7
virtual
Motherboard
PS/2
mouse
atau Kalbiscentia,Volume
2 No.1 Februari
touchpad pada
laptop 2015
atau notebook
5.
Keyboard
3.6. Analisis
Tingkat Kebutuhan
Monitor
7. Lunak
USB Removable Disk
3.
4.
Perangkat
Tabel 3 Perangkat lunak yang dibutuhkan
Tabel 3 Perangkat lunak yang dibutuhkan
No.
1.
Jenis
Sistem Operasi
Windows XP
2.
Oracle VirtualBox
3.
Notepad++
4.
Netwide Assembler
(NASM)
Floppy Disc Image
Disc Image File dari
Windows XP
Flashnul
5.
6.
7.
Keterangan
Sebagai sistem operasi
awal untuk membuat
sistem operasi FROS ini
Sebagai mesin virtual
penampung
Guest
Operating System
Sebagai text-editor
untuk bahasa
pemrograman Assembly
Sebagai Assembler
Sebagai floppy virtual
Sebagai file installer
dari Windows XP
Untuk memformat USB
menjadi seperti Floppy
Disc
4. Rancangan Arsitektur
Sistem operasi yang akan dibuat disini bersifat
single-tasking, yang artinya hanya bisa menjalankan
satu program. Sebagai contoh, ketika pengguna
menjalankan sebuah text-editor, maka pengguna tidak
bisa menjalankan program lainnya, sehingga jika
pengguna ingin menjalankan program yang lainnya,
maka dia harus menutup program sebelumnya.
Sistem operasi ini hanya menerima input keyboard
untuk menjalankan sebuah proses dan input mouse
untuk beberapa proses seperti memilih menu di setiap
halaman explorer.
5. Rincian Rancangan
Sistem operasi ini bersifat text-mode, dimana
layar yang ditampilkan tidak bersifat grafis seperti
kebanyakan sistem operasi zaman sekarang. Meski
begitu, sistem operasi ini masih mendukung 16
warna dan khusus untuk aplikasi paint bersifat grafis
yang mendukung 256 warna. Layar yang bersifat
text-mode hanya mendukung satu jenis font huruf.
Sistem operasi jenis ini mirip dengan MS-DOS waktu
pertama kali muncul. Selain itu, layar dibagi menjadi
80 kolom dan 25 baris, jadi dalam satu layar hanya
bisa menampilkan 80 x 25 karakter.
Ada 4 jenis utama halaman layar, yaitu:
a.Halaman desktop, yang berguna sebagai
halaman awal layar dimana pengguna bisa
memilih menu, yaitu menu untuk memilih
daftar program yang ingin dijalankan, menu
8
untuk menuju halaman explorer, dan menu
untuk menuju halaman command atau shell.
b. Halaman telusur atau halaman explorer berguna
untuk menampilkan daftar program dan berkas
yang ada di komputer, dimana pengguna bisa
membuka, mengedit, menghapus, menyalin,
atau menamai ulang suatu berkas atau aplikasi
yang ada di komputer.
c.Halaman command atau halaman instruksi,
dimana pengguna bisa menjalankan suatu
perintah langsung ke komputer seperti melihat
jam, melihat tanggal, mengedit, menghapus,
dan menyalin suatu berkas. Halaman ini seperti
Command Prompt yang terdapat pada sistem
operasi Windows atau Shell yang terdapat pada
sistem operasi Unix.
d. Halaman aplikasi, dimana aplikasi yang
ditampilkan adalah aplikasi yang dipilih oleh
pengguna.
Untuk penangananan berkas, penulis memilih
FAT12, karena ini adalah yang paling mudah dipahami,
tetapi sedikit berbeda dengan MS-DOS yaitu hanya
bisa menampilkan daftar berkas atau aplikasi dan
tidak bisa membuat suatu directory. Sehingga, tidak
boleh membuat, menyalin suatu berkas dengan nama
yang sama. Jika sudah ada nama yang sama, maka
sistem operasi akan memberi pesan untuk mengganti
dengan nama lain. Ini dilakukan untuk kemudahan
dalam pembuatan sistem operasi FROS ini.
Ada 4 jenis extensi file yang didukung oleh
sistem operasi ini, yaitu .bin, .bas, .txt, dan .pcx.
Masing-masing mempunyai penjelasan sebagai
berikut:
a. .BIN, yaitu berisi kode biner murni atau kode
bahasa mesin sehingga memungkinkan untuk
langsung dijalankan oleh processor.
b. .BAS, yaitu berisi source code bahasa
pemrograman BASIC, sehingga programmer
lain dapat membuat suatu aplikasi dengan
bahasa BASIC agar dapat berjalan di sistem
operasi ini.
c. .TXT , yaitu berisi data karakter ASCII, yang
merupakan data teks karakter seperti aplikasi
Notepad yang terdapat pada Windows.
d. .PCX , yaitu berkas berisi data gambar dengan
resolusi 320 x 200 dan mendukung 256 warna.
Terdapat library yang memungkinkan programmer lain bisa membuat source code bahasa pemgraman Assembly menjadi lebih pendek. Selain itu
Pembuatan Sistem Operasi Komputer Sederhana dengan ....
programmer lain juga dapat membuat suatu aplikasi dengan bahasa BASIC sehingga aplikasinya dapat
berjalan dalam sistem operasi ini. Terakhir, pengguna
bisa memilih warna sesuai keinginan pengguna untuk
layar halaman dekstop dimana default-nya adalah hijau muda.
dengan byte 0 dan 2 byte terakhir adalah 0AA55h. Ini
terlihat pada baris program:
6. Tahapan Coding
Untuk membuat program kernel ini, penulis
membutuhkan beberapa file yang berisi source code
bahasa Assembly. File-file tersebut adalah kernel.asm,
basic.asm, disk.asm, keyboard.asm, math.asm, misc.
asm, ports.asm, sound.asm, string.asm, dan screen.
asm. Selain file kernel.asm, simpan file-file lainnya
dalam directory features.
a. Membuat Bootloader
Untuk membuat bootloader, penulis menuliskan
programnya di Notepad++, lalu merubahnya menjadi
file biner dengan NASM. Setelah source code program
dibuat dengan nama file boot.asm, simpan file tersebut
di folder instalasi NASM. Default-nya adalah C:\
Program Files\Nasm. Lalu ketikkan perintah “nasm
boot.asm –o boot.bin” untuk merubahnya menjadi file
boot.bin di Command Prompt.
Tahap selanjutnya adalah menyimpan file boot.
bin di Floppy Disc Image. Penulis tidak bisa menyalin
begitu saja karena file boot.bin harus diletakkan di
sector pertama floppy disk. Maka langkah yang harus
dilakukan adalah membuka Command Prompt dan
mengetikkan perintah-perintah berikut:
debug = untuk memanggil program debug.com
yang terdapat pada Windows.
n boot.bin = untuk memanggil file boot.bin yang
akan diproses.
l 0 = untuk memuat isi file boot.bin ke dalam
memory.
w 0 0 0 1 = untuk menyalin file boot.bin ke
sector pertama floppy virtual.
Instruksi awal dalam file boot.asm adalah
memastikan program memulai alamat awal memory
di 07C0h. Ini bisa dilihat pada bagian kode:
mov ax, 07C0h
mov ds, ax
Setelah itu prosedur 12hts akan membaca
cluster-cluster untuk bisa mencari lokasi file kernel.
bin. Jumlah sector yang pertama dibaca adalah 14
sector. Terlihat pada baris program
mov ah, 2
mov al, 14
Setelah file kernel.bin ditemukan, langkah
selanjutnya adalah memuat file kernel.bin ke alamat
memory 2000h yang merupakan alamat awal file
kernel.bin. Untuk memastikan ukuran program
bootloader sebesar 512 byte dan 2 byte terakhir
adalah 0AA55h, maka sisa dari program akan diisi
times 510-($-$$) db 0
dw 0AA55h
b. Membuat Kernel
Untuk menghasilkan file kernel.bin, maka
penulis perlu meng-compile file kernel.asm. Caranya
adalah membuka file nasm.bat dan ketikkan “nasm
kernel.asm –o kernel.bin”. File-file yang terdapat
dalam directory features sudah di-include dalam file
kernel.asm. Jika tidak ada pesan yang muncul, maka
proses compile sukses. Setelah itu cukup salin file
kernel.bin ke floppy virtual.
Program kernel yang merupakan program
inti dari sistem operasi akan melakukan banyak
tugas penting seperti mengeksekusi sebuah
proses, mengalokasi memory untuk program yang
berjalan, membuat, menyalin, dan menghapus
file, menerjemahkan instruksi bahasa BASIC, dan
memberikan pesan jika ada suatu kesalahn.
c. Membuat Shell, Interpreter Basic, Paint, dan Editor
Untuk membuat program Shell, Interpreter
BASIC, Paint, Editor, dan lain-lain cukup dengan
meng-compile file-file paint.asm, editor.asm, dan
command.asm tersebut dengan program NASM. File
basic.asm sudah di-include dalam kernel.asm. Proses
compile sama dengan meng-compile file kernel.asm.
d. Pengujian Sistem
Selama tahap pembuatan coding, banyak
pengujian yang terjadi untuk mengecek error dan
mengira-ngira bagian mana yang salah jika terjadi
error run-time. Dalam level ini, tidak ada debugger
untuk mengecek error pada saat run-time. Karena
penulis membuat pada VirtualBox, maka cukup merestart VirtualBox tersebut dengan memilih menu
restart. Jika terjadi error, maka penulis kembali ke
sistem operasi Windows XP pada VirtualBox dan
melakukan coding lagi.
9
Kalbiscentia,Volume 2 No.1 Februari 2015
Penulis telah mencoba pada beberapa USB
dengan kapasitas-kapasitas berbeda seperti 2GB,
4 GB, dan 16 GB. Semuanya tetap diubah menjadi
berukuran 1,38 MB oleh software flashnul ini.
Metode pengujian yang dipakai adalah metode
black box, dimana tujuannya untuk mengetahui
apakah sistem operasi ini sudah memenuhi prinsipprinsip dasar sistem operasi.
l
Gambar 7 Tampilan awal sistem operasi
FROS pada VirtualBox
Kesalahan pada saat run-time yang sering
penulis temukan adalah kesalahan dari penempatan
instruksi atau data program pada alamat memory. Hal
ini memang sangat membutuhkan ketelitian karena
jika satu byte saja salah, maka program tidak bisa
berjalan semestinya atau bahkan crash.
Untuk penanganan mouse dan efek suara, penulis
harus langsung mengujinya di komputer karena
sistem operasi Windows tidak akan mengizinkan
untuk memakai port mouse dan speaker. Jika runtime error terjadi pada saat pengujian langsung di
komputer, maka penulis harus segera mematikan
komputer karena pada saat itu terjadi exception pada
prosesor dan tak akan mungkin diteruskan.
Untuk menguji sistem operasi agar bisa di-boot
dari USB dan mengujinya langsung di komputer, maka
penulis membutuhkan software flashnul. Floppy Disc
Image yang telah berisi program sistem operasi ini
disalin ke direktori flashnul-1rc1. Selanjutnya buka
Command Prompt dan menuju direktori flashnul
tersebut. Ketikkan “flashnul –p” untuk mengetahui
nomor drive USB. Kita anggap Floppy Disc Image
kita mempunyai nama floppy.img, dan nomor drive
USB kita adalah 1, maka langkah selanjutnya adalah
ketikkan “flashnul 1 –L floppy.img”. Setelah muncul
instruksi untuk mengetik “yes”, maka kita ketikkan
“yes”, kemudian tekan enter. Jika tidak ada error
yang muncul, maka kita siap untuk mem-boot sistem
operasi dari USB.
Software flashnul ini akan memformat USB
sehingga setiap sector besarnya 512 byte, layaknya
floppy disk. Ini bisa dilihat dari besarnya ukuran
USB tersebut, dari yang besar awalnya adalah 2 GB,
setelah diformat dengan flashnul menjadi hanya 1,38
MB. Hal ini diperlukan karena batasan-batasan dari
sistem operasi yang kita buat, dimana sistem operasi
ini menggunakan FAT12.
10
Hal-hal yang diuji adalah sebagai berikut:
Apakah sistem operasi ini sudah memenuhi
prinsip-prinsip dasar sistem operasi dimana
sistem operasi bisa menjalankan program yang
dijalankan pengguna dan program tersebut tidak
perlu menangani perangkat keras komputer
secara langsung?
l
Apakah pengguna cepat mengenali
menggunakan sistem operasi ini?
cara
l
Apakah sistem operasi ini dapat berjalan di
semua PC dengan jenis prosesor x-86 dan x-64?
Setelah ditulis beberapa program dengan bahasa
Assembly dan bahasa BASIC, program-program
tersebut dapat berjalan di sistem operasi FROS ini
dengan memanfaatkan system calls yang terdapat di
dalam sistem operasi FROS ini. Jika instruksi dalam
bahasa BASIC tidak dikenal, maka akan muncul pesan
kesalahan. Sedangkan, jika programmer ingin menulis
program bahasa Assembly tanpa memanfaatkan
system calls yang ada pada sistem operasi FROS ini,
jika terdapat kesalahan pengalamatan memory, maka
program tidak akan berjalan dengan semestinya.
Dapat disimpulkan sistem operasi FROS ini sudah
memenuhi prinsip-prinsip dasar sistem operarsi
sehingga layak dikatakan sebagai sistem operasi
karena program pengguna tak perlu menangani
perangkat keras secara langsung.
Karena tampilan sistem operasi ini menyesuaikan
dengan tampilan-tampilan sistem operasi yang biasa
dilihat pengguna pada saat ini seperti Windows
dan Linux, maka pengguna cepat memahami cara
menggunakan sistem operasi ini, meski sistem operasi
ini bersifat text-mode. Tombol enter dan tombol
panah yang paling banyak digunakan dalam sistem
operasi ini, maka pengguna tidak kesulitan untuk
cepat menghapal dan memahaminya. Selain itu, ada
petunjuk di menu bantuan pada halaman explorer
untuk membantu pengguna memahami sistem operasi
FROS ini.
Sistem operasi FROS ini telah diuji pada
beberapa PC dengan jenis prosesor x-86 dan x-64,
seperti berikut:
Pembuatan Sistem Operasi Komputer Sederhana dengan ....
Tabel44Data
Data pengujian
pengujian sistem
FROS
pada
beberapa
PC PC
Tabel
sistemoperasi
operasi
FROS
pada
beberapa
No.
1.
Merek PC
Acer
2.
Asus
3.
Lenovo
4.
Acer
Spesifikasi
Processor – Intel coreI3 32 bit
RAM – 2 GB
Processor – Intel coreI3 32 bit
RAM – 4 GB
Processor – Intel coreI5 64 bit
RAM – 4 GB
Processor –Intel dual core 32
bit
RAM – 1 GB
Processor –Intel coreI3 32 bit
RAM – 4 GB
untuk memuat isi file ke dalam memory, os_create_
file yang berguna untuk membuat file baru, os_
remove_file yang berguna untuk menghapus file dan
masih banyak yang lainnya.
Prosedur-prosedur tersebut disimpan di filefile terpisah yang berada di directory feature. Di
akhir bagian file kernel.asm penulis menambahkan
directive %include agar prosedur-prosedur tersebut
bisa dikenali oleh assembler NASM.
Pada awal bagian file kernel.asm terdapat
penggalan source code seperti jmp os_main, jmp os_
print_string, jmp os_move_cursor dan seterusnya.
Diharapkan sistem operasi ini dapat berjalan
Instruksi-instruksi tersebut tak akan melakukan
Tabel 5 Paket byte pertama pada saat mouse event terjadi
pada jenis-jenis PC yang ada pada tahun 1980-an,
tetapi NASM akan mencatat setiap alamat
Y
X
Y
X
Selalu Middle Right apa-apa,
Left
tetapi
karena
penulissign
sulitsign
mendapatkannya,
overflow
overflow
1
Button maka
Button dari
Button
instruksi tersebut pada saat file kernel.asm dihanya data yang terdapat
bit pada
bit tabel 3.3 yang penulis
compilasi menjadi kernel.bin. Alamat-alamat dari
Bit 7 Untuk
Bit 6jenis Bit
Bit Bit
3
Bit
2
Bit 1
Bit 0
dapat.
komputer
Apple,
sebenarnya
5
4 Apple bukan prosesor instruksi tersebut tidak lain adalah alamat masingprosesor yang digunakan
masing prosedur yang terdapat pada kernel.bin yang
tipe x-86 atau x-64 seperti Intel dan AMD sebelum
di-load ke memory pada saat sistem operasi mulai
tahun
Prosesor
Tabel 62006.
Paket byte
kedua saatyang
mouse terdapat
event terjadipada komputer
berjalan.
Apple sebelum tahun 2006 adalah PowerPC yang
X movement
Hal ini akan mempermudah programmer lainnya
mempunyai bahasa mesin yang berbeda. Tetapi,
Tabel 7 Paket
byte ketiga
saat mouse
event terjadi
sekarang
Apple
sudah
membuat
komputer dengan yang ingin membuat program yang akan berjalan
prosesor Intel sehingga sistem operasi FROS ini juga pada sistem operasi ini. Misalnya, programmer ingin
Y movement
membuat prosedur untuk mencetak kalimat “Hello
dapat berjalan pada jenis komputer Apple [13].
People”, maka source code yang dia harus buat
adalah :
5.
Apple
e. Analisis Sistem Operasi
Setelah
program
bootloader
berhasil
menemukan lokasi sector program kernel, maka
program kernel akan di-load di memory pada alamat
2000h:000h, dan akan menempati 32 KB, lalu 32 KB
sisanya digunakan untuk program-program lainnya
yang dijalankan oleh pengguna. Total memory yang
digunakan adalah 64 KB karena sistem operasi ini
hanya akan menempati satu segment. 32 KB milik
kernel terdiri dari 24 KB untuk kernel executabel
code dan 8 KB untuk operasi disk seperti membaca
dan menulis isi file. Konsekuensi dari kecilnya jumlah
memory ini adalah ukuran program kernel tidak boleh
melebihi 24 KB, dan ukuran program external atau
program pengguna tidak boleh lebih dari 32 KB.
Seperti disebutkan pada BAB II, pembatasan jumlah
memory yang dipakai ini untuk mempermudah
pembuatan sistem operasi.
Dalam program kernel ini terdapat banyak
prosedur yang berguna untuk mempersingkat source
code program. Prosedur-prosedur itu antara lain os_
print_string yang berguna untuk mencetak string,
os_move_cursor yang berguna untuk memindahkan
cursor, os_speaker_tone yang berguna untuk
menyalakan speaker, os_load_file yang berguna
BITS 16
ORG 32768
%INCLUDE ‘mikedev.inc’
start:
mov si, teks
call os_print_string
mov ah,0
int 16h
ret
teks db ‘Hello People’, 0
Dengan source code ini, akan bisa menampilkan
kalimat “Hello People”. Sebagaimana kita lihat,
prosedur os_print_string belum didefinisikan sama
sekali, tetapi program ini tetap bisa berjalan untuk
menampilkan kalimat “Hello People”. Ini disebabkan
karena pada file mikedev.inc berisi alamat-alamat
instruksi dari prosedur-prosedur yang ada pada file
kernel.bin. Alamat-alamat tersebut adalah alamat
11
Kalbiscentia,Volume 2 No.1 Februari 2015
yang berada di memory. Dengan begitu, program
pengguna akan dapat memanggil prosedur-prosedur
tersebut.
Jika ingin membuat program tanpa prosedur
yang ada di kernel, maka source code yang harus
dibuat adalah seperti ini :
BITS 16
ORG 32768
start:
mov si, teks
call os_print_string
mov ah,0
int 16h
ret
os_print_string:
pusha
mov ah,0Eh
.ulang:
lodsb
cmp al,0
je .done
int 10h
jmp .ulang
.done:
Setelah itu, pastikan segment berada pada lokasi
2000h yang menjadi lokasi memory sistem operasi ini
berjalan. Kemudian sistem operasi akan menampilkan
splash screen. File rizky.pcx merupakan file gambar
yang terdapat dalam disk dan digunakan untuk splash
screen. Prosedur splash_screen akan membaca byte
data pada file rizky.pcx dan akan menampilkan
di video memory. Dalam prosedur splash_screen
tersebut, penulis menggunakan interrupt timer untuk
menunda proses selama 4 detik sehingga gambar
yang ditampilkan hanya berlangsung 4 detik.
Halaman command adalah program terpisah
yang berada pada file command.bin. Halaman
command.bin akan di-load ke memory dengan
prosedur os_load_file. Setelah di-load ke memory,
baru progam bisa dieksekusi oleh CPU.
Pada halaman command, pengguna bisa
mengetikkan perintah-perintah yang sudah disediakan
sistem operasi agar bisa dieksekusi oleh sistem
operasi. Misalnya pengguna mengetikkan “jam”,
maka program command.bin akan menampilkan
waktu jam saat ini. Perintah ataupun segala macam
instruksi dalam sistem operasi ini tidak bersifat case
sensitive, yang berarti tidak membedakan huruf besar
dan kecil karena segala macam instruksi akan diubah
menjadi uppercase sebelum dieksekusi. Ilustrinya
seperti berikut:
l
Misal, pengguna mengetikkan “jam”, “Jam”,
ataupun “JAM” pada halaman command.
l
Lalu program akan merubah “jam”, “Jam”,
ataupun “JAM” menjadi “JAM” dengan
prosedur os_string_uppercase.
l
Setelah terbentuk instruksi “JAM”, program
akan membandingkan apakah perintah termasuk
dari salah satu daftar perintah yang disediakan
dengan prosedur os_string_compare.
l
Jika termasuk dari salah satu daftar perintah
maka program akan melakukan tugas sesuai
daftar perintah tersebut.
l
Jika tidak termasuk dari salah satu daftar
perintah, maka program akan menampilkan
kalimat “Tak ada instruksi seperti itu”.
l
Jika pengguna mengetikkan “keluar”, maka
program akan kembali ke halaman sebelumnya.
popa
ret
teks db ‘Hello People’, 0
Seperti kita lihat source code tersebut menjadi
lebih panjang dan tentu menjadi tidak efektif dalam
menulis program. Ini adalah prinsip dasar system calls
yang telah dibahas pada BAB II. Hanya saja ini dibuat
dengan bahasa Assembly. Prosedur yang dipanggil
adalah prosedur yang berasal dari kernel yang berada
pada alamat memory yang sudah ditentukan.
Program-program yang ingin berjalan di sistem
operasi ini harus memulai alamat awalnya pada
lokasi 32768. Hal itu terlihat pada penggalan source
code org 32768. Alamat 0-32767 adalah milik kernel
dan alamat 32768-65531 adalah milik program yang
sedang dijalankan pengguna. Hal ini dilakukan untuk
mempermudah manajemen memory dalam sistem
operasi ini.
12
Pada halaman desktop, jika pengguna menekan
tombol enter, maka sistem operasi akan menampilkan
daftar program dan file yang ada di disk dengan
prosedur os_file_selector. Dengan prosedur os_file_
selector pengguna dapat memilih program yang
Pembuatan Sistem Operasi Komputer Sederhana dengan ....
ingin dijalankan dengan menekan tombol enter dan
berpindah dengan tombol panah atas dan bawah.
Ketika berpindah antar daftar program, maka
background program yang dipilih menjadi hitam dan
warna tulisan menjadi putih. Hal ini tidak semudah
hanya memberikan background hitam dan warna
tulisan putih untuk program yang dipilih. Setiap
background harus di-reset ulang karena warna yang
ditinggalkan di layar komputer akan terus seperti itu
sehingga bisa meninggalkan jejak.
Contoh lainnya yang lebih mudah dipahami
adalah pada saat mouse digerakkan untuk memilih
menu pada halaman explorer. Sebelum menggambar
pointer pada lokasi koordinat mouse, maka
background harus digambar ulang terlebih dahulu
untuk menghapus gambar mouse pada lokasi
koordinat sebelumnya. Jika tidak, maka gambar
pointer pada lokasi sebelumnya akan tetap ada
sehingga meninggalkan jejak. Selanjutnya ketika
pengguna sudah selesai menjalankan programnya,
maka sistem operasi akan mengambil alih lagi. Ini
ditandai dengan instruksi “ret” yang menyatakan
untuk kembali ke program yang memanggil yaitu
sistem operasi.
Dari sudut pandang sistem operasi, programprogram yang dijalankan pengguna sebenarnya
adalah prosedur yang sedang dipanggil. Sedangkan
dari sudut pandang komputer, program sistem operasi
dan program-program lainnya yang berjalan di atas
komputer adalah satu program utuh yang terdiri dari
banyak prosedur. Semua proses yang terjadi karena
ada proses yang memanggilnya. Semua ini terjadi
seperti itu dari pertama komputer dihidupkan.
Untuk menginisialisasi atau mendeteksi
keberadaan mouse, terlebih dahulu dicek apakah
buffer keyboard dalam keadaan kosong, yang artinya
pengguna tidak sedang menekan keyboard. Jika
menekan, maka keyboard otomatis akan menerima
input dan memprosesnya, sedangkan proses
penginisialisasian mouse akan dihentikan. Jika tidak
menekan, maka mouse port akan diaktifkan dengan
mengirim nilai 0A8h ke port 64h. Selanjutnya kernel
akan mengaktifkan mouse dengan mengirim nilai
0D4h ke port 64h. Selanjutnya kernel mengecek lagi
buffer keyboard, untuk memastikan pengguna tidak
menekan keyboard. Jika menekan, maka keyboard
akan diaktifkan secara otomatis dan mouse akan
dimatikan. Jika tidak menekan, maka selanjutnya
akan dikirim nilai 0F4h ke port 60h agar mouse bisa
mengirimkan paket byte untuk setiap mouse event
yang terjadi. Kecepatan paket ini adalah 100 paket
Tabel 4 Data pengujian sistem operasi FROS pada beberapa PC
operasi FROS pada
beberapa
PC
per Tabel
detik4 Data
danpengujian
kernel sistem
membutuhkan
3 paket
mouse
untuk
mouse
yang terjadi. Jadi urutan
No.setiap
Merek
PC event Spesifikasi
No.
Merek PC
Spesifikasi
1. yangAcer
Processor
– Intel coreI3
32 bit
paket
dibutuhkan harus
kelipatan
3. Seperti
1.
Acer
Processor
– Intel coreI3
32 bit
RAM
–
2
GB
paket 1-3, paket 4-6, paketRAM
7-9, –paket
2 GB 10-12, ...paket
2.4 Data pengujian
Asus sistem operasi FROS
Processor
– PC
Intel coreI3 32 bit
Tabel
pada beberapa
2. paket
Asus22-25,...paket
Processor
–dan
Intelseterusnya.
coreI3 32 bit
19-21,
36-39
RAM
– 4 GB
RAM
– 4 GB
No.3. salah
Merek
PC
Spesifikasi
Harus
satu
dari
urutan
paket
di
atas.
Jika tidak
Lenovo
Processor – Intel coreI5
64 bit
1. 3. Acer Lenovo ProcessorProcessor
– Intel coreI3
32 bit coreI5 64 bit
– Intel
RAM
–
4
GB
maka sistem operasiRAM
tidak
akan
menangani
mouse
– 2 RAM
GB – 4 GB
Processor
–Intel
core 32
2. 4. dengan
Asus Acer baik Processor
– Intelterjadi
coreI3
32error
bit dualseperti
event
dan akan
4.
Acer
Processor
–Intel
dual core 32
RAM – 4 bit
GB
pergerakkan
yang bit
menjadi
kacau dan tidak
3.
Lenovo mouse Processor
– Intel– coreI5
RAM
1 GB64 bit
1 GB sedang diklik.
RAM – 4 RAM
GB – yang
bisa5.membedakan
tombol
mana
32 bit
4. 5. Acer Apple
ProcessorProcessor
–Intel dual–Intel
core 32coreI3
Apple
Processor
–Intel
coreI3 32 bit
Contoh
paket
yang bit
salah adalah
RAM – 4seperti
GB paket 8-10,
RAM
– 4 GB
RAM – 1dan
GB seterusnya yang bukan
paket 14-16, paket 23-25
5.
Apple
Processor –Intel coreI3 32 bit
merupakan kelipatanRAM
3. – 4 GB
Tabel 5 Paket byte pertama pada saat mouse event terjadi
Tabel 5 Paket byte pertama pada saat mouse event terjadi
X
Y saatXmouseSelalu
Middle
TabelY
event terjadi
Y5 Paket byteXpertama pada
Y
X
Selalu
Middle
Right Left
Right Left
Button Button Button
overflow
overflow
sign
sign
1
Button
Button Button
Y
X
Y
Xbit Selalu
bit Middle Right Left
bit 1 bit Button Button Button
overflow
overflow
sign
sign
Bit 7
Bit 6
Bit Bit Bit 3
Bit 2
Bit 1
Bit 0
Bit 7
Bit 6bit bitBit Bit Bit 3
Bit 2
Bit 1
Bit 0
5
4
Bit 7
Bit 6
Bit Bit
5 Bit 43 Bit 2 Bit 1 Bit 0
Tabel
5 Paket byte pertama
pada saat sign
mouse event
terjadi 1
overflow
overflow
sign
5
4
6 Paket
kedua
saat
mouseevent
eventterjadi
terjadi
TabelTabel
6 Paket
bytebyte
kedua
saat
mouse
Tabel
6 Paket
bytesaat
kedua
mouse
Tabel
6 Paket
byte kedua
mousesaat
event
terjadi event
terjadi
X movement
X movement
X movement
Tabel
7 Paket
byte ketiga
mousesaat
event
terjadi event
Tabel
7 Paket
bytesaat
ketiga
mouse
terjadi
TabelTabel
7 Paket
bytebyte
ketiga
saat
mouse
7 Paket
ketiga
saat
mouseevent
eventterjadi
terjadi
Y movement
Y movement
Y movement
Setelah menerima 3 paket byte, maka harus
segera memproses apa yang diperlukan saat mouse
event terjadi seperti menggambar pointer pada lokasi
koordinat yang ditunjukkan oleh mouse, melakukan
suatu proses pada saat mouse diklik, contohnya adalah
pada saat pengguna mengklik menu Baru, maka
kernel akan langsung menampilkan dialog box untuk
membuat file baru. Setelah memproses mouse event,
maka sistem operasi segera siap-siap menerima 3
paket berikutnya. Hal ini menjadi semakin rumit jika
3 paket pertama yang diterima belum menyelesaikan
prosesnya dan 3 paket berikutnya sudah datang
sehingga sistem operasi akan mengambil paket yang
tidak tepat atau salah.
Contohnya pada saat mengambil 3 paket
pertama, yaitu paket 1-3, lalu sistem operasi akan
menggambar pointer, tetapi ternyata sistem operasi
baru berhasil menggambar pointer pada saat paket ke
5 datang, sehingga sistem operasi akan menganggap
paket 5-7 adalah 3 paket berikutnya. Hal ini tentu
menjadi kacau karena paket 5-7 bukan merupakan
kelipatan 3. Informasi yang diambil akan menjadi
salah, seharusnya paket 5 menunjukkan perpindahan
koordinat x, tetapi diambil sebagai penentuan apakah
mouse sedang diklik atau tidak.
13
Kalbiscentia,Volume 2 No.1 Februari 2015
Sebenarnya ada beberapa metode yang dipakai
untuk menangani masalah ini oleh sistem operasi
modern saat ini. Tetapi, itu tidak dibahas disini karena
akan menjadi lebih kompleks dan rumit. Untuk sistem
operasi sederhana ini, proses yang dilakukan pada
saat mouse event terjadi tidaklah terlalu banyak dan
tidak memakan waktu, hanya beberapa milisecond.
Kecepatan paket data mouse adalah 100 paket
per detik yang setara dengan 10 milisecond untuk
setiap paket. Proses yang terjadi pada saat mouse
event terjadi tidak selama itu, sehingga kernel bisa
memastikan untuk menerima urutan paket dengan
benar. Pada sesaat sebelum menerima 3 paket ini,
kernel tetap akan mengecek apakah keyboard dalam
keadaan kosong atau tidak. Selanjutnya jika kosong
maka kernel akan mematikan keyboard terlebih
dahulu. Kemudian kembali mengaktifkan keyboard
untuk berjaga-jaga jika penggguna menekan
keyboard sewaktu-waktu. Jika ya, maka keyboard
akan diaktifkan dan mouse dimatikan.Jika tidak,
maka kernel akan mengambil 3 paket byte tersebut
kemudian memproses mouse event. Selanjutnya terus
seperti itu berulang-ulang sampai pengguna menekan
keyboard. Jika pengguna tidak menggerakkan mouse
atau mengklik, maka tidak ada paket yang dikirim.
Tetapi, tetap mengecek keadaan keyboard untuk
memastikan apakah pengguna menekan keyboard
sewaktu-waktu.
Untuk mengetahui informasi dari paket data
mouse yang dikirim, maka kernel perlu mengambil
bit 0, bit 1, bit 2 dari byte pertama untuk mengecek
tombol mana yang diklik. Jika bit 0 bernilai 1, maka
tombol kiri diklik, jika bit 1 bernilai 1, maka tombol
kanan diklik, jika bit 2 bernilai 1, maka tombol
tengah diklik. Bit 4 dan 5 dari byte pertama untuk
menentukan apakah mouse bergerak ke atas, ke
bawah, ke kiri atau ke kanan. Jika bit ke 4 bernilai 1,
maka mouse bergerak ke kiri, jika 0 maka bergerak
ke kanan. Jika bit 5 bernilai 1, maka mouse bergerak
ke bawah, jika 0 maka bergerak ke atas. Byte kedua
menunjukkan jarak perpindahan X, dan byte ketiga
menunjukkan jarak perpindahan Y.
Sebagai contoh, jika byte kedua bernilai 10 dan
bit ke-4 dari byte pertama bernilai 0, maka mouse telah
bergerak sejauh 10 pixel ke kanan. Posisi sebelumnya
lalu ditambahkan dengan 10 untuk mengetahui lokasi
koordinat mouse sekarang. Selanjutnya kernel akan
menggambar pointer pada lokasi yang ditunjukkan.
Jika byte kedua bernilai 246 dan bit ke-4 dari byte
pertama bernilai 1, maka perhitungannya adalah
256 dikurang 246 yang hasilnya 10. Karena bit
ke-5 bernilai 1, maka menandakan mouse telah
14
bergerak sejauh 10 pixel ke kiri. Posisi sebelumnya
lalu dikurangi dengan 10 untuk mengetahui lokasi
koordinat mouse sekarang. Selanjutnya kernel akan
menggambar pointer pada lokasi yang ditunjukkan.
Karena sistem operasi ini bersifat text-mode,
hanya mendukung 80 kolom dan 25 baris, maka jika
posisi mouse sudah melebihi 80, maka jarak pointer
dibatasi tak boleh lebih dari 80. Dan untuk alasan
kemudahan, maka jarak baris atau sumbu Y hanya
sampai 5 baris ke bawah.
Pointer yang digambar disini adalah gambar
love dengan kode ASCII 3. Pointer akan ditempatkan
pada baris dan kolom yang telah dihitung sebelumnya
dari perpindahan gerak mouse. Sebelum menggambar
pointer, maka harus me-reset kembali layout menu
untuk menghapus jejak yang ditinggalkan dari
gambar pointer sebelumnya. Sistem operasi juga
akan mengecek menu apa saja yang sudah diklik
dengan mencocokkan posisi koordinat mouse saat ini
dengan posisi menu. Jika sesuai dengan posisi, maka
proses selanjutnya bisa dilakukan.
Dari keterangan tentang mouse di atas, penaganan mouse dan keyboard yang hampir bersamaan
merupakan contoh dari salah satu manajemen proses
dan context-switching untuk berpindah antara mouse
dan keyboard.
Pada saat pengguna mengedit suatu file .TXT atau
.BAS, maka proses yang terjadi pada keyboard sangat
kompleks. Program catatan.bin tidak hanya sekedar
menerima input keyboard dan menampilkannya di
layar. Program catatan.bin akan mengecek dulu,
apakah tombol yang ditekan merupakan tombol
penting seperti F2 untuk mensimpan hasil editan
file, Esc untuk keluar dari program editor dan lainlain. Setelah itu akan mengecek apakah tombol yang
ditekan tombol backspace. Jika ya, maka program
catatan.bin akan mengecek apakah cursor berada
pada kolom pertama. Jika tidak, maka sistem akan
menghapus karakter sebelumnya. Tidak ada interrupt
atau instruksi dalam Assembly yang berguna untuk
menghapus karakter. Yang ada hanyalah, karakter
sebelumnya akan diganti dengan karakter null.
Lalu jika pengguna menekan tombol enter, maka
program akan memberikan karakter dengan bilangan
hexadesimal 0Dh untuk pindah baris berikutnya dan
karakter dengan bilangan hexadesimal 0Ah untuk
kembali ke kolom awal. Selama proses input keyboard
terjadi, selain menampilkan karakter yang di-input,
juga setiap karakter yang di-input akan langsung
disimpan ke dalam memory. Setiap alamat memory
ini akan bertambah atau berkurang sesuai dengan
Pembuatan Sistem Operasi Komputer Sederhana dengan ....
posisi cursor. Pada saat pengguna menekan tombol
panah kiri, maka cursor akan berpindah satu kolom
ke kiri. Pada saat menekan tombol panah kanan,
maka cursor akan berpindah satu kolom ke kanan.
Pada saat menekan tombol panah atas, maka cursor
akan berpindah satu baris ke atas. Pada saat menekan
tombol panah bawah, maka cursor akan berpindah
satu baris ke bawah. Jika sudah mencapai baris
terbawah pada saat menekan tombol panah bawah,
maka setiap baris karakter akan naik 1 baris karakter
ke atas agar menampilkan karakter di bagian bawah
yang tidak terlihat. Jika sudah mencapai baris teratas
pada saat menekan tombol panah atas, maka setiap
baris karakter akan turun 1 baris karakter ke bawah
agar menampilkan karakter di bagian atas yang tidak
terlihat. Untuk menampilkan karakter yang tidak
terlihat sebelumnya, maka program akan mengambil
data karakter yang tersimpan dalam memory.
Setelah pengguna selesai menulis datanya
pada text-editor, maka pengguna cukup menekan F2
untuk menyimpan file ke dalam disk. Pada saat file
disimpan ke dalam disk, maka program catatan.bin
akan membaca ulang FAT12 untuk mengecek sectorsector mana saja yang masih kosong untuk bisa
ditempati oleh data pengguna agar bisa disimpan di
dalam disk. FAT12 mempunyai pointer-pointer untuk
menunjuk sector-sector mana saja yang masih bisa
ditempati. Lalu program catatan.bin akan menyimpan
data file pengguna pada sector-sector yang ditunjuk
oleh FAT12. Kemudian program catatan akan menulis
nama file pengguna pada tabel yang ada dalam FAT12.
Untuk membaca data file pengguna ketika
pengguna membuka suatu file, program catatan akan
membaca tabel yang ada dalam FAT12 dan mencari
nama file yang dimaksud. Setelah program catatan
menemukan file yang dimaksud, maka program
akan membaca data dari sector-sector yang ditunjuk
oleh FAT12 dan menyimpannya dalam memory agar
selanjutnya bisa diproses oleh CPU.
Selain bisa menjalankan file .BIN, sistem
operasi juga bisa menjalankan file .BAS. Sistem
operasi sudah mempunyai interpreter-nya sendiri
untuk menerjemahkan setiap instruksi pada file .BAS.
Membuat interpreter, pada dasarnya mirip dengan
membuat shell, hanya saja lebih kompleks. Interpreter
akan mengecek setiap sintaks apakah termasuk
sintaks yang valid. Jika tidak sah, maka interpreter
akan berhenti memproses dan menampilkan pesan
error pada baris dimana terjadi error tersebut. Jika
sintaks adalah sebuah fungsi yang sudah dikenal,
maka interpreter akan langsung melakukan prosedur
yang terdapat dalam system calls. Jika sintaks adalah
variable, maka interpreter akan mengalokasikan
ruang memory untuk variable tersebut. Jika sintaks
termasuk keyword seperti IF, THEN, FOR, DO dan
lain-lain maka interpreter akan melakukan operasi
logika dan pengulangan.
Programmer dapat membuat program dengan
bahasa Assembly atau dengan bahasa BASIC dalam
sistem operasi FROS ini. Bahasa Assembly tidak bisa
ditulis dalam sistem operasi ini, melainkan harus
ditulis di sistem operasi lainnya karena sistem operasi
ini tidak menyediakan Assembler. Sedangkan bahasa
BASIC bisa ditulis dalam sistem operasi ini karena
sistem operasi ini sudah menyediakan interpreter
untuk bahasa BASIC. Tetapi, tidak semua instruksi
dalam bahasa BASIC bisa diterjemahkan.
Sistem operasi yang dihasilkan bersifat textmode, kecuali untuk aplikasi paint yang bersifat
graphic-mode. Dalam tampilan yang text-mode
ini, pengguna hanya bisa menggunakan alat input
keyboard, hanya operasi pemilihan menu pada
halaman explorer yang bisa menerima input mouse.
Interface yang dihasilkan sudah disesuaikan dengan
keadaan saat ini, sehingga pengguna akan cepat
memahaminya.
Petunjuk menu ataupun semua instruksi
memakai Bahasa Indonesia, sehingga pengguna
di Indonesia akan cepat memahami menggunakan
sistem operasi ini. Hanya satu program yang bisa
dijalankan sekali eksekusi, sehingga jika ingin
menjalankan program lainnya, program sebelumnya
harus dikeluarkan dulu. Program tersebut menempati
seluruh layar komputer. Program tak bisa di-resize,
di-minimize atau maximize, semuanya menempati
satu layar komputer. Pengguna dapat membuat file
baru, menghapus file, menyalin file dengan nama
berbeda, menamai ulang suatu file dan membuka
suatu file. Nama-nama file tidak boleh ada yang sama.
IV. SIMPULAN
Berdasarkan analisis dari penelitian pembuatan sistem
operasi ini, bisa diperoleh beberapa kesimpulan untuk
pembaca. Kesimpulan-kesimpulan tersebut adalah:
l
l
Dengan membuat program menggunakan
bahasa Assembly, semua instruksi yang terjadi
pada mesin komputer bisa dipahami dengan
sangat baik.
Program bootloader adalah program di luar
BIOS yang akan pertama kali dijalankan ketika
15
Kalbiscentia,Volume 2 No.1 Februari 2015
l
l
l
komputer dinyalakan untuk memanggil program
inti sistem operasi, yaitu kernel.
[4]. S. Abraham et. al. Operating System Concepts with
Program kernel adalah program inti dari sistem
operasi, yang akan melakukan semua operasi
penting sistem operasi seperti menjalankan
program pengguna, mengalokasikan memory
untuk program yang sedang berjalan, mendeteksi
input keyboard dan mouse, menampilkan output
ke layar monitor, memuat system calls ke dalam
memory, dan menjalankan tugas dari menumenu yang dipilih pengguna.
[5]. S. Abraham et. al. Operating System Concepts 8th
Program Shell yang terpisah dari program kernel
juga dapat menjalankan instruksi yang di-input
oleh pengguna seperti layaknya program kernel.
[8].
Interpreter BASIC yang berguna untuk
menerjemahkan
instruksi-instruksi
yang
terdapat pada bahasa BASIC dapat dijalankan
dalam sistem operasi ini, sehingga programmer
lain dapat menuliskan programnya untuk
dijalankan di sistem operasi ini.
[9].
JAVA 6th Edition. Asia: WILLEY. 2004. Hlm 6.
Edition. Asia:WILEY. 2010.Hlm 89-90.
[6]. S. Abraham Silberschatz et. al. Operating System
Concepts 6th Edition. Asia: WILLEY. 2005. Hlm 5661, 63, 95-97.
[7].
Operating System Tutorial. [Online]. Diakses 1
September 2013 dari http://www.tutorialspoint.com/
operating_system/pdf/index.pdf
Operating Systems Development. [Online]. Diakses 5
Mei 2013 dari http://www.brokenthorn.com/Resources/
OSDev3.html
Computer Tutorial. [Online]. Diakses 21 Juni 2013
dari http://www.coval.net/ teach/emu8086/helpfiles/
computer_structures.html
[10]. What is FAT12 ?. [Online]. Diakses 29 Oktober 2013
dari http://www.easeus.com/resource/drive/fat12.htm
[11]. What is FAT12 and its features ?. [Online]. Diakses
29 Oktober dari http://www.data-recovery-app.com/
datarecovery/fat12.html
V. DAFTAR RUJUKAN
[1].B.H.
Santoso.
Perancangan
[12]. An overview of FAT12. [Online]. Diakses 6 Juli 2013
Sistem
Operasi.
Yogyakarta: Andi .2005. Hlm 1-2.
[2].
Mike OS x086 Operating System. [Online]. Diakses 14
Januari 2013 dari http://mikeosberlios.de
[3]. A. C. Michael & S. Stanley. Beyond the Waterfall:
Sotware Development at Microsoft. 1995. [Online].
Diakses 30 Agustus 2013 dari http://dspace.mit.edu/
bitstream/handle/1721.1/2593/SWP-3844-33836288.
pdf
16
dari
http://students.cs.byu.edu/cs345ta/labs/fall03_
specs/lab_fat_help.htm
[13] Apple to Use Intel Microprocessors Beginning in
2006. [Online]. Diakses 7 Maret 2014 dari http://www.
apple.com/pr/library/2005/06/06Apple-to-Use-IntelMicroprocessor-Beginning-in-2006.htm
Download