A Revolutionary Networking OS
Posted: Tue Jun 02, 2009 5:46 pm
Hello to you all, fellow OSDev-ing enthusiasts. I'm 17, and I've always been steered on by the image that I got of programming from my big cousin, a huge programmer. He visited us when I was small (about 7 years old). Ever since, I've been studying programming whenever, and wherever I possible can, and at 17, I can competently program in Pascal, C, C++, and HTML+JS+PHP. Not much.
But It's enough for me to want to move my skills on further. Being still a novice, who has only learned theory, and mostly written complex experimental programs, but never a whole software system, I decided to get into OSDev.
On to the topic: I've thought up an OS, which I will name Z-OS. What's so different about Z-OS?
I believe that Networking, as it is statically defined today, has become a non-flexible thing.
Who says we MUST use TCP-IP for private networks? Ad-Hoc WiFi, and home, auxiliary networks can be simplified a lot more than they already are.
Why use a general-purpose Suite of Protocols, when you can create a mini protocol for immediate, custom use?
This is the most fundamental change in Z-OS. I will implement a NON-suite oriented network interface for Network Connections.
How? Simple. Instead of implementing the TCP-IP suite as a part of the driver for an NIC, I'll have it as a module. Then, there will be a wizard that can create pseudo-drivers (interpreted scripts in a Network-specific language I've planned out on paper), and load them for the Packet, and Transmission phase of the Networking. The Driver for the Networking will ONLY perform basic Open, Read, Write, and Close functions, and will as purely generic as your average *nix driver.
So: You connect a cable to your pc, and connect it to another pc. No problem. The system brings up a simple GUI prompt asking whether the new network should use the TCP-IP suite, or whether you'd like to create a pseudo-protocol for it. The wizard will guide you through the generic set of options (should the cable recieve Analogue, or digital signals? Should the device send? Or is it only to recieve? What kind of naming convention do you want?), And with that, you should have a working suite of your own, which, when ported to the other PC, will work perfectly.
A specialized, custom driver is less likely to drop connections, and, due to its completely purpose specific functions, it would be very easy to troubleshoot. Networking in a small environment made EXTREMELY simple. Any kind of network that doesn;t interface with the WWW can use it.
Then there's the other MAJOR networking catch:
The ability to utilize multiple networking streams simultaneously.
i.e.: You know how in Windows, Linux, and other OSs, you find that having the PC connected with one of its NIC, makes it unable to handle connections on any other, unless you're using another NIC to share the connection coming in on NIC #1?
Well, In my OS, any number of NIC can be connected at once. Applications don't connect to the hardware (obviously not), but rather to Hardware Resource Streams. A Hardware stream is a sort of...plug for an App to dip its tendrils into. Each NIC will have its own stream. You can have any number of concurrent network connections, even internet connections coming into the same PC, and applications wishing to connect will ust choose the Default device, OR you can specify a particular NIC connection for a particular group of Apps to use.
Total control of all networking on the PC.
There's lots more I've come up with, all due to that Hardware Resouce Stream idea I've come up with, where the OS doesn't provide an abstrction to an App, but provides a managed sort of ... lifeline to the resource requested.
I've ogt a great idea, that will take years to finish. LOL.
I just want some comments, and whatnot, and see if this is really that revolutionary.
But It's enough for me to want to move my skills on further. Being still a novice, who has only learned theory, and mostly written complex experimental programs, but never a whole software system, I decided to get into OSDev.
On to the topic: I've thought up an OS, which I will name Z-OS. What's so different about Z-OS?
I believe that Networking, as it is statically defined today, has become a non-flexible thing.
- Everyone uses the TCP/IP Suite.
Who says we MUST use TCP-IP for private networks? Ad-Hoc WiFi, and home, auxiliary networks can be simplified a lot more than they already are.
Why use a general-purpose Suite of Protocols, when you can create a mini protocol for immediate, custom use?
This is the most fundamental change in Z-OS. I will implement a NON-suite oriented network interface for Network Connections.
How? Simple. Instead of implementing the TCP-IP suite as a part of the driver for an NIC, I'll have it as a module. Then, there will be a wizard that can create pseudo-drivers (interpreted scripts in a Network-specific language I've planned out on paper), and load them for the Packet, and Transmission phase of the Networking. The Driver for the Networking will ONLY perform basic Open, Read, Write, and Close functions, and will as purely generic as your average *nix driver.
So: You connect a cable to your pc, and connect it to another pc. No problem. The system brings up a simple GUI prompt asking whether the new network should use the TCP-IP suite, or whether you'd like to create a pseudo-protocol for it. The wizard will guide you through the generic set of options (should the cable recieve Analogue, or digital signals? Should the device send? Or is it only to recieve? What kind of naming convention do you want?), And with that, you should have a working suite of your own, which, when ported to the other PC, will work perfectly.
A specialized, custom driver is less likely to drop connections, and, due to its completely purpose specific functions, it would be very easy to troubleshoot. Networking in a small environment made EXTREMELY simple. Any kind of network that doesn;t interface with the WWW can use it.
Then there's the other MAJOR networking catch:
The ability to utilize multiple networking streams simultaneously.
i.e.: You know how in Windows, Linux, and other OSs, you find that having the PC connected with one of its NIC, makes it unable to handle connections on any other, unless you're using another NIC to share the connection coming in on NIC #1?
Well, In my OS, any number of NIC can be connected at once. Applications don't connect to the hardware (obviously not), but rather to Hardware Resource Streams. A Hardware stream is a sort of...plug for an App to dip its tendrils into. Each NIC will have its own stream. You can have any number of concurrent network connections, even internet connections coming into the same PC, and applications wishing to connect will ust choose the Default device, OR you can specify a particular NIC connection for a particular group of Apps to use.
Total control of all networking on the PC.
There's lots more I've come up with, all due to that Hardware Resouce Stream idea I've come up with, where the OS doesn't provide an abstrction to an App, but provides a managed sort of ... lifeline to the resource requested.
I've ogt a great idea, that will take years to finish. LOL.
I just want some comments, and whatnot, and see if this is really that revolutionary.