Pharocloud OS

support (at), @pharocloud

Pharocloud OS project is a platform for compiling ISO images for minimalistic appliances. For instance, with Pharocloud OS you can create Pharo Live-CD (like PharoNOS) which runs Smalltalk and services like databases, hardware drivers, etc. Using this project you can package your Smalltalk software and all its dependencies in a form of a bootable ISO image with a result that can be burned onto CD or USB key or be run on a Virtual Machine.

Project is based on a TinyCore Linux distribution with an additional set of scripts and packages which allows building Pharo projects distributions as easy as possible.

The ISO images built with Pharocloud OS can be hosted as a Custom Appliances at Pharocloud appliance hosting.

Building Pharo Live CD

The base image to start with is Pharo Live CD project which allows to run Pharo as a sigleton application of OS. To build the default ISO Image follow the steps:

  1. Download and run TinyCore Linux live CD in a virtual machine. ( Core, 10 MB, tested on 6.4.1)
  2. Run the following commands inside the VM running TinyCore to prepare the enviroment:
    tar -xf os.tar.gz
    sudo sed -i '1 i\' /opt/tcemirror
    tce-load -iw mirrorfetch.tcz 
    tce-load -iw tca-build.tcz
    mkdir pharolivecd
    echo "3.16.6-tinycore" > pharolivecd/kernelver
    cat >pharolivecd/onboot.lst <<EOF
  3. To build an ISO image run the following command: -b os/32/boot pharolivecd

The result of the execution of the commands will be a pharolivecd.iso file which you may fetch from the virtual machine using scp command (to install scp execute: tce-load -iw openssh).

Zeroconf script

Alternatively, you may just run a zeroconf script by executing the following code inside the VM running TinyCore: wget -O - | sh. It will configure TinyCore Linux and compile pharolivecd for you.

Custom build

If you want to create your own ISO image use pharolivecd folder as an example. Create a new folder with a name to identfy your project and put at least two files in it:

  1. onboot.lst — a list of packets to be loaded to the ISO;
  2. kernekver — a kernel version string to be used as KERNEL placeholder in packets names (ex.: for scsi-KERNEL.tcz system will load scsi-3.16.6-tinycore.tcz.

Once the build system automatically downloads all the packets specified in onboot.lst from TinyCore repositories listed in /opt/tcemirror, you can use any packet which exists there.

You can have a local repository folder which contains your own tcz extenstion packets (see tutorial here: You can use -r flag to specify the pass to the folder-repository. Example: -r mytcz/ -b os/32/boot pharolivecd

os folder contains kernels and kernel-loader configurations to be used to compile an ISO image. You can change those configs to have a desired boot behavior. The os.tar.gz archive consists of 3 platforms to be used with script: os/32/boot for 32-bit appliances, os/64pure/boot for 64-bit only appliances and os/64_mixin/boot for both 32-bit and 64-bit appliacations on the same appliance (like 32-bit pharo + 64-bit mongo).

To change a keyboard layout of Live CD follow the documentaion of TinyCore here:

Related topics

  1. PharoNOS - Pharo No Operating System