Today, the world of computers is connected through various means (DSL, ADSL, Fibre, Cable, Telephone, ISDN, etc.) to the Internet and operating systems must be equipt to provide access to these technologies and the Internet through them. Additionally, this must be part of the base of the operating system, and integral part of it, for the system to handle the technologies, and the change of the technologies well.
In order to properly handle the technologies and the changes in the technologies to be prepared for the future, a proper abstraction of the technologies must be created.
Microsoft DOS and Windows 3.x and earlier did not provide any such abstraction, and the abstractions created for later versions of Windows are simply horrid, though they manage the job. Starting with Windows XP, Microsoft brought the abstractions it used for its Windows NT series to the home user, which was better than those found in the previous home operating systems it had created, but even so, Microsoft did not do a good job.
The Internet was created by the Unix World, and the Unix world has done a great job at abstracting the interfaces. So good a job that they have changed the abstraction very little since it was created - changes that included the addition of firewalling and routing. Today, most of the changes center around firewalling techniques. The Linux world based their abstraction on the Unix systems, and came out quite well. By the 2.4 Kernel, Linux had a great abstraction that included wonderful methods for firewalling and routing using the NetFilter interface.
Since we want to produce a competitive operating system, we need to have a good abstraction of these technologies, and the sooner in the design it is accomplished, the better off we will be. For this purpose, the Winux Network Manager (a.k.a. Network OS for the veterans) was placed into the design.Requirements Home Table of Contents
The Winux Network Manager is responsible for handling all the network related information that goes through the system. This includes packet handling, network interfaces, protocols, firewalling and routing, and providing network connectivity to the local applications, as well as numerous other jobs.Requirements Home Table of Contents
To help with understanding the responsibilities of the Network Manager, we will break down the process of networking into a common set of layers. There are many methods to do this break down, but we will use the following based primarily on the TCP/IP design:
The Winux Network Manager will be responsible for handling most of these layers. The Application Layer will exist in Winux Userland (a.k.a. Actual OS). Additionally, certain protocols will also exist within the Application Layer, providing a mix between Winux Userland and the Winux Network Manager for the first two layers. However, every layer beneath this will be controlled by the Winux Network Manager.Requirements Home Table of Contents
The Winux Network Manager will also be in charge of routing information, and firewalling. These are two essential parts to providing a secure system. By default, the Winux Network Manager will be set up to drop all packets, providing the most secure environment possible.
The design of the routing and packet handling system should be based on that of Linux's IPtables/ NetFilter projects. It would even be great if the Winux Network Manager could load and use the work of the NetFilter project. However, due to how integrated the software must be in the kernel, it is highly likely that too much of the Netfilter/IPtables code would have to be changed since we are following a different kernel design.Requirements Home Table of Contents
The Winux Network Manager must be configurable by the user. To accomplish this, access must be granted through the Winux Userland system to the Winux Network Manager. This ought to be done by estabishing a line of communication through a designated protocol. Additionally, the program must be written to use the native API. Programs that wish to have network access will have a simpler system to use to establish links such as TCP/IP pathways. The designated protocol must have provide for Device Configuration and Routing/Filtering Rules.
Devices must be easily configurable. The program that provides for the device configuration ought to provide all the features of the ifconfig program under Linux.Requirements Home Table of Contents
Essential for security and a must in order to provide access to the internet, intranet, and other network resources, the super user must be able to configure a set of rules for the system. Unlike Microsoft Windows, we will start from a totally secure (network inaccessible) system. Packets will not be received by devices until an explicit rule has been set to allow the device to contribute. Rules must include the following: