🌋 Monolithic x86 kernel written in C and Assembly
Go to file
ice-bit 3c574238cf Fixed bugs about kheap, paging and ordered list
Furthermore, added Heap kernel driver code
for both allocation and deallocation
free() does not works yet:
`ASSERTION-FAILED(head->magic == HEAP_MAGIC) at kheap.c:261`
2019-09-24 18:32:38 +02:00
imgs Change filename 2019-09-14 00:43:04 +02:00
kernel Fixed bugs about kheap, paging and ordered list 2019-09-24 18:32:38 +02:00
.gitignore Finxing interrupts... 2019-07-05 21:12:18 +02:00
.gitlab-ci.yml Fixing CI 2019-07-11 20:19:34 +02:00
bochs_cfg Fixed all previous bugs...however strange things happens when OS runs 2019-07-03 21:04:05 +02:00
fs_generator.c Added VFS driver and initramfs disk creator 2019-09-13 18:16:15 +02:00
grub.cfg Improved build system 2019-07-11 20:13:47 +02:00
LICENSE Fixed printf and VGA driver bugs, also added README 2019-07-04 01:58:34 +02:00
link.ld Added last part of paging, print_hex function and updated linker script 2019-09-23 17:27:21 +02:00
Makefile Fixed makefile bug 2019-08-02 12:08:23 +02:00
README.md Change filename 2019-09-14 00:43:04 +02:00



pipeline status
Simple kernel written in C for Intel x86 CPUs

About iceOS

iceOS running under QEMU


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:

  1. Type make all to compile the system and to create an ISO
  2. Type make run to start it in QEMU or make 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:

License

iceOS is released under GPLv3, you can obtain a copy of this license by cloning the repository or by visiting this page.