Anda di halaman 1dari 16

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: rizqianzulkarnaen@hotmail.com
2)
Email: tedi.lesmana@kalbis.ac.id

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 perangkat keras komputer bekerja. Hal ini disebabkan


karena sistem operasi harus bisa menangani aplikasi-
Sistem operasi adalah seperangkat program yang aplikasi yang berjalan di atasnya dan menangani
mengelola sumber daya perangkat keras komputer, perangkat-perangkat keras komputer. Fungsi-
dan menyediakan layanan umum untuk aplikasi fungsi seperti eksekusi proses, alokasi memory, dan
perangkat lunak. Tanpa sistem operasi di zaman manajemen file merupakan fungsi-fungsi dasar yang
sekarang, pengguna tidak dapat menjalankan harus dimiliki oleh sebuah sistem operasi.
aplikasi pada komputer mereka, kecuali aplikasi Sistem operasi yang akan dibuat dalam penelitian
bootloader. Sistem operasi menyembunyikan segala ini adalah sistem operasi 16 bit dengan kemampuan
kerumitan yang terdapat pada perangkat keras dengan single-tasking. Sistem operasi ini merupakan
menyediakan fungsi-fungsi tingkat mesin untuk langkah awal yang bagus dalam memahami sistem
menghindari kerumitan pemrograman sehingga operasi yang lebih kompleks. Sistem operasi dibuat
memudahkan perancang program aplikasi [1]. berdasarkan sistem operasi Mike OS Project. Source
Untuk memahami cara mengembangkan sistem code yang terdapat pada Mike OS Project ini dibuat
operasi, maka tidak hanya diperlukan algoritma murni dengan bahasa Assembly dengan compiler
program yang baik, tetapi juga mengetahui bagaimana 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. Gambar 1 Model Waterfall
Tetapi, dalam penelitian penulis memilih media USB
karena lebih mudah mendapatkannya. Hasil akhir Tahap Analisis kebutuhan sistem dilakukan
dari penelitian berupa program bootloader yang akan dengan melihat lingkup sistem operasi yang akan
memanggil kernel utama yang memiliki fungsi-fungsi dikembangkan. Pada dasarnya sistem operasi ini
pokok antarmuka pengguna dengan sistem komputer. dimulai dari pembuatan program boot loader dan
Kernel yang dibuat memiliki beberapa fungsi pemanggilan kernel. Kernel sendiri dibuat dengan
untuk mengeksekusi program pengguna atau memiliki fungsi-fungsi dasar berupa system calls.
ditempatkan sebagai proses, mengalokasikan memori Untuk membuat kernel digunakan source program
untuk setiap proses sehingga tidak terjadi konflik dari MIKE OS Project.
pengalokasian antara proses-proses yang akan Mike OS Project adalah proyek non profit yang
dijalankan, mendeteksi input keyboard dan mouse, bertujuan untuk meneliti dan membagi pengetahuan
menampilkan output ke layar monitor, memuat tentang sistem operasi. Tahap penentuan kebutuhan
system calls ke dalam memory, dan menjalankan perangkat keras adalah penentuan platform yang
tugas dari menu-menu yang dipilih pengguna. Selain akan digunakan di mana sistem operasi ini berjalan
itu program kernel juga sudah memiliki kemampuan dan dikembangkan. Sistem operasi dikembangkan
untuk mendeteksi penekanan tombol keyboard dengan memilih target arsitektur x86 prosesor dengan
dan mouse, menampilkan output ke layar monitor, kompatibilitasnya. Pada arsitektur x86 terdapat dua
memuat beberapa system calls ke dalam memori mode pemrograman, yaitu real mode dan protected
dan menjalankan beberapa tugas dari menu-menu mode. Untuk mode real terdapat sistem interupsi
yang dapat dipilih oleh pengguna. Sistem operasi yang siap digunakan di mana sudah disediakan oleh
juga memiliki kemampuan shell sederhana untuk sistem BIOS, sedangkan untuk mode protected harus
mengeksekusi perintah-perintah pengguna. Kepada membuat system calls sendiri. Untuk itu peran source
sistem operasi ditambahkan fungsi interpreter bahasa code yang ada di Mike OS Project di sini digunakan.
BASIC untuk dapat mengeksekusi program-program Sebagai platform pengembangan digunakan
dengan ekstension .bas. Kemudian sistem operasi ini mesin virtual. Dengan mesin virtual pengembangan
akan diberi nama FROS. menjadi lebih mudah dan murah. Mesin virtual
memudah proses pengembangan yang membutuhkan
proses restart atau booting berulang, untuk itu
II. METODE PENELITIAN
penggunakan mesin virtual akan sangat efektif dan
Metode pengembangan sistem operasi yang dipilih efisien. Media sistem operasi sendiri menggunakan
yaitu metode pengembangan software Waterfall. virtual floppy disk dan USB. Pada dasarnya kedua
Metode Waterfall dipilih karena dari data yang didapat media tersebut adalah sama karena menggunakan
oleh penulis, yaitu IBM dan Microsoft menggunakan format struktur disk yang terdiri atas track dan
metode Waterfall ketika membuat sistem operasi sector. Teknik penempatan bootloader, image disk,
pertama mereka [3]. pembuatan sistem file dan peletakkan kernel akan

2
Pembuatan Sistem Operasi Komputer Sederhana dengan ....

menyesuaikan dengan struktur disk yang digunakan l Manajemen memory


sebagai media.
l Manajemen proses
Alur kerja program adalah sistem virtual akan
l Manajemen file
bekerja seperti pada mesin nyata komputer. Proses
startup akan mencari media boot untuk dicari program l Manajemen I/O
bootloader-nya. Program bootloader kemudian l Manajemen media penyimpanan
mencari kernel dan menempatkannya pada lokasi
memori tertentu. Setelah itu proses akan diserahkan l Networking
kepada kendali shell atau sistem interface yang l Sistem Proteksi
berinteraksi kepada pengguna. l Command Interpreter System
Keseluruhan proyek sistem operasi pada
Tetapi dalam sistem operasi 16 bit, seperti
dasarnya terdiri dari bagian-bagian modul yang
dalam penelitian ini hanya ada manajemen memory,
dieksekusi secara bergiliran sampai siap dialokasikan
manajemen file, manajemen media penyimpanan, dan
di memori untuk mengeksekusi setiap proses program
command interpreter system, karena sistem operasi ini
yang sudah dipanggil oleh kernel. System calls akan
bersifat single-tasking sehingga tidak membutuhkan
menerjemahkan setiap instruksi yang dieksekusi dari
manajemen proses dan tidak memerlukan driver
proses. Tahap pengembangan menggunakan assembly
untuk menangani proses input-output.
NASM yang bersifat open source, yang cukup banyak
digunakan di masyarakat. Proses pengembangan perlu Prinsip dasar sebuah program layak dikatakan
menerjemahkan source code dari Mike OS Project sebagai sebuah sistem operasi adalah jika program
ke dalam bentuk NASM. Sistem operasi diuji pada tersebut dapat melakukan manajemen perangkat
sistem virtual dan fisik menggunakan USB drive. keras dan dapat menjalankan program yang berjalan
di atas sistem operasi. Program yang berjalan di atas
sistem operasi pun tidak perlu melakukan manajemen
III. PEMBAHASAN perangkat keras karena semuanya sudah dikendalikan
oleh sistem operasi.
A. Dasar Pengembangan Sistem Operasi
2. Manajemen memory
1. Konsep Dasar Sistem Operasi
Manajemen memory mengacu pada manajemen
Sistem operasi adalah sebuah program yang
memory utama (main memory). Memory utama adalah
bekerja sebagai penghubung antara program
deretan word atau byte dimana setiap word atau
aplikasi dengan perangkat keras komputer dan
byte mempunyai alamat masing-masing. Memory
mengendalikan setiap eksekusi dari semua program
utama memberikan penempatan data secara cepat
komputer [4]. Secara teknis, sistem operasi adalah
yang bisa diakses secara langsung oleh CPU. Jadi,
perangkat lunak yang mengatur perangkat keras.
sebuah program yang akan dieksekusi, harus berada
Sistem operasilah yang mengatur alokasi sumber
di memory utama. Memory utama disebut juga RAM
daya memory, processor, device, dan data sehingga
(Random Access Memory). Sistem operasi melakukan
dapat mengeksekusi program yang dijalankan oleh
beberapa aktifitas berikut dalam manajemen memory:
pengguna [5].
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
Untuk prosesor 32 bit, ada proteksi memori
karena adanya protected-mode sehingga setiap proses
Gambar 2 Tampilan abstrak komponen- mempunyai alamat memorinya masing-masing
komponen dalam sistem komputer
sehingga tidak ada dua proses yang mempunyai alamat
Delapan komponen penting dari sistem operasi yang sama. Hal inilah yang menyebabkan prosesor 32
32 bit adalah sebagai berikut [6]: bit mempunyai kemampuan multi-tasking. Berbeda

