Skip to content

AdeRegt/SanderOSUSB

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

SanderOSUSB

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.

Compiling

For compiling you need the following programs:

  • gcc
  • nasm or fasm
  • xorriso (grub)

sudo apt install gcc nasm xorriso

And then run the file /kernel/build.sh [ARGS] to generate kernel file Where:

  • empty : only generates a kernel.bin file
  • --grub : generates a grub-iso image
  • --pxe : generates a pxe image

Runing the OS

  • install qemu

sudo apt install qemu qemu-utils qemu-kvm

  • go to the repo directory
  • run:

qemu-system-x86_64 -cdrom ./cdrom.iso

Suported Devices

Currently the following devices are supported:

  • ❓ unknown
  • ❌ not supported
  • βœ… works
  • πŸ› partly working
Devicename VirtualBox Qemu Bochs Real hardware
IDE - ATA βœ… βœ… βœ… ❓
IDE - ATAPI βœ… βœ… βœ… βœ…
AHCI - ATA βœ… βœ… βœ… πŸ›
AHCI - ATAPI βœ… βœ… βœ… ❌
PS/2 keyboard βœ… βœ… βœ… βœ…
PS/2 mouse βœ… βœ… βœ… βœ…
PIC βœ… βœ… βœ… βœ…
PCI βœ… βœ… βœ… βœ…
ACPI βœ… βœ… βœ… βœ…
USB - HID - Keyboard βœ… βœ… βœ… ❓
USB - Mass Storage Device βœ… βœ… βœ… ❌
EHCI (USB2.0) - Basic support βœ… βœ… βœ… βœ…
XHCI (USB3.0) - Basic support ❌ βœ… ❓ πŸ›
RTL8169 βœ… βœ… βœ… βœ…
E1000 βœ… ❓ ❓ ❓
Soundblaster 16 βœ… βœ… βœ… βœ…

The following devices are on the list to get implemented:

The following filesystems are supported:

Filesystemname Read Write
ISO 9660 βœ… ❌
MBR βœ… ❌
EFI-MBR βœ… ❌
EXT2 (very basic) βœ… ❌
FAT 12,16,32 βœ… βœ…
SFS βœ… βœ…
TFTP βœ… ❌

the following executable formats are supported:

  • 32-ELF (relocation and executable type)
  • raw binary at 0x2000
  • BASfile (with basic.bin)

the following executable formats are on the list to get implemented:

  • 32-MZPE
  • 32-MZCOFF
  • Marble

the following bootmethods are supported:

  • GRUB2
  • PXE
  • qemu --kernel loader

Directories

  • boot: Grub bin folder
  • kernel: Kernel source code
  • lib: kernel static library to which programs attach to
  • programs: example programs

Instalation on CDROM

  • build system with ./build.sh --grub
  • burn cdrom.iso to a cdrom

Instalation on USB

  • make a usbstick with EXT as filesystem
  • run sudo grub-install --target=i386-pc --root-directory=[mountpoint_filesystem] /dev/sdb
  • copy grub command file sudo cp ../boot/grub/grub.cfg [mountpoint_filesystem]/boot/grub/grub.cfg
  • copy kernel sudo cp ../kernel.bin /media/sander/SOS/kernel.bin