1
0
mirror of https://github.com/hsoft/collapseos.git synced 2024-11-20 20:28:06 +11:00
collapseos/kernel
Virgil Dupras 019d05f64c Make the shell a userspace app
That's my mega-commit you've all been waiting for.

The code for the shell share more routines with userspace apps than with kernel
units, because, well, its behavior is that of a userspace app, not a device
driver.

This created a weird situation with libraries and jump tables. Some routine
belonging to the `kernel/` directory felt weird there.

And then comes `apps/basic`, which will likely share even more code with the
shell. I was seeing myself creating huge jump tables to reuse code from the
shell. It didn't feel right.

Moreover, we'll probably want basic-like apps to optionnally replace the shell.

So here I am with this huge change in the project structure. I didn't test all
recipes on hardware yet, I will do later. I might have broken some...

But now, the structure feels better and the line between what belongs to
`kernel` and what belongs to `apps` feels clearer.
2019-11-15 15:37:49 -05:00
..
fnt recipes/ti84: use a 3x5 font instead of a 5x7 one 2019-11-11 13:26:24 -05:00
sms Move ASCII consts to ascii.h 2019-11-13 20:38:06 -05:00
ti Move ASCII consts to ascii.h 2019-11-13 20:38:06 -05:00
acia.asm acia: make GetC blocking 2019-11-04 14:44:43 -05:00
ascii.h Move ASCII consts to ascii.h 2019-11-13 20:38:06 -05:00
blkdev.h Make the shell a userspace app 2019-11-15 15:37:49 -05:00
blockdev.asm Make the shell a userspace app 2019-11-15 15:37:49 -05:00
core.asm Extract str.asm from core.asm and make core included by userspace 2019-11-14 10:14:15 -05:00
err.h Rename blockdev's API routines to GetB/PutB 2019-10-30 16:59:35 -04:00
fs.asm Make the shell a userspace app 2019-11-15 15:37:49 -05:00
fs.h Make the shell a userspace app 2019-11-15 15:37:49 -05:00
kbd.asm kbd: add keypad codes to keycode table 2019-07-25 14:22:17 -04:00
mmap.asm Rename blockdev's API routines to GetB/PutB 2019-10-30 16:59:35 -04:00
README.md Make the shell a userspace app 2019-11-15 15:37:49 -05:00
sdc.asm Rename blockdev's API routines to GetB/PutB 2019-10-30 16:59:35 -04:00
stdio.asm Make the shell a userspace app 2019-11-15 15:37:49 -05:00
str.asm Make the shell a userspace app 2019-11-15 15:37:49 -05:00
user.h.example zasm emul: bring back kernel/user distinction 2019-05-19 12:57:59 -04:00

Kernel

Bits and pieces of code that you can assemble to build a kernel for your machine.

These parts are made to be glued together in a single glue.asm file you write yourself.

This code is designed to be assembled by Collapse OS' own [zasm][zasm].

Scope

Units in the kernel/ folder is about device driver, abstractions over them as well as the file system. Although a typical kernel boots to a shell, the code for that shell is not considered part of the kernel code (even if, most of the time, it's assembled in the same binary). Shells are considered userspace applications (which live in apps/).