Which OS to use to design an OS

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.
keeper

Which OS to use to design an OS

Post 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?
AR

Re:Which OS to use to design an OS

Post 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.
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:Which OS to use to design an OS

Post 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)
aladdin

Re:Which OS to use to design an OS

Post by aladdin »

my best OSD environnement is :
Linux + VIM + aterm + gcc + nasm + QEMU

;)
User avatar
Colonel Kernel
Member
Member
Posts: 1437
Joined: Tue Oct 17, 2006 6:06 pm
Location: Vancouver, BC, Canada
Contact:

Re:Which OS to use to design an OS

Post 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.
Top three reasons why my OS project died:
  1. Too much overtime at work
  2. Got married
  3. My brain got stuck in an infinite loop while trying to design the memory manager
Don't let this happen to you!
srg

Re:Which OS to use to design an OS

Post 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
User avatar
Candy
Member
Member
Posts: 3882
Joined: Tue Oct 17, 2006 11:33 pm
Location: Eindhoven

Re:Which OS to use to design an OS

Post 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.).
AxelDominatoR

Re:Which OS to use to design an OS

Post 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
keeper

Re:Which OS to use to design an OS

Post 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
srg

Re:Which OS to use to design an OS

Post 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
aladdin

Re:Which OS to use to design an OS

Post 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.
distantvoices
Member
Member
Posts: 1600
Joined: Wed Oct 18, 2006 11:59 am
Location: Vienna/Austria
Contact:

Re:Which OS to use to design an OS

Post 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?
... the osdever formerly known as beyond infinity ...
BlueillusionOS iso image
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:Which OS to use to design an OS

Post 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".
distantvoices
Member
Member
Posts: 1600
Joined: Wed Oct 18, 2006 11:59 am
Location: Vienna/Austria
Contact:

Re:Which OS to use to design an OS

Post 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. ];->
... the osdever formerly known as beyond infinity ...
BlueillusionOS iso image
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re:Which OS to use to design an OS

Post 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
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Post Reply