32 bit singletasking C kernel
Thank you for showing interest in SanderOSUSB! SanderOSUSB is a 32bit single tasking monolythic kernel that is supposed to run from USB or cd-rom.
For compiling you need the following programs:
sudo apt install gcc nasm xorriso
And then run the file /kernel/build.sh [ARGS]
to generate kernel file
Where:
sudo apt install qemu qemu-utils qemu-kvm
qemu-system-x86_64 -cdrom ./cdrom.iso
Currently the following devices are supported:
Devicename | VirtualBox | Qemu | Bochs | Real hardware |
---|---|---|---|---|
IDE - ATA | :white_check_mark: | :white_check_mark: | :white_check_mark: | :question: |
IDE - ATAPI | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
AHCI - ATA | :white_check_mark: | :white_check_mark: | :white_check_mark: | :bug: |
AHCI - ATAPI | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: |
PS/2 keyboard | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
PS/2 mouse | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
PIC | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
PCI | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
ACPI | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
USB - HID - Keyboard | :white_check_mark: | :white_check_mark: | :white_check_mark: | :question: |
USB - Mass Storage Device | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: |
EHCI (USB2.0) - Basic support | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
XHCI (USB3.0) - Basic support | :x: | :white_check_mark: | :question: | :bug: |
RTL8169 | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
E1000 | :white_check_mark: | :question: | :question: | :question: |
Soundblaster 16 | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
The following devices are on the list to get implemented:
The following filesystems are supported:
Filesystemname | Read | Write |
---|---|---|
ISO 9660 | :white_check_mark: | :x: |
MBR | :white_check_mark: | :x: |
EFI-MBR | :white_check_mark: | :x: |
EXT2 (very basic) | :white_check_mark: | :x: |
FAT 12,16,32 | :white_check_mark: | :white_check_mark: |
SFS | :white_check_mark: | :white_check_mark: |
TFTP | :white_check_mark: | :x: |
the following executable formats are supported:
the following executable formats are on the list to get implemented:
the following bootmethods are supported:
./build.sh --grub
sudo grub-install --target=i386-pc --root-directory=[mountpoint_filesystem] /dev/sdb
sudo cp ../boot/grub/grub.cfg [mountpoint_filesystem]/boot/grub/grub.cfg
sudo cp ../kernel.bin /media/sander/SOS/kernel.bin