Skip to content
/ mos Public
forked from MQuy/mos

A hobby operating system developed from scratch

License

Notifications You must be signed in to change notification settings

dfischer/mos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mOS

mOS is the hobby operating system which is developed from scratch

Work-in-process features

  • Filesystem
  • Program loading
  • UI (X11)
  • Log
  • Networking
  • Signal
  • Terminal
  • POSIX compliant
  • Port GCC (the GNU Compiler Collection)
  • Sound
  • Symmetric multiprocessing

🍀 Optional features

  • Setup 2-level paging in boot.asm
  • Dynamic linker

Get started

$ brew install qemu nasm gdb i386-elf-gcc i386-elf-grub bochs e2fsprogs xorriso
$ cd src && ./create_image.sh && ./build.sh qemu iso

✍🏻 If you get this error hdiutil: attach failed - no mountable file systems, installing might help extFS for MAC

Debuging

in build.sh, adding -s -S right after qemu to switch to debug mode. Currently, I use vscode + native debuge -> click Run -> choose "Attach to QEMU"

Monitoring

tail -f serial.log | while read line ; do echo $line ; done

✍🏻 Using tail in pipe way to color the output (like above) causes a delay -> have to manually saving in ide to get latest changes

References

Memory management

Device

Tutorials

Ebooks

About

A hobby operating system developed from scratch

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 96.7%
  • Assembly 1.8%
  • Other 1.5%