Starting to dev again

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
User avatar
Touch
Member
Member
Posts: 56
Joined: Sun Oct 22, 2006 10:33 am
Location: England

Starting to dev again

Post by Touch »

Yo.

I need a little list of tasks I should do throughout my OS dev.

e.g.

Bootloader
Kernel
etc
etc

Right from the first task.

Thanks
Touch
"We cannot trust the sword in the hands of a n00b!" - Southpark
User avatar
AJ
Member
Member
Posts: 2646
Joined: Sun Oct 22, 2006 7:01 am
Location: Devon, UK
Contact:

Post by AJ »

Hi,

This will be a difficult on to answer without knowing what the ultimate goals of your os are.

* Do you want to roll your own boot loader or will using GRUB (or an equivalent) be ok?

* What kind of system do you want - pmode 32 bit? 64 bit? Multitasking? GUI/Text UI?

* Do you want a catch-all os, or are you just intending to support games, for example, or distributed apps?

Even if we did know all of the above, the order in which you tackle things is (within reason) entirely up to you. I always put debugging support, for example, fairly high up the list. You may prefer want to go straight for e.g task management then get round to other bits later.

I would say for a thorough list of what is involved in OS design, the topic headings in the Wiki will give you a pretty good idea...

Cheers,
Adam
Ready4Dis
Member
Member
Posts: 571
Joined: Sat Nov 18, 2006 9:11 am

Post by Ready4Dis »

Here is a somewhat generic list, however your mileage may vary as explained above.

Bootloader
Kernel
Debugging, recommend using serial port for this
Start thinking about your driver/module system here for the following:
Memory manager
Disk I/O
File System
Task Manager/Multitasking
Keyboard/Mouse Handler
Inter Process Communications
User Interface (console or gui depending on your goals).

If you go monolithic kernel most of that will be built right into your kernel rather than modules. And of course, you could imlpement this in a different order if you'd like, there is nothing stopping you, for example, from making your keyboard/mouse driver before your task manager, or memory manager for that matter. There are a lot of things in between, and they will change over time, for example: your debugger, you will write it many times, once while playing with yor bootloader->kernel, then again once you are in the kernel, then again when you are ready to enable interrupts/exceptions, then again if you create a GUI because you can't screen dump to text that way, etc. That's why I recommend the serial port for this, you can capture to a file under an emulator or to a real pc, that way if your OS triple faults and resets, you still have it's output.
User avatar
Touch
Member
Member
Posts: 56
Joined: Sun Oct 22, 2006 10:33 am
Location: England

Post by Touch »

Well I would like my OS to have VERY basic GUI. E.g.
Mouse Pointer
Icon

Thats all I want for it, for now.

I have a bootloader. Its the kernel I get stuck on. But I can do it. 32-bit is my aim.

Touch[/list]
"We cannot trust the sword in the hands of a n00b!" - Southpark
TheQuux
Member
Member
Posts: 73
Joined: Sun Oct 22, 2006 6:49 pm

Post by TheQuux »

Not sure whether I posted this before, but check out the TODO script in my OS source (the latest version has it). It's an abuse of the shell that will turn a list of dependencies (i.e., support for userspace is required before you can write a libc...)

Run it as
zsh TODO

I suppose that someone could port it to a standard bourne shell if desired...
My project: Xenon
Post Reply