@@ -1,54 +0,0 @@
|
||||
|
||||
The Temple Operating System hosted in VirtualBox for NOVA
|
||||
|
||||
TempleOS is a free, public domain, open source, x86_64, non-preemptive
|
||||
multi-tasking, multi-cored, ring-0-only, single-address-map (identity-mapped),
|
||||
non-networked, PC operating system. Paging is, basically, not used.
|
||||
|
||||
The CIA encourages code obsfucation. They make it more complicated than
|
||||
necessary. TempleOS is, literally, more simple than necessary. It is
|
||||
obnoxiously simple... to the point it hurts.
|
||||
|
||||
This "Hello World" joke, the BMP file format and the WAV file format show that
|
||||
the industry is really screwed-up! That's what TempleOS fixes. I capped the
|
||||
line-of-code count at 100,000 and God said it must be perfect, so it will never
|
||||
be an ugly monstrocity. It is currently 82,171 lines of unblemished code.
|
||||
Backward compatibility is not promised.
|
||||
|
||||
Normally, failure is not an option, but since TempleOS accompanies Windows or
|
||||
Linux, we exclude certain uses. There is no reason to duplicate browsing,
|
||||
multimedia, desktop publishing, etc. 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. The games were not multimedia works of
|
||||
art, but generated by non-artist.
|
||||
|
||||
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 char source code to support
|
||||
European languages. Also, the source code supports binary sprite 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?
|
||||
|
||||
http://www.templeos.org/
|
||||
https://archive.org/details/TempleOS_Website_Archive
|
||||
@@ -1,13 +0,0 @@
|
||||
ehmry/raw/templeos/2017-12-12
|
||||
_/src/vbox5-nova
|
||||
_/src/base-nova
|
||||
_/src/libc
|
||||
_/src/init
|
||||
_/src/nit_fb
|
||||
_/src/libc
|
||||
_/src/posix
|
||||
_/src/zlib
|
||||
_/src/nit_fb
|
||||
_/src/libiconv
|
||||
_/src/stdcxx
|
||||
_/src/vfs
|
||||
@@ -1 +0,0 @@
|
||||
2018-09-01 db81ea0f0df351513ba88d789dddf73609fdc560
|
||||
@@ -1,100 +0,0 @@
|
||||
<runtime ram="768M" caps="1024" binary="init">
|
||||
|
||||
<requires>
|
||||
<nitpicker/>
|
||||
</requires>
|
||||
|
||||
<content>
|
||||
<rom label="init"/>
|
||||
<rom label="ld.lib.so"/>
|
||||
<rom label="libc.lib.so"/>
|
||||
<rom label="libc_pipe.lib.so"/>
|
||||
<rom label="libc_terminal.lib.so"/>
|
||||
<rom label="libiconv.lib.so"/>
|
||||
<rom label="libm.lib.so"/>
|
||||
<rom label="nit_fb"/>
|
||||
<rom label="pthread.lib.so"/>
|
||||
<rom label="qemu-usb.lib.so"/>
|
||||
<rom label="stdcxx.lib.so"/>
|
||||
<rom label="TempleOS.ISO"/>
|
||||
<rom label="TempleOS.vbox"/>
|
||||
<rom label="timer"/>
|
||||
<rom label="vfs.lib.so"/>
|
||||
<rom label="virtualbox5-nova"/>
|
||||
</content>
|
||||
|
||||
<config prio_levels="2">
|
||||
|
||||
<parent-provides>
|
||||
<service name="Audio_out"/>
|
||||
<service name="CPU"/>
|
||||
<service name="LOG"/>
|
||||
<service name="Nitpicker"/>
|
||||
<service name="PD"/>
|
||||
<service name="Report"/>
|
||||
<service name="RM"/>
|
||||
<service name="ROM"/>
|
||||
<service name="Rtc"/>
|
||||
<service name="Timer"/>
|
||||
<service name="Usb"/>
|
||||
<service name="Nic"/>
|
||||
</parent-provides>
|
||||
|
||||
<default-route> <any-service> <parent/> <any-child/> </any-service> </default-route>
|
||||
|
||||
<default caps="100"/>
|
||||
|
||||
<start name="timer">
|
||||
<resource name="RAM" quantum="1M"/>
|
||||
<provides><service name="Timer"/></provides>
|
||||
<config/>
|
||||
<route>
|
||||
<service name="ROM" label="platform_info">
|
||||
<parent label="platform_info"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="nit_fb" priority="0">
|
||||
<resource name="RAM" quantum="8M" />
|
||||
<provides>
|
||||
<service name="Framebuffer" /> <service name="Input" />
|
||||
</provides>
|
||||
<config initial_width="640" initial_height="480" />
|
||||
<route>
|
||||
<service name="Nitpicker"> <parent label=""/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
<start name="vbox" priority="-1" caps="1000">
|
||||
<binary name="virtualbox5-nova" />
|
||||
<resource name="RAM" quantum="1G"/>
|
||||
<exit propagate="yes"/>
|
||||
<config vbox_file="TempleOS.vbox" xhci="yes" vm_name="TempleOS" capslock="ROM">
|
||||
<vfs>
|
||||
<dir name="dev">
|
||||
<log/>
|
||||
<rtc/>
|
||||
</dir>
|
||||
<dir name="shared">
|
||||
<null/>
|
||||
</dir>
|
||||
<rom name="TempleOS.ISO"/>
|
||||
<rom name="TempleOS.vbox"/>
|
||||
</vfs>
|
||||
<libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Audio_out"> <parent/> </service>
|
||||
<service name="ROM" label="usb_devices"> <parent label="usb_devices"/> </service>
|
||||
<service name="ROM" label="capslock"> <parent label="capslock"/> </service>
|
||||
<service name="ROM" label="platform_info">
|
||||
<parent label="platform_info"/> </service>
|
||||
<service name="Report" label="shape"> <parent label="shape"/> </service>
|
||||
<any-service> <parent/> <child name="nit_fb"/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
</config>
|
||||
|
||||
</runtime>
|
||||
@@ -1,3 +0,0 @@
|
||||
This work (TempleOS, by Terry Andrew Davis),
|
||||
identified by Genode Labs, is free of
|
||||
known copyright restrictions.
|
||||
@@ -1,50 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<VirtualBox xmlns="http://www.virtualbox.org/" version="1.14-freebsd">
|
||||
<Machine uuid="{37ab43a5-38d8-4491-93f5-5b0b077f5c32}" name="TempleOS" OSType="Ubuntu_64" snapshotFolder="Snapshots" lastStateChange="2018-01-23T18:40:00Z">
|
||||
<MediaRegistry>
|
||||
<HardDisks>
|
||||
<HardDisk uuid="{c1628a8d-7306-4534-b501-9a6ded486aed}" location="TempleOS.vdi" format="VDI" type="Normal"/>
|
||||
</HardDisks>
|
||||
<DVDImages>
|
||||
<Image uuid="{81763434-9a51-49e8-9444-528a5a28c4bc}" location="TempleOS.ISO"/>
|
||||
</DVDImages>
|
||||
</MediaRegistry>
|
||||
<Hardware>
|
||||
<CPU count="2">
|
||||
<PAE enabled="true"/>
|
||||
<LongMode enabled="true"/>
|
||||
<HardwareVirtExLargePages enabled="false"/>
|
||||
</CPU>
|
||||
<Memory RAMSize="512"/>
|
||||
<HID Pointing="USBTablet"/>
|
||||
<Display VRAMSize="20"/>
|
||||
<RemoteDisplay enabled="false"/>
|
||||
<BIOS>
|
||||
<IOAPIC enabled="true"/>
|
||||
</BIOS>
|
||||
<USB>
|
||||
<Controllers>
|
||||
<Controller name="OHCI" type="OHCI"/>
|
||||
</Controllers>
|
||||
</USB>
|
||||
<Network/>
|
||||
<UART>
|
||||
<Port slot="0" enabled="false" IOBase="0x3f8" IRQ="4" hostMode="Disconnected"/>
|
||||
<Port slot="1" enabled="false" IOBase="0x2f8" IRQ="3" hostMode="Disconnected"/>
|
||||
</UART>
|
||||
<LPT>
|
||||
<Port slot="0" enabled="false" IOBase="0x378" IRQ="7"/>
|
||||
<Port slot="1" enabled="false" IOBase="0x378" IRQ="7"/>
|
||||
</LPT>
|
||||
<AudioAdapter controller="HDA" driver="OSS" enabled="false"/>
|
||||
<RTC localOrUTC="UTC"/>
|
||||
</Hardware>
|
||||
<StorageControllers>
|
||||
<StorageController name="IDE" type="PIIX4" PortCount="2" useHostIOCache="true" Bootable="true">
|
||||
<AttachedDevice passthrough="false" type="DVD" hotpluggable="false" port="1" device="0" Bootable="true">
|
||||
<Image uuid="{81763434-9a51-49e8-9444-528a5a28c4bc}"/>
|
||||
</AttachedDevice>
|
||||
</StorageController>
|
||||
</StorageControllers>
|
||||
</Machine>
|
||||
</VirtualBox>
|
||||
@@ -1,9 +0,0 @@
|
||||
content: TempleOS.ISO TempleOS.vbox
|
||||
|
||||
ISO_URL = http://archive.org/download/TempleOS20171215/TempleOS.ISO
|
||||
|
||||
TempleOS.ISO:
|
||||
wget $(ISO_URL) -O $@
|
||||
|
||||
TempleOS.vbox:
|
||||
cp $(REP_DIR)/recipes/raw/templeos/$@ $@
|
||||
@@ -1 +0,0 @@
|
||||
2017-12-12 01ed3c8cb2d494dd9007f2ca50d736a8c0f80eb7
|
||||
Reference in New Issue
Block a user