> # A MOSOCI Grail Millenium Project

> # White Paper

> History | Preface | TOC

> ##### This document is maintained by the author, Lewis A. Sellers, somewhere in the mountains of East Tennessee, the United States of America. It is an informal technical document for a works in progress project called Grail Millenium, or fully, The Minimal Operating System of Object Class Interfaces Holy Grail for the Millenium. In other words, for a new, easy to use, long-lived operating system.

> ## Copyright Notice

> ##### This document and all material therein, unless otherwise stated, is Copyright © 1995, 1996, Lewis A. Sellers. All Rights Reserved. Permission to distribute this document, in part or full, via electronic means (emailed, posted or archived) or printed copy are granted providing that no charges are involved, reasonable attempt is made to use the most current version, and all credits and copyright notices are retained.

> ## Distribution Rights

> ##### All requests for other distribution rights, including incorporation in commercial products, such as books, magazine articles, CD-ROMs, and or computer programs should be made to the primary author Lewis Sellers.

> ## Warranty and disclaimer

> ##### This document is provided as is without any express or implied warranties. This is a work-in-progress, and as such will contain outdated or as yet uncorrected or substanstiated assumptions. The author, maintainer and/or contributors assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein.

> ## WWW Home Sites

> ##### You can currently find home sites to this project at
> - http://www.dwc.edu/grail/
> - http://www.usit.net/public/bcannon/grail/
> If you can not reach them, or they seem to be down, do a key word search on AltaVista, Lycos, or the Web Crawler search engines.

> ## Contact Email

> ##### The primary author of Grail Millenium should be reachable at lsellers@usit.net.

> Preface | TOC

> # OCI/Spec | C O R E - U P i386

> ### DESIGNER

> Lewis A. Sellers (aka Minimalist) lsellers@usit.net

> ### CRITIQUED BY

> ### VALID PROCESSORS

> - Intel 386, 486, Pentium, Pentium Pro

> ### DRAFTS

> - 2/9/96 revision 0.00
> - 3/7/96 revision 0.01

> TOC

> # (a0.02)

> # Table of Contents

> Legal Notices | Who gets sued and why
> History | Changes and who made them
> Preface | About the CORE i386 and the people that make it

> Overview | An Operating System Overview
> CORE __SYSTEM FUNCTIONS | What are they? What can they do?

> TOC

> # An Operating System Overview

> ## BY | Lewis Sellers lsellers@usit.net

> There are two ways that Grail will start-up. The first is through a boot-up directly into the operating system through the multi-boot program. Secondly, you can use a gateway program to switch from DOS, Windows or OS/2 into the Grail kernel.

> >     0  Empty            8  AIX             75  PC/IX        b7  BSDI fs
> >     1  DOS 12-bit FAT   9  AIX bootable    80  Old MINIX    b8  BSDI swap
> >     2  XENIX root       a  OS/2 Boot Manag 81  Linux/MINIX  c7  Syrinx
> >     3  XENIX usr       40  Venix 80286     82  Linux swap   db  CP/M
> >     4  DOS 16-bit      51  Novell?         83  Linux native e1  DOS access
> >     5  Extended        52  Microport       93  Amoeba       e3  DOS R/O
> >     6  DOS 16-bit      63  GNU HURD        94  Amoeba BBT   f2  DOS secondary
> >     7  OS/2 HPFS       64  Novell          a5  BSD/386      ff  BBT
> >     59 GRAIL FS (GMFS)

> When you boot up from a hard drive or ATAPI CD-ROM....

> # MULTIPLE OPERATING SYSTEMS AT BOOT-UP

> There is being designed a type of program called a gateway for OS/2, WIN95 and DOS which allows you to switch in and out these systems as you desire. Grail is meant to be as co-operative to foreign OSes as possible.

> Further, Grail comes with a multi-boot program that you can install to your primary hard drive. When you turn your machine on this program is automatically loaded by BIOS and prompts you to select the operating system you wish to use. This is how it might look to you when your machine boots up in text-mode:

> # Hard Disk Partition Table Entry Layout

> >     Byte      Field   Sample
> >     offset    Length  Value       Meaning
> >     00h       Byte    80h         Boot indicator
> >                                       00h= Nonbootable
> >                                       80h= Bootable
> >     01h       Byte    01h         Starting head
> >     02h       Byte    01h         bits 0-5 Starting sector
> >                                   bits 6-7 are bits 8&9 for cylinder
> >     03h       Byte    00h         Starting cylinder (low 8)
> >     04h       Byte    04h         System ID
> >                                       00h= Unknown
> >                                       01h= DOS, 12-bit FAT
> >                                       04h= DOS, 16-bit FAT
> >                                       05h= DOS, extended disk,16-bit FAT
> >     05h       Byte    04h         Ending Head
> >     06h       Byte    51h(11)     bits 0-5 Ending sector
> >                                   bits 6-7 are bits 8&9 for cylinder
> >     07h       Byte    E9h(1E9)    Ending cylinder (low 8)
> >     08h       Dword   00000011    First partition sector
> >     0Ch       Dword   0000A2A1    Sectors in partition

