Forum Moderators: bakedjake
I'm currently conducting research into the history and difficulty of developing an operating system. I would love to hear your thoughts on the following questions:
1. Describe the components of an operating system, besides the central component, the kernel.
2. What do programmers usually develop first, the compiler or the kernel?
3. Does this sequence impact the OS at all?
4. What's more complicated, the kernel or the compiler?
5. Why does operating system development take as long as it does? What are the three
key things in all operating system development that take the longest to perfect?
6. Do you need operating systems familiarity to write a kernel? Yes / no? Elaborate please.
7. In your opinion, why aren't there more operating systems on the market?
Thanks for your time. Best,
Justin Orndorff
Welcome to WebmasterWorld! [webmasterworld.com]
As you might have noticed, we're primarily a webmaster based community, and our development/coding focus is generally geared towards applications interacting with the web. That said, we do have some offline developers among us. Perhaps one of them might chime in with some insight.
I must ask though - is this for a homework assignment? :)
1. Describe the components of an operating system, besides the central component, the kernel.
Kernel, Interpreter (shell), and supporting apps - such as ls/dir/ "userland" apps. Gui's will ride on top of this, however Windows is the only fully integrated gui/os besides MacOS 9 or less
2. What do programmers usually develop first, the compiler or the kernel?
3. Does this sequence impact the OS at all?
4. What's more complicated, the kernel or the compiler?
5. Why does operating system development take as long as it does? What are the three
key things in all operating system development that take the longest to perfect?
6. Do you need operating systems familiarity to write a kernel? Yes / no? Elaborate please.
7. In your opinion, why aren't there more operating systems on the market?
1. MacOS
2. Mac OS X
3. Linux variants (dozens)
4. Solaris
5. Solaris X86
6. Windows family OS's
7. IBM AIX
8. OS/2 - although "EOL'd"
9. IBM Object Desktop
10. Amiga OS - yes, still going strong
11. OSF
12. Ultrix
13. Xenix
14. SCO (cough)
15. Unixware (cough)
16. NEXTstep (dying)
17. hundreds of open source/private OS's
The reason many don't flourish is it would be costly to support, maintain and develop the infrastructure and app base for more then a few core os's. Its like cars and roads, if they're not compatible you wouldn't be able to easily support them and it takes alot of infrastructure and support to keep them in place and running efficiently.
2. What do programmers usually develop first, the compiler or the kernel?
It depends on how crazy you are :)
Usually the compiler is already developed, one just takes gcc and nasm/as and builds lots and lots of useless kernels with them just for fun :)
But if you're really really crazy then you may try building a kernel directly on machine code. Not pretty, but very very fun. If you're quite mad.
4. What's more complicated, the kernel or the compiler?
Don't cheat. Build both on your own, or you're missing all the fun, then see which was harder. You don't have to recreate gcc or Linux, toy models are accesible to everybody in both kernels and compilers. Try making your compiler for a toy language to make the BNFs less threatening than C's.
5. Why does operating system development take as long as it does?
It doesn't. For a dummy manage-memory-catch-signals toy. The real world tasks are more demanding. The real function of an OS is to encapsulate work the programmer shouldn't be doing again and again. If you limit to, let's say, something like MS/DOS (which did almost nothing, leaving all the work to the programmer) then you may get your OS out really soon. Extra features are both what makes an OS successful (because the programmer works less and can get more done) and what eats development time. When you're out on the market race there's a delicate balance between time/features; that's an advantage non commercial OSes have.
7. In your opinion, why aren't there more operating systems on the market?
There are hundreds of operating sistems in existence (ByronM's point 17), but aren't so well noticed because they are very specialized for an specific device, like for example to drive a cellphone's chip. Who did this question is probably not giving much credit to forces outside of the billboards. It's like the trick question: who's the biggest chip seller? The instinctive answer is to say Intel/AMD/whatever because they sell chips on TV, but a more correct answer would be for example Motorola because their chips are included on lots of little devices.