📜 ⬆️ ⬇️

The first acquaintance with OS Inferno

Initially, OS Inferno got me interested 5 years ago, when I read the phrase “New OS from C and UNIX authors, the result of 30 years of research!” Somewhere.

In the process of studying this issue, it turned out that before Inferno they had released another OS - Plan9 . I tried to install it myself, but unsuccessfully - it did not support my hardware. In Plan9, in general, in terms of supporting more or less modern iron, it is very bad (at least it was bad at that time, as I do not know now).

As for Inferno itself, the first impression was a complete delight: it can work both native (i.e., directly on hardware), and hosted (i.e., under a different OS). I couldn’t start Native Inferno for the same reason (iron support), but by and large I didn’t even really try - the hosted version completely suited me to study the system.

And in hosted mode, Inferno can work under Windows, under Linux, and under other Unixes, and even under Internet Explorer (with the help of a special plug-in, a java or flash window appears only with a Unix-like command line inside the html-page )! Update: the plugin works only under ancient IE, there were plans to make a plugin for Firefox, but it was never released.
Inferno IE plugin
')
The study of internal architecture and documentation only strengthened my delight - I had never seen such an elegant system ... the study of this system literally opened my eyes to how much POSIX is an ugly and over complicated thing.

Inferno weighs a penny at the present time, it works not just fast, it flies (and this despite the fact that the work goes in hosted mode under, for example, Windows, and not the command line is used, but the graphical environment a la X-Window.

But, gradually, the excitement began to give way to bewilderment: why is all this necessary, what can I personally be of practical use? Well, it works in the window under IE - and what, I will now sculpt CGIshki under Inferno and for work they will require this plugin and will work only in IE? Hardly it will take a ride in the current commercial programming ...

Yes, the architecture of Inferno is awesome, but to use it - oh, mom ... sh there, doesn’t support autocompletion of command names and file paths ... moreover, it doesn’t even support command history ... the graphic system exclusively uses Tk for graphics, which is quite convenient though but in programming it looks very ugly (by the way, it’s curious why Tk basically has no skins?) ... video, graphics, music players are there, but support for any codecs and formats is not so hot ... there is a browser, even with javascript and css support, but he is up to modern ennyh browsers still grow and grow ...

There is even an IDE for development - ACME. This is a text-based environment focused on working with a full-fledged three-button mouse. I have a normal mouse (that is, the third button is a push wheel), and I have not seen full-fledged three-button mice on sale for many years. I tried to work at ACME for a week, but I didn’t understand this Wednesday - I really missed my native Vim!

In general, the acquaintance ended with the removal of Inferno "until better times": when they make a normal sh in Inferno, they port Vim, Mplayer, etc.

By the way, porting unix software in Inferno is not easy - the fact is that, firstly, Inferno is incompatible with POSIX, and secondly, Inferno has no C language. Instead of C, there is a Limbo language that runs under the control of a virtual machine (a la Java). In Limbo there is an automatic garbage collector and there is no free work with C-style pointers. So porting Vim or Mplayer under Inferno will be very, very difficult.

The only benefit that I learned for myself from my first acquaintance with Inferno was some very successful architectural ideas that I used in subsequent years in my projects. But besides the benefits, there was also harm - I began to feel sick from POSIX.

A few months ago, I met Inferno a second time, and this time it went much better. Even despite the fact that no improvements in terms of sh interface or accessibility under Inferno Vim and Mplayer did not happen.

To be continued ...

Source: https://habr.com/ru/post/8935/


All Articles