4 ms·
Ours didn't have a GUI. It took us less than a year to write and the team was never larger than 6 people. It's less complicated than it seems at first sight. T
by notalaser 11y ago
Ours didn't have a GUI. It took us less than a year to write and the team was never larger than 6 people. It's less complicated than it seems at first sight.
There are a lot of things about machines that you need to understand, but the technology itself is relatively well-understood and sane practices are encouraged.
It blows my mind that less than twenty people can string up something non-trivial with Node.js et co.. Operating systems are trivial in comparison.
- joepie91_ 11y agoAs somebody who develops significantly complex in Node.js and considers operating systems to largely be black magic, I'd love to have a chat about this some day, and compare notes :)
- maaku 11y agoRead the MINIX book. It's basically a walk-through (with source code) of entire operating system.
- gravypod 11y agoThe book is over a hundred dollars. As someone who is working on a simple os and a college student, this saddens me. I'll have to see if my library has one.
- abiox 11y agowell, it is a textbook after all. perhaps the textbook industry isn't so virulent in your neck of the woods.
- bigtunacan 11y ago@gravypod if your college library doesn't have it you should ask them if they can get it through interlibrary loan; most colleges (in the USA) participate in this program which gives you access to virtually every book ever printed.
- gravypod 11y agoI'll give it a go. Hopefully they do and I hope Minix has the chicken and egg problem sorted out of loading a microkernel.
- dom96 11y agoThank you for the suggestion! Happy to see that my University library actually has it.
- codezero 11y agoIs that Operating Systems Design and Implementation by Tanenbaum?
- burfog 11y agoIt's a very biased walk-through of a bad example. You'd do better to look at xv6. That's like v6 UNIX, minus permissions, plus SMP, running on 64-bit x86. It's very clean and modern C99.
- nickpsecurity 11y agoAppreciate the recommendation. I gotta relearn a bunch of stuff due to a brain injury wiping it out. A simple x86 OS in modern C will fill in plenty of blanks. :)
- cpeterso 11y ago"Operating System Concepts" (aka "the dinosaur book") by Silberschatz, Galvin and Gag is a classic. It's very approachable, compares real operating systems' design choices, and covers some theory.
- frankzinger 11y agoInteresting article on Minix by Tanenbaum which featured on HN recently: http://cacm.acm.org/magazines/2016/3/198874-lessons-learned-from-30-years-of-minix/fulltext http://cacm.acm.org/magazines/2016/3/198874-lessons-learned-...
- nickpsecurity 11y agoI second Minix as Linus started with it when figuring out how to write Linux. Also, Dijkstra's THE system, Niklaus Wirth's Oberon books with source code, and Hansen's stuff are all educational. Wirth and Hansen have a simplicity focus that makes it easier. Matter of fact, Wirth's people make OS's with type-safe code that are so straight forward I've always recommended starting with an AOS or A2 Bluebottle port to your language of choice.
- nickpsecurity 11y agoYour website is interesting but a tad hard to follow due to the "organization" scheme. ;) So, what OS project did you work on in that first sentence and do you have a link to it?
- notalaser 11y agoSadly, I don't have any link -- it was a commercial and proprietary soft real-time system, mainly for embedded use (we made it as portable as we could, but never ported it to something truly general-purpose like x86). It was functional and reliable more than it was fancy. Certainly nowhere near the scope of Redox. But it had preemptive multi-tasking, a driver model somewhat akin to Linux's (but without loadable modules) and some networking support, which we managed to fit in a few KB of RAM. I'm saying all this in the past tense because the company was sold off a few years ago and I have no idea what happened to the IP, if anyone is still developing it and so on. I only wanted to mention it because operating systems have this intimidating reputation, which is not only a little unfair, but seems to hold people back. I've seen a lot of very good programmers thinking they couldn't be part of a team that develops one, when it was in fact well within their possibilities. And, historically, this has been true for a very long time. Many applications that run on operating systems are far, far more difficult to program than the system they're running on, or at least require vastly more knowledge in order to get right than writing the OS. > Your website is interesting but a tad hard to follow due to the "organization" scheme. ;) The joy I get out of doing it again vastly outweighs the pain of writing HTML by hand, but barely :-).
- nickpsecurity 11y agoGood work. Not quite an OS like what they're trying to build, though. I've always thought these discussions could benefit from different categories of OS like single vs multi-user, UNIX-like vs non, embedded vs desktop vs server, local vs distributed, and so on. A soft-real-time, single-user OS is much easier to write than a UNIX alternative that's similar in capabilities. So, one can certainly write a RTOS more easily than many applications on servers or desktops but the statement seems apples to oranges applied to mainstream perception of OS's (aka desktops, servers, or iOS/Android). "The joy I get out of doing it again vastly outweighs the pain of writing HTML by hand, but barely :-)." Haha. I can't talk given how disorganized my stuff is. Hell, I don't even have a blog: I have text files and PDF's I send to people that ask. Gopher is on another level compared to how I do things. Nonetheless, it's good to know people that did embedded systems as I'm slowly accumulating knowledge on that sort of thing in my exploration of secure hardware/software systems. Really wish I spent more time on embedded and HDL's back when my brain worked reliably. That's where best bang-for-buck in security and reliability are. The more people write openly on such topics the better. So, consider organizing anything you have on the magic you used to do stuff like that web server. Side note. I'm peripherally gaining information on doing 8- or 16-bit software for microcontrollers. Hell, I even have some docs (and maybe HDL source) on a 1-bitter although with 8-bit ALU. Do you have any resources I can give to new people showing the tricks people use to reliably do complex or fast stuff with them? SymbOS would probably be high-end of that but I intend to use them in peripheral controllers, monitoring, and such.