To put the future into perspective, some of the things that are already done in nosh that were once in the future:
wsvt25terminal 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
One can do this with version 1.18.
system-manager as process #1:
FreeBSD/TrueOS binary packages to run the
One can do this with version 1.20.
system-manager as process #1:
This now has, as of version 1.17, full
more Debian sysinit service bundles:
As of version 1.18, one can now bootstrap Debian Linux as a purely nosh-managed system.
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.
As of version 1.21, PC-BSD Warden jails and FreeBSD 9 jails are foreign configuration formats that are converted into service bundles.
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.
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.
The status as of nosh version 1.33 is as follows:
The following FreeBSD items have 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,
The following TrueOS items have 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, sambaa.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)
These FreeBSD items are doubted:
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 all-ZFS PC-BSD 10 anyway), jail (now twice superseded on TrueOS with newer jail configuration subsystems),
These FreeBSD items are partly addressed but with more work to complete them:
These TrueOS items are partly addressed but with more work to complete them:
These FreeBSD items remain unaddressed:
These TrueOS items remain unaddressed:
(These are possibly redundant with already provided service bundles for such services done for Debian Linux:) pc-activedirectory, pc-directory, pc-kerberos, pc-kinit, pc-ldap, pc-nssldap, pc-pam, pc-samba
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.
Please join me in asking 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.
These are some of the various items that it would be good to do:
Iron out more
OpenBSD uses a different setting naming scheme to that used by FreeBSD and TrueOS,
which is different yet again to that used by NetBSD.
It could be made faster by memory mapping the display buffer file.
copy and paste mechanisms in the userspace virtual terminals: Currently, there's no support for such.
input methods in the userspace virtual terminals: I don't want to have to roll my own input method protocol; I would rather implement an existing protocol for existing input method tools. But I don't want to require X11 libraries and toolsets, and direct device drawing access, for user-space virtual terminals, either; and the protocols that I have found all do.