Repository untuk testing spesifikasi IF2230 Sistem Operasi ITB 2023
Mengambil beberapa ide utama dari littleosbook - Erik Helin, Adam Renberg, tugas besar OS-2022, dan pengerjaan OS sebelumnya. Dibuat sepenuhnya dari scratch dan diadjust untuk keperluan tugas besar IF2230. Kit, spesifikasi, dan guidebook pengerjaan dapat diakses pada Sister20/kit-OS-2023
Links
- OS-2022 - Dibuat sebagai asisten lab Sister '19
- OS-2023 - Dibuat untuk membantu asisten Sister '20 & mengubah spesifikasi secara drastis
- OS-2024 WIP - Dibuat untuk membantu asisten Sister '21 & menambah process + rewrite total guide menjadi buku
Mock-up shell (yang ada pada spesifikasi)
Karena ada sedikit masalah dengan directory name length dengan manim (temporary file biasanya relatif panjang filenamenya), untuk source code animasi manim dipindah ke separate repository:
https://github.com/Lock1/OS-2023-Manim
- Yes, verbose
- No
typedef
forstruct
(except function pointer and some magic if needed) - Global variable will use
_<filename>_<variable name>
- Assembly filename:
<filename>-asm.s
, withfilename
is same with C counterpart (ex.interrupt.c
andinterrupt-asm.s
) - Both
<filename>-asm.s
and<filename>.c
will share single header<filename>.h
kernel.c
andkernel-entrypoint.s
will sharekernel.h
instead
1-5
- Initial setup & toolchain install
- Bootloader
- I/O Memory Map (VGA)
- Global Descriptor Table (GDT) + Protected Mode
- Initial kit / template milestone 1
6-11
- Interrupt (IRQ kaya keyboard)
- Filesystem
-
Basic process + monotaskingDropped for milestone 2
12-End
- Paging
- User mode
- Basic shell
Seems too hard?
-
Memory management (memcpy, malloc, etc) -
Multitasking
- Most of the main idea : https://littleosbook.github.io/
- Bootloader & GRUB : http://www.jamesmolloy.co.uk/tutorial_html/index.html + https://littleosbook.github.io/
Other reference