<HTML>
<HEAD>
<TITLE>.:[zark!OS 0.1b0] outline and planning</TITLE>
<STYLE TYPE="text/css">
A {text-decoration:none;}
A:hover {text-decoration:underline;}
</STYLE>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#0000FF" ALINK="#0000FF" STYLE="font-family:verdana,arial;font-size:8pt;">
<BLOCKQUOTE><SPAN STYLE="font-size:13pt;"><B>.:[zark!OS 0.1b0] <U>outline and planning</U></B></SPAN><BR><BR>
Date: January 19, 2002<BR>
Written by: Shane<BR><BR>
<SPAN STYLE="font-size:8pt;"><B>.: <U>0. Basics</U></B></SPAN><BR><BR>
There are a few basic parts of the OS we need to concentrate on to get started, and they
are:
<UL>
<LI>Main file system (ZKFS) and loadable file system support
<LI>Boot loader (MBR, second- and third-stage boot loader)
<LI>Hardware Abstraction and drivers
<LI>Text-based shell
<LI>Executable file format
<LI>Location of executables in memory
<LI>Multitasking
</UL>
<SPAN STYLE="font-size:8pt;"><B>.: <U>1. Main files system (ZKFS) and loadable file system support</U></B></SPAN><BR><BR>
The main file system of zark!OS is ZKFS. We need to research on how to make fast
and secure file systems, but it's probablly going to be a journalling file system,
possibly using balanced trees like HPFS (OS/2's file system). I won't get into much
detail here because this is just an outline. Files and directories will have unix-style
paths starting with / and no drive letters à la Windows. When we get around to adding
Windows programs support, we'll give those programs a virtual file system that allows
them to access any file on the hard drive while making it seem like a normal windows
hard drive. For example, /sys would be mapped to c:\windows and /cdrom would be mapped
to d:\. We also need to have support for third-party file systems such as
FAT, NTFS, ext2, etc. and should be able to boot off any file system without hassle.<BR><BR>
<SPAN STYLE="font-size:8pt;"><B>.: <U>2. Boot loader (MBR, second- and third-stage boot loader)</U></B></SPAN><BR><BR>
In order to do the third-party file system booting, we'll need some smart way to get the
boot sector to find the system files to load them on startup. What I was thinking was this:
the computer will have a normal MBR that just finds the boot volume and loads the second-stage
boot loader from the first 512 bytes of the volume. (This is normal behavour for any IBM
compatible PC). Now, the second-stage boot loader will be considered part of the loadable
file system driver, and it's only purpose is to load the file /sys/btldr.sys (it will
ALWAYS be in that location on all computers and zark!OS will ALWAYS be in /sys/)
</BLOCKQUOTE>
</BODY>
</HTML>