Skip to content

boredcoder411/mboot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mboot

mboot is a minimal os for i386 platforms.

Prequisites

Building mboot depends on:

  • llvm tools (clang, ld.lld)
  • nasm

Running mboot needs:

  • the building tools or a disk image
  • qemu-system-x86_64

Building

Note: inside the makefile there is a line appending a macro definition to CFLAGS. Edit the macro's value to bundle different demos to run on boot

make
# normal os
qemu-system-x86_64 -m 4G -drive file=image.img -serial stdio

# with networking enabled
qemu-system-x86_64 -m 4G -drive file=image.img -serial stdio -device e1000,netdev=n0 -netdev user,id=n0 -object filter-dump,id=f1,netdev=n0,file=netdump.pcap

Demo options

Demo options include:

  • CUBE_DEMO
  • TIME_DEMO
  • E1K_DEMO
  • IMF_DEMO
  • PSF_DEMO

Note

As filesystems and elf files aren't implemented yet, programs you want to launch from mboot need to be linked into it and called from loader.c

todo:

  • 32 bit protected mode
  • cpu exceptions
  • individual hardware interrupts
  • a ps/2 keyboard
  • vga in 320x200x8bpp
  • reading ata drives
  • rs232 interfaces
  • the intel 8259 PIC
  • the intel 8253 PIT
  • the mbr partitioning scheme
  • wad files as the filesystem
  • enable x87 fpu
  • memory allocator
  • elf loader
  • paging
  • libc

Screenshots

mboot running in qemu

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published