Пару месяцев назад на глаза попался анонс "облачной" ОС под названием OSv. Идея там была простая: зачем держать на облачных серверах традиционную ОС, если можно поверх железа запускать гиппервизор, на нем тонкую специализированную прослойку OSv, внутри которой будет работать JVM с пользовательским приложением? Довольно подробно эта мысль освещается в презентации по OSv, если кто еще не видел, то рекомендую. А последний слайд, для наглядности, я размещу прямо здесь:
Вчера увидел анонс еще одной облачной ОС -- MirageOS. Разрабатывает ее, похоже, та же команда, что и Xen. Идея, как я понимаю, в MirageOS практически такая же, как и в OSv. Но, если OSv затачивается на запуск базирующихся на JVM приложений (не только Java, но и JRuby, Jython, Clojure), то в MirageOS основным языком является OCaml.
Разработчиков MirageOS я могу понять. У них сильна вера, что если взять "правильный" язык, и все сделать "правильно" с самого начала, то получится хорошая и удобная экосистема, в которой разработка и обслуживание приложений будет проще, удобнее, безопаснее и дешевле. В принципе, я сам придерживаюсь такого же взгляда на SObjectizer. Но очень явных и впечатляющих успехов на этом поприще добилась Apple со своей экосистемой из MacOS/iOS, Objective-C, и собственными сервисами вроде iTunes.
Так что подход разработчиков MirageOS/Xen мне понятен. Но более симпатичен, все-таки, взгляд на вещи команды OSv. Какую бы удобную и уютненькую домашнюю атмосферу не предоставляла бы MirageOS, но необходимость использования OCaml... Тогда как в OSv можно задействовать уже имеющиеся наработки на Java/Ruby/Python/Clojure и даже что-то на C.
Но вот что вызывает в связи с этим всем мое недоумение, так это отсутствие новостей о попытках выйти на рынок "облачных" ОС производителей специализированных ОС, таких как ОС реального времени. Когда в конце 90-х годов я работал в КБСП в отделе, связанном с системами АСУТП, довелось узнать, что помимо традиционных и хорошо известных всем ОС (вроде Windows, OS/2, Linux, Free/Net/OpenBSD, Solaris, HP-UX и т.д.) существуют мало кому известные, заточенные под задачи реального времени, специализированные промышленные ОС. Вроде QNX, OS-9000, VxWorks и пр.
Интересной фишкой некоторых из них было то, что ОС строилась полностью по модульному принципу и можно было покупать только те части ОС, которые нужны были для конкретной задачи. Например, можно было купить только ядро ОС с функциями диспетчера процессов, обработки исключений и распределения памяти. Но без файловой системы, сетевого стека и консоли. Можно было купить ядро и сетевой стек. Можно было ядро и файловую систему. Ну и так далее, в общем, любой каприз за ваши деньги.
Так вот для меня непонятно, почему производители таких ОС не пытаются влезть в нишу облачных систем. Ведь у них уже есть годами отшлифованные наработки (по тому же сетевому стеку, например). Плюс, большинство из них поддерживает POSIX, а некоторые, наверняка поддерживают и довольно свежие версии GCC. Так что портирование приложений на такие платформы вряд ли потребует серьезных трудозатрат.
Хотя, может я просто не слышал о таких попытках, а на самом деле они есть. Все-таки от "облаков" я очень далек, многого не знаю. А может дело намного проще: все упирается в деньги. Ведь специализированные ОС РВ -- это коммерческие продукты. А не OpenSource разработки, вроде Linux-а. Если облачному провайдеру нужно поставить ОС на несколько тысяч серверов, а каждая инсталляция обойдется ему в какую-то сумму лицензионных отчислений, то вопрос в пользу бесплатного дистрибутива Linux или FreeBSD будет решен сам собой :)
С другой стороны, может разработчики ОС РВ вовремя не заметили тренда. А может, как в случае купленой BlackBerry и находящемся сейчас в непонятном статусе QNX, у них есть совсем другие проблемы...
PS. Кстати говоря, не так давно узнал, что PalmOS довольно долго не была полноценной ОС, а базировалась на базе ядра ОС AMX от KADAK Products Ltd. И отсутствие реальной многозадачности в первых версиях PalmOS было вызвано такой банальной причиной, как условия лицензирования AMX: Palm просто не купил соответствующий модуль AMX! Между тем, AMX RTOS вполне себе живет и здравствует до сих пор.