After Linux: National Server Operating System in the Right Way

Sur CTOCIO.com

Russia [1], China [2], India [3], Turkey [4], France [5] are all creating or planning to create their national operating system as a way to reduce their dependency to US software dominance. Are those plans going to succeed ?

 

Unix: a national OS that became international

A “National OS” strategy is not wrong per se. It can even be successful.

Unix and POSIX are good examples of an operating system financed by US national interests that became successful after an open source version created in Finland under the name “Linux” solved interoperability issues among vendors and hardware. The ADA language [6] – a kind of national lingua franca for aerospace industry – was actually designed in France to introduce better type checking for embedded systems and is now used in the US more than anywhere else.

Becoming international and bringing major innovations without blocking interoperability seems to be the secret for a “National OS” to be successful. Are thus any problems that a mature and apparently perfect GNU/Linux distribution such as Debian still does not solve?

 

Virtualisation: solving real problems of current operating systems in the wrong way

Much effort has been invested in cloud computing for now ten years. Let us analyse those efforts from an “operating system” design standpoint and make a typical list of the problems that Cloud tries to solve in POSIX operating systems.

Problem 1. Current POSIX operating systems do not provide strong isolation between services implemented as processes. Cloud uses CPU virtualisation to provide process isolation.

Problem 2. Current POSIX operating systems do not support multiple versions of the same service. Cloud uses multiple virtual disk images to run multiple versions of the same service.

Problem 3. Current POSIX operating systems do not support the paradigm of “multiple instances of the same class of service”. Cloud uses multiple virtual disk images to run multiple instances of the same service.

Problem 4. Current POSIX operating systems do not support configuration of multiple inter-related services. Cloud uses network virtualisation or orchestrators to connect multiple virtual disk images or containers.

Problem 5. Current POSIX operating systems do not support remote deployment of services. Cloud uses remote deployment of virtual disk images to remotely execute a service.

Problem 6. Current POSIX operating systems do not natively monitor services. Cloud uses dedicated monitoring services that often run outside the Cloud infrastructure.

Problem 7. Current POSIX operating systems do not support accounting and billing of resources used by services. Cloud uses dedicated third party applications for accounting and billing applications that often run outside the Cloud infrastructure.

Each of the 7 problems we have listed defines possible improvement that National OS could provide over current GNU/Linux distributions.

Those improvements are not really new: operating systems of mainframe computers have solved quite well the 7 problems them for more than 40 years. Those improvements also relate to 20 years old effort to turn Unix into fully distributed operating system that has until now not succeeded.

 

Single System Image: “everything is a distributed file”

OpenSSI [7] and MOSIX [8] provided a first solution in 1977 to turn Unix and later Linux into a distributed operating system. They were followed by Kerrighed [9] in 1998 and XtreemOS [10] in 2006. Under the term “Single System Image” (SSI), the idea is to aggregate multiple Linux servers as if they were a single one with petabytes of RAM and tens of thousands of processors. Processes started on one server are capable of migrating transparently to another server in order to optimize hardware resources without the user having to care about it.

MOSIX did not last very long [11]. Kerrighed commercial company closed in 2014 after 16 years of R&D [12]. Even though the single system image (SSI) approach is the most elegant, it does not seem ready yet for production. It also does not solve most problems that found in traditional POSIX operating systems, such as native support of multiple versions and multiple instances of a service.

Another major approach started in 1987 – Plan9 and its successor Inferno – prove that it is possible to design a modern distributed operating system based on the Unix philosphy of “everything is a file”. But becase Plan9 break compatibility with POSIX codebase and only solves part of the 7 problems that we listed, Plan9 was never adopted much outside research projects such as Akaros [13] .

 

Mesh Computing: “everything is a service”

A new generation of operating system has recently emerged by focusing on packages and services rather than on files. In recent conference, Hewlett Packard CTO described them as “mesh” [14]. Two initiatives are worth attention: NixOS and SlapOS.

NixOS, started in 2004, considers that the package manager is the most important component in a modern operating system. NixOS package manager innovative design can solve 4 of the 7 problems that we listed.

The NixOS package manager uses a declarative domain specific language to represent software packages, their dependencies and their configuration. It is able to install multiple versions of the same software on a single operating system, without containers or virtualization. It provides atomic upgrades and downgrades of consistent set of packages. NixOS support distributed package management and configuration, with a declarative model and garbage collection that are consistent with functional philisophy that guided its origin. In 2012, NixOps has introduced cloud extensions that support remote deployment of services in the same way as local deployment of packages with the same declarative language. But at the same time, NixOs has started to introduce some imperative programming and containers that depart from its original philisophy.

SlapOS started in 2010 with the idea to fully automate the operation of multiple instances and versions of arbitrary services on a decentralized infrastructure at minimal cost. Just as NixOS and Disnix, SlapOS relies on declarative language to describe software build, deployment and configuration on a distributed infrastructure. SlapOS also describes with the same declarative language: monitoring, backup, restore, accounting and billing of services. SlapOS has been used in a few large companies to deploy ERP applications: Airbus (Germany), SANEF (France), Kyorin (Japan).

