OS writing

Started by
11 comments, last by RamboBones 21 years, 5 months ago
I know this isn''t what GDnet is about but I''m completely at a dead end. Can anybody tell me how to go about writing my own OS or know any good links or HELL can anybody point me in the direction of somthing usefull. Please help guys!!!
Advertisement
http://www.cs.utah.edu/flux/oskit/

-D
C:>
http://bochs.sourceforge.net/
http://www.info.polymtl.ca/~bono/osdnhq.txt

The first link is a great emulator, and it's helped me a lot in testing out my kernel. It can be somewhat painful to setup at first, but you only need to do it once (hopefully ). The second one tells you how to setup a bootable image that you can copy your kernel to and test with bochs.

As for OS development, hopefully you are already strong with assembly and the tools you plan to use. I highly recommend NASM and/or GNU as/gcc if you haven't chosen a toolset yet. You don't seriously need assembly to develop a kernel with those toolsets, but that's your adventure.

For learning, you should hang around megatokyo's message boards and read a few of their tutorials. Some books wouldn't hurt. I don't have all my resources here with it, so hopefully someone can give you a few good links.

[edited by - aggregate on November 8, 2002 11:41:59 PM]
I guess it''s time to ask the obvious question.

WHY do you want to write your own operating system? Systems programming, while some of the most rewarding programming you can do, is also the most difficult and requires the most planning to successfully complete.

So right now, I''m guessing you are going to be in one of three categories:

1) You are a Computer Science major, and are doing this in a futile effort to create a project to differentiate yourself from the other 25% of Computer Science majors who write simple operating systems for their thesis.

2) You have looked closely at Windows, Linux, BeOS, OS/2, etc., and have found them wanting somehow.

3) You woke up one morning and said, "Gee, it would be fun to make my own OS."

If #1, consider contributing to the GNU/Hurd project. Lord knows they need the help. After all, they''ve been working on their microkernel architecture for 19 years now...

If #2, pay closer attention to the holes. A good start in systems programming is not to reinvent the wheel, but to plug in the gaps in other operating systems. It helps you learn how various and sundry components of the OS work together.

If #3, I don''t know. I was actually in that boat once myself. My best recommendation: go down to your local pub, get piss drunk, and start coding your OS until you pass out. When you wake up, compile what you did. If it compiles and runs, you might have what it takes to be a systems programmer.

If none of the above, good for you. Good luck. You''ll need it.

RomSteady - Test Locally, Test Globally, Test Early, Test Often
Michael Russell / QA Manager, Ritual EntertainmentI used to play SimCity on a 1:1 scale.
quote:3) You woke up one morning and said, "Gee, it would be fun to make my own OS."


Well you hit it spot on. I might seem crazy but heck. I got nothing better to do. Besides it might be fun...
quote:Original post by RamboBones Well you hit it spot on. I might seem crazy but heck. I got nothing better to do. Besides it might be fun...

Well, then I recommend that you start simple. OS programming is something you best work your way into slowly.

Start by writing a spec. Not writing a spec for your operating system is a Cardinal Sin (TM), and is puninshable by being forced to talk to Derek Smart about BattleCruiser 3000AD and Take 2.

Get the basics coded first. Skipping the core of your operating system and jumping right into the fluff stuff is a Cardinal Sin (TM), and is punishable by being forced to listen to Richard Stallman bash Microsoft for a week straight.

Get it working right first. Get it working fast second. Premature optimization is a Cardinal Sin (TM), and is punishable by being forced to attempt to set up a network game in Extreme Paintbrawl (the only game ever to ship without a single-player or multi-player game in the box).

RomSteady - Test Locally, Test Globally, Test Early, Test Often
Michael Russell / QA Manager, Ritual EntertainmentI used to play SimCity on a 1:1 scale.
quote:Original post by RomSteady
2) You have looked closely at Windows, Linux, BeOS, OS/2, etc., and have found them wanting somehow.

Well.... none of those OS''s make hard real-time guarantees. Toss in VxWorks, QNX, and Solaris for a better OS cross-section
- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara
Or one other thing...you''re still in high school from what I can tell from your post history. Forget this stuff...go out and date! Learn from the mistakes of your predecessors...

There is always time for coding later. There won''t always be time for the opposite sex...

RomSteady - Test Locally, Test Globally, Test Early, Test Often
Michael Russell / QA Manager, Ritual EntertainmentI used to play SimCity on a 1:1 scale.
quote:Or one other thing...you''re still in high school from what I can tell from your post history. Forget this stuff...go out and date! Learn from the mistakes of your predecessors...

There is always time for coding later. There won''t always be time for the opposite sex...


The point is I seem to find programming MUCH more interesting than girls, who are so damn annoying. Besides the point of this post is for people to put up any help or information on OS building not on whether or not I should do it.

This topic is closed to new replies.

Advertisement