OK, I am going to rant a bit... :p
I have gone to a lot of OS websites, and as a general rule, everybody is either rewriting Windows in some flavor, or a UNIX style OS in some way... Every so often I did run across some original ideas, but it is pretty rare. My question to the OS developers out there is, why re-invent the wheel. Windows exists, so use it, and there are already so many UNIX variants available, nobody is interested in another one. I have no problem with somebody that wants to learn how an OS works, pretty much just copying unix behaviour into his own OS, to make sure it works, but serious OS projects that have development teams and websites set up, and months of time invested in them... It just doesn't seem logical. This may be the wrong place to say this, but Bill Gates did not sit down and think "How can I re-write UNIX, just a little different?". He thought radically, and did his own thing, and DOS was actually a brilliant OS. </me will not comment on windows though> ;D
If anybody has any ideas for making something that is way out there, reply here, I would love to talk to you.
Re-inventing the wheel
RE:Re-inventing the wheel
DOS was a brilliant OS?!
Since when!?
16-bit, real mode design... very few standardized APIs.
640k should be enough for anybody? Whatever.
Besides, DOS was ripped off from Gary Kildall! M$ didn't write it! M$ doesn't do _ANYTHING_ by themselves, the just rip off other designs. That's exactly what they did with DOS, and later with Windows (from Apple, and later from NeXTSTEP).
Ever heard of Zenix? M$ even tried to rip their own unix.
Christ, the entire company of microsoft owes its life to Gates putting _BASIC_ on the Altair 8800, and screwing Kildall out of CP/M... what a claim to fame!
Anyway, there's my rant!
As for OS design, I agree, copying an existing OS is a bad idea. You'll get nowhere (assuming you _want_ to go anywhere... a lot of developers here don't care, they just wanna do it, and there's nothin' wrong with that!).
Personally, I'm not taking either route. Of course I'm borring ideas from the Mac OS (in particular version X), NeXTSTEP, Linux and QNX, but I'm expaning and elaborating on them. If development persists, the OS will be quite unlike anything else... I'm placing and extreme emphasis of usability and design, rather than speed claiming stability and cryptic assembly.
When my OS becomes more of something to talk about (at this point, it's nothing more than a bootable GRUB image) then I'll provide some information about different things I intend to implement.
Jeff
Since when!?
16-bit, real mode design... very few standardized APIs.
640k should be enough for anybody? Whatever.
Besides, DOS was ripped off from Gary Kildall! M$ didn't write it! M$ doesn't do _ANYTHING_ by themselves, the just rip off other designs. That's exactly what they did with DOS, and later with Windows (from Apple, and later from NeXTSTEP).
Ever heard of Zenix? M$ even tried to rip their own unix.
Christ, the entire company of microsoft owes its life to Gates putting _BASIC_ on the Altair 8800, and screwing Kildall out of CP/M... what a claim to fame!
Anyway, there's my rant!
As for OS design, I agree, copying an existing OS is a bad idea. You'll get nowhere (assuming you _want_ to go anywhere... a lot of developers here don't care, they just wanna do it, and there's nothin' wrong with that!).
Personally, I'm not taking either route. Of course I'm borring ideas from the Mac OS (in particular version X), NeXTSTEP, Linux and QNX, but I'm expaning and elaborating on them. If development persists, the OS will be quite unlike anything else... I'm placing and extreme emphasis of usability and design, rather than speed claiming stability and cryptic assembly.
When my OS becomes more of something to talk about (at this point, it's nothing more than a bootable GRUB image) then I'll provide some information about different things I intend to implement.
Jeff
RE:Re-inventing the wheel
I think most people just do it to learn. I mean, why right "Hello, world!"? It has been written before.
RE:Re-inventing the wheel
ava,
I totally agree with you. Most people do write their own OS just for the learning and knowledge that comes with it. The problem I have is that there are so many people out there that have full grown OS projects, and all they are doing is rewriting an existing OS with their own filenames and variables.
Thanks for listening to my rant
PS. Jeff, I really liked your reply... And I'm glad to meet somebody as passionate about OS's as I am.
I totally agree with you. Most people do write their own OS just for the learning and knowledge that comes with it. The problem I have is that there are so many people out there that have full grown OS projects, and all they are doing is rewriting an existing OS with their own filenames and variables.
Thanks for listening to my rant
PS. Jeff, I really liked your reply... And I'm glad to meet somebody as passionate about OS's as I am.
RE:Re-inventing the wheel
Actually that was Gates original idea, and they just stole everything else (like DOS, IE, etc.)...
RE:Re-inventing the wheel
Well, i don't want to rewrite Widnows nor Unix/Linux. First of all Windows is more of a stand alone program
(it has no true multitasking nor multiuser interface). Now with Linux, i don't like it's big kernel witch is
constently beeing updated: the kernel should be small, and it should have minimal functionality(the
kernel should not be buged about file reads and stuff). The kernel should help programs comunicate
(like the file system driver with the program). The drivers are not supposed to be part of the kernel.
The kernel should not take up the some 1Gbyte of vmem, the kernel and drivers should link like
dynamic libs.
(it has no true multitasking nor multiuser interface). Now with Linux, i don't like it's big kernel witch is
constently beeing updated: the kernel should be small, and it should have minimal functionality(the
kernel should not be buged about file reads and stuff). The kernel should help programs comunicate
(like the file system driver with the program). The drivers are not supposed to be part of the kernel.
The kernel should not take up the some 1Gbyte of vmem, the kernel and drivers should link like
dynamic libs.
RE:Re-inventing the wheel
Depending on what you mean by "true" multitasking, many of the current OSs in development also do no have "true" (ie, TSS-based) multitasking.
After I rewrite my scheduler, I to will be using the software based multitasking method (with my ring 0 code modules, my schedule can be updated at will and changed from eg. round-robin TSS-based, to eg. priority software-based).
I agree with your microkernel vs. monolithic kernel, though. I, too, think micro is the way to go, but mono is faster, and Linux is pretty modular, too... you can add and remove drivers from it, and even make them loadable (like a microkernel). With this ability, your kernel will rarely be too large. My current Linux kernel has support for every device in my system (and then some) and several different protocols and is almost exactly 1MB (I have no modules... everything's compiled in).
In other words, Micro isn't the _only_ way to go.
Jeff
After I rewrite my scheduler, I to will be using the software based multitasking method (with my ring 0 code modules, my schedule can be updated at will and changed from eg. round-robin TSS-based, to eg. priority software-based).
I agree with your microkernel vs. monolithic kernel, though. I, too, think micro is the way to go, but mono is faster, and Linux is pretty modular, too... you can add and remove drivers from it, and even make them loadable (like a microkernel). With this ability, your kernel will rarely be too large. My current Linux kernel has support for every device in my system (and then some) and several different protocols and is almost exactly 1MB (I have no modules... everything's compiled in).
In other words, Micro isn't the _only_ way to go.
Jeff