Hi. Newb Here.
Posted: Sat Dec 05, 2009 4:25 pm
Hi. Newb here. I'm a moderately skilled C programmer, and I've been using linux for some things.(not web browsing. ) Anyway, I've been thinking about it, and I got it into my head that I would like to code my own operating system. I don't have any great expectations for it, except for the uses that I will be using it for. I don't need it to compete in the os wars or anything.
Essentially, the kernel will handle process scheduling and memory management, while I/O will be handled by two parts outside the kernel: A basic library framework that takes care of the redundancies across device i/o, and individual programs that manage individual types of devices.
My rationale for doing this is that I really don't want to waste years integrating all the various hardware components with the kernel code, which would really be a nightmare. I figure this way, I can speed up development for new hardware simply and flexibly, at not too great a cost.
Also, I'll try and speed up the system by excluding code for a system clock in the kernel. Instead, I will simply update a counter which will be used to calculate the system time whenever a program in userspace requests it. I figure it would be simple enough to add a "time" command to the command line instead of constantly updating a clock that may or may not be needed by the user.
Also, I think I could reduce complexity by making it a single user system and thus eliminate the need for user ID's. Add to that an ext3 filesystem, basic networking support, and a handful of text editing programs, and I'll pretty much have version 1.0 up and working.
I think It'll be fun, actually. I'm looking forward to working out the excruciating error codes I recieve with you guys.
Wish me luck!
:edit:
Hmm... probably should have posted this in the appropriate forum. Doh!
Essentially, the kernel will handle process scheduling and memory management, while I/O will be handled by two parts outside the kernel: A basic library framework that takes care of the redundancies across device i/o, and individual programs that manage individual types of devices.
My rationale for doing this is that I really don't want to waste years integrating all the various hardware components with the kernel code, which would really be a nightmare. I figure this way, I can speed up development for new hardware simply and flexibly, at not too great a cost.
Also, I'll try and speed up the system by excluding code for a system clock in the kernel. Instead, I will simply update a counter which will be used to calculate the system time whenever a program in userspace requests it. I figure it would be simple enough to add a "time" command to the command line instead of constantly updating a clock that may or may not be needed by the user.
Also, I think I could reduce complexity by making it a single user system and thus eliminate the need for user ID's. Add to that an ext3 filesystem, basic networking support, and a handful of text editing programs, and I'll pretty much have version 1.0 up and working.
I think It'll be fun, actually. I'm looking forward to working out the excruciating error codes I recieve with you guys.
Wish me luck!
:edit:
Hmm... probably should have posted this in the appropriate forum. Doh!