<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>