3
Kalbiscentia,Volume 2 No.1 Februari 2015

dengan prosesor 32 bit, prosesor 16 bit yang hanya e. Terminated: Proses telah selesai mengeksekusi
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.

3. Manajemen File
Sebuah sistem berkas (file system) normalnya
membentuk direktori-direktori untuk memudahkan
pencarian. Direktori ini biasanya memiliki berkas- Gambar 3 Fase-fase proses
berkas (files) dan direktori-direktori lainnya. Sistem
operasi melakukan beberapa aktifitas berikut untuk
sebuah manajemen berkas: 6. Kernel
a. Menjaga setiap informasi, lokasi, dan isi suatu file Secara program, sistem operasi adalah sebuah
tetap pada tempatnya kernel, yaitu program yang terus berjalan selama
b. Memutuskan berkas mana yang akan komputer dijalankan. Kernel merupakan jantung dari
mendapatkan sumber daya, sehingga pengguna sistem operasi. Semua proses input dan output yang
dapat membuka dan menjalankan file yang berlangsung selama komputer berjalan diatur oleh
dipilih kernel, seperti pembacaan dan penulisan terhadap
disk, manajemen memory, dan penjadwalan program
c. Memberikan sumber daya kepada file yang aplikasi [6].
membutuhkan
Semua aplikasi yang berjalan di atas kernel harus
d. Mengambil sumber daya apabila sudah tidak mendapat izin dari kernel agar aplikasi tersebut dapat
membutuhkan berjalan di komputer. Contohnya, ketika seorang
pengguna membuka sebuah web browser, maka
4. Layanan-layanan dalam sistem operasi yang terjadi sebenarnya adalah kernel mengecek
Beberapa layanan yang biasa diberikan oleh input dari pengguna, bisa berupa input keyboard atau
sistem operasi adalah sebagai berikut: mouse, lalu kernel mengecek sumber daya yang ada
pada komputer untuk menentukan apakah program
a. Eksekusi program
ini boleh dijalankan, jika boleh maka kernel akan
b. Operasi input-output memanggil alamat instruksi awal yang terdapat pada
c. Manupulasi sistem file browser tersebut lalu browser akan berjalan.

d. Mendeteksi kesalahan 7. Shell


e. Alokasi sumber daya
Shell adalah aplikasi yang menghubungkan
f. Proteksi pengguna komputer dengan sistem operasi. Segala
perintah yang diberikan oleh pengguna komputer
5. Memahami proses akan melalui perantara shell, agar bisa diproses untuk
memberikan output yang diinginkan. Contoh sebuah
Proses dapat diartikan sebagai program yang
shell adalah Command Prompt pada Windows. Shell
sedang berjalan. Proses juga memiliki fase-fase
ada yang berada di dalam kernel, ada juga yang berada
keadaan, yaitu:
di luar kernel. Dalam sistem operasi ini, shell berada
a. New: Proses sedang diciptakan di luar kernel, tepatnya ada di program command.bin.
b. Ready: Proses sedang menunggu untuk
memberikan tugas ke prosesor 8. System Calls
c. Running: Instruksi proses sedang dijalankan System Calls, yang merupakan interface untuk
d. Waiting: Proses sedang menunggu sesuatu layanan sistem operasi, adalah sekumpulan fungsi
terjadi (seperti menunggu operasi I/O sampai yang ditawarkan sistem operasi untuk digunakan oleh
dengan selesai) aplikasi pengguna. Fungsi-fungsi ini menjelaskan

4
Pembuatan Sistem Operasi Komputer Sederhana dengan ....

perilaku dari mesin virtual. Programmer dapat operasi tersebut adalah Unix, maka akan memanggil
menulis program mereka untuk berjalan di atas mesin fungsi open() pada library POSIX (bahasa C memang
virtual ini tanpa perlu memperhatikan perangkat sengaja dibuat untuk membuat sistem operasi Unix,
keras di mana aplikasi tersebut sebenarnya berjalan. jadi banyak kesamaan sintaks), lalu jika sistem operasi
Hal ini selain mempermudah penulisan program tersebut adalah Windows, maka akan memanggil
juga memudahkan porting ke perangkat keras secara fungsi CreateFile() pada Win32 API. Dari system
langsung [6]. calls, maka selanjutnya kernel yang akan mengambil
Bila sebuah fungsi dalam system calls dipanggil, alih untuk melaksanakan tugas yang dimaksud.
maka system akan mengeksekusi instruksi trap, yaitu
interrupt yang dihasilkan oleh perangkat lunak, yang 9. Bootloader
akan mengubah mode operasi dari user mode ke kernel Bootloader adalah bagian sistem operasi yang
mode dan memindahkan kontrol ke sistem operasi. melakukan pengambil alihan tugas dari BIOS ke sistem
Sistem operasi akan menentukan call mana yang operasi, selanjutnya bootloader akan menjalankan
dipanggil dan memanggil kode kernel yang tepat. kernel sehingga tugas pun beralih kepada kernel. Pada
System calls sendiri merupakan kumpulan libray yang bootloader juga tersimpan informasi-informasi yang
sudah disediakan oleh sistem operasi. Pada UNIX, dibutuhkan oleh sistem operasi [7]. Ketika seorang
system calls ini dinamakan POSIX, sedangkan pada pengguna menekan tombol power pada komputer,
Windows dinamakan Win32 API. Pada sistem-sistem kabel yang terhubung ke tombol akan mengirim
operasi tersebut, system calls dibuat dengan bahasa sinyal elektronik ke motherboard, lalu motherboard
C atau C++. Tabel 1 adalah beberapa perbandingan akan meneruskan sinyal ke Power Supply. Sinyal
antara system calls POSIX dan Win32: elektronik tersebut mempunyai rangkaian data byte
[8]. BIOS sendiri berisi program yang sudah dibuat
Tabel Perbandingan system
Tabel1 1Perbandingan callsPOSIX
system calls POSIX dan
dan Win32
Win32
sebelumnya di pabrik dimana komputer tersebut
POSIX Win32 Deskripsi dibuat untuk melakukan beberapa tugas. BIOS
fork() CreateProcess() Menciptakan proses baru tersimpan di dalam ROM (Read Only Memory).
open() CreateFile() Membuka file untuk baca dan tulis
BIOS akan menjalankan beberapa tugas seperti
close() CloseHandle() Menutup file yang sudah dibuka
read() ReadFile() Membaca data dari file ke buffer
menciptakan Interrupt Vector Tabel, memberikan
write() WriteFile() Menulis data dari buffer ke file beberapa interrupt services, dan menjamin semua
mkdir() CreateDirectory() Membuat direktory baru perangkat keras dalam keadaan baik.
rmdir() RemoveDirectory() Menghapus directory yang kosong Selanjutnya BIOS akan mencari bootable device
unlink() DeleteFile() Menghapus file seperti floppy disk, harddisk, USB Removable Disk,
atau CD. Lalu BIOS akan mencari program bootloader
Tabel 2 Perangkat keras yang dibutuhkan
Selain memudahkan menulis program dengan pada device yang sesuai dengan pengaturan menu
adanya system calls, system calls
No. Jenis juga membuat
Spesifikasi boot di BIOS dan memuatnya di memory pada
1. Processor Intel Pentium
bahasa-bahasa program tingkat tinggi yang berjalan IV 2,6 alamat 0x07C0. Jika pada device tersebut tidak
GHz atau lebih
di atas sistem operasi menjadi portable. Sebagai ditemukan program bootloader, maka BIOS akan
2. RAM 2 GB atau lebih, 192
contoh, dalam bahasa programMB C, kita tahu bahwa
untuk mesin
memberikan pesan “No Operating System Found”
untuk membuka suatu file kita perlu
virtualmembuat objek lalu akan menghentikan sistem. Program bootloader
dari
3. kelas ofstream, misalnya output,
Motherboard - kemudian kita harus berada dalam keadaan real-mode yang masih
4. filePS/2
buka denganmouse atau -
fungsi open(). didukung prosesor 16 bit.
touchpad pada laptop
Gambaran jelasnya seperti berikut:
atau notebook Syarat sebuah program bisa menjadi program
Keyboard bootloader adalah program tersebut harus memuat
5. ofstream output; -
6. Monitor - instruksi awalnya di alamat 0x07C0, lalu program
output.open(“D:\berkas.txt”);
7. USB Removable Disk - tersebut maksimal berukuran 512 byte, dimana 2 byte
Pada penggalan source code di atas, kita akan terakhir harus bernilai 0AA55h. Program bootloader
membuka file berkas.txt
Tabel 3 Perangkat yang ada di drive D. Fungsi
lunak yang dibutuhkan akan melaksanakan beberapa tugas seperti me-
iniNo.berlaku
Jenis untuk bahasa C,Keterangan tak masalah sistem reset disk yang menjadi bootloader device tersebut,
1. Sistem Operasi
operasi yang digunakan, sintaks di atasSebagai sistem operasi
akan selalu membaca sector-sector pada disk tersebut, lalu
Windows XP awal untuk membuat
sama. Pada saat source codesistem itu di-compile,
operasi FROSmaka
ini akan mencari file kernel.bin untuk kemudian tugas
compiler
2. C akan
Oracle VirtualBox system calls
memanggil Sebagai mesinyang ada
virtual selanjutnya akan diberikan file kernel.bin tersebut,
di sistem operasi yang bersangkutan. penampung Jika sistem
Guest dan disitulah sistem operasi mulai berjalan.
Operating System
3. Notepad++ Sebagai text-editor 5
untuk bahasa
pemrograman Assembly
4. Netwide Assembler Sebagai Assembler
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] Meski sistem operasi ini juga bisa berjalan
pada media USB, itu disebabkan karena media USB
Gambar 4 adalah garis besar dari struktur tersebut nantinya akan diformat menjadi seperti floppy
perangkat keras komputer. CPU atau prosesor, RAM, disk dengan aplikasi flashnul. Dengan begitu, struktur
dan peralatan-peralatan lainnya seperti keyboard, pada USB tersebut akan memiliki struktur yang
mouse, monitor, dan harddisk, semuanya saling seolah-olah mirip dengan struktur floppy. Gambaran
terhubung dengan system bus yang terdapat pada struktur floppy sdapat dilihat pada Gambar 5:
motherboard.
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 Gambar 5 Struktur floppy [11]
controller. Disk controller akan membaca sector-
sector yang diminta CPU agar kemudian bisa di-load Floppy Disk 1,44 MB mempunyai rincian
ke memory. Pada dasarnnya CPU hanya akan bisa sebagai berikut:
memproses data yang berada pada memory, tetapi l Floppy Disk mempunyai 2 sisi, dan setiap sisi
karena memory bersifat volatile, yang artinya isi dinamakan head
memory akan hilang jika tak ada arus listrik, maka
komputer membutuhkan media penyimpanan kedua l Drive head bergerak di atas permukaan kedua
seperti harddisk, floppy disk, USB, dan sebagainya. sisi
Sedangkan pada monitor, sudah mempunyai graphic l Jarak drive head dengan permukaan sangat
controller yang akan menerjemahkan setiap byte data kecil, bisa 5000-10000 mikron
yang dikirim kepadanya. 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 l Setiap sector mempunyai 512 byte
diletakkan di media penyimpanan seperti harddisk, l Total ukuran floppy adalah 2 x 80 x 18 x 512 =
USB atau floppy yang menunjukkan lokasi dan data 1.472.560 byte atau setara 1,44 MB

