News: 1644404590

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Why you should read Section 8 of the Unix User's Manual

(2022/02/09)


Systems Approach If, like me, you were a computer-science graduate student who cut your teeth on Berkeley Unix – complete with the first open-source implementation of TCP/IP – you know Section 8 as the cryptic System Maintenance Commands section of the Unix User's Manual.

It was obvious, to me, that this concluding section warranted a closer look because the introduction warned: "Information in this section is not of great interest to most users." Judging by my taste in research problems over the years, reading Section 8 turned out to be a pretty good investment.

But before getting to [1]Section 8 , you first learned about [2]the rest of Unix , where you discovered how empowering it is to be able to build new internet applications. Anyone interested in how targeted investments in open-source software, coupled with affordable hardware, can spur innovation should study the role of the Berkeley Software Distribution (BSD) in the success of the internet.

[3]

It's easy to assume the internet as we know it today was inevitable, but at the time BSD Unix happened it was not at all clear that the incumbent telcos could be disrupted. We've commented on the power of APIs many times, but the impact of the Socket API (Section 2) on enabling innovation on top of the internet cannot be overstated. With that stable fixed point in the architecture, a thousand flowers bloomed… and we have, thankfully, moved well beyond the telco vision of B-ISDN.

[4]

[5]

Section 8 was the second half of the story. In addition to describing how to shutdown and boot a system, it defined the process for managing long-running daemon processes, the Unix equivalent of today's microservices. If you had responsibility for configuring and managing system services on your department's server, which came with superuser privilege, you needed not only to know how to program Unix, you also needed to understand the ins and outs of operating Unix.

As a grad student, the lessons I learned while being responsible for [6]sendmail(8) on a live multi-user system were immeasurable. Every mistake instantly sent the faculty into the hallway looking for the responsible idiot. (In my defense, this was at a time when email addresses contained % and ! operators in addition to @, and their precedence was not well-defined.)

The lessons I learned while being responsible for sendmail on a live multi-user system were immeasurable. Every mistake instantly sent the faculty into the hallway looking for the responsible idiot

BSD also provided me with an early lesson in the power of having many eyeballs on the lookout for security vulnerabilities. Looking at the source code for sendmail, for example, revealed a backdoor, whereby one could Telnet to port 25, type the magic "wizard" command, and fork a root shell. So I made my counterparts at Berkeley and other universities aware of that vulnerability by doing exactly that.

Others probably did too, but it was a different time, and the lesson didn't initially take hold. With debugging convenience and a naive sense of community trumping security, the backdoor remained open by default in sendmail until the [7]Morris Worm used it as one of its attack vectors a couple years later.

[8]

Gaining this sort of practical experience is obviously valuable if your plan is to become a system administrator, but it has long been my experience that an opportunity to manage systems that deliver services to actual users is a great source of systems research problems, as well as fertile ground for platform innovations.

My PhD dissertation, born out of frustration with sendmail, turned out to be on naming and addressing; later, real-world experience running a CDN on [9]PlanetLab generated a sequence of systems papers (as Vivek Pai and I reported in a [10]2007 CACM article ); and most recently, our experience operating an edge cloud has led to an appreciation for the [11]state management problem inherent in DevOps. And my experience is far from unique: many of the cloud tools we take for granted today – Kubernetes is a great example – started as someone's response to an operational point of pain.

This all leads me to believe that an open operations platform (as documented in Section 8) is just as important as an open programming platform (as documented in Section 2) for democratizing innovation.

[12]What is this hot, hot thing Magma? An open-source project for building mobile networks, you say

[13]SmartNICs, IPUs, DPUs de-hyped: Why and how cloud giants are offloading work from server CPUs

[14]Everything you wanted to know about modern network congestion control but were perhaps too afraid to ask

[15]Here's an idea: Verification for computer networks as well as chips and code

Would BSD Unix have had the same impact in the 1980s and 1990s if the university computer center had supported it rather than the computer-science department letting its grad students take ownership of the operations problem? We can ask a similar question today. The value of being able to create new cloud applications is abundantly clear, but is there also value in having open access to the tools used to manage and operate the cloud (rather than delegating the latter to the cloud providers)?

To me, the answer is clearly yes. It comes down to the virtuous cycle of solutions being enabled by platforms on the one hand, and platforms being reshaped with the experience of usage on the other. Stable platforms with well-defined APIs surely allow a thousand flowers to bloom, but eventually disruptive refactoring of those platforms is what leads to the next round of innovation.

