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.


  1. 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
  2. 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.
  3. Change directory to myexpos directory.
    cd $HOME/myexpos 
  4. 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


Setting Up (NEXSM)*



*This is relevant only for Stage 28 of the Roadmap.

  1. Download the complete eXpOS package from here.
  2. Copy the tar file to your home directory.
    cp nexpos.tar.gz $HOME/
    cd $HOME
  3. Extract the contents using the command.
    tar -xvf nexpos.tar.gz 
    Now you will have a directory myexpos in your home drectory, with all components required for building your own eXpOS.
  4. Install libreadline-dev package
    sudo apt-get install libreadline-dev 
  5. Make sure all the prerequisites which include gcc, flex/lex and bison/yacc are installed. In Ubuntu/Debian systems, use apt to install flex and bison.
    sudo apt-get install flex bison 
  6. Change directory to mynexpos directory.
    cd $HOME/mynexpos 
  7. Make to build all the components.
    ./make 

If the setup worked correctly, the following executables will be created :
  • spl in $HOME/mynexpos/nespl folder
  • expl in $HOME/mynexpos/expl folder
  • xfs-interface in $HOME/mynexpos/nexfs-interface folder
  • xsm in $HOME/mynexpos/nexsm folder

If the setting up of the system is done correctly the following directories will be created.
  • $HOME/mynexpos/expl
    This directory contains the ExpL (Experimental Language) compiler required to compile user programs to NEXSM machine instructions.

  • $HOME/mynexpos/nespl
    This directory contains the SPL (System Programmer's Language) Compiler required to compile system programs (i.e. operating system routines) to NEXSM machine instructions.

  • $HOME/mynexpos/nexfs-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 NEXSM. 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/mynexpos/nexsm
    This directory contains the machine simulator (NEXSM or NExt eXperimental String Machine).

  • $HOME/mynexpos/test
    This directory contains the test scripts for eXpOS.