6
Pembuatan Sistem Operasi Komputer Sederhana dengan ....

Ruang penempatan untuk file dalam floppy Nama-nama file dalam FAT12 membatasi 8
dibagi ke dalam unit-unit yang disebut sector. Dalam karakter untuk nama dan 3 karakter untuk ekstensi.
device yang lebih besar, seperti harddisk, sekumpulan Aturan-aturan untuk penamaan file dalam FAT12
sector membentuk cluster. Khusus untuk floppy adalah sebagai berikut:
disk, jumlah sector dalam setiap cluster hanya satu. l Nama file, directory, atau ekstensi tidak diakhiri
Dengan demikian, ukuran cluster untuk floppy disk dengan karakter null.
adalah 512 byte.
l Nama file dan directory selalu menempati 8
Struktur FAT12 pada floppy mempunyai 4 sector byte, jika nama file atau directory lebih pendek
utama, yaitu : boot sector, FAT tabels, root directory, dari 8 byte, maka sisa byte diisi dengan spasi
dan data area. (dengan kode ASCII 20). Ini juga berlaku untuk
3 karakter extensi file.
l Nama file, directory, atau ekstensi selalu huruf
besar. Bila pengguna membuat nama file
dengan huruf kecil, maka sistem operasi akan
mengubahnya menjadi besar.
Gambar 6 Struktur FAT12
l Nama directory juga bisa memiliki ekstensi.
Masing-masing penjelasan sector adalah l “FILE1” dan FILE1.TXT” adalah 2 nama yang
sebagai berikut [12]: berbeda.
l Boot sector terdapat pada sector pertama l File dan directory tidak boleh memiliki nama
(sector 1) pada disk. Boot sector mengandung yang sama, meskipun atributnya berbeda.
informasi spesifik tentang struktur dari sistem
file, termasuk berapa banyak salinan dari FAT
tabels yang ada, seberapa besar masing-masing B. TAHAP PENGEMBANGAN SISTEM
sector, berapa banyak sector yang ada dalam OPERASI
cluster dan lain-lain.
1. Analisis Tingkat Kebutuhan Sistem
l FAT tables mengandung pointer untuk setiap
cluster pada disk, dan mengindikasikan nomor Sistem operasi yang dikembangkan dalam
Tabel 1 Perbandingan system calls POSIX dan Win32
dari cluster berikutnya dalam sebuah rantai penelitian ini bertujuan untuk dapat berjalan pada
cluster, akhir dari rantai cluster, apakah cluster semua
POSIX komputer
Win32 dengan prosesorDeskripsi tipe x-86 atau x-64.
fork() CreateProcess() Menciptakan proses baru
dalam keadaan kosong atau dalam keadaaan
2.open()
Analisis KebutuhanMembuka
CreateFile() Perangkat Keras
file untuk baca dan tulis
error. FAT tables adalah satu-satunya metode
close() CloseHandle() Menutup file yang sudah dibuka
untuk menemukan lokasi file dan direktori read()Prosesor tipe x-86 atau
ReadFile() x-64data
Membaca umumnya
dari file ke berasal
buffer
dalam disk. Biasanya ada 2 salinan FAT tables, dari keluarga
write() Intel
WriteFile() dan AMD.
Menulis data dariprosesor
Untuk buffer ke fileyang
yang satu berguna untuk keamanan data dan bukan
mkdir() x-86 atau x-64, sistem
CreateDirectory() Membuatoperasi
direktoryini
baru tak akan
satu lagi untuk tujuan recover data. Pada floppy, bisa berjalan
rmdir() karena mempunyai
RemoveDirectory() Menghapusbahasa
directorymesin yang
yang kosong
karena hanya ada satu cluster untuk satu sector, berbeda.
unlink() DeleteFile() Menghapus file
maka ada FAT entry pointer untuk setiap sector
pada disk. Tabel
Tabel22Perangkat kerasyang
Perangkat keras yangdibutuhkan
dibutuhkan

l Root directory adalah directory utama pada disk. No. Jenis Spesifikasi
Tidak seperti directory lainnya yang berada 1. Processor Intel Pentium IV 2,6
GHz atau lebih
dalam data area, root directory mempunyai
2. RAM 2 GB atau lebih, 192
ukuran yang terbatas (untuk FAT12, 14 sector * MB untuk mesin
16 directory = 224 possible entries), angka 224 virtual
ini menunjukkan jumlah maksimum file dan 3. Motherboard -
directory yang dapat ditampung oleh floppy disk 4. PS/2 mouse atau -
touchpad pada laptop
dalam struktur FAT12. atau notebook
l Data Area mengandung data isi file dan 5. Keyboard -
directory dan mengisi sisa seluruh sector yang 6. Monitor -
7. USB Removable Disk -
ada di floppy.

Tabel 3 Perangkat lunak yang dibutuhkan 7


