Setting Up
The following setup instructions assume that you have a Linux based machine.
If these instructions do not work, you can try the Docker based setup.
- Install prerequisites such as gcc, make, readline, flex/lex, bison/yacc
For Debian-based linux distros:
sudo apt-get install libreadline-dev flex bison make gcc wget curl
For Red Hat Linux based distros:
sudo yum install readline-devel flex flex-devel byacc make gcc wget curl
For Arch Linux:
sudo pacman -S readline flex bison make gcc wget curl
- In your terminal, copy and paste the following snippet and press enter:
curl -sSf https://raw.githubusercontent.com/eXpOSNitc/expos-bootstrap/main/download.sh | sh
When the script finishes executing, you will have a directory myexpos in your home drectory, with all components required for building your own eXpOS.
- Change directory to myexpos directory.
cd $HOME/myexpos
- Make to build all the components.
make
If the setup worked correctly, the following executables will be created :
- spl in $HOME/myexpos/spl folder
- expl in $HOME/myexpos/expl folder
- xfs-interface in $HOME/myexpos/xfs-interface folder
- xsm in $HOME/myexpos/xsm folder
If the setting up of the system is done correctly the following directories will be created.
- $HOME/myexpos/expl
This directory contains the ExpL (Experimental Language) compiler required to compile user programs to XSM machine instructions.
- $HOME/myexpos/spl
This directory contains the SPL (System Programmer's Language) Compiler required to compile system programs (i.e. operating system routines) to XSM machine instructions.
- $HOME/myexpos/xfs-interface
This directory contains an interface (XFS Interface or eXperimental File System Interface) through which files from your UNIX machine can be loaded into the File System of XSM. The interface can format the disk, dump the disk data structures, load/remove files, list files, transfer data and executable files between eXpFS filesystem and the host (UNIX) file system and copy specified blocks of the XFS disk to a UNIX file.
- $HOME/myexpos/xsm
This directory contains the machine simulator (XSM or eXperimental String Machine).
- $HOME/myexpos/test
This directory contains the test scripts for eXpOS