Got to fix up some bits of network code, but that's hard to capture in a screen shot. I could make one of ping receiving 0 answers, but not complaining about unknown target host, but that's fairly unimpressive.
Instead, here's the login screen. Stuff that now works:
- Userspace (this is a userspace login application). That includes userspace malloc()ing.
- Font rendering with a built-in font. It's temporarily until I have some nice fonts & rendering support for them, but until then it's a good enough font.
- Userland filesystem access. The logo is a bmp file on the ext2 filesystem.
- Userland GUI access. The stuff inside the colorful border is userland filled, the border itself is kernel-drawn from a theme bmp file. Replacing that with something less ugly is nearly trivial, but a TBD.
Stuff to fix up:
- It asks you to push a button to log in, but there's no communcation from the kernel to userspace yet. You can't receive a keypress.
- The colors are so messed up and look very ugly. The rendering subsystem I'm testing with this is not far from allowing alphablended themes, so I should create a better theme file to show that with.
- I haven't even decided on a background color for windows. I really need to do that
- Add crypto support so login can function securely. I was considering skein-512, but of course I can switch that stuff around later on. At the very least, add a libcrypto.
- Add user support. There are already user contexts for switching users (since each window has a parent context, this runs in the one for user 0). They just need to be used by login (and login needs to have a syscall to do that with).
- Add loadable font support.
And the big items
- Writing to a filesystem
- Creating a terminal emulator to run a shell in (sounds like a very feasible project given what I have now)
- Porting GCC
- Creating processes and threads