One of the great difficulties a hobbyist programmer faces when trying to start the development of his own OS is finding out where to start. Many books describe in-depth theoretical OS concepts, yet noone seems to take a hobyist programmer by the hand and bring him face to face with these concepts. This is precisely what this article aims at doing.
Instead, how about we all just spend the time on improving Linux for the Desktop.
๐
How about we all work on FreeBSD instead? ๐
Just teasing btw.
Because everyone knows that *BSD is dying.
๐
Why do we have to use *nix? I say lets all help OBOS..
Seriously though (for Harry Enfield fans), “Oi, Linux.. NO! If you were to sit on me server, behaving and giving me good performance, then that’s fine. But if you were to try and jump on my desktop, give me no clear desktop, no clear widget set, no uniform desktop experience…”
Until Linus is less of a mess, I say more power to those who create their own OS.
Never believe that C is a must!
One easy way to write your own os in assembly only is:
(here the counterexample starts)
1. Learn Forth.
2. Take figForth or eForth sources.
3. Read figForth Installation manual.
4. Install your Forth to be the program started after boot.
5. Write applications you need in Forth and embedded asm.
That is one simple way to avoid all that C crap
that the most of the world like.
C(++) is not everything, it is not the universal PL as FSF, Microsoft, BSD and their followers want to see.
Of course, one PL supported by OS is not a good idea, but why not to look at different, more extensible and more powerful languages, at first? And to look for mixture of PLs later.
I’ve noticed that there are a lot more little, hobby os’s around lately. It seems like it’s all happened over the last year or two and I would say one of the major contributing reasons is that more people are starting to write tutorials and how-to’s. Articles like this one have a big impact when it comes to inspiring people to give os development a go.
Within another 4 years, it will be interesting to see which ones managed to survive and in what way they evolved.
Starting our own OS is the big part of the fun … being yet another coder on Linux is SOOOOO boring.
I agree with ASau. I want to write my own OS too, but I want to write it around a Forth dictionary/interpreter/compiler, which the boot sector just loads and runs. I’ve never cared about Forth until that ColorForth article posted here a while back:
http://www.osnews.com/story.php?news_id=2128
The recent fashion in hobby OSes seems to have been microkernels. I wonder how many OS hobbyists are working on Forth systems?
Uhm, if memory serves me right, FORTH _used_ to be an operating system but degenerated to a mere programming language…
If you’re interested in Free OSes, take a look at http://www.freeos.com.
You missed a few steps on your Forth system.
1. Get assembly based Forth Source.
2. Build Forth system.
3. Recode Forth system using embedded Forth Assembly and high level Forth.
4. Build Forth system.
5. Boot.
The goal is to get your entire Forth system into Forth itself, rather than the original assembly file and then “meta-compile” it.
However, for larger systems, the Forth world is a bit restrictive. Stock systems tend to be very source code based. If you want to run program X, you need to load the source into the system and compile. Then you do the same load program Y. Unfortunately, if you then want to unload program X, program Y typically goes with it.
This is the price having such a simple system. No doubt this can be overcome, but it’s one reason why there isn’t a real “ForthOS” out there.
Because everyone knows that *BSD is dying.
You are wrong. M$, Yahoo and other major companies are using FreeBSD as well. A lot of things are starting to port in the FreeBSD as native already such as Opera, Nvidia and etc. Don’t forget about FreeBSD 5.0 too.
I think if you can’t figure out how to set up a proper tool chain and either get bochs or tftp on another machine working, then you shouldn’t be writing a kernel (at least until you learn how to). What people really need is a tutorial about after getting simple kernel loaded. How do you set up paging, interrupts, memory management, printf, etc.
<em>Because everyone knows that *BSD is dying.</em>
This makes me laugh. What ignorance….
Take a look at the smiley after Pat wrote that. He meant it as a joke (I’m guessing he’s referencing the troll that always comes up on Slashdot about how BSD is dying and gives some fake “facts” to back it up – set your threshold low on any story about BSD and you’ll see it).
I assume “Brett” stands for “Brett Glass”, who is a notorious freebsd biggot, and general asshole.
We don’t need *nix, forth or any of that stuff. I have a “unique” idea lets write a lisp machine ๐
ps. If you want some real programming fun why not help the Mix Masters port the code from the MIX to MMIX. (That way I can buy the new books sooner)
BTW nice article.