imgs | ||
kernel | ||
.gitignore | ||
.gitlab-ci.yml | ||
bochs_cfg | ||
grub.cfg | ||
LICENSE | ||
link.ld | ||
Makefile | ||
README.md |
About 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).
Otherwise you can download an already compiled ISO file
here(md5sum: ab3d5b8307015461b44e62d0c2d42806
)
Features
iceOS already have/will have the following features:
- Bare metal booting;
- VGA driver;
- Interrupts implementation;
- PIC & PIT implementation;
- PS/2 driver;
- Support for x86 architecture;
- GRUB as bootloader;
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
- I actually started this project due to skiftOS
License
iceOS is released under GPLv3, you can obtain a copy of this license by cloning the repository or by visiting this page.