jedld/dex-os
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
DDDD EEEEE XX XX OOOOOOOO SSSSSS D DD E XX XX OO OO SS D DD EEEEE X ------- OO OO SSSSSS D DD E XX XX OO OO SS DDDD EEEEE XX XX OOOOOOOO SSSSSS Author: Joseph Emmanuel DL Dayo e-mail: j_dayo@yahoo.com, joseph.dayo@gmail.com This is the README.1ST file for DEX-OS 1.0 Beta DESCRIPTION =========== DEX is an operating system specifically designed for educational and research use. The DEX Operating system allows for the dynamic reconfiguration and customization of various system services using concepts found in extensible operating systems. Additionally it aims to create an operating system design that would be easy to understand while having features that are common with today’s modern operating systems. Unlike other small operating systems, DEX-OS is powerful enough to support simple applications that require multithreading and file management. DEX-OS was developed in C and runs on PCs with 80386 processors or higher. The ultimate goal of this operating system is to achieve zero static inter-module calls, not even the scheduler or virtual memory manager is permanent and could be changed dynamically. In order to achieve this "plug-in" like capability, there is a need to generate generalizations about the interfaces of the various operating system modules. Like for example, what features should a scheduler provide, or what methods or function calls should a virtual memory manager provide at a minimum. This part of the operating system is still under development, and only the scheduler and the kernel malloc function is dynamic . Theses modules can be incorporated into the system through the means of Dynamic Link Libraries or shared objects, much like how a device driver would. THE DISTRIBUTION ================ The DEX source distribution is divided into the following subdirectories: /console - Contains the modules that will handle virtual consoles and the built-in text-mode shell /devmgr - Contains the device manager and the extension manager /dexapi - The DEX Application Programs Interface manager /docs - additional documentation /filesystem - Contains the filesystem drivers /grub - Contains the grub bootloader binaries /hardware - Contains device drivers for the various hardware found in an 80x86 system. /iomgr - Contains the IO manager module /memory - Contains page management code and kernel malloc functions /module - Contains the module loader for various executables and libraries /process - Contains process management code /startup - Contains startup NASM assmebly files and libraries /stdlib - Contains various standard C library functions /vfs - The Virtual File System (VFS) module /vmm - The Virtual Memory Management module The main file is kernel32.c and some of the files are directly included in it. INSTALLATION ============= For the binary only release, the file kernel32.bin is multiboot compliant and multiboot compliant bootloaders like GRUB can be used. Please refer to the GRUB documentation for instructions on installing the GRUB bootloader on a FAT12 floppy disk. See the user's manual for other details. EDIT: kernel32.bin is now compressed using gzip therefore the file should now be kernel32.bin.gz. The modification is relfected in the GRUB configuration file. COMPILING THE SOURCE CODE ========================= For Windows/DOS --------------- nasmw - netwide free assember 0.98 or greater DJGPP gcc - The gcc compiler from DJ Delories gzip - gzip compression utility Simply invoke the make-kernel.bat batch file. For Unix systems ---------------- The following utilities must be available nasm - netwide free assembler 0.98 or greater gcc - GNU C compiler and associated utilities gzip - gzip compression utility make - make file There is an included makefile in the source, to compile just invoke make. This will output kernel32.bin.gz which contains the compressed dex-os kernel. This kernel can be booted by placing the kernel32.bin.gz file in a floppy disk with grub installed and modifying the menu.lst file to reflect the location of kernel32.bin.gz (A menu.lst file is included in the source package as well as the GRUB loaders in the GRUB folder) POSSIBLE ERRORS =============== Error: ld returns the following error message: ld: PE operations on non PE file. Reason: The version of gcc or ld is not capable of producing BINARY output formats. You must obtain the cross compiler capable version of gcc and/or ld to be able to link the object files together. Check using ld --help to determine the supported output formats. DJGPP is capable of producing BINARY formats out of the box.
About
The DEX Extensible Operating System. An educational operating system I developed during my college days.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published