Warner's Crazy Ideas for Projects
These are ideas I've had for projects. Help yourself, though it would be nice to contact me if you are working on one of them.
- Rework Loader's md so that it needn't be compiled in. Either through a command line arg, or added elf section or, for compat, compiled in. It would be cool if we could add a MD to a specific loader (like loader.efi, or loader.kboot).
- Reworking config(8) to spit out its data as UCL so we can maybe start config.lua to replace it with better config language.
- generate loader's conf.c from a config file.
Add ability to download a chain of reviews from phabricator with git arc patch -r D1234 (-r is recursive, but I'm easy)
- Add priority boost to a driver. Have a tuneable / sysctl that lets you say "iwl:-3" or "iwl:+5" which will make iwl a little less (or more) likely to attach to a device that another device might have matched. This is used for breaking ties and dynamically selecting driver winners for things like wifi where two or more drivers could drive things
- Teach camcontrol and nvmecontrol libxo
- Create an installboot program that knows how to install all the different boot stuff there is
- Write hints glue for my devmasq code which allows one to say treat a found pnp device id as something else that we already have a driver for.
- Finish camio
- Finish libification of syscall stuff and use it to create a new qemu bsd-user (after maybe augmenting the current syscalls.conf for missing data needed to do all of that).
- Add net support to loader.kboot
- Bring in bits of musl related to socket system calls, defines and structs -- contact me if interested
- Add https support to loader.kboot
- generalize protocol handlers in the boot loader so the above two tasks are easier.
- add FDT lua bindings to boot loader
- add pci lua bindings to boot loader
- export pci complex
- Have ways to look at vendor/product and subvendor/subproduct as well as IF and other config vars
- add ACPI lua bindings to loader
- Add UEFI lua bindings to loader
- Add linker.hints lua bindings to loader?
- Add auto load based on pnp using LUA script maybe?
- hack ofwdump to produce dts output
- or hack our in-tree dtc compiler to grok the ioctl interface of /dev/openfirm
- or hack together a read-only interface that can read the data as a dtb (eg /dev/openfirm.dtb)
- Complete files.x86 to have all the common i386/amd64 stuff that only runs there and nowhere else.
- Add vmm(4) support to QEMU
- nvmecontrol ns needs to be documented in the manual
- nvme kernel interface that's linux compatible
- add new nvme 2.0 logpages to to nvmecontrol
- and nvme-cli compatible command line options to nvmecontrol
- Need an effective 'build on install' method to allow pkg for kernel modules
- Need a way to build for a specific release for things like kernel modules
- ZFS features supported by the boot loader: Integrate that with the zpool upgrade stuff to add a 'sanity check' to make sure we can support the upgrade with the installed boot blocks. This needs a lot of work.
- Need help with a github landing script
- Need help with phabricator landing script
- Need help with src parts of bugzilla landing script
- Rework geli to only allocate 64 or 128k chunks of memory to deal with ZFS choosing 138k as the ideal size to use. This would eliminate issues there.
- Create a framework to have 'allocation free' I/O stack. In this scheme, all the memory for the I/O is allocated at the top of the stack, rather than a little bit at each layer. This will make things more robust against deadlock in low memory situations.
- Enhance the boot loader to allow loading the user to ask for a module unconditionally, but only load it if it isn't in the kernel.
- Enhance the boot loader to use the devinfo/devmatch/linker.hints information with PCI. We already have it for FDT.
- Enhance the boot loader to automatically load the .ko we need for the root filesystem.
- Enhance devinfo to produce libxo output.
Enhance /sys/ emulation for programs witten for Linux that expect this information. This is an infinite project
- gstat with autoscale mode for bandwidth. So rather than in kBps, we have xBps and report 4 sig figs: 1.234M 12.34G 123.4k etc
- Make COMPAT_FREEBSDx loadable (all x != 32, which can't be made loadable)
- Optionally autoload system calls that are in freebsd-compatX.ko. (X != 32)
- libify devmatch and integrate directly into devd.
- Fix bug with usb not reporting enough information for devmatch to work.
- Have a way to print / interpret all the ACPI tables from the boot loader
- Have the boot loader compile in ACPICA and use it for things like serial console.