How much OS work have you done?

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
net_raider
Posts: 2
Joined: Fri Dec 31, 2004 12:00 am

How much OS work have you done?

Post by net_raider »

If you have written an OS, or at least programmed enough for it to at least do something such as display stuff, and possibly a little more, how did you do it?

Please post advice and experiences of yours.

For example, did you use the manufacturers' drivers of the devices you used in the computer, or did you make your own?

If you made your own, how do you do it?

Here's a big question. How do you program so that your result will run independently from the OS you used to write it in?

Also what OS did you use?

What filesystem did you use? Did you customize your own filesystem? If so, how?

I think these are very important questions for us all.

While I don't expect books written here explaining it all, advice and tips would be greatly appreciated.

I currently know 9 languages, and am learning Assembly smoothly.

If anyone here is wiser than me (which is probably everybody) please share some information here for us all.

Thanks in advance and take care.
<b>Mac for productivity.</b> Unix for development. Windows for solitaire.

Hmmm...viruses or no viruses?

Windows is more of a virus than os. And even a bad virus. Virus writers constantly maintain their warez.
Legend
Member
Member
Posts: 195
Joined: Tue Nov 02, 2004 12:00 am
Contact:

Re: How much OS work have you done?

Post by Legend »

I think I did some things more, you can see the results that I did (yet I think other areas are more interesting for me) on my page (unfortunately my forum is down atm, so news on the first page ;) )

I did not and would not use any manufactur shipped driver, as they are written for a specific OS, mostly Windows and sometimes Linux. Of course the exception is when you want to be binary compatible with Windows, for example.

I think question 2 and 3 have similiarities. The most important thing - do not use anything that an OS would provide! ;)
That means you got to recreate everything an OS needs - et voila, you are writing your own! ;)

I had used Linux and Windows for os deving, under Linux gcc and ld work a lot better then the Windows ports, it is possible however of course to do os deving with Windows as well.

Filesystems, I did not design my own. And I think it is useless to design one, just have a custom one. It is already a big problem to be better then reiserfs or similiar. Big enough to be an own field.
*post*
User avatar
carbonBased
Member
Member
Posts: 382
Joined: Sat Nov 20, 2004 12:00 am
Location: Wellesley, Ontario, Canada
Contact:

Re: How much OS work have you done?

Post by carbonBased »

net_raider wrote:If you have written an OS, or at least programmed enough for it to at least do something such as display stuff, and possibly a little more, how did you do it?
Patience, and several attempts :) I also read several books on OS design and implementation, the Linux kernel sources, and both the AMD and Intel docs. There's not supplement for good reading.
For example, did you use the manufacturers' drivers of the devices you used in the computer, or did you make your own?

If you made your own, how do you do it?
I'd imagine everyone here made their own drivers... if you're using other supplied drivers, then you're at the whim of that driver architecture which may not fit your OS... not to mention, you'll have to supply the same APIs as the donor OS, and at that point, you're not really developing a new OS, so much as duplicating an existing one.

My drivers are actually just object files with pre-defined functions in them. To load a driver, I parse the object header, extract the symbols, perform any relocations, and execute the functions.
Here's a big question. How do you program so that your result will run independently from the OS you used to write it in?
Just because you're developing your project on a certain OS doesn't mean it has to run on that OS. As long as you compile/build your OS without using any of the support features of the host OS, then you're fine.
Also what OS did you use?
Linux 2.4 w/ VMWare.
What filesystem did you use? Did you customize your own filesystem? If so, how?
My first OS used a custom file system that I developed. I wrote the specs for that filesystem while looking at others, and deciding what I wanted to support for my system.

My latest OS will use a virtual FS layer, which means it will support several file systems. The easiest to support would be FAT32/VFAT, and will probably be the first. On top of that, I'd like to support EXT2/3 and my old (but updated) file system design. I'd also love to support ReiserFS and XFS, but those are definitly in the future.
While I don't expect books written here explaining it all, advice and tips would be greatly appreciated.
Books were (and still are) my greatest resource. I'd definitly reccomend building up a strong library on OS design, and your platform of choice.
I currently know 9 languages, and am learning Assembly smoothly.
Out of curiousity, which nine? And which do you intend to use for your OS?

Cheers,
Jeff
net_raider
Posts: 2
Joined: Fri Dec 31, 2004 12:00 am

Re: How much OS work have you done?

Post by net_raider »

Not all of the ones I know are application-developing languages.

BASIC
Visual Basic
AS/400 Control language
RPG (Report program generator, for use on the AS/400)
C
C++
SQL
HTML
PASCAL (some pascal)

And most likely 1 or 2 more, but I just cannot remember what else. I really only use C, VB, and HTML, so I'd have to go back and refresh my memory on the other ones.

I started learning HLA asm like on Dec 31, or Jan 1 2005. Just on 1/4/2005, I started learning Fasm since someone on a forum suggested it, and I find the available documentation more straightforward and easier to follow than for HLA, although that has excellent documentation as well.

I plan on using Fasm for my central OS.
<b>Mac for productivity.</b> Unix for development. Windows for solitaire.

Hmmm...viruses or no viruses?

Windows is more of a virus than os. And even a bad virus. Virus writers constantly maintain their warez.
Post Reply