I want to build an OS, but were do I have to start???

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.
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:I want to build an OS, but were do I have to start???

Post by Pype.Clicker »

i suggest you head yourself to Operating System Resource Center (see .:QuickLinkz:. and look for information about filesystems). Linux uses EXT2, EXT3 and reiserFS natively, which are both quite high-level filesystems. All i know from NTFS is what i read from Andrew Tannenbaum's paper on it (somewhere on InformIT, i think), but let me tell you that NTFS is certainly not an easy-to-handle filesystem ;)

As for supporting all of these on your own system, it can certainly be achieved by a virtual filesystem (i suggest you look at the way Linux handle this) and kernel modules for supporting additionnal FSes.

The way Windows access to Linux partitions (using dedicated application-level tools that operate on the raw device) is a bad option, imho (even though it comes handy to fix your linux box when only windows remains -- which virtually never occur ;D )
Robbert

Re:I want to build an OS, but were do I have to start???

Post by Robbert »

Ok I will try to search for an answer. If I've found it, I think within 2 years I will post it here. Thnx for all the help and tips :D
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:I want to build an OS, but were do I have to start???

Post by Solar »

Robbert wrote: I think within 2 years I will post it here.
Oh may ye conserve the dreams of thee youth... :-D

Good luck to you, but you might fare better if you plan more long-term for a project of that magnitude...
Every good solution is obvious once you've found it.
Robbert

Re:I want to build an OS, but were do I have to start???

Post by Robbert »

I ment the answer of my question, but hey I am quite far now. I have my bootloader and my Kernel up and running it all works fine. But what next??? ??? :-\
one

Re:I want to build an OS, but were do I have to start???

Post by one »

Well if you have all that then i think your OS is done. Why are u asking for help?
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:I want to build an OS, but were do I have to start???

Post by Pype.Clicker »

Robbert wrote: I have my bootloader and my Kernel up and running it all works fine. But what next??? ??? :-\
This basically depends on what's in your "kernel" ... is it able to run user programs already ? does it offer multitasking or virtual memory ? does it offer access to a filesystem or provide a framework to run a filesystem server ?
Robbert

Re:I want to build an OS, but were do I have to start???

Post by Robbert »

I just builded a kernel with the tought: I will build an OS over it. It only says on startup: Heeeeey the kernel works, and that's it. :o
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:I want to build an OS, but were do I have to start???

Post by Pype.Clicker »

okay. So you don't really have a "kernel" ... Just a place where to build it ;)

It's not panacea, but maybe you could like to get a look at Clicker's history which will show you in which order i did things.

It's certainly not the best stepping one could dream of (for instance, i still have no mouse driver nor a shell support), but that's all i have to offer ...
Robbert

Re:I want to build an OS, but were do I have to start???

Post by Robbert »

hmmz a mouse driver, can't you make that with C or C# ? I know that I can change the keyboard functions with VB 6.0 so why can't you make a mouse driver with C or C# ;)

But okay thnx for the tips. But first I need to have C and C#, lets say MS Visual Studio. Typing everyting in notepad is quite "booring" because I don't know all the commands :)
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:I want to build an OS, but were do I have to start???

Post by Pype.Clicker »

you can (and i could) certainly write a mouse driver in C ... i just haven't got the time to do so so far ... other priorities and stuff ... plus the fact that "what would a mouse driver be good for if the kernel has no mechanism to deliver moves and clicks to a program" ?

For C# or VB, just forget about them. They'll be of no use for OS development as the programs they produce require Wind0ws to be present to run. Even Java would be more easy to use...
one

Re:I want to build an OS, but were do I have to start???

Post by one »

Yeah I find it funny that there are so many guys out there who think tha an OS could be written in any language. I think a absolute requirement is a least a working knowledge of Assembly with a little C thrown in.

If you qualify then i guess you could think starting in terms of memory and chips etc.
Schol-R-LEA

Re:I want to build an OS, but were do I have to start???

Post by Schol-R-LEA »

I have to differ with you on this: while assembly is indeed a necessity (and indeed the only necessity - many OSes have been written entirely in it), C is not the only reasonable choice for an OS implementation language. Even if one takes a strict definition of the idea of an 'OS Kernel' so as to exclude bytecode based systems (Smalltalk-76, JavaOS, UCSD Pascal), or systems for unique hardware (BurrGOL, Genera, occam), one finds that the main requirements is that the language compile into native code which can run with little or no additional runtime support. There are several languages which fit this requirement; at least three of them which I know of - PL/M, BCPL, and Modula-2 - have been used to implement at least two OSes apiece. While C has (deservedly, IMAO) long since overshadowed them, as well as other system languages such as JOVIAL, BLISS and XPL, the fact remains that they could and were used for kernel programming. There are also newer languages, coming out all the time, which could be used just as easily as C is.

That having been said, C# and Visual Basic are two good examples of languages which could not reasonably be used for kernel implementation. Putting aside the current OS-specific versions, it is still the case that any imaginable implementation of either of them would have high, irreducible runtime support requirements, in the form of garbage collection, complex libraries, etc. C# would at least be reasonable for higher-level parts of an OS, being essentially a clone of Java; but VB is poorly suited for systems programming at all, being aimed primarily at business programming and having huge built-in support for such things as date manipulation, currency arithmetic, and so forth. While it is possible for a BASIC-like language to be designed for systems programming, VB is not.
Post Reply