< Back to index

NoNameOS is a small open source operating system currently for the x86 architecture.

The Kernel


The kernel is monolithic in design. It is composed of four main subsystems; a virtual memory manager, a virtual file system, an IO subsystem and a process manager.

* The memory manager sub system in NoNameOS is composed of three main parts; a physical memory manager, a virtual memory manager and a heap manager. The physical memory manager layer uses a bitmap to track the allocation of physical pages while providing an interface to the other layers to allocate and free physical pages of memory. The virtual memory manager layer uses paging to achieve virtual memory and provides memory protection between processes through both paging and segmentation. It exports an interface for the creation and manipulation of a processes virtual address space. It access's the kernels interrupt layer to receive page fault interrupts. The heap memory manager provides an interface for expanding the kernel as well as user heaps via a system call called morecore. The heap memory manager is also responsible for allocating and freeing kernel heap memory with the first fit algorithm.

* The file system subsystem as shown is composed of a Virtual File System (VFS) layer which maintains a unified view and interface to the multiple file systems of varying formats mounted across the VFS tree. A POSIX like interface is exported to user space via system calls for accessing and manipulating the VFS. A default FAT file system driver is present. There is also a default device file system (DFS) driver present.

* The IO subsystem is composed of the IO Controller layer and the device drivers. The device drivers access the kernels interrupt layer in order to be able to add interrupt handlers for their respective devices as well as the DMA layer for their DMA operations. When a driver is loaded, either statically by the kernel or dynamically via the load system call, it registers itself with the IO Controller layer, specifying whether it requires buffering, access protection or locking. The IO Controller layer proceeds to add the new device to the DFS that operates in the file system subsystem. This is required so the device will appear in the VFS and can subsequently be accesses by the user through the system calls that the VFS exports.

* The process manager subsystem is composed of two layers, a scheduler layer and the process layer. The scheduler layer uses the round robin policy for deciding which process to run next and perform the context switching to save the sate of the currently executing process before resuming the execution of another. It uses the kernels interrupt layer to add an interrupt handler for the systems hardware timer in order to activate the scheduler at set intervals. The process layer is responsible for the loading and creation of processes and their destruction upon termination. It implements the system calls of spawn and kill for these operations. It communicates with the virtual memory manager layer for the creation, manipulation and destruction of a processes virtual address space.
This entry uses material from from Wikipedia, the leading user-contributed encyclopedia. It is licensed under the GNU Free Documentation License. Disclaimer.