No. Jenis Keterangan
1. Sistem Operasi Sebagai sistem operasi
Windows XP awal untuk membuat
virtual
3. Motherboard -
4. PS/2 mouse atau -
Kalbiscentia,Volume 2 No.1 Februari
touchpad pada laptop 2015
atau notebook
5. Keyboard -
3.6. Analisis
Monitor
Tingkat Kebutuhan -
Perangkat untuk menuju halaman explorer, dan menu
7. Lunak
USB Removable Disk - untuk menuju halaman command atau shell.
b. Halaman telusur atau halaman explorer berguna
Tabel 3 Perangkat lunak yang dibutuhkan
Tabel 3 Perangkat lunak yang dibutuhkan untuk menampilkan daftar program dan berkas
No. Jenis Keterangan yang ada di komputer, dimana pengguna bisa
1. Sistem Operasi Sebagai sistem operasi membuka, mengedit, menghapus, menyalin,
Windows XP awal untuk membuat
atau menamai ulang suatu berkas atau aplikasi
sistem operasi FROS ini
2. Oracle VirtualBox Sebagai mesin virtual yang ada di komputer.
penampung Guest c. Halaman command atau halaman instruksi,
Operating System
dimana pengguna bisa menjalankan suatu
3. Notepad++ Sebagai text-editor
untuk bahasa perintah langsung ke komputer seperti melihat
pemrograman Assembly jam, melihat tanggal, mengedit, menghapus,
4. Netwide Assembler Sebagai Assembler dan menyalin suatu berkas. Halaman ini seperti
(NASM) Command Prompt yang terdapat pada sistem
5. Floppy Disc Image Sebagai floppy virtual
6. Disc Image File dari Sebagai file installer
operasi Windows atau Shell yang terdapat pada
Windows XP dari Windows XP sistem operasi Unix.
7. Flashnul Untuk memformat USB d. Halaman aplikasi, dimana aplikasi yang
menjadi seperti Floppy
Disc ditampilkan adalah aplikasi yang dipilih oleh
pengguna.
Untuk penangananan berkas, penulis memilih
4. Rancangan Arsitektur FAT12, karena ini adalah yang paling mudah dipahami,
Sistem operasi yang akan dibuat disini bersifat tetapi sedikit berbeda dengan MS-DOS yaitu hanya
single-tasking, yang artinya hanya bisa menjalankan bisa menampilkan daftar berkas atau aplikasi dan
satu program. Sebagai contoh, ketika pengguna tidak bisa membuat suatu directory. Sehingga, tidak
menjalankan sebuah text-editor, maka pengguna tidak boleh membuat, menyalin suatu berkas dengan nama
bisa menjalankan program lainnya, sehingga jika yang sama. Jika sudah ada nama yang sama, maka
pengguna ingin menjalankan program yang lainnya, sistem operasi akan memberi pesan untuk mengganti
maka dia harus menutup program sebelumnya. dengan nama lain. Ini dilakukan untuk kemudahan
Sistem operasi ini hanya menerima input keyboard dalam pembuatan sistem operasi FROS ini.
untuk menjalankan sebuah proses dan input mouse Ada 4 jenis extensi file yang didukung oleh
untuk beberapa proses seperti memilih menu di setiap sistem operasi ini, yaitu .bin, .bas, .txt, dan .pcx.
halaman explorer. Masing-masing mempunyai penjelasan sebagai
berikut:
5. Rincian Rancangan
a. .BIN, yaitu berisi kode biner murni atau kode
Sistem operasi ini bersifat text-mode, dimana bahasa mesin sehingga memungkinkan untuk
layar yang ditampilkan tidak bersifat grafis seperti langsung dijalankan oleh processor.
kebanyakan sistem operasi zaman sekarang. Meski b. .BAS, yaitu berisi source code bahasa
begitu, sistem operasi ini masih mendukung 16 pemrograman BASIC, sehingga programmer
warna dan khusus untuk aplikasi paint bersifat grafis lain dapat membuat suatu aplikasi dengan
yang mendukung 256 warna. Layar yang bersifat bahasa BASIC agar dapat berjalan di sistem
text-mode hanya mendukung satu jenis font huruf. operasi ini.
Sistem operasi jenis ini mirip dengan MS-DOS waktu
pertama kali muncul. Selain itu, layar dibagi menjadi c. .TXT , yaitu berisi data karakter ASCII, yang
80 kolom dan 25 baris, jadi dalam satu layar hanya merupakan data teks karakter seperti aplikasi
bisa menampilkan 80 x 25 karakter. Notepad yang terdapat pada Windows.
Ada 4 jenis utama halaman layar, yaitu: d. .PCX , yaitu berkas berisi data gambar dengan
a. Halaman desktop, yang berguna sebagai resolusi 320 x 200 dan mendukung 256 warna.
halaman awal layar dimana pengguna bisa Terdapat library yang memungkinkan program-
memilih menu, yaitu menu untuk memilih mer lain bisa membuat source code bahasa pem-
daftar program yang ingin dijalankan, menu graman Assembly menjadi lebih pendek. Selain itu

8
Pembuatan Sistem Operasi Komputer Sederhana dengan ....

