Fix NixOS Vbox file, add TempleOS
This commit is contained in:
parent
5cd2d62aa9
commit
bfb65610a9
18
Tuprules.tup
18
Tuprules.tup
|
@ -1,11 +1,9 @@
|
|||
.gitignore
|
||||
|
||||
export PKG_CONFIG_PATH
|
||||
SDK_INCLUDE = $(TUP_CWD)/sdk.tup
|
||||
|
||||
CC = `pkg-config genode-base --variable cc`
|
||||
CXX = `pkg-config genode-base --variable cxx`
|
||||
LD = `pkg-config genode-base --variable ld`
|
||||
AR = `pkg-config genode-base --variable ar`
|
||||
export PKG_CONFIG_PATH
|
||||
PKG_CONFIG = PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$(SDK_DIR)/pkgconfig pkg-config
|
||||
|
||||
ifndef DEPOT_USER
|
||||
error CONFIG_DEPOT_USER is undefined
|
||||
|
@ -37,6 +35,8 @@ ERRATA_DIR = $(TUP_CWD)/errata
|
|||
xmllint -schema $(ERRATA_DIR)/runtime.xsd --noout %f ; cp %f %o \
|
||||
|> $(DEPOT_PKG_DIR)/%d/@(DEPOT_VERSION)/runtime $(DEPOT_DIR)/<runtimes>
|
||||
|
||||
!pkg_extra_to_depot = |> ^ CP %o^ cp %f %o |> $(DEPOT_PKG_DIR)/%d/@(DEPOT_VERSION)/%b
|
||||
|
||||
!raw_to_depot = |> ^ raw/%d/%b^ cp -r %f %o |> $(DEPOT_RAW_DIR)/%d/@(DEPOT_VERSION)/%b
|
||||
|
||||
ifndef DEPOT_KEY
|
||||
|
@ -67,3 +67,11 @@ SIGN_CMD = gpg --detach-sign --digest-algo SHA256 --no-tty --local-user @(DEPOT_
|
|||
!public_signature = |> ^ sign %b^ $(SIGN_CMD) < %f > %o |> %f.sig
|
||||
|
||||
endif
|
||||
|
||||
CC = `pkg-config genode-base --variable cc`
|
||||
CXX = `pkg-config genode-base --variable cxx`
|
||||
LD = `pkg-config genode-base --variable ld`
|
||||
AR = `pkg-config genode-base --variable ar`
|
||||
|
||||
!cc = |> ^ CC %f^ $(CC) $(DEFINES) $(CXXFLAGS) $(CXXFLAGS_%e) $(CXXFLAGS_%f) -c %f -o %o |>
|
||||
!ld = |> ^ LD %o^ $(LD) $(LDFLAGS) %f -o %o |>
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 6c4cb16a657f62c126df6917e06bb64b77514620
|
||||
Subproject commit 434a523034d99ac3522f1a4aaf1e60fafe265703
|
|
@ -10,10 +10,9 @@
|
|||
</DVDImages>
|
||||
</MediaRegistry>
|
||||
<Hardware>
|
||||
<CPU>
|
||||
<CPU count="2">
|
||||
<PAE enabled="true"/>
|
||||
<LongMode enabled="true"/>
|
||||
<X2APIC enabled="true"/>
|
||||
<HardwareVirtExLargePages enabled="false"/>
|
||||
</CPU>
|
||||
<Memory RAMSize="1536"/>
|
||||
|
|
54
runtimes/templeos/README
Normal file
54
runtimes/templeos/README
Normal file
|
@ -0,0 +1,54 @@
|
|||
|
||||
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
|
7
runtimes/templeos/Tupfile
Normal file
7
runtimes/templeos/Tupfile
Normal file
|
@ -0,0 +1,7 @@
|
|||
include_rules
|
||||
|
||||
: runtime |> !runtime_to_depot |> {package}
|
||||
: archives |> !archives_to_depot |> {package}
|
||||
: README |> !pkg_extra_to_depot |> {package}
|
||||
|
||||
: {package} |> !publish_pkg |>
|
13
runtimes/templeos/archives
Executable file
13
runtimes/templeos/archives
Executable file
|
@ -0,0 +1,13 @@
|
|||
ehmry/raw/templeos/2017-12-12
|
||||
genodelabs/src/vbox5-nova/2019-02-25
|
||||
genodelabs/src/base-nova/2019-02-25
|
||||
genodelabs/src/libc/2019-02-25
|
||||
genodelabs/src/init/2019-02-27
|
||||
genodelabs/src/nit_fb/2019-02-25
|
||||
genodelabs/src/libc/2019-02-25
|
||||
genodelabs/src/posix/2019-02-25
|
||||
genodelabs/src/zlib/2019-02-25
|
||||
genodelabs/src/nit_fb/2019-02-25
|
||||
genodelabs/src/libiconv/2019-02-25
|
||||
genodelabs/src/stdcxx/2019-02-25
|
||||
genodelabs/src/vfs/2019-02-27
|
98
runtimes/templeos/runtime
Executable file
98
runtimes/templeos/runtime
Executable file
|
@ -0,0 +1,98 @@
|
|||
<runtime ram="768M" caps="1024" binary="init">
|
||||
|
||||
<requires>
|
||||
<nitpicker/>
|
||||
</requires>
|
||||
|
||||
<content>
|
||||
<rom label="init"/>
|
||||
<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="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>
|
Loading…
Reference in New Issue
Block a user