12 karma · joined January 17, 2016
| soelim | tbl | eqn | nroff -man - | $PAGER
| soelim | tbl | eqn | nroff -man -Tpost - | /usr/lib/postscript/bin/dpost | ps2pdf - > ~/Desktop/blog.PDF
| soelim | tbl | eqn | groff -Tps -man - | ps2pdf - > ~/Desktop/blog.PDFAnd any time 0xide Computer ships a cloud in a rack with the Helios operating system powering it, Sun Microsystems shines bright as a beacon of indestructibility due to quality.
- package everything, *especially configuration*;
- executables in /opt/someprefix/bin, no extensions;
- daemons (services), executables with elevated privileges go into /opt/someprefix/sbin/;
- read only data which the application needs to run goes int /opt/someprefix/share/application/;
- logs should be streamed to syslogd, for example via the logger utility, so that centrally configured OS logging is honored and the application doesn't vomit out log files arbitrarily or at arbitrary, private locations;
- application data should go to /var/opt/someprefix/application/;
- configuration in /etc/opt/someprefix[/application] (if more than one configration file, otherwise /etc/opt/someprefix/);
- configuration files should have a .conf or .cf postfix, and should be plain ASCII text files, but not YAML, JSON, or XML.
These are industry norms, formally written as specifications:https://illumos.org/man/7/intro
https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html#et...
https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html#op...
https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html#va...
...and most important of all: deliver quality manual pages in /opt/someprefix/share/man for your tools, with lots of examples! No wikis, markups, HTML web pages, none of that junk: straight, honest to goodness manual pages available at one's fingertips on the command line.
Did you generate an executable machine code image with it?
How are you drawing graphics with Lisp (SDL, DirectX, OpenGL, something else)?
Sun kicked butt
had fun
didn't cheat
loved their customers
changed computing forever.- TCP / IP; - NFS; - POSIX; - XPG4; - XPG6; - SVR4.
The same way it has worked for the past 30+ years: the firmware boots from first designated boot device; if that device isn't bootable, it moves on to the next one. The next one boots since it's part of a mirror and has all the necessary data to do so, and in the rare case where the device is "half bootable" one would simply intervene and select the next good bootable device manually.
1. When a system comes in, it is scanned and entered into the asset management database, which then triggers a process to enter the scanned MAC address into the DHCP, by generating a new DHCP configuration package.
2. the previous version of the DHCP configuration package is upgraded with the new DHCP configuration package.
3. the system is hooked up to the network and powered on.
4. the firmware is permanently reconfigured to boot in this order: 1. HD0 2. HD1 3. network.
5. since HD0 and HD1 are not bootable, the system boots from the network, whereby the infrastructure automatically provisions it with the standard runtime platform, which consists solely of packages in OS-native format, including configuration packages which configure things which all servers have in common.
6. as part of the automatic installation, the server is automatically installed with additional configuration packages based on which profile it is in, turning it into a specific application server.
7. the server comes up after automatic installation, and reports back to the infrastructure that it is ready to serve.
NEVER by hand!
a day to three days for an experienced system engineer to package the components,
and a week to three weeks to test and package the configuration (by automating in %pre and %post of the RPM's).
That's far less than one year, and far less than it takes to set up Kubernetes, Terraform, Docker and a complete CI / CD pipeline.
Attempting to manually manage files in this way defeats the purpose of the OS abstracting it away for the user; and the users of your executable should not have to care what your executable is written in because you grew up on a PC-bucket whose operating system stems from CP/M -> MS-DOS!
How the hell are you going to properly teach others, if you have such knowledge gaps yourselves?
It's blind leading the blind again; boy does this make me mad.
This was at a time when 3.5" floppy disks were expensive (and hard to come by), and hard drives were between 40 - 60 MB, so 130 MB was quite practical. The floppy drive in the Amiga read and wrote at 11 KB / s.
And yes, this was a DAC and an ADC in software, with added Reed-Solomon error correction encoding and CRC32. The goal was to be economical. The end price was everything; it had to be as cheap as possible.