I don't say this to diminish the accomplishment here, but to encourage others to try it too.
What would be a good place to learn the steps of making an OS?
I just want a bird's eye view right now, just to understand the moving parts. This will also help me in the future as a manager.
-- Mark Twain
Now learning a new language is hard because I'm trapped in thus mindset of, "surely this isn't the most time efficient way to learn this..."
Only recently have I made some progress by not looking back and coding myself into a wall even if I think I can see the wall coming.
We also got introduction to UNIX via Xenix on our OS classes, got to do a Pascal syntax highlighter and a couple of other cool things.
Fully agree with you, the accomplishment here is great and anyone else wondering about if they should attempt something like this, just give it a go.
Don't worry about writing perfect code, rather make it work somehow, perfection will come later.
I think your advice is true, esp for education and Worse is Better effect. I think the follow-up is wrong for two reasons:
1. Useful code tends to stick around long time getting extended more than refactored for quality.
2. Due to the methods involved, the highest, quality designs usually need to be designed for that upfront. Certain decisions will favor reaching the goal.
So, my advice for high-quality outcome is to design for it with simple constructs, straight-forward composition, and plenty of docs made on the way. Gives someone a better start if they want to try to perfect it years down the line.
I actually did have a round-robin scheduler with prioritised processes and first-fit memory allocator in there as well.
During the presentation, as I pulled out a 3.5" floppy disk to boot up my OS, the teachers looked at me in disbelief: you've actually got something working?
If you are curious and willing to spend some quality time with your computer, this is a great way to learn about computers. Today though, I'd recommend people do it with ARM just for the kicks.
I did go to a kind-of-special school (Mathematical Grammar School in Belgrade) that did have advanced (for high-schools) IT subjects like assembly language development, database courses and similar, but as I said, even my teachers were surprised I actually had something to show off after presenting my work on an OS.