Page 1 of 3

Which OS to use to design an OS

Posted: Wed Dec 15, 2004 10:47 pm
by keeper
hello, im confiused. what os should i use to design my os?

linux has: ld, link, gcc, g++, nasm
windoze has:djcpp, nasm

i personnaly like linux better, but if OSD is easyer on windoze. then i will gladly install longhorn on a VM and go on...

i really need a second(or thired, fourth etc...) opinion on this?
if linux : what are some good linux specific tutorials?

Re:Which OS to use to design an OS

Posted: Thu Dec 16, 2004 1:07 am
by AR
Linux is the easier environment, on Windows the only way to get good OS Deving done is to compile a GCC Cross Compiler on Cygwin which is Linux for Windows. This isn't really a disadvantage if you like Windows but since you prefer Linux and already have it, use that, the tools are already there for you.

Re:Which OS to use to design an OS

Posted: Thu Dec 16, 2004 4:58 am
by Pype.Clicker
seconding that ... For people who already know linux, linux will (imho) be the best choice (modulo some things like a winmodem, etc).

Windows per se is not ready to do OSdeving and you'll be required to install quite a bunch of tools (wincvs, cygwin, rawwrite/winimage, etc) before you're ready to go.

FInally (if a finally is needed), tools like Visual Studio might be poorly suited to development in raw environment (where you don't have a collection of classes and libraries to use)

Re:Which OS to use to design an OS

Posted: Thu Dec 16, 2004 6:12 am
by aladdin
my best OSD environnement is :
Linux + VIM + aterm + gcc + nasm + QEMU

;)

Re:Which OS to use to design an OS

Posted: Thu Dec 16, 2004 10:13 am
by Colonel Kernel
Rather than choose between Cygwin and Linux, I use both. That way I can be sure my code compiles on more than one host.

Re:Which OS to use to design an OS

Posted: Thu Dec 16, 2004 2:17 pm
by srg
Pype.Clicker wrote: seconding that ... For people who already know linux, linux will (imho) be the best choice (modulo some things like a winmodem, etc).

Windows per se is not ready to do OSdeving and you'll be required to install quite a bunch of tools (wincvs, cygwin, rawwrite/winimage, etc) before you're ready to go.

FInally (if a finally is needed), tools like Visual Studio might be poorly suited to development in raw environment (where you don't have a collection of classes and libraries to use)
I'm quite happy with using windows, plus cygwin, I never got on with linux for day to day computing.

srg

Re:Which OS to use to design an OS

Posted: Thu Dec 16, 2004 3:13 pm
by Candy
A properly set up linux computer is, imo, always better than a windows computer. A not properly set up linux computer is always worse than a windows computer. Windows computers cannot be set up such that it works stabily and good (still, imo).

Setting up a linux computer includes configuring your text editor (console and graphical), setting up the GUI, file structures, making your own optimized compiler, debugger, bochs, nasm etc., all you might need, and making sure it all works nicely. Make a makefile that automates for you, not just in general. (for examples, try make new, make test or sth. on my OS). At first, don't hesitate to work as root, but try to get everything set up so you can work as a user, then make a full switch (including chown/grping it all) and continue as a user. If you do this, you get a system working so good no Windows system will ever match it.

Not doing so and just installing plain binaries of windows apps that simulate linux will get you in an environment with something approaching the linux power and the friendlyness of whatever your windows editor is. It doesn't match it, but it can offer a quite good second mate. If you have any significant reasons to use windows, then choose the second (or use vmware, or double booting etc.).

Re:Which OS to use to design an OS

Posted: Thu Dec 16, 2004 4:06 pm
by AxelDominatoR
*my two cents*

I agree.
A linux box with a fine setup is the best choice for a -low level- programmer.
I use Gentoo, bochs, gcc and gas. Nano/Pico or Vim as editor.
Maybe linux is not the best choice if you're an high level programmer, but surely it can help you when programming an OS. Here's what I usually do in linux from console that windows can't do without a proper utility:
I usually like to work with three or four virtual consoles open, then I have a first for compilation control ( make, run, etc ) and then two or three with open files. Switching from one to other is as simple as pressing alt + F(number).
I usually use diff to quickly find differences between files, grep ( holy grep! ) to find a substring recursively into directories and often I use a loopback mounted filesystem to perform tests. You can do this in windows, too, with some utilities. But trust me, it's much much faster in command line.
And usually the console "distracts you" less ;)

But, anyway, only my opinion. I know some people fell much better developing under a gui. I use it to start bochs and few other things.
But naturally linux has more hidden power. You could test something into linux itself by making a driver or a little modify into the kernel, and then porting it to your os. Or, as suggested in some other thread, you could create much of your OS in a portable way under linux, then create only the "core" when much of the OS is ready and working. And... you can snoop the linux source every now and then to see how they did something particular heehhehehe :P

Re:Which OS to use to design an OS

Posted: Thu Dec 16, 2004 10:21 pm
by keeper
<move>Linux</move>

