Archived

This topic is now archived and is closed to further replies.

RamboBones

OS writing

Recommended Posts

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!!!

Share this post


Link to post
Share on other sites
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]

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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...

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
quote:
Original post by RamboBones
The point is I seem to find programming MUCH more interesting than girls, who are so damn annoying.

Well try actually talking to them! Particularly about their interests, thoughts on various aspects of the community, society and world around them. They may not have fully developed their opinions, but they do have them - and aren''t asked enough what they think. Perhaps if they were told more about the insides of their heads than the outsides of their bodies (it starts with you) they''d make much more interesting companions.

They did (and do) for me.


quote:
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.

You shouldn''t do it now, if ever. We''re not even sure you''re a proficient programmer or have an understanding of all the fundamental concepts. I''ve been in your position before, but I went out and played basketball instead. Now I''m a pretty damn good programmer and know what to write, but more importantly what not to write!

Share this post


Link to post
Share on other sites
Here you can obtain the instructional OS (actually its an OS "simulator" that runs on top of the native OS) we use to teach undergraduate OS students the "inards" of an operating system. Its called NACHOS and is used in several universities. All the code is available in either Java or C++, it has been ported to several platforms (though your best bet is to run it on a flavor of UNIX), and best of all its very well documented...

http://www.cs.washington.edu/homes/tom/nachos/

enjoy.
ks

Share this post


Link to post
Share on other sites
quote:
Original post by RamboBones
The point is I seem to find programming MUCH more interesting than girls, who are so damn annoying.

Then perhaps you need to learn something from The Onion's CyberCorner...
CyberCorner.

[edited by - SabreMan on November 11, 2002 10:52:49 AM]

Share this post


Link to post
Share on other sites