10 ms·
Show HN: The operating system I built as my high school project (2016)
- RandomGuyDTB 8y agoJesus, at my high school it's an accomplishment to know how to read
- marpstar 8y agoI had some CSS on my MySpace page...
- tomcam 8y agoshowoff
- twtw 8y agoIn my experience, writing "scary" software like a compiler, an OS, a kernel driver, etc is more about bravery/daring than raw skill or intellect. There are quite a few people that know C and C++ in high school, so it seems reasonable that at least some of them would have someone (IRL or online) nudge them in the direction of an OS and tell them "it's not as hard as you think, if you dare to try." I don't say this to diminish the accomplishment here, but to encourage others to try it too.
- ptr 8y agoI agree wholeheartedly, having written a kernel myself first year in high school (and I don’t consider myself very intelligent). Mine was even more involved — it had user space, protected memory, multitasking, file systems, etc. So much fun! What it came down to was persistence and reading the manuals.
- rblion 8y agoI don't know C but I am interested in learning. 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.
- ptr 8y agohttps://wiki.osdev.org https://wiki.osdev.org
- aswinmohanme 8y agoI followed this http://www.osdever.net/bkerndev/Docs/intro.htm http://www.osdever.net/bkerndev/Docs/intro.htm with some pointers from osdev wiki
- DarmokJalad1701 8y agoNice! I remember following this site back in the day. My tiny "OS" got till paged memory management and didn't really go any further. I used to use "Bochs" CPU emulator for testing.
- necovek 8y agoRight, I used bochs too: it was a full emulator, none of this "let's just let the CPU really run these" things. :)
- twic 8y agoIn Rust rather than C, but a good walk through the basics of getting an OS booted: https://os.phil-opp.com/ https://os.phil-opp.com/
- twtw 8y agoIn addition to the resources other have mentioned, I've found this http://pages.cs.wisc.edu/~remzi/OSTEP/ http://pages.cs.wisc.edu/~remzi/OSTEP/ valuable.
- aswinmohanme 8y agoTotally agree, it was all about persistence way more than actual coding. And if you know where to look it's way easier than it sounds.
- spicymaki 8y agoMuch of the willingness to attempt to write “scary” software when you are young is being ignorant of the complexity involved. That is probably why younger people are so disruptive in tech as well. Older you get the more reasons why not to do something appears.
- pjmlp 8y ago“They did not know it was impossible so they did it” -- Mark Twain
- Waterluvian 8y agoI learned programming faster when I had no clue how awful I was doing it. I just kept going and bumping into things a lot. 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.
- baroffoos 8y agoWhen I was shit at programming I started a lot more ambitious projects and I ended up finishing none of them. Now I know what to expect and I end up with something finished and useful most of the time. I suppose sometimes beginners attempt things that experts think are too hard but it ends up that you can make a workable solution even if it is structured horrible.
- pjmlp 8y agoI also learned C and C++ back in the late 80's during high school, as part of the domain area we get to chose on the last three years (10 - 12). 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.
- nickpsecurity 8y ago"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.
- allenu 8y agoI think you can make a similar statement about coding in general. For me, I got into coding because it was fun and I worked on projects (games) when I was in high school because I wanted to create something. The code I wrote was terrible but I kept at it because I really wanted that end result (a game of my own creation). If someone had told me it was hard, I probably would have laughed because it was mostly about persistence.
- necovek 8y agoI've did this myself back in 2000/01 — there were fewer resources on the web back in the day (and dial-up was harder), so it was about hunting down freely available papers, books, source code and similar (a student in Serbia can't really walk into a library and get their hands on some real literature). 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.
- MRD85 8y agoI finished high school in 2003 at a large rural school that offered both Info Tech and Software Development for senior students. I took both and even our teachers were seriously lacking, in addition to the students. I would have killed to go to the city for schooling at a school where those topics were treated seriously.
- necovek 8y agoDon't get me wrong, but no high-school teaches operating system development. 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.
- abbiya 8y agoWhich school did you go to?
- aswinmohanme 8y agoKendriya Vidyalaya Adoor, Kerala, India
- DarmokJalad1701 8y agoKV-ഇൽ OS development ഒക്കെ പഠിപ്പിച്ചു തുടങ്ങിയോ?
- aswinmohanme 8y agoAhh annathe sir poli aarunnu, katta encouragement aayond oru kai nokiyatha ;)
- lonesword 8y agoNannayi varatte :)
- blocked_again 8y agoWas this your plus two project ?
- Nydhal 8y agoKannada? I'm not indian but I remember these symbols from a twitter crawling project.
- the_arun 8y agoIdu malayalam aanu mone
- DarmokJalad1701 8y agoMalayalam
- nopacience 8y agoYou went to a great school! Congrats for your accomplishment
- memory_grep 8y agoHow does it compare to TempleOS? :)
- Y_Y 8y agoThis is a good question. Very few people have the means and motive to write an OS in a bubble and I wonder if it leads to the same tradeoffs.
- deleted 8y ago[deleted]
- kuroguro 8y agoTempleOS is real mode. What do we do all day?
- shiveringking 8y agoTempleOS does not run in real mode, it runs in long mode (64 bit)
- kuroguro 8y agoThe author had some... memorable quotes. It was a reference to his most infamous post. I assumed the OP knew about the author's past and wasn't asking for a genuine comparison. Tho looking back I'm not so sure. For the brave of heart (NSFW): https://www.youtube.com/watch?v=UCgoxQCf5Jg&t=3295 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.
- RandomGuyDTB 8y agoI heard that guy made his own compiler
- openloop 8y agoKind of amazing.
- lmitchell 8y ago'Ultron is designed with OOP in mind and has not failed to live up to the promise at all possible places.' Would that more professional programmers had this humility. :)
- twtw 8y agoI can't tell if that's saying that it didn't completely fail, or that it completely succeeded.
- konschubert 8y agoI read that sentence as saying that OOP was successful.
- hexane360 8y agoI read that too, and also read OP as being sarcastic
- VainGlorious 8y agoI can't see any OOP in that 2 tutorials worth of shitcode.
- kazinator 8y agoThose who say this is more about bravery than raw skill or intellect have momentarily forgotten that OS's have to not only be coded, but debugged.
- twtw 8y agoLike the author? https://news.ycombinator.com/item?id=19070587 https://news.ycombinator.com/item?id=19070587
- detaro 8y agoNot really true for a small toy OS in my experience.
- imtringued 8y agoDoing something at all is half the battle.
- shaderwec 8y agohacker news is shadow banning ? how low can hn go ?
- covercash 8y agoFor my high school senior theology project, we were instructed to select a modern news event, categorize it into one (or more) of the seven deadly sins, and then give a class presentation. I miraculously convinced my group to choose the Microsoft antitrust case since I had just read the Wired cover story on it. Throughout the year, I sat in the back of the room and had a fake bible cover over my Flash 5 Bible and was reading about actionscript instead of paying attention to a topic I had no interest in. For the project, I made a fully interactive Windows 2000 desktop and functioning start menu that would launch “programs” that were the visual components of the presentation. We had the teacher move class to the computer lab where I loaded the flash executable onto each computer so the students could play with it while we gave the oral presentation. It was pretty awesome and we ended up with the only A in the entire grade!
- deleted 8y ago[deleted]
- currymj 8y agowhich sin was it?? greed would be the obvious, but one could make a case for pride and sloth as well.
- covercash 8y agoPrimarily greed but I think one of my group members also mentioned pride and gluttony. This was 18 years ago so details are fuzzy. I probably have the project on an old hard drive or CD-R somewhere...
- lachlan-sneff 8y agoI did this too! Was a great learning experience.
- deleted 8y ago[deleted]
- deleted 8y ago[deleted]
- avisaven 8y agoWhat a coincidense, for my high school senior project in 2017 I built an operating system as well [1] (which I still work on to this day). For anyone who is put off by the difficult of building an operating system I highly recommend just going in and getting your hands dirty. osdev.org is a fantastic resource and theres plenty of reading to do on the web, and getting more intimately familair with your hardware is an incredibly gratifying and enlightening experience. Even if you never end up with something useful, the learning experience of working in such a liberated and constrained (theres no rules, but no supports! anything goes within the constraints of the hardware) environment is second to none. And once you build your operating system, you can always go back and do something new with it. Mine has become something of a zen garden where I can just play with new ideas and algorithms, without having to worrying about reaching some sort of goal. [1] https://github.com/block8437/brackos https://github.com/block8437/brackos
- keithnz 8y agois there any projects that influenced this project? Just curious as googling some of your code turns up in other projects.
- lainga 8y agoUltron! This is the browser that Google uses, right?