This is a bit of a hack. /dev is presented as a new pseudo file type
until I finish the VFS overhaul. This fake file presents a directory
with entries for all of the VFS nodes that are children of it. The
future VFS will do this on its own, thus making this superfluous.
There's a lot here, so let's through it:
- Lots of work to include a symbol table in the kernel. We can't rely on
our bootloader to give us our own ELF information, so we do this
separately. This probably should be changed to output a C source
rather than assembly, but that's a TODO.
- Makefile can now generate modules. It works basically the same way any
other kernel object works, expect with a slightly different linking
scheme.
- Commands have been added to the debug shell to load modules, but they
don't work yet - still need to get through relocation and linking.
- Commands have been added to the debug shell to print the symbol list,
as well as print symbol values (but note that printing symbol values
is kinda dangerous if you don't know what they are, so don't just go
printing things willy-nilly).
This is still a work in progress. ext2 writes are quite broken, so they
have been completely disabled, but there's a new tmpfs mounted to /tmp
that you can try to poke at. I'm still fixing up quirks in the VFS that
make it incompatible with a bunch of stuff, but I did manage to write
some files with vim, and swap files appear to be working at least
somewhat. It's all still broken as fuck.
* login should set some environment variables now
* init should start terminals as login shells, so --single doesn't really
mean "single user" any more, just sorta single terminal session
* system() should work now since esh now accepts -c; not that vim is
still going to be unhappy because it does crazy shit.
* Remove old login background [unused]
* Remove glock (graphical lock) [outdated]
* Have toolchain/activate set pkg-config variables
XXX: You will have unset PKG_CONFIG_LIBDIR to configure native
software if you have activated the toolchain! Otherwise, your
pkgconfig information will be incorrect.
* Fixed a bug in the compositor where we would give window stack order 0
to applications that didn't ask for it because depths were assigned by
wid which starts at 0. Make it start at 1 instead, no chance of an app
getting the wrong stack order (this shoudn't have any effect on how
things work with a login app, since it grabs wid 0; but if you boot
directly into a non-login environment, minor timing issues can do odd
things.)
* Also some minor updates to the toolchain in general.
* Replacing the old bitmap wallpaper (not the actual wallpaper, but the
terminal one) with a fresh new wallpaper as a PNG.
* A minor bug has been fixed in bim's write_file method
* The VL Gothic fonts have been updated (and the proportional version of
the font is now included)
* The README and TODO have both been updated to reflect current plans.
* Some applications now support UTF-8 text through the use of a very
simple decoder.
* The terminal uses a slow, but accurate method to determine the width
of a character the first time it is printed to the screen. Characters
are now stored in the terminal in two bytes, rather than one, and may
in the future be increased to 3 or 4 bytes to ensure support for
Unicode supplemental planes.
* A simple font-fallback method is employed in the applications that
support unicode that will make use of the VL Gothic fonts if the
DejaVu font does not have a character. No guarantees are made for
support of writing systems other than extended Latin and Japanese.