Things were pretty much on a downward spiral after 4chan funded his drum set: Terry got kicked out, and then Terry's van got impounded along with $1000 of a lot of electronics. Once he was homeless living in CA, people thought (and rightfully so) that he would die on the streets. It's such a shame what happened, honestly. 15+ years of social isolation and events in his past ultimately led to his downfall. His death made me very distraught, especially after meeting him in person months prior. Meeting him left a profound effect on me because he was so appreciative and seemed mentally sharp when he engaged with me.
I read and watched a lot about the story since this post.
It's a very sad story on many aspects and likely controversial (giving him publicity, contacting authorities, ignoring him, banning him, etc); all these actions had consequences and forged his mind this way.
I wish more people would support him and his family instead of encouraging him in his dementia.
This software is certainly good food for thoughts, not just about computers, but life in general, so it could be worth including it in some sort of museum.
I really miss reading Terry's comments here. He was the single reason I turned on showdead - they weren't always insightful and were often offensive, but they were always an interesting view into his mind.
He commented on my website once that my complaints about binary sizes were alleviated in TempleOS with Holy C. One of the highlights of my life. The world has lost a real gem.
I think there's a real lesson to learn from Terry which was perhaps magnified by both his personality and this community. The truth is that there are people all around us that suffer from various degrees (and types) of mental illness. Some are undiagnosed while others feel they need to hide their diagnosis due to shame and/or public stigma. I appreciated that Terry didn't hide who he was, nor did he shy away from saying what he thought. As pointed out elsewhere on this thread, some of his comments could be offensive while others could be brilliant. What we can learn from Terry's contribution here is that, we don't know what demons others here are fighting and sometimes tolerance can be a very charitable gift - not tolerance of abhorrent comments but rather tolerance of the individual.
IMO your comment (and others) show to me why privacy is such an important thing.
Shame is one thing, and IMO already reason enough to want privacy but one could argue that it's debatable.
Being bullied, however, (as stated in another comment) really shows why privacy is needed. Even if you get all the praise in the world, if you get too much negativity, one can die from it (most likely indirectly). I find it very harsh and unfortunate to say, but this seems to be the case. While everything is debatable, I could imagine that not everyone thought about this particular reason (I haven't nor have I ever read this from privacy advocates) and find it a more compelling reason to uphold privacy.
I can totally understand why this is a constant source of fascination for programmers. It's a one possible answer to the question "What would I do if I was stranded on a deserted island with a working computer but no OS?". We use all this software developed by other people, and many of us wonder how much of that we could make ourselves, given enough time.
Doc comment notation is not a language concern. You could simply start writing Markdown with image references and if your documentation generator supports it and can resolve these refs, they'll be included. A different approach is to use a literate programming tool like NoWEB in which case the code is included as part of the documentation, and extracted separately.
You could probably embed images in language comments as base64 and then have a plugin for your favorite text editor that renders those (which would probably be easily achievable with Electron-based editors, not so much in others). Even then, that would be a bit of a pain in the ass since other people would just see long strings. I don't think I can name a single language/technology that does it out of the box though.
This actually exists in Racket and the DrRacket IDE for it. You could actually even use images as variable names, so back in school there was a funny lesson where the professor used the image of a sailboat as a variable name everywhere and joked "why wouldn't you be able to?"
I think this is an extension of the idea behind "literate programming," whereby the program code is just a part of a larger text designed for reading by humans in the first place. (This is opposite to embedding comments in code.)
The most sad part of Terry's death is that he became the object of fascination and obsession of a forum of internet trolls who actively worked to make his life worse. I think he was off his medication and homeless at the end of his life, due in part to the goading of the trolls.
I was interested reading Terry's posts and thoughts, and spent some time playing with TempleOS. Unfortunately some people couldn't leave him alone.
Was that sarcasm? A person without schizophrenia usually does not walk on train tracks and in case they do, they usually are aware that trains can pass by. So now while also other people sometimes get hit by trains, in his case his mental condition might be related.
It was indirect cause though, if it wasn't for his schizophrenia, he probably wouldn't have become homeless and aimlessly wandering through the states which is when that happened.
I ask out of curiosity, not dismissiveness: What is the goal of this project?
Without context, it strikes me as somewhat akin to adding details to a Picasso. The reason I'd use TempleOS is to get a peek into Terry Davis's mind, so what happens when someone else adds networking support?
Is it seen as a research project? Just something fun to play with?
I don't know, I'm not the author, just something I remember seeing related to TempleOS, I'd guess just a hobby kind of thing, we're on _Hacker_ News after all, so tinkering with technology just for the fun of it should be the priority.
Some time ago I published four small articles[1] about templeOS. Unfortunately I had less time to deal with this OS. I can only guess that you should have a look at this OS. If you ignore all the religious information you can experiment a lot. Even though Terry was very ill, I have an incredible respect for what he did. There are not many people who have put their own OS on its feet and even implemented very unusual ideas of their own. All this running on ring 0 is pretty exciting.
I've been thinking about writing a technical analysis of TempleOS, in the style of the the Xinu OS textbook [1]. No strong reason for doing so, though it is curious how much more one could learn about him by identifying patterns in the code and OS structure.
It will probably take me a while to recover from my current burnout to look at a holy-influenced C dialect, though. A venture into the library of babylon requires preparation. So, I'm just passively collecting writings that already exist, and the likes, like you just posted. I'm on the #templeos IRC on irc.rizon.net, if you would like to chat sometime. It's pretty inactive, with sprinkles of relevant conversation occasionally.
This has been discussed many times in the past [1].
tl;dr: The creator was a brilliant programmer who experienced a psychotic break late in his life, which led to chronic and severe schizophrenia. He killed himself in 2018.
According to his Wikipedia page #1) He passed away August 11, 2018, just the same day he posted his last video on YouTube (the same as included on his TempleOS home page): https://youtu.be/oH41gGBVpkE
His Wikipedia #1) page says the following about his passing: "Investigators could not determine whether his death was suicide or accidental, although the train engineer believed his death to be a suicide. The police report stated that Davis was walking with his back toward the train and that he turned around before the moment of impact".
>Warning: not for the faint of heart - banned for obvious reasons.
I lived through it - on 4chan, reddit , and HN.
It's still not obvious to me why he'd be banned, I don't think you should hand wave it that easily.
The guy had mental issues, but he had some amazing lucidity at times.
If I owned a movie theatre or restaurant I surely wouldn't ask someone with vocal tourettes to leave the establishment, and if I did i'd be ostracized all over the media and community -- so it's not as clear to me as you seem to think it should be why he was treated the way he was on the various forums.
I get that he said abrasive and racist comments routinely; but I think there is something to be said about the fact that his voice was routinely listened to and considered on 4chan's /g/, and routinely sequestered and removed on HN and reddit. 4chan turning their attention to him wasn't a good thing, nor is it usually ever, but that forum did give him a place to talk without fear of bannings, karma struggle, deaded comments, whatever.
Treating someone as good as they are treated on 4chan is a low bar. Back then the HN method of constant deading and shadowbanning felt heavy handed and unneeded; we're supposed to be adults who are aware that mentally ill individuals exist in real life and here on HN, but the way it was dealt with was by silencing an already schizophrenic person so that the 'normal' crowd could go on with business as usual.
I can't think of a more head-in-the-sand response, and I'm not even saying that it wasn't a required action to keep the forum discourse on some level of civility , but boy does what happened to Terry make me feel nauseous -- the same kind of feeling I get in the pit of my stomach that is usually a sign for me that I am witnessing something morally uneven. I don't know the solution, nor do I claim to. I just feel bad about what happened.
As someone who chatted in emails with him after his bannings, I still feel bad about his treatment and demise, and I miss him and his technical insights immensely. I think he got a poor run of life, and I wish that more people had been supportive of him, able to filter out the profane for the insight -- especially since he became fascinatingly technically capable and astute when spoken to personally with your 'vocabulary filter' on.
Terry was an individual by which most mistook his trees for the forest -- and I'm glad to read in this thread that I'm not the only one with that positive sentiment towards him and his memory.
Agree this is interesting, and user mode looks like legacy for some major domains.
For example, if you are building a grid computer, you don't need mechanisms that were designed to protect university students from one another. Consider if everything is driven from a single codebase. Your type system can provide protections that have traditionally been done by the kernel.
I am currently playing with this. Have a boot loader up, and a handoff to c++. Today I am looking at page-management.
There are some interesting trade-offs that come from unconventional approaches like this. For example, I have read that if you make SIMD registers available to the kernel, it hurts the performance of context-switching. (https://os.phil-opp.com/minimal-rust-kernel/)
A mitigation I am considering: do all interrupt handling on one core, and then have all other cores for work-processing. Use channels to communicate between the burnt interrupt core and the worker cores. Downside of this: worker cores would need to poll for new messages. In low-activity periods, I could slow the poll interval. I would be interested to hear from anyone who has gone deep on this, or knows of papers.
Technologies such as DPDK are designed to get the kernel out of the way. For some applications it has no reason to play a part once the system has booted, it's just an overhead.
For what you're doing I recall reading about IncludeOS[1] which seems to have similar goals
MS-DOS did the same, as do most embedded OS's today. Separate address spaces are definitely needed these days in order to avoid Spectre vulnerabilities, but that's only an information disclosure concern.
Ideally, OS's would explicitly support information protection domains (after all, this is already a feature in some niche, specialized OS's) and only sensitive info/data would be protected by a switch to a different protection domain. Most user tasks which deal entirely with non-critical data could simply run in a shared address space.
> Separate address spaces are definitely needed these days in order to avoid Spectre vulnerabilities
That's nonsense! Separate address spaces have nothing to do with hardware vulnerabilities. The MMU uses address spaces to isolate processes from each other, which is required for proper multi-tasking.
If you don't use process isolation, every task can overwrite the heap and stack of every other running task (including the OS kernel and drivers!). Information disclosure (in this context) is only relevant in virtual environments, where multiple tenants have to be strictly isolated from each other and affects (hardware) VM supervisors.
> If you don't use process isolation, every task can overwrite the heap and stack of every other running task (including the OS kernel and drivers!).
This is not a concern if all code is rigorously checked for memory safety which is quite feasible in principle, and possibly already the case for some uses of WASM/WASI. (Native binary code would need to be annotated with low-level proofs, to be checked by the OS.)
Right. That's why no sandbox has ever been broken...
So no. WASM relies on process isolation like every other system.
It's impossible to automatically check memory safety at compile time as that implies solving the Halting Problem.
Runtime checks would need to rely on the compiler enforcing these checks in the RTL. This, however, can easily circumvented using return-oriented programming (remember: you don't want the MMU to protect stack spaces).
No amount of software-based sandboxing or compile-time checks can effectively prevent non-isolated processes from accessing and corrupting each other's state. That's exactly why MMU were introduced in the first place.
Experiments using Software-Isolated Processes like Microsoft's Singularity [1] rely on complete toolchains from OS kernel to "safe" languages and runtimes and are not suitable for every requirement (e.g. hard real-time becomes near impossible).
The SIP concept also just shifts the burden of proving correctness from app and system developers to compiler and toolchain developers and we all know that those guys never make mistakes ;)
> It's impossible to automatically check memory safety at compile time as that implies solving the Halting Problem.
For the general case, yeah. And while I agree that I would not remove process isolation, I think they have a point about "almost guaranteed to be safe" languages could be potentially used without isolation (not with zero risk, of course).
I agree that current sandboxes and even current compilers/toolchains do not provide these rigorous guarantees, as of yet. WASM/WASI is however quite simple, and could thus be up to the challenge. It's certainly simpler than MS's Singularity approach.
> If you don't use process isolation, every task can overwrite the heap and stack of every other running task
We have a lot of modern languages that are memory safe at least in theory. However quite a few rely on the OS using these safety features in the background. For example the Java Runtime uses segfaults to catch null pointers instead of actively checking for them, at least as far as I remember.
I am Kenneth from the BBC interview: https://www.bbc.co.uk/programmes/m000b4r3
Things were pretty much on a downward spiral after 4chan funded his drum set: Terry got kicked out, and then Terry's van got impounded along with $1000 of a lot of electronics. Once he was homeless living in CA, people thought (and rightfully so) that he would die on the streets. It's such a shame what happened, honestly. 15+ years of social isolation and events in his past ultimately led to his downfall. His death made me very distraught, especially after meeting him in person months prior. Meeting him left a profound effect on me because he was so appreciative and seemed mentally sharp when he engaged with me.