Skip to content

Latest commit

 

History

History
executable file
·
16 lines (11 loc) · 1.86 KB

MILESTONE1.md

File metadata and controls

executable file
·
16 lines (11 loc) · 1.86 KB

Milestone 1

Pada sistem operasi ini tersedia beberapa file yaitu sebagai berikut.

  • Kernel.asm: mengandung fungsi putInMemory, interrupt, makeInterrupt, dan menyediakan service InterruptRoutine
  • Kernel.c: Tempat implementasi fungsi yang diminta menggunakan interrupt dari kernel.asm
  • Bootloader.asm

Cara Kerja Interrupt

Interrupt adalah suatu proses yang dilakukan oleh komputer untuk mengirimkan sinyal. Interrupt bersifat asynchronous. Interrupt merupakan sebuah cara untuk hardware dan software berkomunikasi. Komputer akan menunggu interrupt dari hardware dan kembali lagi ke program utama secara terus menerus. Interrupt digunakan untuk mengimplementasikan fungsi-fungsi syscall seperti input/ouput ke layar dalam bentuk text dan gambar. Tidak hanya itu, banyak fungsi lainnya dalam interrupt.

Fungsi interrupt pada OS ini terdiri dari 5 integer. Integer pertama digunakan untuk menyatakan tujuan service hardware komputer dan 4 integer sisanya berfungsi sebagai parameter/argument yang akan digunakan sesuai kebutuhan.

Sistem operasi sudah mampu membaca input ketikan dari keyboard pengguna melalui BIOS interrupt 0x16 dan mencetak tulisan ke layar melalui BIOS interrupt 0x10. BIOS interrupt calls tersebut akan memanggil Input/Output System(BIOS) software pada computer agar dapat menjalankan fungsi I/O yang diminta oleh program, mengembalikan informasi terkait sistem, maupun melakukan kontrol langsung pada hardware.

Cara Kerja Kode di kernel.asm

File kernel.asm adalah kode assembly dari kernel. File kernel.asm mengandung fungsi puntInMemory, interrupt, makeInterrupt, dan menyediakan service InterruptRoutine. File kernel.c akan menggunakan fungsi-fungsi ini di dalam implementasinya. File kernel.asm akan dikompilasi oleh nasm untuk membentuk object code kernel_asm.o yang kemudian akan digabungkan dengan object code dari hasil kompilasi kernel.c melalui proses linking.