Stable platforms with well-defined APIs allow a thousand flowers to bloom, but eventually, disruptive refactoring of those platforms is what leads to the next round of innovation

Software-defined networking is a famous example of disruptive refactoring, but it only works if we have sufficiently sophisticated tooling to assemble all the components into a coherent – and manageable – system. Orchestration and lifecycle management have become the dominant operational issues because (a) many smaller parts have to be assembled, and (b) these individual parts are expected to change more frequently. They are essential parts of what we might call the Cloud OS.

Certainly not everyone who writes programs – whether it's running on a personal server or in the cloud – also needs to know how to keep that program running 24/7, but from the perspective of empowering more people to participate in the creation of new systems, the operations platform needs to be kept open and accessible to anyone who wants to invest the time in it.

[16]

Fortunately, there are a plethora of open-source components available today that can be used to operate and lifecycle-manage a cloud. We've documented a roadmap for using them in [17]Edge Cloud Operations: A Systems Approach (a sort of "Section 8" for the Cloud). We're hoping there are still a few people who are just crazy enough to give it a try. ®

Larry Peterson and Bruce Davie are the authors of [18]Computer Networks: A Systems Approach and the related [19]Systems Approach series of books. All their content is open source and available on [20]GitHub . You can find them on [21]Twitter , their writings on [22]Substack , and past The Register columns [23]here .

Get our [24]Tech Resources



[1] https://archive.org/details/smm-4.2bsd/page/n7/mode/2up

[2] http://bitsavers.informatik.uni-stuttgart.de/pdf/att/unix/System_III/

