An open API service indexing awesome lists of open source software.

https://github.com/lenovix/kamilos

Develop my Operating System, Start date: 18 May 2025
https://github.com/lenovix/kamilos

linux-kernel operating-system

Last synced: 7 months ago
JSON representation

Develop my Operating System, Start date: 18 May 2025

Awesome Lists containing this project

README

          

# kamilOS v0.0.1

![v0.0.1](./img/v001.png)

**kamilOS** adalah sistem operasi minimal buatan sendiri sebagai latihan eksplorasi sistem operasi dari nol menggunakan bahasa Assembly dan C, serta compiler cross-platform `i386-elf-gcc`.

Versi 0.0.1 adalah rilis awal yang berfokus pada:
- Bootloader buatan sendiri (512-byte MBR)
- Kernel 32-bit sederhana yang ditulis dalam C
- Dapat dijalankan di emulator QEMU
- Struktur awal file dan toolchain

## ๐Ÿ“ Struktur Proyek
```
kamilOS/
โ”œโ”€โ”€ boot.asm # Bootloader 16-bit (MBR)
โ”œโ”€โ”€ kernel.c # Kernel C sederhana
โ”œโ”€โ”€ kernel.ld # Linker script untuk ELF ke binary
โ”œโ”€โ”€ Makefile # Otomatisasi build
โ”œโ”€โ”€ os-image.bin # Image akhir yang siap dijalankan QEMU
โ”œโ”€โ”€ README.md # Dokumentasi ini
```
---

## ๐Ÿ›  Persyaratan

Sebelum mem-build, pastikan kamu sudah install:

- `i386-elf-gcc` & `i386-elf-ld` (cross compiler)
- `nasm`
- `qemu`
- `make`

### Install Cross Compiler (contoh ringkas)
```bash
export PREFIX="$HOME/cross"
export TARGET=i386-elf
export PATH="$PREFIX/bin:$PATH"
```
Kamu bisa ikuti panduan osdev.org - GCC Cross Compiler untuk setup lengkapnya.

---
## โš™๏ธ Build
Jalankan perintah berikut untuk membangun image OS:

```bash
make
```
Jika berhasil, kamu akan mendapatkan file os-image.bin.

---
## ๐Ÿš€ Menjalankan kamilOS
Gunakan QEMU untuk menguji OS ini:

```bash
qemu-system-i386 -fda os-image.bin -boot a
```
Kamu seharusnya melihat hasil dari kernel atau debug awal dari bootloader.

## ๐Ÿงช Status Fitur v0.0.1

| Fitur | Status |
|:-----|:--------:|
| Bootloader 16-bit | **โœ… Selesai** |
| Switch ke 32-bit protected mode | **โœ… Selesai** |
| Kernel Hello World | **โœ… Selesai** |
| Output teks ke layar | **โš ๏ธ Minimal** |
| File system / input keyboard | **โŒ Belum** |
| Memory management | **โŒ Belum** |

## ๐Ÿงญ Tujuan Selanjutnya
- Menambahkan dukungan keyboard input
- Sistem output teks yang lebih baik (print string, newline, dll)
- Setup stack dan interrupt descriptor table (IDT)
- Paging dan manajemen memori dasar