Kurikulum Master: Pengembangan Operating System (BIOS-Based)

Modul 1: Fondasi dan Persiapan Alat

Sebelum menulis satu baris kode pun, Anda harus memahami ekosistem kerja bare-metal.

  • Arsitektur x86: Register (General Purpose, Segment, Index), Real Mode vs. Protected Mode.
  • Toolchain Setup: Instalasi NASM (Assembler), QEMU (Emulator), dan dd atau imdisk untuk manajemen disk image.
  • Sistem Bilangan: Pemantapan Biner dan Heksadesimal untuk pemetaan memori.

Modul 2: Sektor Booting (The 512-Byte Challenge)

Memahami bagaimana kode pertama dieksekusi oleh CPU.

  • The Magic Number: Memahami signatur 0xAA55.
  • Memory Mapping: Mengapa [org 0x7c00] itu krusial.
  • BIOS Interrupts (Video): Menggunakan INT 0x10 untuk mencetak karakter (Mode Teletype).
  • Stack Management: Menginisialisasi Stack Pointer (SS dan SP) agar fungsi bisa berjalan.

Modul 3: Komunikasi Perangkat Keras Awal

Interaksi tanpa perantara sistem operasi.

  • Keyboard Input: Menggunakan INT 0x16 untuk menangkap ketikan user.
  • Disk I/O: Menggunakan INT 0x13 untuk membaca sektor lain dari disk ke RAM.
  • Segmentasi Memori: Memahami keterbatasan 1 MB dan penggunaan Segment:Offset.

Modul 4: Transisi ke Dunia 32-Bit (The Great Leap)

Meninggalkan keterbatasan 16-bit menuju kekuatan penuh prosesor.

  • GDT (Global Descriptor Table): Mendefinisikan segmen memori untuk Protected Mode.
  • A20 Line: Mengaktifkan jalur memori ke-21 untuk mengakses memori di atas 1 MB.
  • Entering Protected Mode: Mengubah bit pada register CR0 dan melakukan Far Jump.
  • VGA Text Mode: Belajar menulis langsung ke alamat memori 0xB8000 (menggantikan fungsi BIOS).

Modul 5: Kernel dalam Bahasa C

Membangun logika OS yang lebih kompleks dengan bahasa yang lebih manusiawi.

  • Cross-Compiler: Menyiapkan i686-elf-gcc agar kode C tidak bergantung pada pustaka standar Linux/Windows.
  • The Kernel Entry: Jembatan antara Assembly (Loader) dan fungsi main() di C.
  • Linker Script: Mengatur posisi kode dan data di dalam file biner akhir.

Modul 6: Interrupts dan Driver Dasar

Membuat OS yang responsif terhadap kejadian luar.

  • IDT (Interrupt Descriptor Table): Menangani interupsi dalam mode 32-bit.
  • ISR & IRQ: Menangani sinyal dari Keyboard dan Timer (PIT).
  • PIC (Programmable Interrupt Controller): Melakukan remapping terhadap kontroler interupsi hardware.

Modul 7: Manajemen Memori

Mengelola sumber daya paling berharga di komputer.

  • Physical Memory Manager: Mengelola blok memori yang tersedia (Bitmap atau Free List).
  • Paging: Implementasi Virtual Memory agar setiap aplikasi merasa memiliki seluruh RAM sendirian.
  • Heap Allocator: Implementasi fungsi malloc() dan free() versi kernel Anda sendiri.

Modul 8: User Mode dan Multitasking

Langkah terakhir menuju OS yang sebenarnya.

  • TSS (Task State Segment): Mempersiapkan perpindahan antar aplikasi.
  • Context Switching: Teknik menyimpan dan memulihkan status register untuk menjalankan banyak program secara bergantian.
  • Ring 3 (User Land): Memisahkan hak akses antara Kernel (Ring 0) dan aplikasi user (Ring 3) demi keamanan.

Tabel Ringkasan Progres

TahapanOutput VisualFokus Utama
BootloaderTeks “Hello World”BIOS Interrupts & Sektor Disk
Kernel 32-bitLayar warna-warni di 0xB8000GDT & Protected Mode
DriverKursor berkedip & Input KeyboardIDT & IRQ Handling
Full OSShell sederhanaMultitasking & Memory Paging

Kurikulum ini dirancang agar setiap modul memberikan kepuasan instan (ada hasil di layar). Setiap langkah adalah pondasi bagi langkah berikutnya.