[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2YgPzPMfN7K@rZ@zTgDOJMgAAAII&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YgPzPMfN7K@rZ@zTgDOJMgAAAII&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YgPzPMfN7K@rZ@zTgDOJMgAAAII&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[6] https://www.freebsd.org/cgi/man.cgi?query=sendmail&apropos=0&sektion=8&manpath=FreeBSD+14.0-current&arch=default&format=html

[7] https://www.theregister.com/2013/11/04/morris_worm_anniversary/

[8] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YgPzPMfN7K@rZ@zTgDOJMgAAAII&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[9] https://planetlab.cs.princeton.edu/

[10] https://cacm.acm.org/magazines/2007/11/5536-experience-driven-experimental-systems-research/fulltext?mobile=false

[11] https://systemsapproach.substack.com/p/the-source-of-truth-moves-to-the

[12] https://www.theregister.com/2021/12/28/cloud_native_principles_wireless_networks/

[13] https://www.theregister.com/2021/11/24/infrastructure_processing_units/

[14] https://www.theregister.com/2021/10/27/systems_approach_tcp_control/

[15] https://www.theregister.com/2021/09/23/verified_networks/

[16] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/devops&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YgPzPMfN7K@rZ@zTgDOJMgAAAII&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[17] https://ops.systemsapproach.org/

[18] https://book.systemsapproach.org/

[19] https://www.systemsapproach.org/

[20] https://github.com/SystemsApproach

[21] https://twitter.com/SystemsAppr

[22] https://systemsapproach.substack.com/

[23] https://www.theregister.com/Tag/Systems%20Approach

[24] https://whitepapers.theregister.com/



Some people find themselves in hell... and build ladders

Anonymous Coward

"Would BSD Unix have had the same impact in the 1980s and 1990s if the university computer center had supported it rather than the computer-science department letting its grad students take ownership of the operations problem?"

There are users and then there are those others, well, "... all progress depends on the unreasonable man."

If the students had been forced to be 'users', then much less would have been accomplished, invented. Here's a fishhook and some string, figure out what you can do with them.

"... an opportunity to manage systems that deliver services to actual users is a great source of systems research problems, as well as fertile ground for platform innovations."

And maturity, and responsibility, and insights into what a product must be to be useful.

Unfortunately, too many developers are really just users. For many of the rest of us, fulfilling a need of others fulfils a need of our own. (sic itur ad astra ?)

Re: Some people find themselves in hell... and build ladders

karlkarl

"Unfortunately, too many developers are really just users."

This one kind of resonates with me; especially in the 3D graphics area. So many talented young guys are effectively stagnating by just consuming products like Unity3D rather than exploring new ideas, creating new technologies and learning!

(even worse with Unity's strict DRM meaning that all their hard work is guaranteed to be worthless once the company ceases to trade!)

Re: Some people find themselves in hell... and build ladders

Anonymous Coward

Blender has entered the chat...

% in email addresses?

Hero Protagonist

I recall well the use of ! in uucp-style email addresses, but never encountered a %.

Re: % in email addresses?

Arthur the cat

but never encountered a %.

It was a sort of kludge-your-own-routing. foo%bar@baz would get sent to baz which would then rewrite it to foo@bar and try to send that.

[Warning: Memories from 40 years ago, may be rusty.]

Re: % in email addresses?

Dan 55

You could get it to go through different e-mail relays by doing:

receiver's.user%receiver's.domain%3rd.relay.domain%2nd.relay.domain@1st.relay.domain

So looking forward to the Balkanisation of the Internet to be able to try it out again!

Re: % in email addresses?

Keith Oborn

Even worse was the JANET to Internet mail translation: JANET domain names were the other way round.

An old friend and colleague wrote the definitive Sendmail config so that (in SMTP terms) usr@dept.university.ac.uk could be munged into usr@uk.ac.university.dept. And then added in rules to correctly handle UUCP delivery (which was where the !-path and % came in)

One problem arose with Computer Science depts. Before the iron curtain came down, the country code for Czechoslovakia was CS. So (for instance) cs.bath.ac.uk got swapped to uk.ac.bath.cs. It turned out that the Sendmail rules struggled with this. Stuff got sent to Prague. The solution was a filter/reflector over there that sent if back again.

And of course, the most famous UUCP !-path hostnames: Kremvax and Kgbvax.

https://en.wikipedia.org/wiki/Kremvax

I'm always pleased when BSD get a mention

VoiceOfTruth

BSD UNIX was a real mover and shaker in its time. Many things we take for granted today have their roots firmly in BSD.

Best manual

Phones Sheridan

The best manual I have ever seems was for the Coherent 3 unix clone operating system I used during my time at Uni. The university had Solaris machines, all I could afford was a 486 SX 25 and the $99 OS to go with it. The manual got me through Uni, it covered everything Unix right down to C programming. It was about a thousand pages thick. I’ve never seen anything like it since.

After I left Uni they did release a Coherent 4 which had X11 Windows support in 1992 which I did purchase, but having left Uni I never found a use for it. Windows for Workgroups was taking over the world, and it was another decade before I even came across another Unix implementation of any kind, and that was A Red Hat Linux web server circa 2005ish.

Nowadays any manuals don’t match the product I have in front of me. They don’t seem to keep up. Screen shots and instructions are just plain wrong and you’re pretty much left to fend for yourself.

Re: Best manual

Phones Sheridan

*Seen not seems

Re: Best manual

TimMaher

“This page intentionally left blank.”

I’ve always liked that.

Totally right about modern manuals though.

badflorist

"Orchestration and lifecycle management have become the dominant operational issues because... Certainly not everyone who writes programs... needs to know how to keep that program running 24/7"

Mmmmm sorry, everyone who writes a program, especially server bound, will undoubtedly know how to keep the program running as a daemon or whatever, at least as far as RTFM'n to understand the runtime (X.500 was a shiny, painful examplel). Otherwise you're point of view is pretty spot on because If you're fond of 8, then you're probably a scripter, so yes it's very important for you. Then again, you're probably not the typical "user" nor a "programmer", thus an "admin" (which validates you're point of view).

Where the article's general point of view falls down is when things are broken... what do you do? Are you REALLY still an administrator or do you fallback to becoming a "user"? Or worse, a victim? (8) won't help you here the same way it can in a non-cloud environment, or course neither will 1,2,3,4...n.

Being a "cloud administrator" is the equivalent of being someone who excelled at MS FrontPage in 1999. It's handy and you can make money, but the manpages for what you're doing might not be aligned to where the end product runs. Stating 8 is very useful is a fact, so is mentioning that extra layer of abstraction that might make 8 not so useful.

New Trojan Emperors ..... Latter Day 0Day Saints and Sinners.

amanfromMars 1

Certainly clouds can be managed/micromanaged to an inordinately convenient degree, but to contend that can be a perfectly secure and exclusive gig provided by one favoured party, to the exclusion and detriment of all others, is not anything that real experience can endorse and support, because of what one then discovers is on offer just for the free taking.

The advantages and benefits which are delivered with such are/can be just too great a temptation with unparalleled reward to expect mere mortals and pirates and daemons to resist without sugaring that bitter pill.

The best that one can surely only hope to do is to make it very attractive, as in lucrative and extremely rewarding, for competent cloud managers/micromanagers to play nice and not misuse or abuse their intimate knowledge of systems processes/performance triggers/crash levers.

I once witnessed a long-winded, month-long flamewar over the use of
mice vs. trackballs... It was very silly.
-- Matt Welsh