A TempleOS distro for heretics
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
minexew 684529b0ce VKernel: forward stdin using VSYSCALL_READ 2 years ago
AutoOSInstall MkDir x DirMk 6 years ago
Demo/Network Very early TCP listen implementation 5 years ago
HwSupp HwSupp/PCNet: MAlloc buffers within 32-bit PCI space 5 years ago
Lsh@1cf4781fea Move Lsh to separate repo 5 years ago
Mfa Pkg: check compatibility for local packages as well 5 years ago
Pkg Pkg: add post-install-doc, fmt version 11 5 years ago
Shrine Bump version to 5.05 4 years ago
SnailNet Very early TCP listen implementation 5 years ago
TempleOS@f68cf76270 Update to templeos 2017-11-21 4 years ago
VKernel VKernel: forward stdin using VSYSCALL_READ 2 years ago
Wget Pkg: check compatibility for local packages as well 5 years ago
redseafs Update to latest TempleOS 5 years ago
.gitignore Fixed gitignore 5 years ago
.gitmodules Update to latest TempleOS 5 years ago
BUILDING.md Update to latest TempleOS 5 years ago
Makefile Makefile fixes 5 years ago
PACKAGES.md Pkg: add post-install-doc, fmt version 11 5 years ago
README.md README: better instructions for QEMU 4 years ago
TOS_Distro.ISO Update to templeos 2017-11-21 4 years ago
inject_templeos.py Update to latest TempleOS 5 years ago
make-dist.py Don't shit the bed with Python 3 6 years ago
mfa.py Add basic networking demos 5 years ago
snail.py Remove recvall 5 years ago

README.md

Shrine

Screenshot

Shrine is a TempleOS distribution that aims to be more modern & approachable.

Shrine aims to improve upon TempleOS in several aspects:

  • Approachability: Shrine ships with Lambda Shell, a more traditional Unix-like command interpreter
  • Connectivity: TCP/IP stack! Internet access!
  • Software access: Shrine includes a package downloader
  • Versatility: unlike stock TempleOS, Shrine requires only 64MB RAM, making it feasible for cloud micro-instances and similar setups (note: this is planned, but currently not true)

Software included in Shrine:

  • Mfa (minimalist file access)
  • Lsh (Lambda Shell)
  • Pkg (package downloader)
  • Wget

Setting up with networking

  • Native Stack (highly experimental)

    • configure your VM networking: Adapter Type: PCnet-PCI II (QEMU: -netdev user,id=u1 -device pcnet,netdev=u1)
    • Attached to: NAT seems to be the most reliable setting, Bridged Mode also works somewhat
    • On boot, Shrine will automatically attempt to acquire an IP address. If you don't get a message about "Configuring network", the adapter was not detected.
  • To enable tunelled networking through Snail:

    • configure your VM: COM3 - TCP, server, 7777 (in VirtualBox, server = UNCHECK Connect to existing)
    • (make sure to disable networking for the VM, otherwise Native Stack will get precedence)
    • start the VM
    • run ./snail.py
    • you will now be able to access the Internet, try for example pkg-list
  • To enable file access through Mfa, configure the VM as follows:

    • configure your VM: COM1 - TCP, server, 7770
    • start /Apps/Mfa.HC.Z in the VM
    • on the host, use ./mfa.py to transfer commands and files
    • for example: ./mfa.py list /Apps/Mfa.HC.Z Mfa.HC

Both of these can be used simultaneously.

Package management functions

Note: In Lsh, use pkg-install xyz in place of PkgInstall("xyz") etc.

  • PkgList;

    List all packages available in the repository.

  • PkgInstall(U8* package_name);

    Download & install a specific package.

  • PkgInstallFromFile(U8* manifest_path);

    Manually install a downloaded package. Manifest must reference an existing .ISO.C path.

  • PkgMakeFromDir(U8* manifest_path, U8* src_dir);

    Build a package from directory contents. For an example manifest, check here. Manifest must reference a valid .ISO.C path which will be used as output!

  • PkgMakeFromFile(U8* manifest_path, U8* file_path);

    Build a package from a single file. See above for details.

See here for more information about how packages work.

Building from source

See here