What do you guys think of this story?
http://osnews.com/story.php?news_id=1532
OSNews story
RE:OSNews story
I agree with it, almost completely.
Comming from a failed OS attempt way back in '96, I know it's critical that you keep on track, and keep assuring yourself - it's gonna work out.
I've started over, with a completely new outlook, and a new way of thinking through things, and as such, I've developed over three times my initial kernel in about a third the time. It's beautiful
One of the best points in that article, in my opinion, is to use _trusted_ tools. To me, that means Linux, and _ONLY_ Linux. No other operating system in existance has the support and trusted tools related to operating system development.
For compilers, I use gcc and lcc. Both are magnificent at what they do. GCC is a tried and true 32-bit optimizing compiler with widespread usage and support. LCC is an incredible simple, portable, and efficient compiler which, with a "plug-in" like interface, can be easily ported to use Nasm, and can therefore output elf, coff, or rdoff.
Which brings me to objects; Linux uses elf. Game, set, match! There are excellent tools for manipulating this object format. Also, thanks to Nasm, I'm able to use rdoff (which, for me, is a more simple format, and therefore better for my purposes) for my kernel and have tested object tools (a linker, loader, and object dump utilities are provided in the nasm distrib).
Which brings me to assemblers; gas and nasm. Gas is good assembler, if you know and care comfortable with AT&T syntax. It doesn't have great error/warning support, but it works, and it works well. Nasm is a much better assembler for those of use brought up on Intel syntax, and has better errors and warnings, and supports 16-bit code.
And the list goes on...
virtual machines: bochs, vmware
linkers: ld, ldrdf, ld-linux
mount floppyImage /mnt/floppy -o loop (!!!)
Kate, Kdevelop
Configure!
GRUB!
OsKit!
etc, etc, etc...
If you're not using Linux for development, you're missing out.
Another good point mentioned: keep it simple. So very true! Don't screw yourself over trying to make the fastest OS first off. It's easier and much better to do that _AFTER_ you've proven your OS is stable.
I once spent days optimizing a bliting routine, incorporating all the tranparency, clipping, etc into the same function (function calls are slow, don't ya know...), tightening my loops, making excessive use of assembly, and dword aligning _EVERY_ write, and every structure... damned if my code didn't look like a pile of **** afterwards. It may very well have been fast, but there's no way in hell I'd ever write like that again... it's unreadable, and simply not worth it.
Jeff
Comming from a failed OS attempt way back in '96, I know it's critical that you keep on track, and keep assuring yourself - it's gonna work out.
I've started over, with a completely new outlook, and a new way of thinking through things, and as such, I've developed over three times my initial kernel in about a third the time. It's beautiful
One of the best points in that article, in my opinion, is to use _trusted_ tools. To me, that means Linux, and _ONLY_ Linux. No other operating system in existance has the support and trusted tools related to operating system development.
For compilers, I use gcc and lcc. Both are magnificent at what they do. GCC is a tried and true 32-bit optimizing compiler with widespread usage and support. LCC is an incredible simple, portable, and efficient compiler which, with a "plug-in" like interface, can be easily ported to use Nasm, and can therefore output elf, coff, or rdoff.
Which brings me to objects; Linux uses elf. Game, set, match! There are excellent tools for manipulating this object format. Also, thanks to Nasm, I'm able to use rdoff (which, for me, is a more simple format, and therefore better for my purposes) for my kernel and have tested object tools (a linker, loader, and object dump utilities are provided in the nasm distrib).
Which brings me to assemblers; gas and nasm. Gas is good assembler, if you know and care comfortable with AT&T syntax. It doesn't have great error/warning support, but it works, and it works well. Nasm is a much better assembler for those of use brought up on Intel syntax, and has better errors and warnings, and supports 16-bit code.
And the list goes on...
virtual machines: bochs, vmware
linkers: ld, ldrdf, ld-linux
mount floppyImage /mnt/floppy -o loop (!!!)
Kate, Kdevelop
Configure!
GRUB!
OsKit!
etc, etc, etc...
If you're not using Linux for development, you're missing out.
Another good point mentioned: keep it simple. So very true! Don't screw yourself over trying to make the fastest OS first off. It's easier and much better to do that _AFTER_ you've proven your OS is stable.
I once spent days optimizing a bliting routine, incorporating all the tranparency, clipping, etc into the same function (function calls are slow, don't ya know...), tightening my loops, making excessive use of assembly, and dword aligning _EVERY_ write, and every structure... damned if my code didn't look like a pile of **** afterwards. It may very well have been fast, but there's no way in hell I'd ever write like that again... it's unreadable, and simply not worth it.
Jeff
RE:OSNews story
lol... www.neuraldk.org dude
I think I've only got version 0.03 of my current kernel up there, though. I'm working on getting 0.05 up, but it may not be 'till sept (I have a wedding to go to up north, and I'll be away from everything for a few weeks).
Anyway, things to look forward to in 0.05:
- run time linking of rdoff objects into the kernel
I've got an initial text mode plasma demo module at the
moment - useless, but it looks cool
- basic memory management, and paging
memoryAllocUnmappedPage
memoryAllocPage
memoryFreePage
pagerLinToPhys
pagerMapPage
etc...
- I've got some initial vm86 code, but it needs a rewrite to use
the new memory management model
- Possibly new multi-tasker too
Cheers,
Jeff
I think I've only got version 0.03 of my current kernel up there, though. I'm working on getting 0.05 up, but it may not be 'till sept (I have a wedding to go to up north, and I'll be away from everything for a few weeks).
Anyway, things to look forward to in 0.05:
- run time linking of rdoff objects into the kernel
I've got an initial text mode plasma demo module at the
moment - useless, but it looks cool
- basic memory management, and paging
memoryAllocUnmappedPage
memoryAllocPage
memoryFreePage
pagerLinToPhys
pagerMapPage
etc...
- I've got some initial vm86 code, but it needs a rewrite to use
the new memory management model
- Possibly new multi-tasker too
Cheers,
Jeff