📜 ⬆️ ⬇️

The second acquaintance with OS Inferno

When it doesn’t work, many people read bash.org.ru or anekdot.ru ... and this winter I’ve crawled out of boredom to re-read the OS Inferno website. I used it with melancholy, because although I had long been drawn to Inferno, I had expected how much, how much, from the above-mentioned sites I was reading from the Inferno docks.

But something unexpected happened - in the process of reading, an insight came to me: I realized that OS Inferno is not an operating system, but a development environment !

Sounds weird? Yes. Especially strange, considering that the first offer on the Inferno website is “Inferno is a compact operating system ...”. The bottom line is that when pronounced "operating system" in our time in the minds of people have desktop Windows and Linux, and any other OS begins to compare with them. In addition to the desktop OS, few will even think about the server. But Inferno does not look sufficient even for the server, I’m not talking about the desktop. Thus, comparing Inferno with Windows and Linux, we come to the promising conclusion that Inferno is, although delightful, but a “toy” OS. Perhaps in the future, when bash, apache, mysql, perl, vi and mplayer appear in Inferno, it will become more or less usable ... The future has come, the last time I picked Inferno about 5 years ago ... and what? But nothing has changed, there is still no bash, apache, mysql, perl, vi and mplayer in Inferno!

My insight can be described as follows: Inferno is more like not the OS, but rather a regular service that shares the resources of the company, on which it is running, into the network, using the Styx protocol .
')
Yes, this, to put it mildly , is not quite an accurate description of Inferno ... ;-) but it instantly changed EVERYTHING: I stopped experiencing discomfort due to the lack of familiar software in Inferno - I can perfectly continue working in linux using familiar Vim (with syntax highlighting for Limbo !), Bash, mc for developing software for Inferno!

Moreover, after several days of hard work with Inferno, I started to tend to consider Inferno not as an OS, but as ... a programming language! :) For example, you can compare Inferno / Limbo and my favorite Perl. In both cases, I write a program, it is compiled into bytecode, and then executed inside the virtual machine. My program has access to some high-level abstractions, and low-level system calls (syscall). So in both cases, you can implement almost any task, and they are likely to work at a comparable speed (by the way, I conducted several tests that confirmed this). The only major difference is the environment with which my program interacts:

All these definitions of “what is Inferno” in fact, of course, are not Inferno definitions - for Inferno is a “compact operating system”. These definitions are simply trying to describe the relationship to Inferno, not “what is Inferno”, but “how to use Inferno”. For example, when I start to compare Inferno and Perl this is because when I need to develop some kind of application I can use either Inferno / Limbo or Linux / Perl. It is highly likely that the size of the code, the speed of development and execution will be comparable. And when I need to choose the most suitable platform for this task, I will choose between very rich and flexible Perl on the ugly Linux architecture, or not so rich and flexible, but very simple Limbo on the amazing Inferno architecture.

For example, if you need to write a web parser, a log analyzer, and other word processing applications, Perl is better for these tasks. But if you need something lower-level, for example, a complex server with asynchronous I / O, then on Inferno / Limbo it will be much easier and more pleasant to write such things.

As for existing applications in Inferno (browser, for example), then, as far as I understand, these are examples of applications, and nothing more. This is just a demonstration of the capabilities of the system, and for demos they are more than impressive!
Inferno Apps

In general, Inferno is a tool. The same as, for example, a programming language. And this tool has long been ready for use in real, commercial applications. And, like any tool, for some tasks it is much better suited than for others. But about it - next time .

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


All Articles