Why Machine Init?

Why Machine Init?

Mr. Robot Image by Bleeding Cool

My thoughts for the title of this blog, really spawned from a few sources of inspiration. First, as you may likely already have noticed, I really find a connection to Marvel's fictional character named Tony Stark, a genius, billionaire, philanthropist who became the armored superhero known as Iron Man. His "always tinkering" mentality lead me to begin tinkering on my own too; however, not only with simple electronics, like the Raspberry Pi, but also with complex ideas and processes, including information security, secure programming, and network and server infrastructure automation.

In many scenes, Tony Stark/Iron Man is seen constantly working, like a machine that's constantly running. It as though he runs on batteries...wait...he technically does run on batteries, or rather a single, mini arc reactor embedded in his chest. Perhaps that is why I was inspired, because I am constantly trying to learn new things and constantly working on expnanding my skillset...like a machine, iterating through new data inputs. Hmmm...Machine Learning...sounds like a good topic for a future post.

arcreactor.png Arc Reactor Image by Marvel Cinematic Universe Wiki

Anyways, another source of inspiration came from USA Network's show called Mr. Robot. In this show, a cybersecurity engineer demonstrates his persistence and knack for finding out how something works...or in many cases how it shouldn't work. He dissects problems, in processes, technology and people and learns to implement ways of bypassing their functions to discover another layer of information. In other words, he's "bug-hunting", finding ways in which someone, or something works or doesn't work by utilizing tools and techniques to explore more complex topics. In particular, there have been a few episodes that show the character utilizing Raspberry Pis, USB Rubber Duckies, femtocells, bluetooth signal sniffers, steganography, python scripts, Putty, ProtonMail, Elasticsearch, and Kali Linux to showcase the skills of a cybersecurity engineer or even to give a simple depiction of the white hat hacker mentality.

In one episode of Mr. Robot, the protagonist explains the topic of system runlevels. In very simple terms, a runlevel is one of the modes that a Unix-based operating system will run in. A runlevel is, for lack of a better term, a phase of the systems operation. At each of these phases certain processes are stopped or initialized (this is where Init comes from). When a linux system is restarted, or commonly referred to as rebooted, a program called init reads a set of instructions to determine what processes should run during a specified phase. Typically, the default phase is for a system to start normally. Below is a quick snapshot of the seven different runlevels, numbered from 0 to 6:

LevelModeAction
0HaltShuts down system
1Single-User ModeDoes not configure network interfaces, start daemons, or allow non-root logins
2Multi-User ModeDoes not configure network interfaces or start daemons.
3Multi-User Mode with NetworkingStarts the system normally.
4UndefinedNot used/User-definable
5X11As runlevel 3 + display manager(X)
6RebootReboots the system

Source: Linux Runlevels Explained

Yet another source of inspiration came from the movie Ghost in the Shell, mainly because the movie features many references to advances in technology and a prevalent theme of system security and data security throughout the movie. But also for the reason that the protagonist is, in essence, a conscious, human mind, embedded in a cybernetic body. However, this amalgamation of a the human mind and machines seems quite relateable to most of us today. We've come to have a persistent connection to our computing devices. Some users even having, what seems to be a second persona in the cyber-world, masking themselves from within the physical world. The title Ghost in the Shell, somewhat represents how I connect with the computing device from within the command line terminal, commonly known to others in the IT profession as the shell.

Simply put, Machine Init is just me navigating the shell, including the exploration of my operating system's programs, navigating the linux file system, writting bash and python scripts to automate tasks, writing blog posts in Markdown using the Vim text editor, exploring data science topics and hardware/software integration projects.