|
|
|
@ -192,23 +192,23 @@ This work is licensed under a Creative Commons license, which means you are allo
|
|
|
|
|
|
|
|
|
|
\epigraph{``Long is the way and hard, that out of Hell leads up to light.''}{\textit{John Milton\\Paradise Lost, Book II}}
|
|
|
|
|
|
|
|
|
|
I must admit, it was largely the rather intriguing name of this operating system that made me want to know more about it and conduct more research on it. I had come across it on one of my quite common internet \textit{trips} wherein I simply hop from one hyperlink to the next, trying to discover something interesting — or, perhaps more accurately, something obscure.
|
|
|
|
|
I must admit, it was largely the rather intriguing name of this operating system that made me want to know more about it and conduct more research on it. I had come across it on one of my quite common internet \textit{trips}, wherein I simply hop from one hyperlink to the next, trying to discover something interesting — or, perhaps more accurately, something obscure.
|
|
|
|
|
Frequently these \textit{trips} end unsatisfactorily; yet this time, luck seems to have been on my side, for I was finally able to uncover something interesting — why, even mysterious. I am of course speaking of the \textit{Inferno operating system} created by the renowned Bell Labs in 1996.
|
|
|
|
|
|
|
|
|
|
They had previously worked on \textit{Plan 9 from Bell Labs} — why they felt the need to add the ``from Bell Labs'' portion is, unfortunately, beyond me — which, just as Inferno, has largely fallen into obscurity. It is now just to be found in the dark and long forgotten and abandoned corners of the web that seem to be frozen in time, containing information and discussions from days long past; that are held aloft simply by someone continuing to pay for server bills. It's a pity, really, how large amounts of information can simply vanish from the world by someone — perhaps quite literally — pulling the plug.
|
|
|
|
|
|
|
|
|
|
Plan 9 — as I will be calling it henceforth, ignoring the \textit{from Bell Labs} portion of its name, for I trust you will know that I am indeed referring to the operating system and not the film — was actually what I had found prior to Inferno.
|
|
|
|
|
|
|
|
|
|
I am unsure of the precise circumstances that let me to its discovery, but I distinctly remember discovering a page filled with interesting documents on a wide range of topics, which can be reached under the following address: \texttt{http://doc.cat-v.org/}.
|
|
|
|
|
I am unsure of the precise circumstances that led me to its discovery, but I distinctly remember discovering a page filled with interesting documents on a wide range of topics, which can be reached under the following address: \texttt{http://doc.cat-v.org/}.
|
|
|
|
|
This fascinating archive of old documents contains a myriad of interesting titbits on both Plan 9 and Inferno — and other topics as well.
|
|
|
|
|
|
|
|
|
|
I thus decided to start reading some of the documents available on Plan 9 and was quickly intrigued — for seeing an operating system whose creators are the same ones that created the beauty that is UNIX was truly remarkable; why had I not heard of it previously?
|
|
|
|
|
I thus decided to start reading some of the documents available on Plan 9 and was quickly intrigued — for seeing an operating system whose creators are the same ones that created the beauty that is Unix was truly remarkable; why had I not heard of it previously?
|
|
|
|
|
|
|
|
|
|
Yet to my utter dismay, it was quickly revealed that it seems to have been long forgotten and abandoned — but a mere relic of the past — and that one can count its user base on two hands; and while there appears to remain a small number of people that continue using it, its ultimate failure was being unable to prove much better than what it strove to replace — UNIX itself.
|
|
|
|
|
Yet to my utter dismay, it was quickly revealed that it seems to have been long forgotten and abandoned — but a mere relic of the past — and that one can count its user base on two hands; and while there appears to remain a small number of people that continue using it, its ultimate failure was being unable to prove much better than what it strove to replace — Unix itself.
|
|
|
|
|
|
|
|
|
|
For they realised their old operating system had become \textit{too} old, even by the standards of the mid-1980s. They wished to create a system — from scratch — that would encompass these newfangled ideas, such as graphical user interfaces; a system that did not have these features haphazardly stitched on — as a surgeon would try to fix a severely wounded fellow — but one that was built with them in mind; a system that would abide by UNIX' philosophy of everything being a file, but one that was more adapt to modern — at least, for the time — standards.
|
|
|
|
|
For they realised their old operating system had become \textit{too} old, even by the standards of the mid-1980s. They wished to create a system — from scratch — that would encompass these newfangled ideas, such as graphical user interfaces; a system that did not have these features haphazardly stitched on — as a surgeon would try to fix a severely wounded fellow — but one that was built with them in mind; a system that would abide by Unix' philosophy of everything being a file, but one that was more adapt to modern — at least, for the time — standards.
|
|
|
|
|
|
|
|
|
|
But alas, as the passage of time has revealed, their efforts have been in vain; for ask any fellow, even those who are learned and know of computers, and chances are high he will not know of their failed efforts to create a superior UNIX.
|
|
|
|
|
But alas, as the passage of time has revealed, their efforts have been in vain; for ask any fellow, even those who are learned and know of computers, and chances are high he will not know of their failed efforts to create a superior Unix.
|
|
|
|
|
|
|
|
|
|
Yet this is not a tale of Plan 9, it is one of its successor Inferno. Having learnt from their former mistakes with Plan 9, they strove to create a superior Plan 9; one that would be used in network environments; one that was portable and lightweight and could easily run on a myriad of different types of machine.
|
|
|
|
|
Yet tragically, even Inferno seems to have gone under — perhaps even into hell itself.
|
|
|
|
@ -233,9 +233,9 @@ Indeed, something I had neglected to mention previously was the fact Inferno is
|
|
|
|
|
|
|
|
|
|
Thus choose wisely; do not download the wrong archive, for it may not work. As I am running Linux, I chose their archive meant to be used with Unix-like systems, of which Linux is one. It is, as previously mentioned, an archive and must thus be extracted, a task easily accomplished with Linux' helpful \texttt{tar} command; one must simply type \texttt{tar xf} followed by the name of the archive and it is extracted into its own directory.
|
|
|
|
|
|
|
|
|
|
Upon entering the directory so thoughtfully created by the \texttt{tar} command, one is greeted by files upon files and folders upon folders. Indeed, it may be slightly disorienting — even off-putting — to those uninitiated to Unix-like systems; but, as one is swift to notice, there are two helpful documents to guide us in our installation journey: a \texttt{README.md} and an \texttt{INSTALL} document. Therein you will find a lot of information imperative in performing in our task of installing Inferno; thus, let us first take a look at the README.
|
|
|
|
|
Upon entering the directory so thoughtfully created by the \texttt{tar} command, one is greeted by files upon files and folders upon folders. Indeed, it may be slightly disorienting — even off-putting — to those uninitiated to Unix-like systems; but, as one is swift to notice, there are two helpful documents to guide us in our installation journey: a \texttt{README.md} and an \texttt{INSTALL} document. You will find included therein a lot of information imperative in performing in our task of installing Inferno; thus, let us first take a look at the README.
|
|
|
|
|
|
|
|
|
|
Inside the README one finds general information regarding the operating system, detailing its creators and purpose. Additionally, it highlights what makes it so interesting — yet also similar to Unix: —
|
|
|
|
|
Inside the README one finds general information regarding the operating system, detailing its creators and purpose. Additionally, it highlights what makes it so singular — yet also similar to Unix: —
|
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
The use of a high-level language and virtual machine is sensible but mundane. The interesting thing is the
|
|
|
|
@ -253,7 +253,7 @@ For therein we are presented with actual instructions, but as they may appear cr
|
|
|
|
|
It is, however, to be noted that my instructions henceforth will work only on Linux x86; should you wish to be presented with instructions regarding other systems — systems whose name should not be spoken, for they are vicious and vile, forged somewhere far below hell itself; in a place Be\"{e}lzebub himself does not dare to enter — you may cease your reading here, for you may not find the information you desire. The following chapter is akin to a recipe from a cook book; hence follow the instructions with care, or your ``meal'' may turn out wretched, ugly and inedible.
|
|
|
|
|
|
|
|
|
|
One must first define the \textit{root} of the installation; this may sound somewhat strange, yet in actuality one is simply required to aid Inferno in knowing where on your system it is located — it cannot know on its own and assumes it is located in \texttt{/usr/local/inferno}. Hence, should you not wish Inferno to be installed there, you must alter the \texttt{mkconfig} file; therein you can modify the \texttt{ROOT} variable to point to your Inferno directory.
|
|
|
|
|
Yet withal, I would recommend simply using the directory Inferno wishes to be inside of by creating it using \texttt{sudo mkdir /usr/local/inferno} and thereafter copying the contents from the old directory to the new one by typing \texttt{sudo cp -r * /usr/local/inferno}; I have found this to be much more simple. You must then move into this directory by typing \texttt{cd /usr/local/inferno}.
|
|
|
|
|
Yet withal, I would recommend simply using the directory Inferno wishes to be inside of, by creating it using \texttt{sudo mkdir /usr/local/inferno} and thereafter copying the contents from the old directory to the new one by typing \texttt{sudo cp -r * /usr/local/inferno}; I have found this to be much more simple. You must then move into this directory by typing \texttt{cd /usr/local/inferno}.
|
|
|
|
|
|
|
|
|
|
But be aware! Apart from the \texttt{ROOT} variable, there exist two others, namely \texttt{SYSHOST} and \texttt{OBJTYPE}; it is crucial to modify these so that they match your system, for otherwise your installation will fail — indeed, this is akin to letting a scoundrel wreak havoc on your system. Thus — this is, unless you are using one of the aforementioned systems whose names should never be mentioned, for they cause terror and fear far greater than that caused by the devil himself —, pay heed to the values of these two variables, for they ought to be set to \texttt{Linux} and \texttt{386} respectively. The latter should be modified to equal \texttt{arm} should your Linux installation be ARM-based, such as those running on the Raspberry Pi.
|
|
|
|
|
|
|
|
|
@ -305,9 +305,9 @@ Finally, the time has come for us to install Inferno; the final command that wil
|
|
|
|
|
|
|
|
|
|
The gates of hell now ajar; the hellish brute now released; as Bucchianeri once said, ``The gates of hell are terrible to behold, are they not?''; but alas, what is to be done now? How are we to enter Inferno? If you remember, we have told our machine where to find its binaries and thus we can simply run Inferno's emulator by typing \texttt{sudo emu} whenceforth one's Bash or Zsh prompt disappears; instead, a simple semi-colon becomes visible — you have trot onto Inferno's ground; you have stepped through the gates of hell, set ajar by our previous actions, and entered Be\"{e}lzebub's realm.
|
|
|
|
|
|
|
|
|
|
Certainly, it is to be wondered how this differs from our previous operating system — or from our previous shell for that matter —, for it seems like a mere inferior version of what appeared on our screen before. Indeed, it looks to respond to commands in much the same way as our Linux shell. Typing \texttt{ls} yields the same results as doing so on Bash; have our efforts been in vain? Are we to believe that Inferno is but a mere clone of Unix? Nay, it is but the first impressions that are the cause of this confusion; for you must keep in mind that Inferno was indeed created by the same geniuses that had once, in days long past, created Unix.
|
|
|
|
|
Certainly, it is to be wondered how this differs from our previous operating system — or from our previous shell for that matter —, for it seems like a mere inferior version of what appeared on our screen before. Indeed, it appears to respond to commands in much the same way as our Linux shell. Typing \texttt{ls} yields the same results as doing so on Bash; have our efforts been in vain? Are we to believe that Inferno is but a mere clone of Unix? Nay, it is but the first impressions that are the cause of this confusion; for you must keep in mind that Inferno was indeed created by the same geniuses that had once, in days long past, created Unix.
|
|
|
|
|
|
|
|
|
|
Undoubtedly proud of their previous achievements, they decided to implement — a wise decision, might I add — a large number of the commands that are to be found in Unix-based systems in Inferno. Yet you should not let yourself get fooled, for this is not Unix — 'tis merely hell hiding in plain sight; and whilst it is indeed possible to use Inferno from its shell only, it does provide a window manager; for, as I hope you remember, they longed to create an operating system that was built with a window manager in mind and not have it be, as was the case with Unix, an afterthought, carelessly plastered onto it years later.
|
|
|
|
|
Undoubtedly proud of their previous achievements, they decided to implement — a wise decision, might I add — a large number of the commands that are to be found in Unix-based systems in Inferno. Yet you should not let yourself get fooled, for this is not Unix — 'tis merely hell hiding in plain sight; and whilst it is indeed possible to use Inferno from its shell only, it does provide a window manager; for, as I hope you remember, they longed to create an operating system that was built with a window manager in mind and not have it be, as was the case with Unix, an afterthought carelessly plastered onto it years later.
|
|
|
|
|
|
|
|
|
|
Its window manager — simply and rather uncreatively titled \texttt{wm} — can be evoked by typing \texttt{wm/wm}, whereupon one will be greeted by a small window; indeed, its appearance is somewhat dull, consisting of a grey background, and a grey task bar — truly an atrocity to behold. Indeed, it is puzzling, for what is to be done? What is to be clicked? Whence can programs be started and wherefrom is a poor fellow supposed to receive help? Having been tossed down into this abysmal realm of dread, one is reminded of what, in his book Paradise Lost, John Milton writes: —
|
|
|
|
|
|
|
|
|
@ -326,7 +326,7 @@ Finally, the time has come for us to install Inferno; the final command that wil
|
|
|
|
|
|
|
|
|
|
For indeed it seems what have stridden upon a system wholly encompassed by the colour of despair, with no task to accomplish but to gaze upon its grey insipidness. You should not fret, though, for this is but a disguise; hiding beneath its ghastly appearance lie programs who are waiting eagerly to be used. To aid you in your journey, you shall henceforth be provided with photographs of the system as I see it, since I believe this will simplify your journey considerably; indeed, those poor souls whom the ability to use Inferno has not been bestowed, for they lack a proper system install it onto, are what these photographs will aid most substantially, as they may therefore see the happenings of our doings without needing their own installation.
|
|
|
|
|
|
|
|
|
|
But withal, those keenly-eyed amongst us may have observed the rather small square icon at the very bottom left of the screen, whose appearance is reminiscent of that of a tree, which is situated next to a sickly grey box containing the text ``Log''. The latter's function should be quickly understood by even the more simple-minded — it opens a window containing logs, which tell us about things that have inevitably gone wrong — and the function of the tree-like one, too, should be easily understood; for what hides in this precise spot on most operating systems? Why indeed, it is the start menu whose function, in most systems, encompasses the display of programs to start.
|
|
|
|
|
But withal, those keenly-eyed amongst us may have observed the rather small square icon at the very bottom left of the screen, whose appearance is reminiscent of that of a tree, which is situated next to a box of a sickly grey colour containing the text ``Log''. The latter's function should be quickly understood by even the more simple-minded — it opens a window containing logs, which tell us about things that have inevitably gone wrong — and the function of the tree-like one, too, should be easily understood; for what hides in this precise spot on most operating systems? Why indeed, it is the start menu whose function, in most systems, encompasses the display of programs to start.
|
|
|
|
|
|
|
|
|
|
Even \textit{its} appearance is rather colourless and uninspiring, for it consists merely of three sub-menus and six readily executable programs — of which there is one titled ``Manual'' and that shall be the one we will inspect first, as it may prove invaluable to receive some additional information.
|
|
|
|
|
|
|
|
|
@ -448,10 +448,10 @@ Finally, the time has come for us to install Inferno; the final command that wil
|
|
|
|
|
Ostensibly, one may wonder for what purpose the other programs have been constructed, since, indeed, Acme does what all other programs mentioned thus far — with the exception of Charon — can. The manual page for Acme describes it thusly: —
|
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
Acme manages windows of text that may be edited interactively or by external programs. The interactive interface uses the keyboard and mouse; external programs use a set of files served by acme[.] [...]
|
|
|
|
|
Acme manages windows of text that may be edited interactively or by external programs. The interactive interface uses the keyboard and mouse; external programs use a set of files served by acme[.] […]
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
Speaking of its manual page, it is the largest I have seen thus far, containing a great deal of information regarding its functions. Therefore, it shall be impossible for us to cover all its parts in-depth — indeed, we shall leave out a fair portion of it — and instead we shall be focussing on a small number of things I deem to be important or of interest.
|
|
|
|
|
Speaking of its manual page, it is the largest I have thus far seen, containing a great deal of information regarding its functions. Therefore, it shall be impossible for us to cover all its parts in-depth — indeed, we shall leave out a fair portion of it — and instead we shall be focussing on a small number of things I deem to be important or of interest.
|
|
|
|
|
|
|
|
|
|
The first aspect of this program I wish to illustrate is its mouse support; for, indeed, it may be controlled by one's mouse, yet its controls may seem rather unintuitive to those more accustomed to modern systems. One must also be prudent to differentiate between the title bar Acme has been imparted with by \textit{wm} and its inner title bars, as the one which it has received from \textit{wm} controls but the ``outer'' window of Acme itself; that is, it controls all of Acme, but not less and the inner parts of Acme cannot be manipulated or controlled using the outer title bar. The outer title bar, should my explanation sound too bizarre, is the title bar which contains the name of the program on its left side; and three buttons which enlarge, minimise or close the window respectively on the right side.
|
|
|
|
|
|
|
|
|
@ -459,7 +459,7 @@ Finally, the time has come for us to install Inferno; the final command that wil
|
|
|
|
|
|
|
|
|
|
I believe it pertinent, though, to commence by studying the individual parts of the inner title bars prior to my explanation of their controls — for how may one control something one has but little knowledge of?
|
|
|
|
|
|
|
|
|
|
As visible on the provided photograph, there exist several windows within Acme, whereof each is in the possession of its own bar; yet there also exists a title may I shall henceforth call the \textit{master title bar}, for therewith one may control all of the inner windows — indeed, one may spawn a new inner window with it. Peculiarly, there appears to exist an \textit {Exit} field on the master title bar, rendering the \textit{X} of the outer title bar redundant; surely, leaving it out would have not impeded the program's functionality in any way but could have aided in making it appear less complicated.
|
|
|
|
|
As visible on the provided photograph, there exist several windows within Acme, whereof each is in the possession of its own bar; yet there also exists a title bar I shall henceforth call the \textit{master title bar}, for therewith one may control all of the inner windows — indeed, one may spawn a new inner window with it. Peculiarly, there appears to exist an \textit{Exit} field on the master title bar, rendering the \textit{X} of the outer title bar redundant; surely, leaving it out would have not impeded the program's functionality in any way but could have aided in making it appear less complicated.
|
|
|
|
|
|
|
|
|
|
In addition to this absolutely expendable button and the aforementioned button permitting one to spawn a new column — or inner window —, three other buttons can be observed; namely \textit{Kill}, \textit{Putall} and \textit{Dump} — truly abhorrent names, I must confess, and ones that do not appear to have any discernible function, for clicking them seems to do but little. Thus, consulting the manual would no doubt be advantageous.
|
|
|
|
|
|
|
|
|
@ -479,7 +479,7 @@ Finally, the time has come for us to install Inferno; the final command that wil
|
|
|
|
|
``Write all dirty windows whose names indicate existing regular files''
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
It is truly remarkable how a manual page has the ability to baffle one so greatly that he is thence even more perplexed than he was prior to having read it. For, indeed, why would there be dirty windows on an operating system; something that does not physically exist? Let us therefore continue by examining the other windows' title bars, even though they, too, appear to contain names I find much too cryptic.
|
|
|
|
|
It is truly remarkable how a manual page has the ability to baffle one so greatly that he is thence even more perplexed than he was prior to having read it. For, indeed, why would there be dirty windows on an operating system; something that does not physically exist? However, I believe this being in reference to windows which have had changes done upon which have not yet been saved. Let us therefore continue by examining the other windows' title bars, even though they, too, appear to contain names I find much too cryptic.
|
|
|
|
|
|
|
|
|
|
The very first item thereon is a simple square, either suffused entirely by a cerulean colour or merely possessing borders of that colour, in which case the other parts of the square are entirely white; yet the reason wherefore there exist two distinct types of rectangles escapes me, for they seem to fulfil the exact same functions, namely moving the window around. Indeed, if one wishes to change the location of one of Acme's inner windows, one is required to press and hold the left mouse button and hence move the window whither one desires.
|
|
|
|
|
|
|
|
|
@ -503,8 +503,7 @@ Finally, the time has come for us to install Inferno; the final command that wil
|
|
|
|
|
\markboth{Tetris and Bounce}{Tetris and Bounce}
|
|
|
|
|
\addcontentsline{toc}{section}{Tetris and Bounce}
|
|
|
|
|
|
|
|
|
|
The system is bundled with two games, one of which one may scantly call a \textit{game}, for it is but a screen permeated by bouncing balls of varying colours and the only controls one has over said balls is the amount appearing on screen, which one may de- or increase, and the ability to draw lines, off which the balls are able to bounce.
|
|
|
|
|
|
|
|
|
|
The system is bundled with two games, one of which one may scantly call a \textit{game}, for it is but a screen permeated by bouncing balls of varying colours and the only controls one has over aforesaid balls is the amount appearing on screen, which one may de- or increase, and the ability to draw lines, off which the balls are able to bounce.
|
|
|
|
|
|
|
|
|
|
In addition to this, an actual game — a reproduction of the acclaimed \textit{Tetris}, a game which appears to have transcended time itself — can be played. Yet, once more, I cannot fathom wherefore this would be included, for this operating system was intended mainly for programmers who, I would like to argue, probably would not spend any time with playing a game, as their host operating system would have a much more capable environment for such an endeavour.
|
|
|
|
|
|
|
|
|
@ -522,7 +521,7 @@ Finally, the time has come for us to install Inferno; the final command that wil
|
|
|
|
|
\caption{The \textit{Coffee} program}
|
|
|
|
|
\end{wrapfigure}
|
|
|
|
|
|
|
|
|
|
Aside from the rather peculiar \textit{coffee} program, there exist a number of other utensils, which are to be found in the start menu's \textit{Misc} and \textit{System} categories respectively; therewith one may perform, amongst other things, system monitoring tasks or receive various kinds of information, such as the current date and time. Hereof, however, I found only a small handful significant enough to include herein, such as the rather simplistic, yet indispensable, \textit{task manger}. It functions in much the same manner as one would expect and is indispensable insofar that, should matters turn awry, one may terminate a program therewith in a swiftly fashion without having to result to the \textit{kill} command, saving one precious time to be spent attending to matters more serious and important.
|
|
|
|
|
Aside from the rather peculiar \textit{Coffee} program, there exist a number of other utensils which are to be found in the start menu's \textit{Misc} and \textit{System} categories respectively; therewith one may perform, amongst other things, system monitoring tasks or receive various kinds of information, such as the current date and time. Hereof, however, I found only a small handful significant enough to include herein, such as the rather simplistic, yet indispensable, \textit{task manger}. It functions in much the same manner as one would expect and is indispensable insofar that, should matters turn awry, one may terminate a program therewith in a swiftly fashion without having to result to the \textit{kill} command, saving one precious time to be spent attending to matters more serious and important.
|
|
|
|
|
|
|
|
|
|
Another program I found to be of much use is the rather simplistic, yet quite convenient, \textit{Colours} — although it appears Inferno is indecisive regarding the spelling of this word, for the title bar thereof reads \textit{Colors}, whereas the start menu entry uses the much superior British English spelling of \textit{Colours} — which allows one to choose a colour of one's liking, whereupon one is shown said colour's value in RGB and Hex. Yet, I must admit, the colours appear to have been arranged in a most peculiar fashion, with no discernible logic therebehind.
|
|
|
|
|
|
|
|
|
|