GitHub

A hobby operating system made based on:

Basic facts

  • 32 bit atp
  • runs well in qemu-i386
  • hasn't been tested on real HW yet
  • With v18, vesa graphics mode also came and it works perfectly
  • runs in ring0

Dependencies:

  • Linux debian:
  • sudo apt install make gcc-multilib binutils nasm grub-pc-bin xorriso qemu-system-i386 genisoimage
  • use qemu-system-i386 -cdrom os.iso -m 128M -no-reboot -no-shutdown for running

Functions:

  • Jumping cow uwu
  • C support
  • terminal
  • custom filesystem
  • keyboard support
  • GUI
  • usb support
  • sound support
  • txt editors
  • apps
  • internet support
  • linked communication between Crusader-OS devices
  • custom programming language
  • some games
  • Ethernet smart docking station conection
  • CD-DVD music/movies support

Commands inside OS

  • lib to get more commands and info
  • help → help yourself lol :3
  • and much more...

Filesystem

Offset Component Description
LBA0 Superblock Filesystem metadata: 0x5A4C534A, total block count, starting location of other zones
LBA1 Block Bitmap Each bit represents a block.
LBA2 Inode Bitmap Tracks which inodes are used or free
LBA3 Inode Table Every file has inode_t structure here
LBA4 Data Blocks Stores actual file data
  • It uses ADA /(IDE)
  • Maximum file size is currently 6kB (12*512B)
  • FS has no more fixed size so you can use whatever sized disk.img you want (I guess up to 128Gb by hardware)
  • You can now also save and see more than 16 files (commit v14)
  • i use dd if=/dev/zero of=disk.img bs=1M count=32 status=progress for recleaning drive
  • and hexdump -C disk.img | less for seeing inside content

MY MAKEFILE SUPPORT

  • use make a to do every step like make clean, format drive and make again
  • you can normally use make clean, make, and make run
  • you can also use make dd4, make dd32 or make dd128 for formating drive with 4, 32 or 128 MB's

Read the original on github.com ↗