3 ms·
The best criticism of the concept of an "Operating System" is implicit in Joe Armstrong's thesis about Erlang: --------------------------- Such techniques are
by lkrubner 11y ago
The best criticism of the concept of an "Operating System" is implicit in Joe Armstrong's thesis about Erlang:
---------------------------
Such techniques are common in hardware platforms for building fault-tolerant systems but are not commonly used in software solutions. This is mainly because conventional languages do not permit different software modules to co-exist in such a way that there is no interference between modules. The commonly used threads model of programming, where resources are shared, makes it extremely difficult to isolate components from each other — errors in one component can propagate to another component and damage the internal consistency of the system.
...In our system "processes" and "concurrency" are part of the programming language and are not provided by the host operating system. This has a number of advantages over using operating system processes:
Concurrent programs run identically on different OSs—we are not limited by how processes are implemented on any particular operating system. The only observable difference when moving between OS’s, and processors should be due to different CPU speeds and memory sizes etc. All issues of synchronization, and inter-process interaction should be the same irrespective of the properties of the host operating system.
Our language based processes are much lighter-weight than conventional OS processes. Creating a new process in our language is a highly efficient operation, some orders of magnitude faster than process creation in most operating systems, and orders of magnitude faster than thread creation in most programming languages.
Our system has very little need of an operating system. We make use of very few operating system services, thus it is relatively easy to port our system to specialised environments such as embedded systems.
http://www.erlang.org/download/armstrong_thesis_2003.pdf http://www.erlang.org/download/armstrong_thesis_2003.pdf
- simoncion 11y agoNote: I'm having a lot of fun with Erlang. I'm very, very far from being an Erlang expert, but I'm having a lot of fun working on my little Erlang project. I don't read Armstrong's commentary as a criticism of the concept of an OS. I read it as the assertion that if you have specialized needs, the general-purpose code in most OS's is not-infrequently a poor fit for your application. Erlang still heavily relies on the hardware abstraction and device drivers provided by modern OS's, and still makes use of OS services, it just makes use of fewer of those services than some other software projects.