Root/plan

1caps zonder size limit?
2invoke ipc: try sync; try receiver memory; try caller memory; fail.
3
4memories map:
5
6top
7- lcd
8- keyboard
9- sound
10- led
11- udc
12- battery
13- beeper
14- msc
15- nand
16- filesystem
17- network
18- top session manager
19- - user session
20- - - program container
21- - - - driver emulation
22- - - - driver emulation
23- - - - program
24- - - program container
25- - - - driver emulation
26- - - - program
27- - user session
28...
29
30te doen:
31- caps in init met een cap per process
32- die cap bevat caps in target memory met een cap per service
33- die cap bevat een user van de service
34- sysreq is geen aangeboden service, usbfs wel
35- sysreq schakelt tussen running processes incl. user switching.
36
37- display interface: put pixel commando
38- typewriter: print toetsen op scherm; shell?
39
40- terminal
41- emulaties automatisch per proces
42- start programma van filesystem
43- nand driver
44- filesystems met backing store
45
46Boot process:
47- bootinit and filesystem (and backing store) are started.
48- bootinit starts run.elf and loads init.elf.
49- run starts init.
50- init loads init.config and executes it.
51- during that process, the initial programs are killed.
52
53Order:
54run.elf
55init.elf
56init.config
57load.elf
58drivers
59emulations
60programs
61
62init.config is a script:
63
64    # load <name> = <filename> load a file into memory. Don't use this after killbootthreads.
65    load session = session.config
66    load driver_lcd = lcd.elf
67    load driver_buzzer = buzzer.elf
68    load driver_gpio = gpio.elf
69    load driver_audio = audio.elf
70    load driver_udc = udc.elf
71    load driver_nand = nand.elf
72
73    load emu_lcd = emu_display.elf
74    load emu_buzzer = emu_buzzer.elf
75    load emu_keyboard = emu_keyboard.elf
76    load emu_audio = emu_audio.elf
77    load emu_udc = emu_udc.elf
78
79    # killbootthreads destroy bootinit, bootfs and bootstore.
80    killbootthreads
81
82    # receive <cap> = <name> (<type> [, <index>]) prepare to accept a capability from a named program.
83    receive display = driver_lcd (display)
84    receive display_bright = driver_lcd (setting)
85    receive buzzer = driver_buzzer (buzzer)
86    receive keyboard = driver_gpio (keyboard, 0)
87    receive sysreq = driver_gpio (keyboard, 1)
88    receive audio = driver_audio (audio)
89    receive udc = driver_udc (udc)
90    receive nand = driver_nand (wstring)
91
92    # driver <name> run a previously loaded program priviledged.
93    driver driver_lcd
94    driver driver_buzzer
95    driver driver_gpio
96    driver driver_audio
97    driver driver_udc
98    driver driver_nand
99
100    # wait wait until all expected capabilities are received.
101    wait
102
103    # sysreq <cap> use a capability as the system request keyboard.
104    sysreq sysreq
105
106    # give <name> (<type> [, <index>]) = <cap> give this capability to this program when it requests it.
107    give emu_display (display) = display
108    give emu_display_bright (setting) = display_bright
109    give emu_buzzer (buzzer) = buzzer
110    give emu_keyboard (keyboard, 0) = keyboard
111    give emu_audio (audio) = audio
112    give emu_udc (udc) = udc
113
114    # run <name> run a previously loaded program (normally).
115    run emu_lcd
116    run emu_buzzer
117    run emu_keyboard
118    run emu_audio
119    run emu_udc
120
121    # include <name> include a loaded file as another config file.
122    include session
123
124    # loop sit and do nothing (respond to system request).
125    loop
126

Archive Download this file

Branches:
master



interactive