Things I have worked on. I usually work in C. This list is a bit out of date.
I have contributed to the 9front operating system (home page, google code)
Largely my own work are:
- A medium-to-low quality driver for BCM57xx network cards.
- A new filesystem hjfs
- The shr global mountpoint facility (together with cinap_lenrek)
- Emulators, emulators, emulators: Gameboy, NES, SNES, Gameboy Advance, Sega Megadrive (aka Genesis), C64
- A userspace ARM emulator 5e
- A VGA driver for the AMD Geode
- A lot of toys and small utilities:
bullshit (a program to generate enterprise product names, web interface), geigerstats (a program that makes Geiger counter noises in proportion to system load, Linux version), fplot (a function plotter), scram (APM and ACPI shutdown), elliptic curve cryptography code to libsec, ...
I have written a few emulators of differing quality for 9front (see above)
Software for my electronics projects, including a 9front kernel for the Zynq system-on-chip
A NES emulator for an FPGA, with intended cycle-for-cycle accuracy.
I wrote a C compiler that is quite advanced already but still in an unuseable state (getting rid of SSA is a difficult task).
I have written a few rudimentary kernels. Although none of which provide a usable system, they usually have working multitasking and memory management.
- The most advanced one was written in assembly, runs in real mode and tries to mimick Unix, although it uses FAT12 as a file system. Basic commands like ls or cat work. I gave up on it because of poor consistency and maintainability of the existing code (this is my first and only assembly project of significant size).
- An attempt to write an operating system in Go (called gofy) failed because of the rapid pace of development of the Go language (Before anyone asks: I have no intent to resume this project, even with the release of Go 1).
- An earlier attempt to write an operating system in C had relatively sophisticated process and IPC facilities but failed it didn't have a filesystem.