297 karma · joined October 1, 2016
One (probably the only) nifty thing the branch delay slot allowed was in the user-space threads implementation, you didn't have to burn a register for the jump to another thread, you'd do the branch and then clobber the register with the last bit of the jumped-to thread's context. Kinda fiendishly clever.
And I think that's one of the reasons Kent got the pointy, if maladroit, end of the CoC's attention. Every time he wants to break/rearchitect an internal API, or every time he makes a submission that flagrantly goes against kernel convention, you have to navigate a dozen walls of text where Kent vents and re-re-relitigates every transgression he's endured, every minute detail of his thought process as to why he needs to break the rules because his case is special, his list of ailments and anxieties that all the pushback is causing him, etc, etc, etc. His language is frequently escalatory and he seems unable to contemplate alternatives until at the brink of someone's (frequently Linus') patience and threats of bans or having bcachefs yanked from the kernel. It's brinksmanship and he overstepped.
In short, he is the "that guy" on the list.
For an rs-232 attached classic terminal that can change rows/columns, all you've really got is running eval `resize` and updating the environment variables. Most visual programs will check the environment variables on suspend/resume and maybe (it's been a while) on full-repaint (e.g. ^L on vim).
So we start the interactive age with teletypes, keyboards and paper. Nothing beyond printing the characters, ringing the bell, and the basic ACSII chars for moving right (SPACE, TAB), left (BS, CR), and down (VT, FF, LF). The main editor is a line editor called ed.
Move ahead a few years and you have 'glass' ttys, every one of them different. This is the termcap and curses era. The screen size is baked into the termcap entry. Editors are now interactive 'screen' editors, vi and emacs mostly. Pretty soon, some terminals can support multiple font sizes and the LINES and COLUMNS environment variables can override the termcap entries. Terminals are still separate devices connected via RS-232 and all communication is in-band.
Move ahead a few more years and we're now in the era of workstations with bitmapped graphics (and their Mac and PC equivalents). 'Terminals' are now interactive graphics programs that run under the window system (either X11 or proprietary), so they need to translate kbd and mouse events into the ASCII byte stream onto a pty to emulate the old RS-232 convention to talk to the "line dscipline" part of the kernel's tty driver. But now, changing the size of a window is trivial; people do it all the time. They do it in the middle of vi sessions. They do it when they've ^Z'd out of vi and then expect vi to know the new size when they fg back into it. You can't just blast escape codes onto the line as whatever is reading stdin is likely not equipped to deal with it. At the very least, the in-band exchange has to be initiated by the 'computer' side of the pty. So, they added SIGWINCH and it was an out-of-band signal sent from the terminal emulator program through the pty (which, again, is a software abstraction in the os as opposed to an RS-232 line) to tell the other side of the pty that, when it has a chance, it should re-query the size of the terminal. It took a little while to nail down the semantics of the shell notifying backgrounded processes, but it got the job done. But it likely doesn't make a lick of sense to anyone that doesn't remember the good ol' days.
Everyone in the late-90's recognized that parallel was maxed out and GHz SerDes with embedded clock recovery, adaptive equalization, lane skew compensation, error detection, etc. was the future. Future I/O (IBM, HP, Compaq, 3Com, Cisco, ...) and NGIO (Sun, Dell, Intel, ...) were competing efforts that eventually merged and then rebranded by Intel as InfiniBand. But IB had the usual design-by-committee disease as it tried to shoehorn in networking, io, and system interconnect roles. Intel then bailed from the effort and serialized PCI instead. Intel tried to get back into that game in the 2010's with OmniPath without success.
I was 11 when "Logan's Run" came out. Yes it's kinda loaded with 70's sex tropes for the first act, but it's also equal parts goofy and a really good film.
The original "The Day The Earth Stood Still" holds up.
"A Boy and His Dog" is a bit crude here and there, but might resonate with a 12yo.
"Quatermass and the Pit" (aka "Five Million Years to Earth") is both intense and fairly tame.
A lot of old TV series hold up - Twilight Zone, Outer Limits, UFO, Space 1999, Star Trek TOS, etc all have some excellent episodes.
I absolutely love "Dark City" and "12 Monkeys" but I'm not sure they'd have held my interest at 12.
Doctor Who, both old and new are excellent. Though I'm partial to the Tom Baker era.
The Stargate franchise is pretty good.
"Moon" (2009) is a bit cerebral but a good SF story.
Also, remember, if you got logged out, you've been bumped out of 'latest' mode if you were using it.