Skip to content
This repository was archived by the owner on Apr 20, 2024. It is now read-only.
/ Shrine Public archive

A TempleOS distro for heretics

License

Notifications You must be signed in to change notification settings

minexew/Shrine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

348386b · Nov 13, 2020

History

81 Commits
Nov 12, 2020
Nov 13, 2020
Nov 13, 2020
Nov 13, 2020
Mar 3, 2020
Nov 13, 2020
Mar 3, 2020
Mar 3, 2020
Mar 3, 2020
Nov 12, 2020
Nov 13, 2020
Nov 13, 2020
Nov 13, 2020
Sep 9, 2018
Sep 9, 2018
Sep 9, 2018
Sep 9, 2018
Mar 3, 2020
Sep 9, 2018
Mar 3, 2020
Nov 13, 2020
Sep 9, 2018
Sep 9, 2018
Nov 13, 2020
Nov 13, 2020
Sep 9, 2018
Mar 3, 2020
Mar 3, 2020

Repository files navigation

Shrine is a TempleOS distribution full of sin.

Screenshot


Shrine aims to be 99% compatible with TempleOS programs, but also to improve OS in several ways:

  • Ease of use: Shrine ships with Lambda Shell, which feels a bit like a classic Unix command interpreter
  • Connectivity: TCP/IP stack & internet access out of the box
  • Software discovery: Shrine includes a package downloader

You can run Shrine in a virtual machine such as VirtualBox or QEMU, or on a machine compatible with standard TempleOS. Improvements in hardware support are planned and contributions are welcome.

Software included in Shrine:

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

Networking & host-VM communication

  • With a virtual AMD PCNet adapter (recommended)

    • configure your VM networking: Adapter Type: PCnet-PCI II (in 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 see a message about "Configuring network", the adapter was not detected.
  • Tunelled through serial port (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
  • File access through Mfa:

    • 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

Networking and Mfa 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