#
Small FreeBSD ToDo List.

This list represents various tasks which are being collected from discussions on freebsd-small, and which represent the general direction and needs of using FreeBSD for small installations.

The tasks are arranged by how important they are to the overall idea and goals of the project. If you are interested in doing some part of the work, please contact the coordinator of PicoBSD project (Andrzej Bialecki).

## Short term tasks:

- Eliminate need for patching FreeBSD source tree - either by keeping our own version of Makefiles, or by adding (many) knobs to the standard ones. (NOTE: this will be resolved in v. 0.45).
- Provide options for building separate kernel and FS images of various sizes.
- Add some "wizards" to help people new to Unix configure "dialup" and "net" for most common tasks.
- Replace most of currently used scripts with Makefiles. (NOTE: this will be resolved in v. 0.45).
- Add simple authentication module to oinit.
- Fix kzip to be able to produce kzip'ped ELF kernels. (NOTE: currently we work around it by using kzipped /boot/loader).
- Write better documentation. This is very important - the most common configurations should be described in detail, step by step.
- Collect our experiences with using FreeBSD with SBCs, flash disks etc, and write a short practical guide to embedding FreeBSD.

## Medium term tasks:

- Change currently used crunched binaries to something more flexible - as it is now, even small change in set of programs requires rebuilding of the whole image.
- Change the building process so that it allows to easily choose (with finer granularity) needed components of the target system.
- Make use of recently added KLD to allow for easy adding and removing drivers when running stripped kernels.
- Investigate pros and cons of using the new boot/loader together with ELF kernels. (NOTE for v.0.43: it was simply mandatory to start to use it :-)
- Provide options for building systems which operate from (basically) read-only media, such as CD-ROM or flash disk. Such system doesn't need to keep all root FS in memory, but only small fraction of it for /tmp and /var.
- Integrate DHCP into "dialup" version.
- Rework oinit to be more modular, and write additional modules (remote access, SNMP (?), authentication, shell(), configuration editor).
- Provide a remote access (telnetd/login/shell) module for the "router" version. Make the shell() module more predictable and compatible with common sense :-)
- At last prepare usable version of ISP floppy, and test it (some basic tests with server PPP). This involves among others a version of PPP which supports Radius.

## Long term tasks:

- Either port ROMfs from Linux, or write our own replacement for it.
- Describe the configuration tasks and parameters of PicoBSD systems in terms of hierarchy of categories - this is needed to start working on the next two points.
- Design a flexible and efficient scheme (not necessarily compatible with currently used set of shell scripts) for storing and editing system configuration in some form of hierarchical DB.
- Design a user interface for configuration of system parameters and services, meeting the following requirements: hierachical, logical, helpful (hinting), providing ability to automate certain tasks.
- Reduce memory footprint.
- Add other language versions.
- Throw some more effort in porting the newer version of W (graphical UI), so that it uses VESA color modes. IMHO it's worth it.

## Other half-baked ideas...

(fill this in :-)

Last modified: @DATE@

Send your comments, ideas, and most importantly the code itself, to abial@freebsd.org.