I'm not sure why, but whenever I see a link pointing to sourceforge my instant gut reaction is that it'll be a decade+ aged code that doesn't work properly anymore. I always avoid sourceforge when searching for solutions. I don't know why I have this bias
I have the exact opposite reaction: "This might be something that's been around for a long time, so it's probably more interesting than most of the vapid, insipid, overadvertised crap that passes for knowledge today."
...and indeed, this page has no ads and is in a very readable style, although it's actually quite new.
Honestly, the other platforms tend to be at least equally weird. Particularly given how there tends to be no way for for software to interrogate the hardware on most non-x86 platforms, so you have to just sort of hardcode topology (either directly in the kernel or in a device tree type file that you generate).
Well-written primer, so cool to see something complex reduced to its simplest form that captures the essence.
Funny to read how PC memory can be "millions of bytes on modern machines". To be fair, I was using a computer with only 128MB as recently as 7 years ago :-)
Awesome. We need resources like this to get people into low level programming.
The best class I ever took when I was an undergrad was a class where we built our own OS for a Data General Aviion workstation. Our systems staff was already under contract to help port 4.3BSD to the Aviion, and they had tons of test hardware and docs. So one of the group taught an OS class where whey basically turned us loose with a cross-toolchain and a manual and let us hack all semester. I think by the time we were done, we had something that booted and interacted with a very basic shell (but could not fork, no multi-tasking, no mem prot, etc).
If it were not for this class, I think the more theoretical OS class that I took later in grad school (all dreadfully boring queueing theory style stuff) would have turned me off to doing OS work. Instead, I've had a career doing lots of low-level stuff (drivers, OS ports to new CPUs, network stack improvements, etc).
Writing an OS for the Raspberry Pi is harder work that it should be because of the Broadcom SoC. It's a closed, proprietary chip that does a lot of the heavy lifting (including the initial boot mechanism). My advice to you if you want to write an OS targeting a developer board is to use one of the many open hardware platforms rather than the Raspberry Pi specifically. The Raspberry Pi's are better for tinkering with stuff that runs atop of the OS rather than designing kernels.
Readers understand this isn't close to being an operating system right? You get the first boot sector of a floppy for free from the BIOS. This isn't even as complex as the most simple boot loader. It doesn't handle loading more sectors of the floppy let alone being like an OS.
It's hello world in assembly, loaded onto the first sector of an emulated floppy. That's neat, but nothing to do with operating systems. Other than you've now learnt the very first stage of bootstrapping from a floppy disk back in the 90s. Which is cool, and good info to know and start out with.
I get the vast majority of people seeing this post have probably only ever experienced nodejs, or Ruby on Rails or something equally high level. But this is trivial with respect to an operating system or even a boot loader.
[+] [-] roryisok|9 years ago|reply
[+] [-] userbinator|9 years ago|reply
...and indeed, this page has no ads and is in a very readable style, although it's actually quite new.
[+] [-] justin66|9 years ago|reply
[+] [-] lacampbell|9 years ago|reply
[+] [-] unknown|9 years ago|reply
[deleted]
[+] [-] nerdponx|9 years ago|reply
[+] [-] krat0sprakhar|9 years ago|reply
[+] [-] cr0sh|9 years ago|reply
https://github.com/SamyPesse/How-to-Make-a-Computer-Operatin...
Disappointing...
[+] [-] bogomipz|9 years ago|reply
[+] [-] mark_l_watson|9 years ago|reply
[+] [-] wonderous|9 years ago|reply
https://web.archive.org/web/20140719115200/http://mikeos.sou...
Maybe even (2011): https://news.ycombinator.com/item?id=2100115
[+] [-] rbanffy|9 years ago|reply
Design a decent computer first, then write an OS for it.
[+] [-] CyberDildonics|9 years ago|reply
[+] [-] nickpsecurity|9 years ago|reply
[+] [-] monocasa|9 years ago|reply
[+] [-] alxmdev|9 years ago|reply
Funny to read how PC memory can be "millions of bytes on modern machines". To be fair, I was using a computer with only 128MB as recently as 7 years ago :-)
[+] [-] analognoise|9 years ago|reply
[+] [-] drewg123|9 years ago|reply
The best class I ever took when I was an undergrad was a class where we built our own OS for a Data General Aviion workstation. Our systems staff was already under contract to help port 4.3BSD to the Aviion, and they had tons of test hardware and docs. So one of the group taught an OS class where whey basically turned us loose with a cross-toolchain and a manual and let us hack all semester. I think by the time we were done, we had something that booted and interacted with a very basic shell (but could not fork, no multi-tasking, no mem prot, etc).
If it were not for this class, I think the more theoretical OS class that I took later in grad school (all dreadfully boring queueing theory style stuff) would have turned me off to doing OS work. Instead, I've had a career doing lots of low-level stuff (drivers, OS ports to new CPUs, network stack improvements, etc).
[+] [-] dang|9 years ago|reply
[+] [-] giancarlostoro|9 years ago|reply
[+] [-] laumars|9 years ago|reply
[+] [-] partycoder|9 years ago|reply
- Andrew Tannenbaum's MINIX, and his Operating system books
- The OSDev wiki: http://wiki.osdev.org
[+] [-] Ultimatt|9 years ago|reply
It's hello world in assembly, loaded onto the first sector of an emulated floppy. That's neat, but nothing to do with operating systems. Other than you've now learnt the very first stage of bootstrapping from a floppy disk back in the 90s. Which is cool, and good info to know and start out with.
I get the vast majority of people seeing this post have probably only ever experienced nodejs, or Ruby on Rails or something equally high level. But this is trivial with respect to an operating system or even a boot loader.
[+] [-] tbrock|9 years ago|reply
[+] [-] z3t4|9 years ago|reply
[+] [-] fellellor|9 years ago|reply
[+] [-] Jeaye|9 years ago|reply
For anyone seriously interested in building something less trivial, I recommend starting here: http://wiki.osdev.org/Getting_Started
[+] [-] gumby|9 years ago|reply
I think we both have our biases.
[+] [-] oneweekwonder|9 years ago|reply
http://wiki.minix3.org/doku.php?id=www:documentation:start
[+] [-] greenhouse_gas|9 years ago|reply
ls? Basic sh (without the scripting part, but there are tutorials on building compilers/interpreters)? Basic init?