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
ddatauimdiskuntuk 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 0x10untuk mencetak karakter (Mode Teletype). - Stack Management: Menginisialisasi Stack Pointer (
SSdanSP) agar fungsi bisa berjalan.
Modul 3: Komunikasi Perangkat Keras Awal
Interaksi tanpa perantara sistem operasi.
- Keyboard Input: Menggunakan
INT 0x16untuk menangkap ketikan user. - Disk I/O: Menggunakan
INT 0x13untuk 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
CR0dan 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-gccagar 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()danfree()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
| Tahapan | Output Visual | Fokus Utama |
| Bootloader | Teks “Hello World” | BIOS Interrupts & Sektor Disk |
| Kernel 32-bit | Layar warna-warni di 0xB8000 | GDT & Protected Mode |
| Driver | Kursor berkedip & Input Keyboard | IDT & IRQ Handling |
| Full OS | Shell sederhana | Multitasking & Memory Paging |
Kurikulum ini dirancang agar setiap modul memberikan kepuasan instan (ada hasil di layar). Setiap langkah adalah pondasi bagi langkah berikutnya.
