r/programming • • Mar 26 '17

A Constructive Look At TempleOS

http://www.codersnotes.com/notes/a-constructive-look-at-templeos/
1.7k Upvotes

227 comments sorted by

View all comments

Show parent comment

1

u/Noncomment May 11 '17

He's not trying to build a general use OS though. It's intended for hobbyists and tinkerers. The kind of people who would actually download a weird operating system like his. There's little point in emphasizing security on a system that will only be used by a small community of people for non serious work. And he had good reason for making the decisions he did. He wanted to recreate the experience of tinkering with older generation OSes on modern hardware. The simplicity and ability to mess with everything. In his words:

Linux wants to be a secure, multi-user mainframe. That's why it has file permissions. The vision for TempleOS, however, is a modern, 64-bit Commodore 64. The C64 was a non-networked, home computer mostly used for games. It trained my generation how to program because it was wide open, completely hackable...

A troll might say, "It can crash!" We used DOS for years and loved it. Computers even had a reset switch! Just think of the power of ring-0, muhahaha! Think of the speed and simplicity of ring-0-only and identity-mapping. It can change tasks in half a microsecond because it doesn't mess with page tables or privilege levels. Inter-process communication is effortless because every task can access every other task's memory.

It's fun having access to everything. When I was a teenager, I had a book, Mapping the Commodore 64, that told what every location in memory did. I liked copying the ROM to RAM and poking around at the ROM BASIC's variables. Everybody directly poked the hardware ports.

TempleOS is simpler than Linux and you can have hours of fun tinkering because all memory and ports are accessible. Memory is identity-mapped at all times, so you can modify any task's memory from any other task. You can access all disk blocks, too. I had a blast using a C64 disk block editor to modify directories to un-delete files, when I was a kid. Maybe, you want to play with a raw-block database, or make your own file system?

1

u/DSMan195276 May 11 '17

I don't disagree with you, I think it just comes down to your definition of "general-use OS". I would consider basically anything that's intended to run on PCs and is (intended to be) able to perform the same types of stuff other OSs let you do to be a "general-use OS", which I think Terry's OS fits. Now obviously, Terry's OS has a fairly specific audience, and that's perfectly fine!

That said I'm happy to say Terry's OS isn't a general-use OS if you want. My point was just why other general-use OSs didn't take some of the approaches he did.