Page 1 of 1

Some Questions ;)

Posted: Mon Mar 29, 2010 5:18 am
by Fahrenheit
Hey Guy,

I currently started to learn some things about Operating Systems. And because most of the programms I use are made for Windows I want to write an OS that is able to handle *.exe files to run the Windows programms. So here are my Questions:
1. Is this possible?
2. What virtual Machine could I use to test my OS
3. I am able to write Java & C++, should I learn any more
4. I currently reading inside Windows NT, are there anymore booktipps?

Thanks in Advance for your Answers!

Greetz, Fahrenheit

Re: Some Questions ;)

Posted: Mon Mar 29, 2010 5:27 am
by qw
Well, yes, it is possible, but basically you will be rewriting Windows.

You could support loading of PE executables and implement a subset of the Windows API, the most basic things, like File I/O. Don't expect to run Office on your OS unless you have supernatural powers.

Roel

Re: Some Questions ;)

Posted: Mon Mar 29, 2010 5:32 am
by Fahrenheit
Hobbes wrote:Well, yes, it is possible, but basically you will be rewriting Windows.

Don't expect to run Office on your OS unless you have supernatural powers.

Roel
No for beginn I thought of Minesweeper :D

Re: Some Questions ;)

Posted: Mon Mar 29, 2010 5:43 am
by Lithorien
Fahrenheit wrote:Hey Guy,

I currently started to learn some things about Operating Systems. And because most of the programms I use are made for Windows I want to write an OS that is able to handle *.exe files to run the Windows programms. So here are my Questions:
1. Is this possible?
2. What virtual Machine could I use to test my OS
3. I am able to write Java & C++, should I learn any more
4. I currently reading inside Windows NT, are there anymore booktipps?

Thanks in Advance for your Answers!

Greetz, Fahrenheit
You might want to do some work for the ReactOS project before you branch off to an independant project. That'll give you the chance to be exposed to an OS project trying to do the exact same thing you want to do so that you can get an idea of the scale and breadth of the project before you start.

Re: Some Questions ;)

Posted: Mon Mar 29, 2010 5:57 am
by Fahrenheit
Lithorien wrote:You might want to do some work for the ReactOS project before you branch off to an independant project. That'll give you the chance to be exposed to an OS project trying to do the exact same thing you want to do so that you can get an idea of the scale and breadth of the project before you start.
I thought about it, but I doesn't like the Idea that there isn't a limited Developerteam and everybody can write code for I so I don't know, if there is any person how really knows whats currently happening with the OS ;)

Re: Some Questions ;)

Posted: Mon Mar 29, 2010 6:02 am
by Love4Boobies
Check out the page on beginner mistakes on our wiki. You will probably never implement something like Windows - besides detailed knowledge of the Windows internals (no one in the world, not even people working on it understand the whole kernel at least - different people understand different parts), there are over 50 million lines of code in Vista - probably a lot more in Windows 7. It's a huge project and many people have been payed to work on it for many years.

I can see Lithorien has already mentioned the ReactOS project, an open source implementation of Microsoft Windows. They are using Wine to implement the Windows API on top of a kernel they have been working on for 10 years (and it's still nowhere near stable, nor does it have all features - in fact it lacks quite a few: NTFS support, full USB, only recently they have added some primitive sound support, networking sucks, ReactX is far from being DirectX).

Don't let this discourage you however. Many of us started out dreaming to make a clone of some OS. Once you learn a bit of theory you will see that commercial OSes are old and full of hacks for backwards compatibility and have a sucky design. Try to come up with something better even if you won't be able to run applications like Microsoft Office. Many people here have proted GCC, Python and other things to their OSes; Pedigree was sort of able to run Apache as well (at least for a while).

Perhaps your design will be so different that porting applications will be virtually impossible, in which case you (or anyone else who's interested in your project) could write new applications taking advantage of your features. Good luck!

EDIT: Fixed a repetition; if you've already read the post, it's not worth doing so again.

Re: Some Questions ;)

Posted: Mon Mar 29, 2010 6:47 am
by Fahrenheit
Thanks for your words, I'll think about it!

Re: Some Questions ;)

Posted: Mon Mar 29, 2010 2:26 pm
by Fahrenheit
So I made my decision! I'll try something new! :D

Re: Some Questions ;)

Posted: Tue Mar 30, 2010 12:08 am
by KotuxGuy
If I may give a few suggestions..
  • Start with a tutorial, like JamesM's kernel tutorials for OSDeving on a *nix environment(Cygwin works), or bkerndev for OSDeving on a Windows environment
  • Then, after you finished the tutorial(IMHO I recommend JamesM's tutorial for being more expansive), you can build on it by adding things like:
    • A filesystem driver
    • Dynamic driver loading
    • The ability to run programs(which will most likely depend on a FS)
    • A GUI, (although such a thing, IMHO, would be better suited for an external program)
    • An improved TUI, with fonts
    • Port a few programs, like GCC
  • After that, I would test my OS by running it on bare hardware(Although I don't trust myself yet to do so :lol: )

Re: Some Questions ;)

Posted: Tue Mar 30, 2010 11:47 am
by Fahrenheit
Thank you for the Link!
KotuxGuy wrote:After that, I would test my OS by running it on bare hardware(Although I don't trust myself yet to do so :lol: )
I got an old Pentium III (660MHz) near my desk, so it will be possible for me to test it :D

Re: Some Questions ;)

Posted: Tue Mar 30, 2010 2:12 pm
by KotuxGuy
I just gotta find an old PC for my OS to mess up :lol: