As a way to air my frustrations at inconsistencies and bad design decisions in the Linux OS, specifically server distributions, I put together a list of ways I thought that the OS and its many daemons could be standardised and simplified. Here are my thoughts:
Config files as XML
- DTDs allow proper sanity checks
- DTD and XSL allow easy editing through text and graphical interfaces - config programs are updated dynamically!
Offenders: Sendmail, Procmail
Sensible command line defaults
e.g. For tar, default should be file as an input, so tar -f should be redundant.
Standardised command-line options
- --help for help
- -i for input file
- -o for output file
- -v for verbose (with -vv, -vvv)
Currently, verbose and very verbose can be:
- -v, -vv, -vvv (tcpdump)
- -v, -v -v, -v -v -v (lilo)
- -e, -e -e || -ee (netstat)
Offenders: lilo, netstat
Consistent file locations
Program config files in /etc/program/xxx.conf.
Consistent file names
program.conf, programd.conf, program-function.conf, etc
Sensible filesystem layout
Easy deploy packages
Packages as a single file (zip or similar), can be dragged and dropped to a folder and run from there.
Log files follow a consistent XML DTD, with fields for date, time, event code, description, etc.