The Temple Operating System

TempleOS is an x86_64, multi-tasking, multi-cored, public domain, open source, 
ring-0-only, single-address-map (identity-mapped), non-networked, PC operating 
system for recreational programming.  It's like paging is not used.

Here's a "Hello World" joke.  Look at the BMP file format and the 
WAV file format and ask yourself how they could screw them up so badly.

Normally, failure to do every sort of task is not an option for operating 
systems.  Since TempleOS accompanies Windows or Linux, however, failure is an 
option.  We can exclude many usages.  There is no reason to duplicate browsing, 
multimedia, desktop publishing, etc.  Instead, it is simple, fun, and beautiful. 
I capped the line-of-code count at 100,000, so it will never be ugly.  
Currently, it is 80,938 lines of code.  God's temple must be perfect, so 
backward compatibility is not promised.

The main reasons TempleOS is simple and beautiful are because it's ring-0-only 
and identity-mapped.  Linux wants to be a secure, multi-user mainframe.  That's 
the vision for Linux.  That's why it has file permissions.  The vision for 
TempleOS is a modern, 64-bit Commodore 64.  The C64 was a home computer mostly 
used for games.  It trained my generation how to program.  It was simple, open 
and hackable.  It was not networked.  The games were not multimedia works of 
art, but generated programmatically with innocent, programmer (non-artist) 
quality graphics.  It was simple and unsecure.  If you don't have malware and 
you don't have bugs, protection just slows things down and makes the code 

A troll might ask, "Why not just use DOS?  It was ring-0-only and 
single-address-map."  DOS was 16-bit, with segmentation -- awful!  TempleOS is 
64-bit, flat, non-segmented and multi-cored.  It has a C64-like shell with 
HolyC, a dialect of C/C++, instead of BASIC.  It was written from scratch, and 
not even ASCII was sacred -- it has 8-bit unsigned character source code to 
support European languages.  Also, the source code has binary graphics.

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?

I wrote all 118,751 lines of TempleOS over the last 12.3 years, full-time, 
including the 64-bit compiler.  It was called, at various times, "Hoppy", "
The J Operating System", "LoseThos" and "SparrowOS".  Here are my 
college transcripts.  I've been a professional operating system developer since 
1990 when I was hired to work on Ticketmaster's VAX OS.


Screen Shots





TempleOS Help

Source Code By File

Source Code By Sym

Source Code By Address

Source Code (Raw)

Change Log

About TempleOS

* "Commodore 64" was a trademark of Commodore Business Machines.
* "Linux" is probably a trademark owned by Linus Torvalds.
* "Windows" and "DOS" are trademark of MicroSoft Corp.