I've been dabbling in learning TempleOS programming for a bit, did a host-guest driver giving VMware Tools-like functionality, minimal web browser, Mega Man game engine & DOS demoscene style intro, Github stuff is here if anyone's interested:
The argument put forth in this article is not being entirely fair.
Although there are many people who are instantly dismissive of Davis, I've seen others give him a fair engagement on his ideas. They bend over backwards to give him some credibility. How does Davis respond to this? He stubbornly refuses any and all crticism, no matter how leveled it is.
I've watched him go in circles for pages in forums where people modestly suggest easy improvements to his design. As always, it's a little hard to separate out the mental illness from the person. But to say people don't attempt to engage Davis fairly is flatly disingenuous, and I think the author ought to try it before making that claim.
I'm not trying to rise any polemics about.. just for the sake of the debate...but is there any social skills difference to Linus? I mean, I just admire both of them.. there are very few people that can drive complex projects like Linux and templeOS.. and mental stability is something that doesn't really help much here.
What I want to say is: people are like they are... we just need to love them, give them a chance to be heard.. in the end we all go back to ashes and our ideas stay flying freely...
I've been running a team of about 70 people and it amazes me how different personalities create a dynamic organism... made of just tiny little imperfect pieces..
I feel as if perhaps if you can compare linus and Terry then you perhaps haven't thought the matter all the way through.
In the first place mental and social stability are not only helpful but absolutely essential in any endeavor requiring sustained effort and cooperation from more than one party. A multitude are involved either directly in linux or in projects that depend on same whereas TempleOS is a one man show not just in terms of development but even in terms of usage since if I recall correctly it doesn't do networking. Every user is figuratively an island.
Further it ought to be obvious that there is a substantial difference between Linus sometimes being an asshole and a mental disorder which often leaves the sufferer incapable of meaningfully connecting to reality or the rest of humanity let alone contributing.
Look at Terry he obviously possesses intelligence but it mainly serves to provide a diversion while he wastes his life away between racist paranoid rants on the internet.
If anything his existence is an example of a waste, a waste of everyone else's time and especially a waste of terry who of all people can't get away from himself nor effect his own cure. We do need better ways in the future to help people like terry but we do not need silly equivocation.
Of course, there maybe quite some differences between them. One is obviously the scale (Can anyone imagine the world without Linux ?).
My point was about their personalities.. and I'm not really doing any value analysis.. again for the sake of the debate..
I appreciate the spirit in which you raised this question. There is a large difference between Linus and Terry in organizational effectiveness. Additionally, Linus' putdowns of disliked contributions are reasoned and supported by a lot of other contributors whereas despite respecting what Terry's made, no one supports much of what he writes at all beyond expressing sympathy.
Additionally, though Temple is a legitimate software project, it lacks the aims and design to become widely adopted, meaning it is worth less effort to improve it (and the same can be said for many other projects.) So there is a compounding effect.
I'm not arguing for discrediting his ideas. TempleOS is something that's novel for sure. I'm just saying that it's not fair to say that everyone's been dismissive when in fact plenty of people have tried to engage Davis about his work.
On one hand he has a temper; on the other hand different cultures express disagreement/debate/etc in very different ways. The tendency for many youg americans (particularly from California) to insist that everyone use their "strong statements are bad, please make sure you don't hurt anyone's feelings" style of rhetoric and that anything else is invalid is quite frustrating. It's actually fairly present on HN, where I've seen several times people having perfectly civil (albeit curt by Silicon Valley standards) debates finding themselves chastised by the moderation team.
> I've seen several times people having perfectly civil (albeit curt by Silicon Valley standards) debates finding themselves chastised by the moderation team.
Every time I read something that makes me want to tell someone that they are a blithering idiot whose ideas are only worth writing down if its on paper that is soft enough to use as toilet paper I take a breath and find I can express what is wrong with their ideas without saying so.
Actually having to focus on the ideas as opposed to the party has a tenancy to improve the quality of the analysis.
Especially HyperText/DolDoc is something that seems like a very nice feature to have. Perhaps one day someone might port something similar for Linux shells?
It seems like that is what the Linux 'text only' input/output should have been. Instead of parsing ASCII which will bring about the incompatibilities that we see today, it would have been better to have all tools input/output HTML/XML and translate it into human readable text in the shell for when output is redirected to the terminal.
A feature like that is nice, but could ultimately be abused/misusued. Sometimes is nice to have text just be plain old text. It's one of the reasons I never got into PowerShell.
In other words templeos is a unikernel with a jit compiler.
The name is odd, the author is strange, do you judge a movie by private life of the authors?
The illness of van gogh, Gödel didn't affect their creations.
missing graphical interface is a defect.
An unikernal is a strange beast, sound crazy, but got some advantages: is simpler, could be understood completely by a human (and not only by a genius), there are no penality for system calls, and there is no cpu time wasted on context switch. Because the machine are getting cheaper is common to have only one user, so all these security became useless, so on the long run the unikernels will be mainstream. Kudos to him.
a relevant discussion about unikernel here:
https://news.ycombinator.com/item?id=10362897
The advantage of multiple "users" isn't just blocking one person's access to another person's stuff. It's also a valuable tool for sandboxing system processes which need to run parallel on the same host system.
I'm addition to that, a monolithic unikernel (as unikernels usually are) would have the issue of a higher tendency for kernel panics.
So i really can't see unikernels becoming mainstream. If anything the reverse trend is true with more complex kernel designs like micro kernels becoming more favourable as computing hardware gets cheaper.
The real growth area for unikernels is virtualized appliances, eg running a single purpose service as a Xen unikernel. But even that is awfully niche and often better served (particularly in terms of developer and sysadmin productivity) with containers these days.
In that case, you need process isolation and permissions not user privileges. Prior models for mandatory, access control and capability-based security can already do what you're describing. KeyKOS did it in production on mainframes decades ago with extra benefit of persistence for app data. System/38 did one of those models, too, at CPU level. Later became AS/400 and IBM i. AS/400's run and run and run.
So, if you want POLA and damage containment, one option is imitating old designs that pulled that off. Patents expired, too. ;)
Oh I'm fully aware there are a thousand different ways to accomplish similar results. Further to your point, you can also support multiple physical users without actually running a multi-user system as well (eg Windows 95).
However you have to bare in mind that this tangent did start off as an exercise in generalisations so I was following on from that by pointing out that many current multi-user systems also use user accounts as a tool for reducing the exposure a process has. While you'd obviously agree that it's a long way from being the most secure method of hardening a OS, it is still a pretty typical way for many desktop systems to operate.
I think unikernels make sense in conjunction with languages like Rust. If your compiler is making sure it won't generate code that could cause a segfault, the run-time checks to do the same are unnecessary overhead.
(There are, of course, some details that would need to be worked out like how to handle unsafe code blocks, how to run programs written in unsafe languages, and how to enforce a policy of only executing code compiled with a trusted compiler, but none of these seem like fundamentally insurmountable obstacles and the benefits of being able to make a system call without any more overhead than a function call are pretty big for certain applications.)
I'm assuming that applications are written in Rust as well and that the OS is configured to either refuse to run binaries compiled with an unknown compiler or it runs them inside a CPU emulator.
And no, I don't think this solves all of the potential security problems that could exist. What it does accomplish (if you're willing to trust a compiler in the same way that we're expected to trust the MMU in our computers, which might not be warranted at this stage of the development of Rust) is that it solves the problem of one program reaching into another program's address space when it isn't supposed to.
Strictly speaking, it would be more secure to have both compiler-enforced protections and an MMU, so that a compiler bug won't compromise the whole system. It is, however, at least theoretically possible to have secure process isolation without relying on an MMU. That's a big deal, because context switches are expensive and if there's a way to get the same safety without the overhead, someone is likely to build a system that takes advantage of that.
I didn't actually say a unikernel couldn't be a micro kernel though; just that there was a tendency for them to be monolithic.
Unless I've overlooked a bunch of kernels - and I'm happy to be proven wrong - usually you'll find unikernels to be monolithic because those two approaches address the similar objectives in kernel design (namely simpler layout and improved performance).
However correlation or not, you're probably right that my point regarding monolithic kernels wasn't entirely relevant to the rest of my post and thus just risks confusing things.
I have been creating monthly archives of his website(s) and videos since 2012, hoping someone in the future will find them useful. I wonder where they can be stored online.
His fans on /g/ would be very interested. You ought to create a torrent and post it on the TOS /g/ threads. Maybe separate out his topical tutorial videos from the livestreams.
Its a shame he hasn't hopped onto the OSS fad and taken advantage of GitHub to collect contributions.
Maybe it others could this a neat project for their master/thesis?
> No police state. Nothing is different from 1990 except we don't have any
enemies. The World has gadgets to amuse itself. Eliminate fat-ass government
jobs. Eliminate CIA, NSA and TSA. Don't fucken touch my computer, CIA ------.
Githib is to register and control dangerous people and code. No cloud.
One needs the context. It's very stream-of-consciousness-y.
Terry Davis believes that God has instructed him to build a perfect temple. He takes great pride in how many different, complicated parts of the OS he has made. He is very paranoid and frequently mentions the CIA in his rants. Why would he want or need more contributors?
Despite you saying development has stopped, and there being a notice on the repository saying it had no active development, I see commits from 14 minutes ago.
I wasn't aware of this, I have been tinkering with TempleOS for a while now, but I've been missing the networking functionality that Shrine provides.
Last commit was half an hour ago. Apart from the notice it seems to be relatively active.
They've added networking, a package manager and a unix-like shell. That's really cool. You could put it in a container and use it as an emacs alternative.
In some ways, TempleOS looks like an enhanced MS-DOS, where everything runs in ring 0, all tasks shares the memory space, and everything has access to all files.
>> [...] neat but not extra-ordinary hobby project.
IMO TempleOS is quite extra-ordinary! From the article's conclusion:
"Watching TempleOS execute its built-in test suite is a jaw-dropping experience. I can't help but be impressed as a vast number of demos, games, graphing calculators, debuggers, and compilers all fly before your eyes. To see the sheer amount of content that's been written here over the years, to see such effort expended on a labor of love, is wonderfully heart-warming."
I think you're describing Urbit. The creator is strange but not that strange in the grand scheme of things and yet Urbit still has a user base.
TempleOS does some really cool things. JITed C derivative, unified terminal/texteditor/documentation, and a lot of other cool things.
Just because Terry is "different" doesn't mean his work is any less valuable. More people may see it because of his "antics" but there are still cool things he has done.
Davis is a member of the Hacker News community in the strong sense of community, but the project gets attention on HN because it is intellectually interesting and an awesome accomplishment.
It is common for people to look at a creative work and say/think "Phftt...I could do that." The proof that a person is mistaken is that they don't and won't and never will.
No mentally-healthy, socially apt individual would devote much of his life to turning the PS2/AMD64 architecture into a 64-bit Commodore 64 optimized for glorifying and communing with God.
TempleOS is a vision of what computing might have been like if the middle ages never ended. What if computing technology developed in a monastery for the purpose of glorifying God? (Like illuminated manuscripts and sacred architecture.) We'd expect odd mixtures of the archaic and innovative, weird technological taboos and lots of anachronisms that only made sense theologically. Something like TempleOS.
This is a stretch, but bear with me. Don Knuth saw that typesetting was being done wrong, and spent decades doing it right in his own idiosyncratic way, creating TeX. Terry Davis did the same with operating systems, creating TempleOS. Knuth's is the forgiving New Testament faith, while Davis's is the vengeful, capricious Old Testament one, but they were both driven by a personal faith and genius.
Knuth's obsession was rewarded by society, while Davis's was scorned. Neither did any real harm.
He seems to stream himself a lot recently (he's even on now - https://www.youtube.com/watch?v=OEwmiplwGLI ). He just browses the internet and he sent some viewers money. It's pretty surreal.
I had a conversation over IRC with Terry when it was still called LoseThos, I think he got pretty frustrated when I told him I didn't trust the OS image enough to run it in a VM. Lo and behold, he has had the source code up since renaming it, AFAIK.
It's not trustworthy unless it's physical separation on a dedicated, energy-gapped device. That's Clive Robinson's term for having as much matter and energy isolation as possible to prevent known and unknown side channels. Anything less will get hacks and leaks.
He's taking medication regularly. He mentions it in streams and complains a lot about the side effects.
The bad state he is in now doesn't have anything to do with lack of meds. In fact his anger over the side-effects seems to distract him a lot.
I wonder if he could benefit from John Nash's accept and self-monitor approach to his own illness (strikingly similar to modern "ACT" therapy -- the meditative / mindful aspect of it might even jive with channeling his religious energy).
> Whether the rumours are true, I can’t say, but what’s certain is that the truth of Nash’s experience, the way in which he struggled and ultimately succeeded in using the power of his rational mind to overcome his delusional thinking, was replaced with a straightforward lie. And whatever the rationale behind it, the wholly disingenuous use of Nash’s recovery to promote the use of anti-psychotics is to my mind unconscionable.
I think in the coming decades we'll come to see the excessive use of long-term psychiatric medication as barbaric as we now understand the use of therapeutic lobotomies in centuries past to be.
I feel the coverage of TempleOS/SparrowOS/LoseThos has had to be a balancing act. Single articles will appear on various blogs, but not much more. The OSDev forums seem to quietly ignore TempleOS because Terry has a reputation of posting to the forums, and his input devolves into divining God's words from random text. Terry will post level-headed answers about OS architecture, then within a few hours it's After Egypt 24/7. Terry ends up becoming shadowbanned on discussing his own project.
I wish the OSDev community could have a more constructive dialog with Terry and his project.
You're undoubtedly correct that this project gets more attention because of Terry. But I find it difficult to believe that anyone would not find it a pretty extraordinary project.
Agreed. I've read more about TempleOS that pretty much any other homebrewed OS on HN. It is sort of interesting, but not as much as it is written about. And "it boots so much faster than Windows" type comparisons are uninspired. Of course it does, it does barely anything by comparison.
>And "it boots so much faster than Windows" type comparisons are uninspired. Of course it does, it does barely anything by comparison.
Well, there are apps with thousands of users, based on Electron and NW.js, that do "barely anything" and yet load slowly as molasses and use half your CPU.
What's Slack doing compared to a full (if primitive) OS and userland?
Who said anything about CPU? Slack's going to make DNS requests, multiple TCP requests most likely. That's network IO, multiple orders of magnitude slower than reading from disk - which is (at most, it may just read small file from disk and unpack in memory - I don't know) what TempleOS does.
Slack's app has to display images, render scrolling, respond to network events, store and load application state like your preferences and theme, etc. Assuming it does these things - I use the web client.
Slack also has to support multiple operating systems, so it may make technology choices around that.
It's really not hard at all to see why Slack would be much slower than an OS that basically does nothing to boot up.
It's not hard at all to see why Windows, which supports tons of hardware, would be larger on disk and slower to unpack as it boots - lots of drivers and services need to start up to support all of the things that make it not TempleOS.
>It's really not hard at all to see why Slack would be much slower than an OS that basically does nothing to boot up.
You seem to underestimate what TempleOS does and overestimate what Slack does. We had apps 10x more complex than Slack (with network IO et all) in 1995 -- and they run faster.
Now using the web stack for Slack desktop might very well be a business decision (and a good one at that), but it's one of the worst performance decisions you can make.
It's also because he creates lots of fake accounts on HN and Reddit and other places to try to get attention. Moderators are unfortunately too nice in this instance and tolerate his baloney.
>This combination of TempleOS's amateurish approach and Terry's unfortunate outbursts have resulted in TempleOS being often regarded as something to be mocked, ignored, or forgotten.
I've only ever heard positives things said about TempleOS.
https://github.com/pcorey/julia-templeos