OK then, ill stick to linux(Fedora Core 3, 2.6K, gcc_g++ 3.4)
nice to know im not the only linux fluent user in these forums ;D

Re:Which OS to use to design an OS

Posted: Fri Dec 17, 2004 3:14 am
by srg
Candy wrote: A properly set up ...
To be honest, I don't want to get into any flame wars or anything but I really don't care. Windows XP is rock solid stable for me.

I use what I feel comfortable with and that's Windows, cygwin and I've never found a linux editor to match EditPlus 2.

So it's the second option.....

srg

Re:Which OS to use to design an OS

Posted: Fri Dec 17, 2004 3:40 am
by aladdin
srg wrote: To be honest, I don't want to get into any flame wars or anything but I really don't care. Windows XP is rock solid stable for me.

I use what I feel comfortable with and that's Windows, cygwin and I've never found a linux editor to match EditPlus 2.

So it's the second option.....

srg
Quanta+ gives similar functionalities as EditPlus ...
Anjuta gives more functionalities ....
but VIM is the best, coz u ca do everything with it : from editing simple text to consulting ur mail, ar chating in IRC channels ;)

IMHO : windows can be enought for early kernl developpement but one day, u will need to "tweak" ur OS to suit ur developpement project, then, linux becomes the only solution.
also, when u r familiar with linux environement, u will understand OS concepts easily since linux keeps low level information accessible to user (u have to know some trics for tat ;) )
and finally, hacking linux kernel is a very good idea to learn some kernel functionalities.

Re:Which OS to use to design an OS

Posted: Fri Dec 17, 2004 3:59 am
by distantvoices
Me prefers linux to windows for os development and other programming stuff, just because of the already present load of development tools -- compiler, assembler, linker, all is present, no searching for them.

My development environment is: KATE straight out of KDE: it offers File selector/File system browser, shell and text editor in one window - tiled,as one would say, and I usually keep all of them busy. vim is good for quickly applying changes to some config file but for editing with some comfort like cut n paste (it is possible with vim, i know) I prefer something graphical.

Stay safe

@aladdin: what's these 'u's and 'r's in your sentences good for? are these kinda newspeech?

Re:Which OS to use to design an OS

Posted: Fri Dec 17, 2004 4:04 am
by Pype.Clicker
aladdin wrote: IMHO : windows can be enought for early kernl developpement but one day, u will need to "tweak" ur OS to suit ur developpement project, then, linux becomes the only solution.
Hmm, that sounds a bit caricatural, no ? i mean, there are people driving very complex programming tasks in a Windows environment ... and there certainly are tools/platforms that help those people keeping stuff clear in their mind and code... i just don't know the names of those tools as i'm more a penguin-guy.

And many of my penguin-mates at work use Java-based IDEs that have perfect clones in the Windows world (of course :)
also, when u r familiar with linux environement, u will understand OS concepts easily since linux keeps low level information accessible to user
Well, imho, that only applies if you're comfortable with geekish linux environment, and the sysadmin of your own machine. I fear the nice KDE desktop my fairy sees when she check her mail will hardly learn her more about linux than the fact it has penguins everywhere :)

In addition, i must confess that tweaking with the registry and reading books about COM object model was probably as interresting for me as reading & tweaking with linux modules was.

As a conclusion, if i had to say a single thing to show ppl comfortable in a Windows environment can do a kernel aswell is "look at Tim's Mobius".

Re:Which OS to use to design an OS

Posted: Fri Dec 17, 2004 4:14 am
by distantvoices
com objects come quite handy when you're doing distribute stuff or want to remote control one big application by some small thing which aims at reducing the users possibilities or setting a givenpath tofollow.

The only thing I have to ***** about when using 'em is that load of stubs neccessary to get'em working. For god sake they are generated by Visual Studio with a flick of the stick - whoch doesn't really help understanding the background - but me, being a sworn-brother-of-osdev-church, has figured out some things about serializing/deserializing parameters and return values and reaching them to the object (which often is a process of its own) via either the network layer or a pipe.

@pype: the coolest thing is writing to the registry and altering the ip address - in a hidden action. *sssffgg* no one knows until the next restart. ];->

Re:Which OS to use to design an OS

Posted: Fri Dec 17, 2004 6:55 am
by Brendan
Hi,

Let's be practical here - you can develop an OS using nothing but DOS's "debug.com". Anything more than this is just for "comfort", although a decent programming language (NASM, GCC, whatever) adds a huge amount of "comfort", even though it isn't theoretically necessary.

With that in mind, the best OS to use would be the OS that offers you the most "comfort", including tools you like.

For me, anything that'll run NASM, has a version of "make" and a simple text editor is fine. Some people think they need a huge range of stuff (grep, perl, C, a complex IDE, etc), but for me this is all just additional hassles. Some OS's also have distractions, like internet access, games, etc that it's probably best to avoid. Therefore (IMHO) the best OS to use for OS development is Windows 3.11 ::)...


Cheers,

Brendan