programmer lain juga dapat membuat suatu aplika- dengan byte 0 dan 2 byte terakhir adalah 0AA55h. Ini
si dengan bahasa BASIC sehingga aplikasinya dapat terlihat pada baris program:
berjalan dalam sistem operasi ini. Terakhir, pengguna times 510-($-$$) db 0
bisa memilih warna sesuai keinginan pengguna untuk
dw 0AA55h
layar halaman dekstop dimana default-nya adalah hi-
jau muda.
b. Membuat Kernel
6. Tahapan Coding Untuk membuat program kernel ini, penulis
a. Membuat Bootloader membutuhkan beberapa file yang berisi source code
bahasa Assembly. File-file tersebut adalah kernel.asm,
Untuk membuat bootloader, penulis menuliskan
basic.asm, disk.asm, keyboard.asm, math.asm, misc.
programnya di Notepad++, lalu merubahnya menjadi
asm, ports.asm, sound.asm, string.asm, dan screen.
file biner dengan NASM. Setelah source code program
asm. Selain file kernel.asm, simpan file-file lainnya
dibuat dengan nama file boot.asm, simpan file tersebut
dalam directory features.
di folder instalasi NASM. Default-nya adalah C:\
Program Files\Nasm. Lalu ketikkan perintah “nasm Untuk menghasilkan file kernel.bin, maka
boot.asm –o boot.bin” untuk merubahnya menjadi file penulis perlu meng-compile file kernel.asm. Caranya
boot.bin di Command Prompt. adalah membuka file nasm.bat dan ketikkan “nasm
kernel.asm –o kernel.bin”. File-file yang terdapat
Tahap selanjutnya adalah menyimpan file boot.
dalam directory features sudah di-include dalam file
bin di Floppy Disc Image. Penulis tidak bisa menyalin
kernel.asm. Jika tidak ada pesan yang muncul, maka
begitu saja karena file boot.bin harus diletakkan di
proses compile sukses. Setelah itu cukup salin file
sector pertama floppy disk. Maka langkah yang harus
kernel.bin ke floppy virtual.
dilakukan adalah membuka Command Prompt dan
mengetikkan perintah-perintah berikut: Program kernel yang merupakan program
inti dari sistem operasi akan melakukan banyak
debug = untuk memanggil program debug.com
tugas penting seperti mengeksekusi sebuah
yang terdapat pada Windows.
proses, mengalokasi memory untuk program yang
n boot.bin = untuk memanggil file boot.bin yang berjalan, membuat, menyalin, dan menghapus
akan diproses. file, menerjemahkan instruksi bahasa BASIC, dan
l 0 = untuk memuat isi file boot.bin ke dalam memberikan pesan jika ada suatu kesalahn.
memory.
c. Membuat Shell, Interpreter Basic, Paint,
w 0 0 0 1 = untuk menyalin file boot.bin ke dan Editor
sector pertama floppy virtual.
Untuk membuat program Shell, Interpreter
Instruksi awal dalam file boot.asm adalah
BASIC, Paint, Editor, dan lain-lain cukup dengan
memastikan program memulai alamat awal memory
meng-compile file-file paint.asm, editor.asm, dan
di 07C0h. Ini bisa dilihat pada bagian kode:
command.asm tersebut dengan program NASM. File
mov ax, 07C0h basic.asm sudah di-include dalam kernel.asm. Proses
mov ds, ax compile sama dengan meng-compile file kernel.asm.
Setelah itu prosedur 12hts akan membaca
cluster-cluster untuk bisa mencari lokasi file kernel. d. Pengujian Sistem
bin. Jumlah sector yang pertama dibaca adalah 14
Selama tahap pembuatan coding, banyak
sector. Terlihat pada baris program
pengujian yang terjadi untuk mengecek error dan
mov ah, 2
mengira-ngira bagian mana yang salah jika terjadi
mov al, 14 error run-time. Dalam level ini, tidak ada debugger
Setelah file kernel.bin ditemukan, langkah untuk mengecek error pada saat run-time. Karena
selanjutnya adalah memuat file kernel.bin ke alamat penulis membuat pada VirtualBox, maka cukup me-
memory 2000h yang merupakan alamat awal file restart VirtualBox tersebut dengan memilih menu
kernel.bin. Untuk memastikan ukuran program restart. Jika terjadi error, maka penulis kembali ke
bootloader sebesar 512 byte dan 2 byte terakhir sistem operasi Windows XP pada VirtualBox dan
adalah 0AA55h, maka sisa dari program akan diisi 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 prinsip-
prinsip dasar sistem operasi.
Hal-hal yang diuji adalah sebagai berikut:
l Apakah sistem operasi ini sudah memenuhi
prinsip-prinsip dasar sistem operasi dimana
Gambar 7 Tampilan awal sistem operasi sistem operasi bisa menjalankan program yang
FROS pada VirtualBox
dijalankan pengguna dan program tersebut tidak
perlu menangani perangkat keras komputer
Kesalahan pada saat run-time yang sering secara langsung?
penulis temukan adalah kesalahan dari penempatan
instruksi atau data program pada alamat memory. Hal l Apakah pengguna cepat mengenali cara
ini memang sangat membutuhkan ketelitian karena menggunakan sistem operasi ini?
jika satu byte saja salah, maka program tidak bisa l Apakah sistem operasi ini dapat berjalan di
berjalan semestinya atau bahkan crash. semua PC dengan jenis prosesor x-86 dan x-64?
Untuk penanganan mouse dan efek suara, penulis Setelah ditulis beberapa program dengan bahasa
harus langsung mengujinya di komputer karena Assembly dan bahasa BASIC, program-program
sistem operasi Windows tidak akan mengizinkan tersebut dapat berjalan di sistem operasi FROS ini
untuk memakai port mouse dan speaker. Jika run- dengan memanfaatkan system calls yang terdapat di
time error terjadi pada saat pengujian langsung di dalam sistem operasi FROS ini. Jika instruksi dalam
komputer, maka penulis harus segera mematikan bahasa BASIC tidak dikenal, maka akan muncul pesan
komputer karena pada saat itu terjadi exception pada kesalahan. Sedangkan, jika programmer ingin menulis
prosesor dan tak akan mungkin diteruskan. program bahasa Assembly tanpa memanfaatkan
Untuk menguji sistem operasi agar bisa di-boot system calls yang ada pada sistem operasi FROS ini,
dari USB dan mengujinya langsung di komputer, maka jika terdapat kesalahan pengalamatan memory, maka
penulis membutuhkan software flashnul. Floppy Disc program tidak akan berjalan dengan semestinya.
Image yang telah berisi program sistem operasi ini Dapat disimpulkan sistem operasi FROS ini sudah
disalin ke direktori flashnul-1rc1. Selanjutnya buka memenuhi prinsip-prinsip dasar sistem operarsi
Command Prompt dan menuju direktori flashnul sehingga layak dikatakan sebagai sistem operasi
tersebut. Ketikkan “flashnul –p” untuk mengetahui karena program pengguna tak perlu menangani
nomor drive USB. Kita anggap Floppy Disc Image perangkat keras secara langsung.
kita mempunyai nama floppy.img, dan nomor drive Karena tampilan sistem operasi ini menyesuaikan
USB kita adalah 1, maka langkah selanjutnya adalah dengan tampilan-tampilan sistem operasi yang biasa
ketikkan “flashnul 1 –L floppy.img”. Setelah muncul dilihat pengguna pada saat ini seperti Windows
instruksi untuk mengetik “yes”, maka kita ketikkan dan Linux, maka pengguna cepat memahami cara
“yes”, kemudian tekan enter. Jika tidak ada error menggunakan sistem operasi ini, meski sistem operasi
yang muncul, maka kita siap untuk mem-boot sistem ini bersifat text-mode. Tombol enter dan tombol
operasi dari USB. panah yang paling banyak digunakan dalam sistem
Software flashnul ini akan memformat USB operasi ini, maka pengguna tidak kesulitan untuk
sehingga setiap sector besarnya 512 byte, layaknya cepat menghapal dan memahaminya. Selain itu, ada
floppy disk. Ini bisa dilihat dari besarnya ukuran petunjuk di menu bantuan pada halaman explorer
USB tersebut, dari yang besar awalnya adalah 2 GB, untuk membantu pengguna memahami sistem operasi
setelah diformat dengan flashnul menjadi hanya 1,38 FROS ini.
MB. Hal ini diperlukan karena batasan-batasan dari Sistem operasi FROS ini telah diuji pada
sistem operasi yang kita buat, dimana sistem operasi beberapa PC dengan jenis prosesor x-86 dan x-64,
ini menggunakan FAT12. seperti berikut:

10
Pembuatan Sistem Operasi Komputer Sederhana dengan ....

Tabel44Data
Data pengujian
pengujian sistem
sistemoperasi FROS pada beberapa PC PC
Tabel operasi FROS pada beberapa untuk memuat isi file ke dalam memory, os_create_
No. Merek PC Spesifikasi file yang berguna untuk membuat file baru, os_
1. Acer Processor – Intel coreI3 32 bit remove_file yang berguna untuk menghapus file dan
RAM – 2 GB masih banyak yang lainnya.
2. Asus Processor – Intel coreI3 32 bit
RAM – 4 GB Prosedur-prosedur tersebut disimpan di file-
3. Lenovo Processor – Intel coreI5 64 bit file terpisah yang berada di directory feature. Di
RAM – 4 GB akhir bagian file kernel.asm penulis menambahkan
4. Acer Processor –Intel dual core 32 directive %include agar prosedur-prosedur tersebut
bit
RAM – 1 GB bisa dikenali oleh assembler NASM.
5. Apple Processor –Intel coreI3 32 bit Pada awal bagian file kernel.asm terdapat
RAM – 4 GB penggalan source code seperti jmp os_main, jmp os_
print_string, jmp os_move_cursor dan seterusnya.
Diharapkan sistem operasi ini dapat berjalan
Tabel 5 Paket byte pertama pada saat mouse event terjadi Instruksi-instruksi tersebut tak akan melakukan
pada jenis-jenis PC yang ada pada tahun 1980-an,
Y X Y X Selalu Middle Right apa-apa,
Left tetapi NASM akan mencatat setiap alamat
tetapi karena
overflow penulissign
overflow sulitsign
mendapatkannya,
1 Button maka
Button dari
Button
instruksi tersebut pada saat file kernel.asm di-
hanya data yang terdapat bit pada
bit tabel 3.3 yang penulis
compilasi menjadi kernel.bin. Alamat-alamat dari
dapat.
Bit 7 Untuk Bit 6jenis Bit komputer
Bit Bit Apple,
3 sebenarnya
Bit 2 Bit 1 Bit 0
prosesor yang digunakan 5 4 Apple bukan prosesor instruksi tersebut tidak lain adalah alamat masing-
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
Tabel 62006. Prosesor
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,
sekarang Apple
Tabel 7 Paket sudah
byte ketiga membuat
saat mouse komputer dengan yang ingin membuat program yang akan berjalan
event terjadi
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 :
e. Analisis Sistem Operasi
BITS 16
Setelah program bootloader berhasil
ORG 32768
menemukan lokasi sector program kernel, maka
program kernel akan di-load di memory pada alamat %INCLUDE ‘mikedev.inc’
2000h:000h, dan akan menempati 32 KB, lalu 32 KB
sisanya digunakan untuk program-program lainnya start:
yang dijalankan oleh pengguna. Total memory yang mov si, teks
digunakan adalah 64 KB karena sistem operasi ini
call os_print_string
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 mov ah,0
dan menulis isi file. Konsekuensi dari kecilnya jumlah int 16h
memory ini adalah ukuran program kernel tidak boleh
melebihi 24 KB, dan ukuran program external atau
ret
program pengguna tidak boleh lebih dari 32 KB.
Seperti disebutkan pada BAB II, pembatasan jumlah
memory yang dipakai ini untuk mempermudah teks db ‘Hello People’, 0
pembuatan sistem operasi. Dengan source code ini, akan bisa menampilkan
Dalam program kernel ini terdapat banyak kalimat “Hello People”. Sebagaimana kita lihat,
prosedur yang berguna untuk mempersingkat source prosedur os_print_string belum didefinisikan sama
code program. Prosedur-prosedur itu antara lain os_ sekali, tetapi program ini tetap bisa berjalan untuk
print_string yang berguna untuk mencetak string, menampilkan kalimat “Hello People”. Ini disebabkan
os_move_cursor yang berguna untuk memindahkan karena pada file mikedev.inc berisi alamat-alamat
cursor, os_speaker_tone yang berguna untuk instruksi dari prosedur-prosedur yang ada pada file
menyalakan speaker, os_load_file yang berguna kernel.bin. Alamat-alamat tersebut adalah alamat

11
Kalbiscentia,Volume 2 No.1 Februari 2015

