“This set of tutorials aims to take you through programming a simple UNIX-clone operating system for the x86 architecture. The tutorial uses C as the language of choice, with liberally mixed in bits of assembler. The aim is to talk you through the design and implementation decisions in making an operating system. The OS we make is monolithic in design (drivers are loaded through kernel-mode modules as opposed to user-mode programs), as this is simpler.”
I too sometimes write my own Unix clone when there’s nothing good on TV
While I applaud the educational value of these tutorials, IMHO the world does not need yet another UNIX clone
Let’s think beyond windows NT and UNIX operating system design, shall we?
Indeed, we really don’t need yet another monolithic UNIX clone. On the other hand, it’s always good to have some doc at hand in the OS development area…
Edited 2011-01-16 21:58 UTC
True, lets have an OpenVMS clone! I know there have been attempts in the past but there seems to be a reluctance to follow it through to the logical conclusion
So we’re not thinking beyond NT then, only unix?
Windows NT is no way like OpenVMS – an influence? sure, but it isn’t a top to bottom 100% clone of OpenVMS.
Well, linux is not a clone of Unix. so….
My point is that if you want to break from the NT/Unix approach to Operating System design, probably OpenVMS is not the best example. Even though NT and VMS are obviously not clones, they come from the same family tree (literally) when it comes to approaches and concepts.
Truth be told, most OS are fairly related. There are so many ways you can reinvent the wheel.
Edited 2011-01-17 09:44 UTC
Well one could say the same thing about Plan 9 – I’d sooner see a re-implementation of that in LGPL with heaps of driver with a better GUI than the current implementation. I’d argue there are only so many ways you can re-invent the wheel till you stand back and realise they’re just variations of each other; taking an idea and tweak it to address some of the short comings etc.
you can check freevms , it was somehow usable in previous versions 0.3.x
http://www.freevms.net/
now is rewritten using a microkernel (the older version used monolitic one)
I have tested FreeVMS 0.4 and for the moment boots the kernel
wget http://www.freevms.net/IMG/bz2/freevms-img.bz2
bunzip2 freevms-img.bz2
qemu freevms-img
There has been no activity in the mailing lists for over 2 months, there is no road map, no schedule etc. All I can assume from that is the project has been abandoned.
While I applaud the educational value of these tutorials, IMHO the world does not need yet another UNIX clone
Let’s think beyond windows NT and UNIX operating system design, shall we?
I myself have been thinking of a rather different approach to OSes for several years now and I am starting to have a good bagful of ideas, but writing an OS is such a humongous task that there’s no point in even trying, especially when there’s already so many OSes in use. And none of the ideas could really be implemented in any of the existing ones :/
plan9 ?
As a member of the Hobby OS development community, I can say that these tutorials stand out as a wonderful resource for people starting out in the field.
Sure the world doesn’t need other UNIX clone, but that is not the idea. The purpose of this tutorial is to teach the basics of OS development, using a paradigm that most will already know.
Someone should read the archive : http://www.osnews.com/story/8162/Why_you_Shouldn_t_Write_your_Own_K…
Kochise
Some of your points are very relevant, though I think your view of the thing is a bit one-sided
Should I write a series of articles on the subject (been thinking about it for some time), the first one would be called “Getting started… or not” and explain what are good and bad reasons for getting into hobby OS development.
Because yes, there are good reasons. Learning how compilers and computers work at a low level, playing with new OS designs without aiming at becoming famous, or just voluntarily getting into coding something really hard because you want some real challenge in order to improve your skills further… These are all good motivations for hobby OS development. The big problem, as you mentioned, is that one must be realistic about his goals.
Edited 2011-01-17 09:01 UTC
It’s not that I dislike writing hobby OS (I do one on my spare time) I just find disgusting some telling people what they aught to do. Sure writing everything from scratch is not productive, per see. Yet you discover things deeply, malfunctions, bugs, culprits, etc… Being a good automotive technician requires that you know a bit of general mechanics, if not specific engine, pump and electrical bits :p
Kochise
Totally agree there.
Yes JamesM did a great job writing that tutorial. It has been used as a foundation for countless numbers of hobby operating system.
Also I just want to point out that it can work as a base for any type of operating system. The only UNIXy about it I would say is the use of a simular virtual filesystem.
Plan 10?
Lil’ Debbian:
Kids learn about cooperation. In the first level, Woody, kids must agree on the answers to a thousand questions before proceeding to the next level.
Fedora the Explorer:
Contains a friendly home screen with big buttons such as Music and Videos. When the child clicks the button, they are given a lecture about the dangers of proprietary plugins.
Bu-bu-bu-bu-bu-bu-buntu:
Kids experience a playful coloring book, where they get to enjoy coloring in their favorite Free Software heroes with various shades of brown. Eventually, a kernel update comes and brings the kids a visit from Kernel Coredump the Grump.
Edited 2011-01-17 20:18 UTC
What a grown up comment, not childish at all. LOL
Edited 2011-01-17 20:35 UTC
Bloody brilliant article, I come to OSNews for stuff like this. A really enjoyable read.
Hope to see more like this