summaryrefslogtreecommitdiff
path: root/src/README
blob: a1c75e41b17c5775451c11b7bcd0ac223d3b48da (plain)
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
69
70
71
72
boot
----

Simple bootloader, loading in two phases and loading the kernel itself

* boot.bin - boot sector (stage 1 and 2, total 2k), offset 0x7c00
  * boot.asm - the main boot sector code using:
* kernel.bin - linked kernel with fix start offset 0x8800
  * boot_gdt.asm - the early GDT, flat memory model, no protection
  * stage1_functions.asm - real mode functions of the bootloader (stage 1 and 2)
  * stage2_real_functions.asm - real mode functions for stage 2
  * stage2_a20.asm - various methods to enable the A20 address line
  * stage2_check_magic.asm - function to make sure the image contains a magic marker
  * stage2_switch_mode.asm - early GTD loading and switching from real to protected mode
  * stage2_pm_functions.asm - protected mode helper functions for stage 2
* magic.bin (512 bytes magic marker sector)
  * magic.asm

kernel
------

Kernel main and utility routines like early consoles.

* entry.c - the kernel entry from the bootloader 'kernel_entry'
            (starting at 0x8800)
* kernel.c - kernel helper functions
* console.c - the kernel console, can use VGA or serial port for now
* vga.c - VGA basic output routines for early kernel output
* serial.c - serial output to COM1 (only sequential ASCII chars, no terminal)
* tasks.c - task switching
* memorymanagement.c - heap memory manager

hardware
--------

Hardware abstraction layer.

* port.c, port.asm - I/O ports
* interrupts.c, interrups.asm - interrupt handlers
* pci.c - PCI introspection and driver initialization

drivers
-------

Driver framework and specific drivers.

* driver.c - generic driver manager
* keyboard.c - PS/2 keyboard
* mouse.c - PS/2 mouse
* vga.c - standard VGA video driver

gui
---

Small GUI library, should be completly independend on the video driver.

* widget.c - basic GUI widget definining the interface of all GUI objects
* composite_widget.c - a widget which is composed of a set of widgets
* text_widget.c - a widget showing text
* window.c - a clickable, focusable, closable, etc. window
* desktop.c - the top-level composite widget covering the whole desktop

libc
----

Stub C library implementation.

C library routines
* string.c - string, memory functions
* stdlib.c - UNIX standard library functions
* stdio.c - I/O functions, printing
* setjmp.asm - setjmp/longjmp implementation (in assembly)