SlapOS brings a couple of ideas that are still unique in POSIX world and that solve all of the 7 challenges we listed. Its core design is a compact ERP model. Users can request any quantity of software services from a distributed software catalog (ex. a database service), just like they would request products from an online shop. SlapOS delivers requested service to the user, monitors it, accounts resource usage and generates an invoice. All objects in SlapOS can be represented by a Web URL, which provides unique naming and decentralised management of shared resources. Security relies on the generation of X.509 certificates for every service, software, computer, IPv6 address and every user through a distributed Public Key Infrastructue (PKI). Binary isolation between processes is achieved through Israel originated ZeroVM technology [15] . Isolation properties of SlapOS have been demonstrated through a still unique formal proof by French Atomic Energy Research Center [16].

 

Overcoming the challenge of adoption through new products

Rebranding existing operating system has never created much traction in the absence of innovation. Security extensions sponsored by state army – such as in SE Linux [17] or Kylin Linux [18] – always bear the suspicion of added backdoor from other states. The only reasonable path for a national operating system to gain wide adoption is thus to bring major innovations to the market. Mesh computing is one reasonable candidate for a national operating system.

But greatness of a technology such mesh computing – or Plan9 before – does not suffice for its adoption. Native orchestration, higher resilience and lower operating cost compared to virtualisation are insufficient arguments to convince conservative developers to spend even minimal effort to port applications from their current favourite environment. Recent efforts found for example in CoreOS [19] to seamlessly integrate containers [20] and orchestration into a Linux distribution with nearly no porting cost finds much more traction even if it leaves most of our 7 challenges unresolved.

If we look back in operating system history, MacOS was initially rejected by about any corporate IT expert. It could however gain adoption thanks to new products that did not fit in existing market segments: Desktop Publishing with PageMaker [21] and Rapid Application Development (RAD) with 4D [22]. New users of DTP or RAD did not care whether it was good or bad to use mouse and windows on a single threaded operating system which files had two so-called “forks” [23]. They just cared that they could get things done well, fast and cheap.

Finding new products and markets is thus probably the key for wide international adoption of a national mesh operating system. The end of network neutrality could for example create a market for a private CDN product based on mesh computing. Exponential growth of data and privacy concerns could favour plug-and-play, self-orchestrated Big Data product based on mesh computing. The need for different parties to deploy software in smart sensors calls for a new operating system that supports secure resource sharing with little overhead. Ability to run same binary application on different architectures (ARM, x86, etc.) for higher resilience against hardware backdoors is an obvious product for sensitive applications that can all simplify corporate IT with end of Intel dominance.

The race for the first killer product of “mesh computing” is now open.

Reference

[1] 俄罗斯将开发自主操作系统减少Windows依赖 – http://tech.sina.com.cn/it/2010-10-28/08474800078.shtml
[2] 中国政府采购对win8说不, 国产操作系统被寄予厚望 – http://news.163.com/14/0521/08/9SONC5MK00014JB5.html
[3] DRDO:开发属于印度人自己的操作系统 – http://www.ifanr.com/news/221832
[4] Linux无处不在!让我来告诉你它到底在哪! – http://linux.cn/article-2480-1.html
[5] Montebourg serait favorable à la création d’un OS “made in France” – http://www.zdnet.fr/actualites/montebourg-serait-favorable-a-la-creation-d-un-os-made-in-france-xptdr-39801597.htm
[6] Ada – http://zh.wikipedia.org/wiki/Ada
[7] OpenSSI – http://en.wikipedia.org/wiki/OpenSSI
[8] MOSIX – http://en.wikipedia.org/wiki/MOSIX
[9] Kerrighed – http://en.wikipedia.org/wiki/Kerrighed
[10] XtreemOS – http://en.wikipedia.org/wiki/XtreemOS
[11] openMosix Project Ends – http://sourceforge.net/p/openmosix/news/2008/02/openmosix-project-ends/
[12] Kerlabs – http://www.societe.com/societe/kerlabs-492287552.html
[13] Akaros – http://akaros.cs.berkeley.edu/akaros-web/news.php
[14] Complement The machine with a distributed mesh cloud, welcome to the future – http://h30507.www3.hp.com/t5/Cloud-Source-Blog/Complement-The-machine-with-a-distributed-mesh-cloud-welcome-to/ba-p/165020#.U8e4Jv5mK00
[15] ZeroVM – http://en.wikipedia.org/wiki/ZeroVM
[16] Formal Verification of the Runtime of ZeroVm, a Sandbox Technique Based on NaCl – http://sebastien.bardin.free.fr/seminaire.html
[17] SE Linux – http://zh.wikipedia.org/wiki/%E5%AE%89%E5%85%A8%E5%A2%9E%E5%BC%BA%E5%BC%8FLinux
[18] Kylin Linux – http://zh.wikipedia.org/wiki/%E4%B8%AD%E6%A0%87%E9%BA%92%E9%BA%9F
[19] CoreOS – https://coreos.com/
[20] Docker – http://en.wikipedia.org/wiki/Docker_%28software%29
[21] PageMaker – http://zh.wikipedia.org/wiki/Adobe_PageMaker
[22] 4D – http://www.4d.com/solutions/develop/design.html
[23] HFS – http://fr.wikipedia.org/wiki/Hierarchical_File_System