the concept of fig os

fig os was originally an experiment to update puppy linux, by mixing in modern components from refracta.

on a more fundamental level, fig os is based on:

  • an automated script
  • which downloads and opens iso images for gnu/linux distros
  • then mixes (copies) certain components together
  • and compresses everything back into squashfs and an iso image


in order to do this, fig os borrows the isolinux configuration of one of its source distros.

fig is chosen for this task for the following reasons:

  • theres less fiddly syntax / whitespace than bash or python requires
  • theres less fancy footwork required than in bash
  • fig handles arrays pretty well, and can get them from shell output easily


in other words, i didnt prefer to use python or bash for this. mkfigos actually contains about 50% bash, but that is inside strings run by fig, and could be refactored to use less code (and less redundant bash code.)

one of the nice things about fig vs bash is that fig has real scoped functions– in bash, all variables are global. ive done very large bash scripts, and find those tedious.

here is a stack outlining what fig 2.4 consists of:

  • the bulk of the distro, copied from refracta
  • files and folders created from contents in script, and copied from librepup
  • a few tools created in fig and python, added from online repos
  • packages and updates from debian/security repos
  • deb packages added to filesystem using dpkg-deb -x (no chroot)
  • some configs changed using sed -i or similar fig routines
  • many files deleted from source distros for space
  • filesystem compressed using mksquashfs
  • iso written using genisoimage
  • made dd-able using isohybrid from syslinux


all this from a single fig program designed to run more or less unattended, making it relatively clear (vs. python or pure bash) whats being done to create the distro.

thats the idea, anyway. you can try the latest version (2.4) for yourself: …support forums and fig source at:




7 thoughts on “the concept of fig os

    1. at heart? since age 5. but a real cs engineer could run circles around me.

      i enjoy talking to people at various levels of experience, including beginners and experts. it depends on what they expect you to know; the guy that taught ee at mit and invented the strobe light? wonderfully friendly. took us on a tour around his lab and gave us little bits of wire as souvenirs. i want to inspire non-coders to dip their toes into the subject, and inspire more coders to write a toy language.

      Liked by 1 person

      1. Wow , I haven’t expected that ,well you are doing a great job . It’s important to promote coding in this digital world , I am learning computer science but from a very average university, but I wish to study more and I will ๐Ÿ˜€

        Liked by 1 person

        1. i really appreciate it. fwiw, python is a great language for education (and there are others– fig is written in python, and translates itself to python) but i learned BASIC when i was 5, travelled to dartmouth to bask in the place where the language was invented, and fig was created largely to offer the experience i had learning to code the-easiest-way-possible to people in the 21st century. there are other options like “drag-and-drop” coding– theyre good too. i wanted to make actually writing code as easy as i could. i think if more people make toy or educational languages, we will end up with more ideas on how to make serious languages that are easier to use. python is just one example of a powerful, easy language– probably one of the better ones in general to teach yourself to code. fig is designed to be easier for non-coders who arent (ever) going to teach themselves or take a year-long course: a programming language made for tutoring ๐Ÿ™‚

          Liked by 1 person

          1. We are basically taught languages like C,Java . Though,i have worked with JavaScript but it’s not too handy …But , I would love to know more about fig is there any book you would recommend …

            Liked by 1 person

            1. one of the posts you liked, “output commands in fig” is actually from the first book i wrote on it. ive written many tutorials and introductions in various styles and levels, but the most complete version is a free pdf here:

              im still editing that, but the draft version is accurate and up to date, and the code in it works. you can download fig2.9 here: though if you use windows, you will need colorama as well: if you have a mac or gnu/linux you dont need colorama, which is great– its a pain to install (just download the zip and run the install script… but if anyone ever finds a term window for windows xp/vista/7/8 that does ansi escapes, that would be a way better option than colorama.) please note that i will support fig on this blog as long as it doesnt become too popular ๐Ÿ™‚ so never hesitate to ask me questions about fig wherever you can find a place to ask. as for javascript… yes and no. thats another conversation worth having. ๐Ÿ™‚

              Liked by 1 person

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s