|
This is my first attempt at OS layer design and implementation, so bear with me if I'm completely off tangent... The diagram above shows the proposed relationship between components of the operating system. To begin with, I will explain the individual components: 1) Hardware: This is the physical hardware that a computer system is composed of. This layer can only be accessed by the abstract layer. In other words, a program is made by interacting with the abstract, rather than the physical hardware. This is done to allow for platform independence. 2) Abstract: This is the layer that programs interact with. The Abstract layer is essentially a group of small databases consisting of programming information used to interact with the physical hardware. An Abstract layer is used to remove the physical hardware from the programming process. This allows for platform independence of all programs written for this type of system. The Abstract Layer would have multiple levels within it: High Level Abstracts which are generic to all systems capable of running the system and therefore safe to use (genericTextOutput, genericTextInput, genericSystem, genericStorage, etc.), Medium Level Abstracts which are more specific (2D Graphics, 3D Graphics, Keyboard Input, etc), and Low level abstracts which are specific to the actual hardware (ATI Mach64-GT, PCI Bus, 1.44" Floppy Drive, etc) 3) OS: This is the management layer. Programs need to get memory addresses and access file systems, this layer provides services to that effect. This layer like all others on this level are a platform independent programs. 4) GUI: This layer provides the graphical user interface used within the OS. In this model it consists of a very small set of functions that interact with the video display hardware to allow a windowed environment. Most programs would be executed in this environment. 5) PROCESS: These are the actual programs as they run. Notice that each program has direct access to the abstract along with the OS. This allows for direct access to all hardware capability, once the program is compiled. 6) AI: This is the artificial intelligence layer. This layer observes and interacts with the program layers. It has the capability to be programed to offer advice or modify actual program code, when implemented and enabled. It should only be used to enhance the computing experience. BOOT:
RUNTIME:
GUI:
NETWORK:
PROGRAM DESIGN:
SUMMARY:
|