yang berada di memory. Dengan begitu, program Setelah itu, pastikan segment berada pada lokasi
pengguna akan dapat memanggil prosedur-prosedur 2000h yang menjadi lokasi memory sistem operasi ini
tersebut. berjalan. Kemudian sistem operasi akan menampilkan
Jika ingin membuat program tanpa prosedur splash screen. File rizky.pcx merupakan file gambar
yang ada di kernel, maka source code yang harus yang terdapat dalam disk dan digunakan untuk splash
dibuat adalah seperti ini : screen. Prosedur splash_screen akan membaca byte
data pada file rizky.pcx dan akan menampilkan
BITS 16
di video memory. Dalam prosedur splash_screen
ORG 32768
tersebut, penulis menggunakan interrupt timer untuk
menunda proses selama 4 detik sehingga gambar
start: yang ditampilkan hanya berlangsung 4 detik.
mov si, teks Halaman command adalah program terpisah
call os_print_string yang berada pada file command.bin. Halaman
command.bin akan di-load ke memory dengan
mov ah,0
prosedur os_load_file. Setelah di-load ke memory,
int 16h baru progam bisa dieksekusi oleh CPU.
Pada halaman command, pengguna bisa
ret mengetikkan perintah-perintah yang sudah disediakan
sistem operasi agar bisa dieksekusi oleh sistem
os_print_string:
operasi. Misalnya pengguna mengetikkan “jam”,
maka program command.bin akan menampilkan
pusha
waktu jam saat ini. Perintah ataupun segala macam
mov ah,0Eh instruksi dalam sistem operasi ini tidak bersifat case
.ulang: sensitive, yang berarti tidak membedakan huruf besar
lodsb dan kecil karena segala macam instruksi akan diubah
menjadi uppercase sebelum dieksekusi. Ilustrinya
cmp al,0
seperti berikut:
je .done
l Misal, pengguna mengetikkan “jam”, “Jam”,
int 10h
ataupun “JAM” pada halaman command.
jmp .ulang
l Lalu program akan merubah “jam”, “Jam”,
.done:
ataupun “JAM” menjadi “JAM” dengan
popa prosedur os_string_uppercase.
ret
l Setelah terbentuk instruksi “JAM”, program
akan membandingkan apakah perintah termasuk
teks db ‘Hello People’, 0 dari salah satu daftar perintah yang disediakan
dengan prosedur os_string_compare.
Seperti kita lihat source code tersebut menjadi
lebih panjang dan tentu menjadi tidak efektif dalam l Jika termasuk dari salah satu daftar perintah
menulis program. Ini adalah prinsip dasar system calls maka program akan melakukan tugas sesuai
yang telah dibahas pada BAB II. Hanya saja ini dibuat daftar perintah tersebut.
dengan bahasa Assembly. Prosedur yang dipanggil l Jika tidak termasuk dari salah satu daftar
adalah prosedur yang berasal dari kernel yang berada perintah, maka program akan menampilkan
pada alamat memory yang sudah ditentukan. kalimat “Tak ada instruksi seperti itu”.
Program-program yang ingin berjalan di sistem
l Jika pengguna mengetikkan “keluar”, maka
operasi ini harus memulai alamat awalnya pada
program akan kembali ke halaman sebelumnya.
lokasi 32768. Hal itu terlihat pada penggalan source
code org 32768. Alamat 0-32767 adalah milik kernel Pada halaman desktop, jika pengguna menekan
dan alamat 32768-65531 adalah milik program yang tombol enter, maka sistem operasi akan menampilkan
sedang dijalankan pengguna. Hal ini dilakukan untuk daftar program dan file yang ada di disk dengan
mempermudah manajemen memory dalam sistem prosedur os_file_selector. Dengan prosedur os_file_
operasi ini. selector pengguna dapat memilih program yang

12
Pembuatan Sistem Operasi Komputer Sederhana dengan ....

Tabel 4 Data pengujian sistem operasi FROS pada beberapa PC


ingin dijalankan dengan menekan tombol enter dan per Tabel
detik4 Data kernel sistem
danpengujian membutuhkan
operasi FROS pada3 paket mouse
beberapa PC
berpindah dengan tombol panah atas dan bawah. untukNo.setiap MerekmousePC event Spesifikasi
yang terjadi. Jadi urutan
No. Merek PC Spesifikasi
paket1. yangAcer dibutuhkan harus Processor – Intel coreI3
kelipatan 32 bit
3. Seperti
Ketika berpindah antar daftar program, maka 1. Acer Processor – Intel coreI3 32 bit
paket 1-3, paket 4-6, paketRAM RAM – 2
7-9, –paket GB
background program yang dipilih menjadi hitam dan 2 GB 10-12, ...paket
Asus sistem operasi FROS
2.4 Data pengujian
Tabel Processor – PC
pada beberapa Intel coreI3 32 bit
warna tulisan menjadi putih. Hal ini tidak semudah 19-21,
2. paket Asus22-25,...paket Processor
RAM 36-39
– 4 GB
–dan
Intelseterusnya.
coreI3 32 bit
Harus
No.3. salah
Merek satu
PC dari urutan
SpesifikasiRAMpaket– 4 GB
di atas. Jika tidak
hanya memberikan background hitam dan warna Lenovo
1. 3. Acer Lenovo ProcessorProcessor
Processor – Intel coreI5
– Intel coreI3– Intel
64 bit
32 bit coreI5 64 bit
tulisan putih untuk program yang dipilih. Setiap maka sistem operasiRAM tidak akan
RAM
– 2 RAM –
GB – 4 GB 4menangani
GB mouse
Asus Acer baik Processor
2. 4. dengan
event dan akan Processor
– Intelterjadi
coreI3–Intel
bit dualseperti
32error core 32
background harus di-reset ulang karena warna yang 4. Acer RAM – 4 bit
Processor
GB
–Intel dual core 32
ditinggalkan di layar komputer akan terus seperti itu 3. Lenovo mouse Processor
pergerakkan yang bit menjadi kacau dan tidak
– Intel– coreI5
RAM 1 GB64 bit
bisa5.membedakan RAM – 4 RAM
tombol GB – yang
mana 1 GB sedang diklik.
sehingga bisa meninggalkan jejak. 4. 5. Acer Apple ProcessorProcessor
–Intel dual–Intel
core 32coreI3 32 bit
Contoh Apple
paket yang bit Processor
salah adalah –Intel coreI3 32 bit
Contoh lainnya yang lebih mudah dipahami RAM – 4seperti
GB paket 8-10,
RAM – 4 GB
adalah pada saat mouse digerakkan untuk memilih paket 14-16, paket 23-25 RAM – 1dan GB seterusnya yang bukan
5. Apple Processor –Intel coreI3 32 bit
menu pada halaman explorer. Sebelum menggambar 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
pointer pada lokasi koordinat mouse, maka TabelY X Y saatXmouseSelalu Middle Right Left
Y5 Paket byteXpertama pada
Y X event terjadi
Selalu Middle Right Left
background harus digambar ulang terlebih dahulu overflow
Tabel overflow
5 Paket byte pertama pada saat sign sign
mouse event Button Button Button
terjadi 1
overflow overflow sign sign
Xbit Selalu 1 Button Button Button
Y X Y bit Middle Right Left
untuk menghapus gambar mouse pada lokasi overflow overflow sign bit 1 bit Button Button Button
sign
Bit 7 Bit 6 Bit Bit Bit 3 Bit 2 Bit 1 Bit 0
koordinat sebelumnya. Jika tidak, maka gambar Bit 7 Bit 6bit bitBit Bit Bit 3 Bit 2 Bit 1 Bit 0
Bit 7 Bit 6 Bit Bit5 4
pointer pada lokasi sebelumnya akan tetap ada 5 Bit 43 Bit 2 Bit 1 Bit 0
5 4
sehingga meninggalkan jejak. Selanjutnya ketika
TabelTabel
6 Paket bytebyte
6 Paket kedua saat
kedua mouse
saat mouseevent
eventterjadi
terjadi
pengguna sudah selesai menjalankan programnya, Tabel
Tabel 6 Paket
6 Paket bytesaat
byte kedua kedua
mousesaat mouse
event terjadi event terjadi
maka sistem operasi akan mengambil alih lagi. Ini X movement
X movement
X movement
ditandai dengan instruksi “ret” yang menyatakan
Tabel
Tabel 7 Paket
7 Paket bytesaat
byte ketiga ketiga
mousesaat mouse
event terjadi event terjadi
untuk kembali ke program yang memanggil yaitu TabelTabel
7 Paket bytebyte
7 Paket ketiga saat
ketiga mouse
saat mouseevent
eventterjadi
terjadi
Y movement
sistem operasi. Y movement
Y movement
Dari sudut pandang sistem operasi, program-
program yang dijalankan pengguna sebenarnya
adalah prosedur yang sedang dipanggil. Sedangkan Setelah menerima 3 paket byte, maka harus
dari sudut pandang komputer, program sistem operasi segera memproses apa yang diperlukan saat mouse
dan program-program lainnya yang berjalan di atas event terjadi seperti menggambar pointer pada lokasi
komputer adalah satu program utuh yang terdiri dari koordinat yang ditunjukkan oleh mouse, melakukan
banyak prosedur. Semua proses yang terjadi karena suatu proses pada saat mouse diklik, contohnya adalah
ada proses yang memanggilnya. Semua ini terjadi pada saat pengguna mengklik menu Baru, maka
seperti itu dari pertama komputer dihidupkan. kernel akan langsung menampilkan dialog box untuk
Untuk menginisialisasi atau mendeteksi membuat file baru. Setelah memproses mouse event,
keberadaan mouse, terlebih dahulu dicek apakah maka sistem operasi segera siap-siap menerima 3
buffer keyboard dalam keadaan kosong, yang artinya paket berikutnya. Hal ini menjadi semakin rumit jika
pengguna tidak sedang menekan keyboard. Jika 3 paket pertama yang diterima belum menyelesaikan
menekan, maka keyboard otomatis akan menerima prosesnya dan 3 paket berikutnya sudah datang
input dan memprosesnya, sedangkan proses sehingga sistem operasi akan mengambil paket yang
penginisialisasian mouse akan dihentikan. Jika tidak tidak tepat atau salah.
menekan, maka mouse port akan diaktifkan dengan Contohnya pada saat mengambil 3 paket
mengirim nilai 0A8h ke port 64h. Selanjutnya kernel pertama, yaitu paket 1-3, lalu sistem operasi akan
akan mengaktifkan mouse dengan mengirim nilai menggambar pointer, tetapi ternyata sistem operasi
0D4h ke port 64h. Selanjutnya kernel mengecek lagi baru berhasil menggambar pointer pada saat paket ke
buffer keyboard, untuk memastikan pengguna tidak 5 datang, sehingga sistem operasi akan menganggap
menekan keyboard. Jika menekan, maka keyboard paket 5-7 adalah 3 paket berikutnya. Hal ini tentu
akan diaktifkan secara otomatis dan mouse akan menjadi kacau karena paket 5-7 bukan merupakan
dimatikan. Jika tidak menekan, maka selanjutnya kelipatan 3. Informasi yang diambil akan menjadi
akan dikirim nilai 0F4h ke port 60h agar mouse bisa salah, seharusnya paket 5 menunjukkan perpindahan
mengirimkan paket byte untuk setiap mouse event koordinat x, tetapi diambil sebagai penentuan apakah
yang terjadi. Kecepatan paket ini adalah 100 paket mouse sedang diklik atau tidak.

13
Kalbiscentia,Volume 2 No.1 Februari 2015

Sebenarnya ada beberapa metode yang dipakai bergerak sejauh 10 pixel ke kiri. Posisi sebelumnya
untuk menangani masalah ini oleh sistem operasi lalu dikurangi dengan 10 untuk mengetahui lokasi
modern saat ini. Tetapi, itu tidak dibahas disini karena koordinat mouse sekarang. Selanjutnya kernel akan
akan menjadi lebih kompleks dan rumit. Untuk sistem menggambar pointer pada lokasi yang ditunjukkan.
operasi sederhana ini, proses yang dilakukan pada Karena sistem operasi ini bersifat text-mode,
saat mouse event terjadi tidaklah terlalu banyak dan hanya mendukung 80 kolom dan 25 baris, maka jika
tidak memakan waktu, hanya beberapa milisecond. posisi mouse sudah melebihi 80, maka jarak pointer
Kecepatan paket data mouse adalah 100 paket dibatasi tak boleh lebih dari 80. Dan untuk alasan
per detik yang setara dengan 10 milisecond untuk kemudahan, maka jarak baris atau sumbu Y hanya
setiap paket. Proses yang terjadi pada saat mouse sampai 5 baris ke bawah.
event terjadi tidak selama itu, sehingga kernel bisa
memastikan untuk menerima urutan paket dengan Pointer yang digambar disini adalah gambar
benar. Pada sesaat sebelum menerima 3 paket ini, love dengan kode ASCII 3. Pointer akan ditempatkan
kernel tetap akan mengecek apakah keyboard dalam pada baris dan kolom yang telah dihitung sebelumnya
keadaan kosong atau tidak. Selanjutnya jika kosong dari perpindahan gerak mouse. Sebelum menggambar
maka kernel akan mematikan keyboard terlebih pointer, maka harus me-reset kembali layout menu
dahulu. Kemudian kembali mengaktifkan keyboard untuk menghapus jejak yang ditinggalkan dari
untuk berjaga-jaga jika penggguna menekan gambar pointer sebelumnya. Sistem operasi juga
keyboard sewaktu-waktu. Jika ya, maka keyboard akan mengecek menu apa saja yang sudah diklik
akan diaktifkan dan mouse dimatikan.Jika tidak, dengan mencocokkan posisi koordinat mouse saat ini
maka kernel akan mengambil 3 paket byte tersebut dengan posisi menu. Jika sesuai dengan posisi, maka
kemudian memproses mouse event. Selanjutnya terus proses selanjutnya bisa dilakukan.
seperti itu berulang-ulang sampai pengguna menekan Dari keterangan tentang mouse di atas, pena-
keyboard. Jika pengguna tidak menggerakkan mouse ganan mouse dan keyboard yang hampir bersamaan
atau mengklik, maka tidak ada paket yang dikirim. merupakan contoh dari salah satu manajemen proses
Tetapi, tetap mengecek keadaan keyboard untuk dan context-switching untuk berpindah antara mouse
memastikan apakah pengguna menekan keyboard dan keyboard.
sewaktu-waktu. Pada saat pengguna mengedit suatu file .TXT atau
Untuk mengetahui informasi dari paket data .BAS, maka proses yang terjadi pada keyboard sangat
mouse yang dikirim, maka kernel perlu mengambil kompleks. Program catatan.bin tidak hanya sekedar
bit 0, bit 1, bit 2 dari byte pertama untuk mengecek menerima input keyboard dan menampilkannya di
tombol mana yang diklik. Jika bit 0 bernilai 1, maka layar. Program catatan.bin akan mengecek dulu,
tombol kiri diklik, jika bit 1 bernilai 1, maka tombol apakah tombol yang ditekan merupakan tombol
kanan diklik, jika bit 2 bernilai 1, maka tombol penting seperti F2 untuk mensimpan hasil editan
tengah diklik. Bit 4 dan 5 dari byte pertama untuk file, Esc untuk keluar dari program editor dan lain-
menentukan apakah mouse bergerak ke atas, ke lain. Setelah itu akan mengecek apakah tombol yang
bawah, ke kiri atau ke kanan. Jika bit ke 4 bernilai 1, ditekan tombol backspace. Jika ya, maka program
maka mouse bergerak ke kiri, jika 0 maka bergerak catatan.bin akan mengecek apakah cursor berada
ke kanan. Jika bit 5 bernilai 1, maka mouse bergerak pada kolom pertama. Jika tidak, maka sistem akan
ke bawah, jika 0 maka bergerak ke atas. Byte kedua menghapus karakter sebelumnya. Tidak ada interrupt
menunjukkan jarak perpindahan X, dan byte ketiga atau instruksi dalam Assembly yang berguna untuk
menunjukkan jarak perpindahan Y. menghapus karakter. Yang ada hanyalah, karakter
Sebagai contoh, jika byte kedua bernilai 10 dan sebelumnya akan diganti dengan karakter null.
bit ke-4 dari byte pertama bernilai 0, maka mouse telah Lalu jika pengguna menekan tombol enter, maka
bergerak sejauh 10 pixel ke kanan. Posisi sebelumnya program akan memberikan karakter dengan bilangan
lalu ditambahkan dengan 10 untuk mengetahui lokasi hexadesimal 0Dh untuk pindah baris berikutnya dan
koordinat mouse sekarang. Selanjutnya kernel akan karakter dengan bilangan hexadesimal 0Ah untuk
menggambar pointer pada lokasi yang ditunjukkan. kembali ke kolom awal. Selama proses input keyboard
Jika byte kedua bernilai 246 dan bit ke-4 dari byte terjadi, selain menampilkan karakter yang di-input,
pertama bernilai 1, maka perhitungannya adalah juga setiap karakter yang di-input akan langsung
256 dikurang 246 yang hasilnya 10. Karena bit disimpan ke dalam memory. Setiap alamat memory
ke-5 bernilai 1, maka menandakan mouse telah ini akan bertambah atau berkurang sesuai dengan
14
Pembuatan Sistem Operasi Komputer Sederhana dengan ....

