let me educate you

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
october

let me educate you

Post by october »

There are a lot of newbies out there. I'm one of them.
A mass of questions startting with "how do i.. ", "how does ...".
A lot of us want to get rich or famouse. WE NEVER WILL.
A few just want to learn. A few just want to know how things get done and why! But just getting a shell to work is a huge piece of work for a newbie.
There are some educational os's out there but they are still complicated and huge when my main goal is a small shell.
So my idea is an educational os. A really documented os.
From groud up. With more "//" then ";"

Not v0.1: MemManag, Shell and mouse driver complete.
Just v0.1: It boots and says "hello"

If for you this sounds boring then just help us by telling how it works. Making an os isnt that hard if you know how ... and if you arent alone.
Lets make a website with a fully documented os from scratch to Shell.
Small steps ... to make kernel developers out of newbies.

Hope you got the point
(sorry for my english)
Therx

Re:let me educate you

Post by Therx »

Good idea!

Such a thing kindof already exists. Look at http://my.execpc.com/~geezer/osd/. I started making my own set but soon found that writing newbie proof code is almost as hard as writing the OS its self. The trouble is that its easy to say here's the GDT, IDT etc. but to explain how its formed fully takes knowledge of different rings (supervisor/user) and other compilcated concepts which the newbie won't need again for a while. Yet I know when I started that I didn't want to read docs I just wanted to make an OS. Then again if you encourage the person to copy and paste he'll ignore these complicated things until they reach a point where they need to understand it.

Whoa ... Catch 22.

Pete
jamesb

Re:let me educate you

Post by jamesb »

The Minix OS is an excellent educational OS, although it is a bit overwhelming for newcommers to kernel programming. For the uninitiated, I highly recommend Douglas Comer's Xinu OS (XINU = eXpertise In Networking Unix systems - it's also the reverse of UNIX) - the fact that it has eminently readable code is just one good point. The second is that it's probably the only educational OS with small, tight network code. Yup, a full TCP/IP network stack included! You download the code from Comer's TCP/IP book web page, and despite the name of the tar file, it actually includes the code for Xinu.

Xinu + networking implementation:
ftp://ftp.cs.purdue.edu/pub/comer/TCPIP ... ist.tar.gz (~600K)

Also check out: http://dmoz.org/Computers/Software/Oper ... Education/.

You might also want to check out FreeDOS and the "historic" linux 0.01 release, available from the Linux Kernel Archive.

Have fun!
User avatar
df
Member
Member
Posts: 1076
Joined: Fri Oct 22, 2004 11:00 pm
Contact:

Re:let me educate you

Post by df »

hmm i'm sure i had a book called Xinu IS Not Unix....
it was a red book with white title.... i'm sure of it...

hmm
-- Stu --
jamesb

Re:let me educate you

Post by jamesb »

Actually, that could have been it...

Could also have been the inspiration for RMS's GNU acronym...

Then again, GNU might pre-date XINU by a year or so...
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:let me educate you

Post by Solar »

Documenting well is somewhat of a "sideline goal" for my OS, too - especially in the "how the heck do I use C++ in kernel space" area... :-D
Every good solution is obvious once you've found it.
darklife

Re:let me educate you

Post by darklife »

I personally feel that once you get good concrete background in assembler programming and learn how the processor under the hood you will be programming for works you will be able to create systems software (like operating systems) with some ease. Learning C can be a plus, maybe even C++. You just don't jump into making your first OS, you build yourself up to it!
Learn the basics of memory management and programming the hardware first! It doesn't matter if you make a small OS or a big one, if you don't understand how EVERYTHING works inside your own code then you shouldn't have programmed it!
Baby steps.
Linux started out as nothing more than a multitasking *terminal* that Linus could use to call/connect to the university and download files at the same time he ran programs remotely over the server since DOS couldn't get the job done well. In fact, after he read *lots* of thick books he then made his first multitasking program that printed nothing more than AAAABBBBBAAAAABBBB (A for task 1, B..)
You just don't go from programming a calculator program directly to a operating system. You take steps, the most logical steps foreward.
Most of all, take your time and you will learn what is needed when it is needed.
Perica
Member
Member
Posts: 454
Joined: Sat Nov 25, 2006 12:50 am

Re:let me educate you

Post by Perica »

..
Last edited by Perica on Sun Dec 03, 2006 9:25 pm, edited 1 time in total.
mr. xsism

Re:let me educate you

Post by mr. xsism »

lol @ perica, yeah it is too bad that people choose modem over mind. OSdev is more of an educational experience than a "build nmy own OS" trip and fall.

I think that driver development is good under old OSes that allow io access. ie- DOS. What do you guys think?
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:let me educate you

Post by Pype.Clicker »

the MMURTL book might also be an example ... maybe more of "how you shouldn't explain things" than how you should, according to some reviews i heard ...

I didn't read it personnally, so take my words with the appropriate trust coefficient k=0.1 :p

Btw, i read XINU book too. Very good thing, even if it's a bit outdated (the network is a ring topology of serial lines -- a.k.a. nullmodems).
There are even pieces of Clicker (the "krefs.h") that have been inspirated by this book...
Freanan

Re:let me educate you

Post by Freanan »

Concerning MMURTL: I bought this as an ebook when i first planned to get into OS Development. I found it rather disappointing. It explains how an OS an designed and how it works theoretically. All this is explained very easy to understand.
But today everyone knows, that multitasking works by time sharing and all that stuff.
A newbie wants to know how to CODE it.
A really good introduction to OSDev (which does not exist :( ) would be a mixture of general design issues and the practical stuff about protected mode and all that, including writing a bootsector, writing hello world in pmode and so on. As there are books about 'Game Development with DirectX' there should be one about 'OS Development in Protected Mode'

Concerning the actual topic: Good idea!!!
Post Reply