isodir/boot | ||
kernel | ||
.gitignore | ||
bochs_cfg | ||
build.sh | ||
iceOS.iso | ||
LICENSE | ||
link.ld | ||
Makefile | ||
README.md |
iceOS
iceOS is a x86 monolithic kernel written in C from scratch.
This project doesn't aim to be a fully functional operating system
with tons of drivers and graphical applications, it's just a learning tool to teach myself concepts like Operating Systems, Computer Architecture and Digital Electronics.
Installation
Requirements
Before generating an ISO you have to compile a cross compiler and you also have to install those packets:
- nasm
- bochs
- grub
- mtools(if you are on Arch Linux)
Then you can run those commands:
- Type
./build.sh
to compile the system and to create an ISO - Type
make run
to start it in QEMU ormake bochs
to start it with bochs(only for debug purposes).
Features
iceOS already have/will have the following features:
- Bare metal booting;
- VGA driver;
- Interrupts implementation;
- PIC & PIT implementation;
- PS2 driver;
- Support for x86 architecture;
- GRUB as bootloader;
- Paging;
- Dynamic memory allocation(heap).
Resources
This project is made with different kind of resources and different kind of knowledges, before starting it i read/studied the following resources:
- Structured Computer Organization - Tanenbaum (2013)
- Operating System Concepts - Silberschatz (2016)
- The Art Of Electronics - Horowitz (2015)
- OSDev wiki
- The Little Book About OS Development
License
iceOS is released under GPLv3, you can obtain a copy of this license by cloning the repository or by visiting this page.