-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
69 lines (41 loc) · 1.64 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
RGOS -- A hopefully straightforward OS design.
==============================================
Author: C. Forbes [chrisf@ijw.co.nz]
How to make it work:
Assuming Ubuntu Lucid x86 on your host, you will need:
* Oracle Virtualbox 3.2.0+
* Packages: build_essential, nasm, genisoimage, grub,
git-core
Checkout the sources:
$ git clone git://github.com/chrisforbes/rgos
Build it:
$ cd rgos
$ make
Mount `rgos.iso` (in a VM, probably). Give it >= 64M of RAM,
and watch it work.
Stuff that needs done:
Most interesting things don't work, or more likely, don't exist
at all. However, I plan to support, roughly in order:
* Building the physmem image based on the multiboot memory
map, rather than assuming 64M. Any unusable areas should be
blocked out of the physmem image.
* Writing the kfree function, so we don't exhaust the kernel
heap.
* Unmap the bottom pagetable as soon as possible -- that's
userspace. [0x0..]
* Only map the *required* region of the 0xc0.. pagetable -- not the full 4M.
If we want to run on *little boxes* (16M or so), 4M of fixed kernel pages is lame.
* Processes, each with a chain of memory descriptors, placed
in kheap. The PF handler will consult the descriptor chain
to decide what it should do.
* PCI bus enumeration
* Basic driver framework
* Legacy keyboard driver
* Rewrite VGA console driver onto the driver framework
* SATA AHCI support
* ATAPI support for CD/DVD drives
* ISO9660 filesystem driver
* ELF parser & relocator -- for loadable kernel modules.
* ACPI support -- for at least shutdown!
* ATA disk support
* ext2 filesystem driver?