Geo Carncross: How to program computers (kos)
Justin CormackRecommended by 2 HN commenters across 2 months, 2015–2020
talk · advanced · evergreen · 2015–2020 on HN
A 2014 talk by Geo Carncross (geocar) demonstrating kOS, a minimalist operating system and programming environment built around the k language, with early screenshots.
HN commenters recommend it as a rare live look at kOS in action, and one that is fascinating and mind-bending.
Up next
3 mo on HNPachelbel Rant from 2006 [Official High Quality Re-Post]
RobPRocks
Recommended 3× on HN · 2022–2024
1 mo on HNMcGurk effect - Auditory Illusion - BBC Horizon Clip
sixesfullofnines
Recommended 1× on HN · 2021–2025
1 mo on HNAndy Keep - Writing a Nanopass Compiler
ClojureTV
Recommended 1× on HN · 2016–2026
14 mo on HNThe Tragedy of systemd
linux.conf.au
Recommended 16× on HN · 2019–2025
11 mo on HNThe Thirty Million Line Problem
Molly Rocket
Recommended 11× on HN · 2018–2024
10 mo on HNVCF East: Ken Thompson interviewed by Brian Kernighan
Vintage Computer Federation
Recommended 11× on HN · 2019–2025
9 mo on HNLISA11 - Fork Yeah! The Rise and Development of illumos
USENIX
Recommended 9× on HN · 2012–2026
9 mo on HNUSENIX ATC '21/OSDI '21 Joint Keynote Address-It's Time for Operating Systems to Rediscover Hardware
USENIX
Recommended 12× on HN · 2021–2026
8 mo on HNAT&T Archives: The UNIX Operating System
AT&T Tech Channel
Recommended 10× on HN · 2013–2026
8 mo on HNTempleOS | Down the Rabbit Hole
Fredrik Knudsen
Recommended 7× on HN · 2019–2022
7 mo on HNUnix and Google
FOAM
Recommended 4× on HN · 2016–2023
6 mo on HNBryan Cantrill on Jails and Solaris Zones
PapersWeLove
Recommended 6× on HN · 2016–2025
7 comments from Hacker News
For those who want to see it in action, there's actually a talk about kOS on YouTube: ▶ this video . The talk is by the fourth member, Geo, who also frequents HN (geocar).
Not very easy to come by, but if you haven't seen it yet, here's a presentation by geocar from 2014: ▶ this video
I'm very much a believer in concise notation (more than most people I've worked with), but the advantages of having a name that can be unambiguously spoken are large enough to outweigh a small constant factor. I don't believe this holds up to scrutiny. APL as a language was made to be spoken, and it seems to have succeeded in that. Alan Perlis briefly touched on that in a great paper,[1] and just about everyone who's worked with the language and its derivatives agrees that your statement isn't true. The idea that APL and its derivatives can't be "read and talked about" is frankly ignoring reality by any stretch of the imagination. For example, here's [2] [3] [4] some videos disproving your statement, the first two being APL, the last being k itself. For extra bonus points, see Aaron Hsu's talks [5]; pick any of them, they're all pretty good, and most have a segment in them explaining how that viewpoint is wrong. [1] link [2] link [3] link [4] ▶ this video [5] link
And specifically in that example, using an external database when defending the speed of the language kdb isn't written in an external language. Has he? Couldn't find anything (I'd like to see it, honestly, seems a fun experiment). Not entirely him, of course. There are a few remaining files on kparc.com: kparc.com/z/ kparc.com/$/ so on. Not free software, and they seem reluctant to show it off. 'geocar has done a live demo of a primitive version, though: ▶ this video (2014) The archive is more interesting: link
Lots and lots of transition animations, and potentially very poor UI/UX model. Demos are not (largely) interactive, so the demoscene is not known for collective skill designing GUIs. The most similar/related type of things I can think of that are interactive are crack/keygen programs that include chiptunes and maybe a cute graphic effect somewhere. For some time I've actually wanted to go track down such programs to analyze/compare/study the progression of design. Kind of difficult to do so though, for obvious reasons (unfortunately). But my impression from the one or two programs I do very vaguely remember using, half for entertainment purposes was that the UI design was sort of at the "48%-50%" mark - good enough, but flitting just below the halfway mark instead of just above it. Not remarkable; maybe a few rough edges. Thanks for your comment. It prompted some mental gears to spin and for me to realize the above. -- I do think I understand the spirit of what you're getting at, though, and there are a few things that my brain has decided is relevant, although I can't describe the working-out process that led me to list these. ¯\_(ツ)_/¯ - SymbOS ( link ): preemptive multitasking, windowed GUI, storage on devices up to 128GB, runs on home computers using the Z80 (starting at 4MHz) with up to (_ up to _) 1MB of RAM. (I found this rambling but very interesting demo of what it can do with one of the more capable machines it supports: link ) - kOS ( ▶ this video ): limited-access
What counts as contribution? ▶ this video seriously, seriously did my head in. I was certainly fascinated by this, but I fear that I'd contribute one character, accidentally put it in the wrong place, break the build for two days because nobody can figure out what broke, and then feel really bad for weeks afterwards. (Okay, okay, diffing... but still. I'd break my own build, at least.) I _am_ genuinely interested, and I'd LOVE to play with this, but I'm really, really conservative, and would far prefer to be a fly on the wall for a bit for a while first.
Same on kOS. In case you had not seen them, early kOS screenshots: link Featured live in geocar's presentation: ▶ this video Also: - "Arthur wrote an SQL in 20 lines of K, and a dynamic window manager in around 60 of C...kOS's kernel is under 60 lines of C as well (including annotations; paging, filesystem, syscalls, etc)." ( link ) - "k includes language, files, procs, ipc, webserver, dbms, ..z includes graphics...edit.k is 1KB code + k/ztk(9KB)." ( link ) - "kOS doesn't use the Linux kernel code. It supports a few of the same syscalls: clone, execve(!), epoll_create, epoll_ctl, epoll_wait, dup2, stat, rename, unlink, getcwd, chdir, fstat, getdents, open, close, read, write, ftruncate, mmap2, munmap, ioctl, gettimeofday, socket, bind, connect, listen, acccept, socketpair, setsockopt...execve just runs another k interpreter (regardless of what you tell it to do) though, so it can just be used to run more k programs." ( link )