> primary filesystem

> >     grail fs
> >     DOS 12
> >     DOS 16
> >     DOS 16 extended
> >     WIN95
> >     OS/2 HPFS

>     7C00h - 7DFFh
>     7DFE
>     7DFE  - 7DFFh	AA55h Bios Boot-Signature

> # THE BOOT-UP PHASE

> >          G       R       A        I         L
> >          m    i    l    e    n    i    u    m
> >          Core-up U.S.English IBM PC Clones
> >        The following operating systems have
> >        been detected on your machine. Please
> >        select which OS you wish to start up
> >        in or wait until your default
> >        selection is automatically choosen.
> >        You may choose your autodefault and
> >        delay seconds by pressing 'D' right now.
> >        You may auto-detect new operating system
> >        by pressing 'A'. You may manually add
> >        an operating system by pressing 'M'.
> >          [10]  1. Grail Millenium - build 0.01
> >                2. OS/2 - 3.00
> >                3. Microsoft Windows - 95
> >                4. Linux
> >                5. Free-DOS
> >          b0001

> # THE OS-UP PHASE

> # THE CORE-UP PHASE

> However you do it, once the kernel is loaded into memory it does a few system tests and sets up some data areas while panning through a textmode screen such as:

> >                    MOSOCI GRAIL MILLENIUM 0001
> >        Minimal Operating System of Object Class Interfaces
> >        Minimal Hardware for CORE: Yes
> >                                                                 ------
> >        CPU:     Intel 486/DX 100mhz                             |xxxx|
> >           MEMORY:  8 megabytes (60ns)                           |xxxx|
> >           L1 Cache 8kb code/8kb data                            |xxxx|
> >           L2 Cache 256kb                                        |xxxx|
> >           CMOS:    128 bytes                                    |xxxx|
> >           BUS:     PCI                                          |xxxx|
> >                                                                 |xxxx|
> >           Filesystem Object Instances                           |xxxx|
> >                 FDC Floppy                                      |xxxx|
> >                 IDE Disk Drive                                  |xxxx|
> >                 EIDE ATAPI Disk/CD-ROM                          |xxxx|
> >                 SCSI                                            |xxxx|
> >                 Novell TCP/IP                                   |xxxx|
> >                                                                 |xxxx|
> >           Filespace Devices Present                             |xxxx|
> >                 170mb IDE Conner HD                             |xxxx|
> >                 540mb IDE Maxtor HD                             |xxxx|
> >                 1.2gb SCSI Micropolis HD                        |xxxx|
> >           NuTek 1720B ATAPI CD-ROM                              |xxxx|
> >           Rockwell Zoom 14.4 Modem                              |xxxx|
> >           Novell TCP/IP Card                                    |xxxx|
> >                                                                 |xxxx|
> >           SUPERVISOR Objects                                    |xxxx|
> >                 CORE TEAM in-house Debugger 0113                |xxxx|
> >                 CORE TEAM Performance Monitor 0150              |xxxx|
> >                                                                 |xxxx|
> >           Users (3)                                             |xxxx|
> >                 "Supervisor"                                    |xxxx|
> >                 METAPHOR:         The Natural Landscape         |xxxx|
> >                 VIRTUAL MEMORY:   16 megabytes                  |xxxx|
> >                 AUTHORIZATIONS:                                 |xxxx|
> >                                               Passcode          |xxxx|
> >                                               Voice Recognition |xxxx|
> >                 "Lewis Sellers"                                 |xxxx|
> >                 METAPHOR:         The Natural Landscape         |xxxx|
> >                 VIRTUAL MEMORY:   10 megabytes                  |xxxx|
> >                 AUTHORIZATIONS                                  |xxxx|
> >                                               Passcode          |xxxx|
> >                 "Michelle Sellers"                              |xxxx|
> >                 METAPHOR:         The Natural Landscape         |xxxx|
> >                 VIRTUAL MEMORY:   8 megabytes                   |xxxx|
> >                 AUTHORIZATIONS                                  |xxxx|
> >                                               Passcode          |XXXX|
> >                                                                 |    |
> >                                                                 |    |
> >                                                                 ------

> The colored bar to the right fills up as all the tests are being made. The textmode screen is 80x200 which does a smooth scroll through text memory in 80x50 mode. It always used a Green-phosphor/dim-gray color scheme.

> After the CPU tests, it does a few others. Then it does the a prelimiary device scan building a list. Then it computes a list of partitions, etc. Now it locates the primary filespace and loads in all critical device objects from the root space of that device. Then it tries again with another device scan an picks up all those that it missed before hand.

> Now that Grail has a map of where all the storage medium devices are it looks up the default metaphor in the PNF and loads it!

> These few functions that follow are used mostly to determine how the core is handling OCI implimentations. Also gives information about the built-in low-level critical device objects used by MSI. See the FS the OCI for info on these.