so what tools does one use to develope a new OS ??? from rec

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.
Post Reply
recordingegr

so what tools does one use to develope a new OS ??? from rec

Post by recordingegr »

assuming assembler. what tools does one need to code up a new OS ?
as i said before if i did it i would be building it purely to do pro multitrack recording. ie: a very slim OS less than 10mb if possible.
i would not use C or C++ as i believe in the purity of assembler.
also assembler would be great for dsp functions in multitrack recording.
what are the recommended tools ? fasm operating under windows to build the OS ?
or some other tool.
Moose

RE:so what tools does one use to develope a new OS ??? from

Post by Moose »

First of all, it depends on your platform, mainly windows or linux.

nasm assmembler is available for windows and linux, yasm is another assembler being developed that is compliant to nasm standards but supports amd64.

You'll also need a linker. This links files together, and you're going to need more than one assembly file with your code inside. The linker i use, and so do a lot of others, is ld. This comes with binutils on linux. On windows its apart of the djgpp package set.

With the assembler/linker you've used to assemble/link your code not gets a 'kernel'. Assuming you want to test it, you'll need to put it on a bootable hd of your own or an easy option is a floppy disk or floppy disk image. The disk image would need mtools (linux) for this. Not sure what can be used under windows.

An emulator is very useful when you only have one development machine. It pretends to be a pc inside software on your pc. This means you're not restarting constantely every time you want to test the OS.
Vmware, virtualpc, bochs and simics are all emulators.

If you intend to be lazy like me and not bother writing the bootloader and get it from elsewhere, then grub (or lilo?) could be used to boot your os.

Moose
recordingegr

RE:so what tools does one use to develope a new OS ??? from

Post by recordingegr »

thanks. hmm kinda gets me thinking. why not just use linux basics and then build my application ? i wish linux had a visual compiler. thats fast like assembler. so that makes me ask why would someone do a brand new Os when linux kernel is available ?
chia

RE:so what tools does one use to develope a new OS ??? from

Post by chia »

Moose,
are you an OS developer?
i tot of developing an OS , a simple one, for my final year project.
any opinions??
ezanahka

RE:so what tools does one use to develope a new OS ??? from

Post by ezanahka »

Personally I use a combination of assembler and AspectC++...
I used to use nasm but now I'm switching to gas and gcc inline asm in order to be able to more easily integrate my assembly into C/C++ code and vice versa.
Also to make my code more uniform.
I used to be rather reluctant to use C++ but after I saw some C++ kernels I started considering using it. However as a Lisp programmer I was already spoilt by CLOS (Common Lisp Object System) and saw C++'s objects as rather primitive. But now because of the aspect extension I can actually use C++ and feel reasonably good about doing that.
My advice would be that use assembly where it is needed and don't mess up your code by optimising it on the lowest level. Good algorithms are more important for efficiency than low-level optimisation...
Of course writing is assembly can be fun because of all the control and possibilities it offers... :)

- Esa
Post Reply