Show HN: The operating system I built as my high school project (2016)
github.com
github.com
I can still feel the satisfying click as a floppy was seated home and hear the buzz as the drive spun up. There was something wonderfully concrete about those storage media. You just don't get the same satisfaction at all from plugging in a USB stick. And the hours spent pulling back the metal cover and letting it go while bored in class...
Although I do think they stuck around a little longer than many remember. I was still using 3.5s to bring papers to home and back around 1998-2000.
https://en.wikipedia.org/wiki/Magneto-optical_drive
I also had a drive for 100MB, Zip disks. Only ever owned one since I couldn't justify the expense. Hardly anyone else had them. What's point of a tech for moving data if you can't use it to share the data with friends and local businesses? ;)
My first USB ‘thumbrive’ was a 16MB IBM-branded unit I received as an amazing gift in December 2001, when the world was still in shock over the 9/11 attacks.
God, the memories...
But like I said, there was just something to the experience of working with diskettes. It felt more analog somehow.
I wonder if there was any such nostalgia for the days of tape/cassette storage.
"Why I'm usually unnerved when modern SSDs die on us"
https://news.ycombinator.com/item?id=18653728
You don't need moving parts for the drive to go bye-bye without warning.
On floppy disc.
On eight inch floppy disc. (DEC PDP 11/04)
I didn't keep the mark sense cards. I think.
Needless to say, there’s was little literary analysis done, but the class enjoyed the wireless video stream.
Future me came to get annoyed by overachievers that raised the bar for ‘A’ grades.
When I started university, it was clear that I had much more experience programming than the other students, but I had to do certain introductory classes anyway because there was no way to receive credit for half a decade of self learning. On one assignment my lecturer went looking for things to mark me down on that were outside the scope of the assignment because "it would look suspicious if you got a perfect grade".
Some people are just capable of more than is expected of that class for whatever reason, not because they intend to demoralise everyone else and break the system.
Final project was an inventory system for a company.
Mine was a RDBMS backed system that implemented proper stock control with parent/child SKU handling etc (I went to the library and checked out books on inventory control) and was fully documented (180 pages of documentation) and a full user manual with a FAQ.
I thought that was what professional programmers did...man was I in for a shock when I hit industry.
The respective school catalogs deemed some courses at one school to be equivalent to courses at the other school without really having them reexamined on a regular basis. As a result, one of the courses (Statistics?) that I needed to complete my Associate's degree requirements translated to a much simpler course equivalent at the University.
After the first day of class, the teacher came up to me and asked me, "what the heck are you doing here?" because he could tell from my interactions in class that I was already beyond the material of the course. I explained to him the situation, and he offered to come up with some sort of a challenge exam for which he would just give me full credit for the course. instead, I served as a kind of a de facto T.A. for about half time for the rest of the course.
Would that more professional programmers had this humility. :)
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.
For the brave of heart (NSFW): https://www.youtube.com/watch?v=UCgoxQCf5Jg&t=3295
Won't make much sense out of context. The video does a pretty good job of explaining the whole story if you have time.
Congrats for your accomplishment