bootstrap file/directory population:
mtree
would be ideal for this, and the /etc/mtree/
convention already exists, were it not for the fact that Linux ports of mtree
lack modern BSD features.
FreeBSD/TrueOS rc.d
conversion:
In nosh version 1.9 I announced my on-going effort to provide workalikes or replacements for the 157 things that one can find in /etc/rc.d/
on FreeBSD.
Some TrueOS items from /usr/local/etc/rc.d/
have since been added to that conversion plan.
Enough have already been done that it has been possible for quite some time to run an entirely nosh-managed FreeBSD or TrueOS system, and indeed I have been.
Remaining on the to-do list are:
Doubted FreeBSD items: adjkerntz (adjusts the timezone far too late at startup, long after the system has modified many timestamps), bluetooth (superseded by NetBSD work and possibly redundant with the bluetooth service bundles already made for Debian Linux), growfs (needs a helper script written, but doesn't actually work on root-on-ZFS PC-BSD or FreeBSD anyway), jail (now twice superseded on TrueOS with newer jail configuration subsystems),
Partly addressed FreeBSD items with more work to complete: routing, netif
Partly addressed TrueOS items with more work to complete: hald
Unaddressed FreeBSD items: devfs
more nosh Guide chapters:
We could do with a chapter giving information to packagers, explaining the .p files system; and a chapter giving information to BSD ports maintainers, explaining how to build on top of convert-systemd-units
in a port.
Improve terminal-emulator
speed:
It could be made faster by memory mapping the display buffer file.
Thomas Caravia, of Archnosh fame, is looking at replacing generic daemontools-encore support in Ansible with native nosh service management support in Ansible. Xe is also looking at SaltStack.
Additions to BSD Ports collections:
It would be good for those ports that have systemd service units to have the build process convert them to service bundles using the convert-systemd-units
command.
Better TrueOS GUI login:
As explained on StackExchange using the nosh toolset we can make significant improvements in the TrueOS GUI login subsystem, replacing the pcdm-session
program entirely, for starters.
/usr/lib
to /lib
:
Please get the BSDs to put clang's C++ runtime library, libc++
, in the right place.
Currently it lives in /usr/lib
, which isn't guaranteed available at system initialization time.
To make lives a lot easier, it should live in /lib
, where the C runtime library already does.
Then the binaries that are statically linked no longer have to be.
copy and paste mechanisms in the userspace virtual terminals: Currently, there's no support for such.
Please feel free to write further service bundles. The idea is to have as complete a service bundle set as we can. If you can provide and run a repository for service bundles for the world to use and to add to, I encourage you to do so. If you can persuade software vendors to ship service bundles in their packages, I encourage that too.
Allow both "emergency" and "rescue" mode bootstraps on FreeBSD:
Add kernel support for passing a -b
option to PID 1, and support for a boot_bare
variable in the loader.
Then -s
can revert back to its previous meaning of "rescue" mode.
Progress display for fsck
on FreeBSD:
Add support to FreeBSD's fsck
for outputting machine-readable progress reports to a designated file descriptor, so that nosh can provide progress bars for multiple fscks running in parallel.
nosh already provides this functionality on Linux, where fsck
does provide machine-readable output.
Tie in configuration import triggers: Identify when the configuration import system needs to be triggered, such as when bsdconfig alters configuration files, and create the necessary hooks to import external configuration changes into nosh.
To put the future into perspective, some of the things that are already done that were once in the future:
linux
/wsvt25
terminal emulator
with a whole load of extra DEC VT 52x features
BSD binary packages to feature match the Debian ones: This is now done, as of version 1.16.
Debian binary packages to run the system-manager
as process #1:
One can do this with version 1.18.
FreeBSD/TrueOS binary packages to run the system-manager
as process #1:
One can do this with version 1.20.
finish the rcctl
shim:
This now has, as of version 1.17, full get
and set
subcommands.
more Debian sysinit service bundles: As of version 1.18, one can now bootstrap Debian Linux as a purely nosh-managed system.
better rc.conf
/fstab
/ttys
conversion:
As of version 1.17, there is now a /etc/system-control/convert/
directory that contains a bunch of redo
scripts that will import settings from external configuration files into service bundles.
It will re-import settings if the files change.
mouse events in Linux userspace virtual terminals: This is now done, as of version 1.21.
mouse events in FreeBSD/TrueOS userspace virtual terminals: As of version 1.23, the fb realizer can handle HID events from USB HID devices.
Warden integration: As of version 1.21, PC-BSD Warden jails and FreeBSD 9 jails are foreign configuration formats that are converted into service bundles.
FreeBSD/TrueOS rc.d
conversion:
console-fb-realizer divided up: As of version 1.41, the monolithic console-fb-realizer has been split up into multiple services for input and output devicees, with a mechanism for auto-starting device "realizer" services that integrates with the system's Plug-and-Play manager, and a mechanism for fine-grained control of what devices are attached to what virtual terminals.
input methods in the userspace virtual terminals: As of version 1.41, there is an input method layer that can be interposed in any virtual terminal stack; which shares its data files with OpenVanilla.
FreeBSD items with workalikes or replacements:
accounting, amd, apm, apmd, archdep, auditd, auditdistd, automount, automountd, autounmountd, bgfsck, blacklistd, bootparams, bridge, bsnmpd, bthidd, ccd, chkprintcap, cleanvar, cleartmp, cron, ctld, ddb, defaultroute, devd, dhclient, dmesg, dumpon, ftp-proxy, ftpd, gbde, geli2, geli, gptboot, gssd, hastd, hcsecd, hostapd, hostid, hostid_save, initrandom, ip6addrctl, ipfilter, ipfs, ipfw, ipmon, ipnat, ipsec, ipxrouted, iscsictl, iscsid, kadmind, kdc, keyserv, kfd, kpasswdd, ldconfig, local, local_unbound, lockd, lpd, mdconfig2, mdconfig, mixer, motd, mountd, moused, mroute6d, mrouted, msgs, named, natd, netoptions, netwait, newsyslog, nfscbd, nfsclient, nfsuserd, nisdomain, nscd, nsswitch ntpd, ntpdate, othermta, pf, pflog, pfsync, postrandom, powerd, ppp, pppoed, pwcheck, quota, random, rarpd, rctl, resolv, rfcomm_pppd_server, root, route6d, routed, rpcbind, rpclockd, rpcstatd, rtadvd, rtsold, rwho, savecore, sdpd, securelevel, serial, sppp, sshd, statd, static_arp, static_ndp, stf, sysctl, syslogd, timed, tmp, ubthidhci, ugidfw, utx, var, virecover, watchdogd, wpa_supplicant, ypbind, ypldap, yppasswdd, ypserv, ypset, ypupdated, ypxfrd, zfs, zvol,
TrueOS items with workalikes or replacements:
anacron, appcafe, ataidle, avahi-daemon, avahi-dnsconfd, bsdstats, cupsd, cups-browsed, dbus, fail2ban, ffserver, fusefs, gdm, git_daemon, hostname, iocage, ipropd_master, ipropd_slave, kdc, kdm4, netatalk, nfsd, mdnsd, mdnsresponderposix, mysql-server, ossec-hids, pbid, pc-nsswitch, pc-sounddetect, pc-sysconfig, pcdm, pefs, php-fpm, rsyncd, samba a.k.a. samba_server, saned, slpd, smartd, stunnel, svnserve, syscache, tcsd, tor, uhidd, vboxguest, vboxservice, wardenrc, webcamd
The following FreeBSD items have been superseded with different mechanisms that use a service management paradigm, or are things which even the BSD world is saying goodbye to, or are not really rc
scripts that start services at all and don't belong in /etc/rc.d/
as part of its start/stop model in the first place:
abi, addswap, atm1, atm2, atm3 (eliminated in 2008 and its successor system then eliminated in 2011), dmidecode (a misplaced daily cron job), encswap, faith, fsck, inetd, kerberos, kld, kldxref (a misplaced post-reconfiguration update tool), local, localpkg, mountcritlocal, mountcritremote, mountlate, power_profile (a misplaced profile switching tool), sendmail (now gone entirely from OpenBSD and from DragonFly BSD), socat, swaplate, swap, syscons
The following TrueOS items have been superseded, eliminated from TrueOS, or don't belong in the first place:
pc-hwdetect (removed completely from TrueOS in response to my raising TrueOS bug #13563 asking for some doco)