posisi cursor. Pada saat pengguna menekan tombol yang terdapat dalam system calls. Jika sintaks adalah
panah kiri, maka cursor akan berpindah satu kolom variable, maka interpreter akan mengalokasikan
ke kiri. Pada saat menekan tombol panah kanan, ruang memory untuk variable tersebut. Jika sintaks
maka cursor akan berpindah satu kolom ke kanan. termasuk keyword seperti IF, THEN, FOR, DO dan
Pada saat menekan tombol panah atas, maka cursor lain-lain maka interpreter akan melakukan operasi
akan berpindah satu baris ke atas. Pada saat menekan logika dan pengulangan.
tombol panah bawah, maka cursor akan berpindah Programmer dapat membuat program dengan
satu baris ke bawah. Jika sudah mencapai baris bahasa Assembly atau dengan bahasa BASIC dalam
terbawah pada saat menekan tombol panah bawah, sistem operasi FROS ini. Bahasa Assembly tidak bisa
maka setiap baris karakter akan naik 1 baris karakter ditulis dalam sistem operasi ini, melainkan harus
ke atas agar menampilkan karakter di bagian bawah ditulis di sistem operasi lainnya karena sistem operasi
yang tidak terlihat. Jika sudah mencapai baris teratas ini tidak menyediakan Assembler. Sedangkan bahasa
pada saat menekan tombol panah atas, maka setiap BASIC bisa ditulis dalam sistem operasi ini karena
baris karakter akan turun 1 baris karakter ke bawah sistem operasi ini sudah menyediakan interpreter
agar menampilkan karakter di bagian atas yang tidak untuk bahasa BASIC. Tetapi, tidak semua instruksi
terlihat. Untuk menampilkan karakter yang tidak dalam bahasa BASIC bisa diterjemahkan.
terlihat sebelumnya, maka program akan mengambil
Sistem operasi yang dihasilkan bersifat text-
data karakter yang tersimpan dalam memory.
mode, kecuali untuk aplikasi paint yang bersifat
Setelah pengguna selesai menulis datanya graphic-mode. Dalam tampilan yang text-mode
pada text-editor, maka pengguna cukup menekan F2 ini, pengguna hanya bisa menggunakan alat input
untuk menyimpan file ke dalam disk. Pada saat file keyboard, hanya operasi pemilihan menu pada
disimpan ke dalam disk, maka program catatan.bin halaman explorer yang bisa menerima input mouse.
akan membaca ulang FAT12 untuk mengecek sector- Interface yang dihasilkan sudah disesuaikan dengan
sector mana saja yang masih kosong untuk bisa keadaan saat ini, sehingga pengguna akan cepat
ditempati oleh data pengguna agar bisa disimpan di memahaminya.
dalam disk. FAT12 mempunyai pointer-pointer untuk
Petunjuk menu ataupun semua instruksi
menunjuk sector-sector mana saja yang masih bisa
memakai Bahasa Indonesia, sehingga pengguna
ditempati. Lalu program catatan.bin akan menyimpan
di Indonesia akan cepat memahami menggunakan
data file pengguna pada sector-sector yang ditunjuk
sistem operasi ini. Hanya satu program yang bisa
oleh FAT12. Kemudian program catatan akan menulis
dijalankan sekali eksekusi, sehingga jika ingin
nama file pengguna pada tabel yang ada dalam FAT12.
menjalankan program lainnya, program sebelumnya
Untuk membaca data file pengguna ketika harus dikeluarkan dulu. Program tersebut menempati
pengguna membuka suatu file, program catatan akan seluruh layar komputer. Program tak bisa di-resize,
membaca tabel yang ada dalam FAT12 dan mencari di-minimize atau maximize, semuanya menempati
nama file yang dimaksud. Setelah program catatan satu layar komputer. Pengguna dapat membuat file
menemukan file yang dimaksud, maka program baru, menghapus file, menyalin file dengan nama
akan membaca data dari sector-sector yang ditunjuk berbeda, menamai ulang suatu file dan membuka
oleh FAT12 dan menyimpannya dalam memory agar suatu file. Nama-nama file tidak boleh ada yang sama.
selanjutnya bisa diproses oleh CPU.
Selain bisa menjalankan file .BIN, sistem
operasi juga bisa menjalankan file .BAS. Sistem IV. SIMPULAN
operasi sudah mempunyai interpreter-nya sendiri
Berdasarkan analisis dari penelitian pembuatan sistem
untuk menerjemahkan setiap instruksi pada file .BAS.
operasi ini, bisa diperoleh beberapa kesimpulan untuk
Membuat interpreter, pada dasarnya mirip dengan
pembaca. Kesimpulan-kesimpulan tersebut adalah:
membuat shell, hanya saja lebih kompleks. Interpreter
akan mengecek setiap sintaks apakah termasuk l Dengan membuat program menggunakan
sintaks yang valid. Jika tidak sah, maka interpreter bahasa Assembly, semua instruksi yang terjadi
akan berhenti memproses dan menampilkan pesan pada mesin komputer bisa dipahami dengan
error pada baris dimana terjadi error tersebut. Jika sangat baik.
sintaks adalah sebuah fungsi yang sudah dikenal, l Program bootloader adalah program di luar
maka interpreter akan langsung melakukan prosedur BIOS yang akan pertama kali dijalankan ketika

15
Kalbiscentia,Volume 2 No.1 Februari 2015

komputer dinyalakan untuk memanggil program [4]. S. Abraham et. al. Operating System Concepts with
inti sistem operasi, yaitu kernel. JAVA 6th Edition. Asia: WILLEY. 2004. Hlm 6.

l Program kernel adalah program inti dari sistem [5]. S. Abraham et. al. Operating System Concepts 8th
operasi, yang akan melakukan semua operasi Edition. Asia:WILEY. 2010.Hlm 89-90.
penting sistem operasi seperti menjalankan [6]. S. Abraham Silberschatz et. al. Operating System
program pengguna, mengalokasikan memory Concepts 6th Edition. Asia: WILLEY. 2005. Hlm 56-
untuk program yang sedang berjalan, mendeteksi 61, 63, 95-97.
input keyboard dan mouse, menampilkan output
[7]. Operating System Tutorial. [Online]. Diakses 1
ke layar monitor, memuat system calls ke dalam
September 2013 dari http://www.tutorialspoint.com/
memory, dan menjalankan tugas dari menu-
operating_system/pdf/index.pdf
menu yang dipilih pengguna.
[8]. Operating Systems Development. [Online]. Diakses 5
l Program Shell yang terpisah dari program kernel
Mei 2013 dari http://www.brokenthorn.com/Resources/
juga dapat menjalankan instruksi yang di-input
OSDev3.html
oleh pengguna seperti layaknya program kernel.
[9]. Computer Tutorial. [Online]. Diakses 21 Juni 2013
l Interpreter BASIC yang berguna untuk
dari http://www.coval.net/ teach/emu8086/helpfiles/
menerjemahkan instruksi-instruksi yang
computer_structures.html
terdapat pada bahasa BASIC dapat dijalankan
dalam sistem operasi ini, sehingga programmer [10]. What is FAT12 ?. [Online]. Diakses 29 Oktober 2013
lain dapat menuliskan programnya untuk dari http://www.easeus.com/resource/drive/fat12.htm
dijalankan di sistem operasi ini. [11]. What is FAT12 and its features ?. [Online]. Diakses
29 Oktober dari http://www.data-recovery-app.com/
datarecovery/fat12.html
V. DAFTAR RUJUKAN
[12]. An overview of FAT12. [Online]. Diakses 6 Juli 2013
[1]. B.H. Santoso. Perancangan Sistem Operasi. dari http://students.cs.byu.edu/cs345ta/labs/fall03_
Yogyakarta: Andi .2005. Hlm 1-2. specs/lab_fat_help.htm

[2]. Mike OS x086 Operating System. [Online]. Diakses 14 [13] Apple to Use Intel Microprocessors Beginning in
Januari 2013 dari http://mikeosberlios.de 2006. [Online]. Diakses 7 Maret 2014 dari http://www.
apple.com/pr/library/2005/06/06Apple-to-Use-Intel-
[3]. A. C. Michael & S. Stanley. Beyond the Waterfall:
Microprocessor-Beginning-in-2006.htm
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

Anda mungkin juga menyukai