Archive / / / outline_0.1b0.html
2002-01-19 18:42:30 UTC
previous next
<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>