HOw do you get Started on Desigining?
HOw do you get Started on Desigining?
Yeah all right I'm new at this, I'm a buisness person wanting to design My own Operating system better for windows, I allready have a flat out drawn design what it will look like, I would realy like to know how to Start an Operating system, were to write the codes, and a bunch of other stuff! SO far I got 0% knowledge on making an Operating System! I would realy like it if someone knows were I can find a tutorial on how to spacificly make one, I'm also tryingto run a buisness! http://stackout.laeubi.de or http://sajthelper.com/stackout please tell me were to go, what to do, how to do it, and to what extent.(Adverbs) I will be wating for a reply thank you.
Re:HOw do you get Started on Desigining?
Here's the advice I gave to someone with a similar idea in alt.os.development recently:
My advice is: aim low to begin with. Come up with a really simple design. Begin to implement it -- it will be much harder than you think. You will be learning as you go along. After a few weeks, you will have learned enough to realise that your original design is rubbish. Start again. Repeat the process until you get so demotivated that you give up, or until you reach enlightenment.
There are plenty of OS development resources around nowadays, and places such as alt.os.development, web boards and IRC channels are full of experienced and not-so-experienced OS developers who may decide to answer some of your questions. But nobody is going to tell you exactly what to do. Nobody will sit down and teach you for free.
In summary: OS development is really hard, and you'll need to prepare for plenty of hard work, on your own, with only the Intel manuals to guide you.
(Also, even if you have 0% knowledge of how to write an operating system, you will need nearly 100% knowledge of how to write software to be able to succeed.)
Edit: You say you're a business person... but I'll warn you that you won't be able to make any money from your OS. The only PC operating system that's making any real money is Windows. The other PC operating system is free. The other operating systems are sold with a piece of hardware (Apple, handhelds, mobile phones).
My advice is: aim low to begin with. Come up with a really simple design. Begin to implement it -- it will be much harder than you think. You will be learning as you go along. After a few weeks, you will have learned enough to realise that your original design is rubbish. Start again. Repeat the process until you get so demotivated that you give up, or until you reach enlightenment.
There are plenty of OS development resources around nowadays, and places such as alt.os.development, web boards and IRC channels are full of experienced and not-so-experienced OS developers who may decide to answer some of your questions. But nobody is going to tell you exactly what to do. Nobody will sit down and teach you for free.
In summary: OS development is really hard, and you'll need to prepare for plenty of hard work, on your own, with only the Intel manuals to guide you.
(Also, even if you have 0% knowledge of how to write an operating system, you will need nearly 100% knowledge of how to write software to be able to succeed.)
Edit: You say you're a business person... but I'll warn you that you won't be able to make any money from your OS. The only PC operating system that's making any real money is Windows. The other PC operating system is free. The other operating systems are sold with a piece of hardware (Apple, handhelds, mobile phones).
Re:HOw do you get Started on Desigining?
Hi Stakout,
have you already been to osdev http://www.osdev.org/ and bonafide http://osdev.neopages.net/ ?
They both offer a good forum and bonafide has some tutorials for beginners (tutorials/kernels).
cheers,
gaf
have you already been to osdev http://www.osdev.org/ and bonafide http://osdev.neopages.net/ ?
They both offer a good forum and bonafide has some tutorials for beginners (tutorials/kernels).
cheers,
gaf
Re:HOw do you get Started on Desigining?
Welcome, Stackout.
As Tim already said, you really have to start from the very beginning, don't have too big expections. Start with a _very_ simple "Hello World" kernel. By the way, which programming language(s) do you know (I mean, really know)? Assembly code will be necessary, C is very suitable but another language will do, too. So after your simple hello-world-kernel, sit down, take your time and think what you want to implement next. Implement it. Only implement one feature at once. Then go on. Good luck.
This forum will definitely help you developing your OS. It really *is* hard and it takes very, very much time. But it is possible, just do it.
As Tim already said, you really have to start from the very beginning, don't have too big expections. Start with a _very_ simple "Hello World" kernel. By the way, which programming language(s) do you know (I mean, really know)? Assembly code will be necessary, C is very suitable but another language will do, too. So after your simple hello-world-kernel, sit down, take your time and think what you want to implement next. Implement it. Only implement one feature at once. Then go on. Good luck.
This forum will definitely help you developing your OS. It really *is* hard and it takes very, very much time. But it is possible, just do it.
Re:HOw do you get Started on Desigining?
Exactly. And if you're focused on what it looks like the most, why not do a desktop GUI environment for DOS or something? That way, you can have the fun of the visual work, without having to deal with the lowlevel hardcore stuff. Writing your own actual OS is very tedious, and thinking about what it will look like is the last thing you should be thinking about. You need to design all the background of it far before even a command line interface. Another thing is that though Microsoft does have holes, so do all other OSes, and it tedious to write code that bypasses them all. You need to check every buffer, every typecast, every line of input, every pixel written, if you want it to be 100% secure. Writing a completely secure OS will take ten times longer on top of that. Did I mention Microsoft has over 5000 people working on Windows alone?
I'd say just do a GUI or something for an existing OS if you want to worry about the visual appearance so much, because then you can start at the fun part.
I'd say just do a GUI or something for an existing OS if you want to worry about the visual appearance so much, because then you can start at the fun part.
Re:HOw do you get Started on Desigining?
Hehe thanks people all I realy know for programing languages right now are HTML, PHP, JAVA, and CSS, I'm realy going on to C++ next, and VB.
Re:HOw do you get Started on Desigining?
The only one of those languages you can use to write an OS is c++. But you cannot use all of c++'s features without a runtime. When you learn enough to start, here is a nice little thing on c++ kernels: http://www.invalidsoftware.net/os/
Re:HOw do you get Started on Desigining?
I know that this goes against common wisdom, but I'd actually suggest learning x86 assembly before getting into C++. If you know Java well, then you already know many of the higher-level principles used in C++ (though the two languages use them in very different ways). However, effective C++ programming also requires a solid grasp of low-level details as well, especially in debugging. Also, while it will probably be only a small part of the overall system, there are parts of an OS which must be done in assembly; the same holds true for parts of the standard C++ library.Stackout wrote: Hehe thanks people all I realy know for programing languages right now are HTML, PHP, JAVA, and CSS, I'm realy going on to C++ next, and VB.
I usually recommend Assembly Language Step by Step by Jeff Duntemann as an excellent starting point, though I know at least one person who wasn't very satisfied with it. The Book Recommendations thread (which you should definitely check out) has others listed as well, such as PC Assembly Tutorial and The Art of Assembly Language Programming. Many people swear by AoA, in fact, especially now that there is a printed version available, though others find the 'High Level Assembler' used in it to be distracting and misleading. I suggest taking a look at each of them and using the one you feel most comfortable with.
Re:HOw do you get Started on Desigining?
Another question, IS ther a book I can buy, if so What might it be called?
Re:HOw do you get Started on Desigining?
I'm glad you asked that, as I believe reading a good book is the best way to learn exactly what is required to develop your own OS. Paying for a book that somebody has sat down and written is generally better than sifting through the web for a tutorial which a newbie has written in 30 minutes (not to say that tutorials are bad, but the bad ones are bad, and the good ones are still not as good as the typical book).
Anyway, I recommend Operating Systems: Design and Implementation, 2nd ed., by Andrew Tanenbaum and Albert Woodhull. Also recommended, though I haven't read it, is Modern Operating Systems, also by Tanenbaum.
Anyway, I recommend Operating Systems: Design and Implementation, 2nd ed., by Andrew Tanenbaum and Albert Woodhull. Also recommended, though I haven't read it, is Modern Operating Systems, also by Tanenbaum.
Re:HOw do you get Started on Desigining?
Yes, I believe it's called "A4 pad, feint ruled with margins" ;D.Stackout wrote: Another question, IS ther a book I can buy, if so What might it be called?
Seriously though, people (For some insane reason) are starting to underestimate just how useful it is to have some paper lying around to scribble notes on. Paper notes are a lot more natural to work with IMO than any computer form.
Some advice I'll give is to make notes of practically everything you do, then perform a little editing once you decide what works and what doesn't. Don't ever throw notes away. Memory plays tricks on everyone sometimes, and it's far easier to look at some old notes of why you rejected a course of action than have to repeat that action and figure out all over again why it was a bad idea.
Re:HOw do you get Started on Desigining?
good point Curufir. My project has lots of text notes on my pc. If you can site down and scketch out your ideas on paper or notepad, that means you understand it. If you don't understand it, it helps you to understand what you're sketching, better. For example, the stack frame that C uses is a great thing to learn how to work by sketching on doing some pseudo ops.
Stackout, as long as you speak english, I can help you a lot. Visit www.osdever.net(BonaFide) and post in the forums there. But better yet, click our chat section. It will bring you to our irc channel. I am there a lot(not as much lately) and I seem to do pretty well with teaching people about OS Development. I'll do it for free too(donations accpeted lol).
Tim, i'd have to disagree with you. Tutorials are very effective because they go farther than theory. The step through code that you can use. You see HOW it works and the you begin to understand it. Besides, a large OS dev book can be intimidating.
One more thing. This came to my mind. If someone were to say, collect a ton of 'effective' tutorials and publish them in a collabrative 'book', would anyone buy it? I am thinking it would be a lot like dmoz.org(filtered by mods), except that it would be a physical collection. Any comments?
mr. xsism
Stackout, as long as you speak english, I can help you a lot. Visit www.osdever.net(BonaFide) and post in the forums there. But better yet, click our chat section. It will bring you to our irc channel. I am there a lot(not as much lately) and I seem to do pretty well with teaching people about OS Development. I'll do it for free too(donations accpeted lol).
Tim, i'd have to disagree with you. Tutorials are very effective because they go farther than theory. The step through code that you can use. You see HOW it works and the you begin to understand it. Besides, a large OS dev book can be intimidating.
One more thing. This came to my mind. If someone were to say, collect a ton of 'effective' tutorials and publish them in a collabrative 'book', would anyone buy it? I am thinking it would be a lot like dmoz.org(filtered by mods), except that it would be a physical collection. Any comments?
mr. xsism
Re:HOw do you get Started on Desigining?
Don't agree with that. In general, tutorials just don't handle the topic deep enough. It's a sort of quick-learning, a reflection of what the author has experienced. On the other side, books are in a way more "professional".mr. xsism wrote: Tim, i'd have to disagree with you. Tutorials are very effective because they go farther than theory. The step through code that you can use. You see HOW it works and the you begin to understand it. Besides, a large OS dev book can be intimidating.
However, we shouldn't get off-topic here
Re:HOw do you get Started on Desigining?
Sure, a typical OS tutorial can be good. But it's no substitute for reading a book on OS development. You know that a technical writer is an expert in his field, that he's spent months/years writing a book, that he's been paid to do it, and that it's been edited, proofread and checked.mr. xsism wrote:Tim, i'd have to disagree with you. Tutorials are very effective because they go farther than theory. The step through code that you can use. You see HOW it works and the you begin to understand it. Besides, a large OS dev book can be intimidating.
A book like OS:D&I lets you sit down and go through most OS theory from beginning to end. You can't get that sort of scope from one tutorial, and you can't get that sort of completeness from all the available tutorials.
In summary: web tutorials are for people who can't afford to/don't want to buy a book.