Code Monkey home page Code Monkey logo

mos's Introduction

MOS

an operating system I'm working on based on the "Write Your Own Operating System" series on YouTube. here is the wyoos repo.

this is not encredibly polished at all

It's interesting playing around with really low level stuff on i386 and seeing the stuff that's just really weird because of backwards compatibility. I kinda want to rewrite the interrupt thing in a way that might be cleaner, but for now I'm following the series to just try to get interrupts working. so far its getting interrupts for the hardware timer but I'm trying to get keyboard ones too.

I also got text to wrap and scroll automatically for what that's worth.

requirements

  • g++
  • 32 bit compilation libs (for g++ -m32)
  • qemu (you can use some other vm thing but i used this one)
  • xorriso (there's a way to give qemu bzimages but i haven't bothered)
    • IMPORTANT if you don't have xorriso grub-mkrescue might silently fail :-/ install xorriso to avoid confusion
  • grub-mkrescue

debug requirements

  • gdb

other notes

the debugging thing is cool but it took me a while to setup i had to play around and guess where to add-symbols-file mykernel.bin to get things to line up. qemu will allow you to treat your kernel kinda like a normal program using remote gdb stuff. see gdbscript

also it doesn't mater if you use qemu-system-i386 or qemu-system-x86_64, but if your qemu package is like the Ubuntu 18.04 one and you try to run $ qemu you will see that there is no binary for some reason and you need to pick from qemu-* or qemu-system-*

mos's People

Contributors

mjrb avatar

Stargazers

 avatar

Watchers

 avatar

mos's Issues

in memory sfs

sfs-stupid file system. all files are in /
mos will mount all sfs's and treat them like all files are in /
block 0 contains all the blocks belonging to files. FAT[blocknum] = filenum
filenum 0 is /

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.