Archive / / / 2002-09-22-index.html
2002-09-22 15:15:35 UTC
previous next
<HTML> <HEAD> <TITLE>kryOS</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#000000" VLINK="#000000" ALINK="#000000"> <CENTER><FONT STYLE="font-family:Verdana,arial;font-size:50pt;">kryOS</FONT></CENTER> <HR COLOR="#000000" SIZE=1 WIDTH="95%"> <BLOCKQUOTE><FONT FACE="Verdana, Arial" SIZE=2> Last updated: Sunday, September 22, 2002<BR> Page created: Wednesday, September 11, 2002<P> <B>Features:</B><P> <UL> <LI>Microkernel design <UL> <LI>Kernel services <UL> <LI>Process/thread management <LI>IPC <LI>Swap management <LI>Device Driver management (interface profided thru a set of functions which use id's like 'iface/pci' (for access to pci for drivers) and 'data/hd/0/0' (similar to MIME-types)) <UL> <LI>data means it can be mounted, iface is how drivers access an interface <LI>stream/net/0 - NIC interface <LI>stream/tape/3 - Tape driver <LI>data/hd/0/0 - Hard drive 1, partition 1 <LI>data/camera/0 <LI>drivers can be loaded into ring 0 or 3 depending on preference <UL> <LI>drivers are stored in the drive as relocatable code <LI>In ring 0, they are relocated to be in different places next to each other above 0xD0000000 <LI>In ring 3, they are each give their own address space, but do not show up as processes in process lists </UL> </UL> </UL> <LI>System services (Can be replaced by the admin with specialized versions) (run in user-space... this IS a microkernel) <UL> <LI>Filesystem (kdfs) <UL> <LI>Allows use of filesystem drivers, drivers can be added to kdfs or be run as a seperate process (even drivers for accessing ftp over file system) </UL> <LI>User management/Authentication (kdauth) <LI>Terminal server (provides tty's) (kdtty or kdter) <LI>Networking server (kdnet) <LI>Processes server (kdproc) <LI>kddevfs - Turns kernel devices into a filesystem for kdfs <LI>kdftpfs - Allows ftp thru the filesystem <LI>k = kernel, d = daemon <LI>Everything else <LI>System services give type of service they offer (' </UL> </UL> <LI>Filesystem structures so you can have the executables, user files, and/or global config files come off a server easily <LI>Executable directories and system directories NEVER get modified unless installing programs or the OS (earsing the config directory makes the OS seem freshly installed) <LI>Entirely written in C and assembly <LI>Drivers can be run in kernel mode or user mode (can be selected differently for each driver) <LI>Processes get a paging priority level so more important processes will not be paged (level automatically changes as programs run? (i.e. less used programs get paged more)) </UL><P> <B>Stuff to do:</B><P> <UL> <LI>Think of better name for OS! <LI>Think of name for microkernel, and for non-kernel services <LI>Design filesystem layout <LI>Figure out whats in the kernel and what isn't <LI>Figure out how to make a multiboot compatibale ELF kernel that can use assembly and C code <LI>How do drivers fit in? How can i allow use of windows drivers? Is that possible? ** </UL><P> <A HREF="bootup.txt">bootup.txt</A><BR> <A HREF="memstack.txt">memstack.txt</A> </FONT></BLOCKQUOTE> </BODY> </HTML>