Меня тут осенило «в порядке бреда» безумное видение. Вы ведь знаете как устроены смарт-карты? Процессор, память, набор программ (да-да, в этой маленькой метелической пластинке зашит набор программ). Снаружи эта штука берет только энергию и данные, и на выход подает тоже данные. Обработанные. А теперь, увеличим модель и построим компьютер будущего.
Его «позвоночник» это универсальная шина с открытым протоколом, позволяющая гнать поток данных от точки к точке, примерно как нынешние сокеты. В этот поток капсулируются команды различных протоколов ввода-вывода. К этой шине подключен центральный процессорный модуль - небольшой маломощный процессор, который управляет шиной и координирует общение между другими модулями, необходимый объем оперативной памяти и контроллер системной шины. На его процессор и крутится операционная система.
К этой шине подключаются прикладные модули. Каждый такой модуль содержит три компонента процессор, затем чип контроллера памяти и ПЗУшку с кодом программы. Одна программа - один программный модуль. Каждый модуль при подключении к шине регистрирует в операционке управляющего модуля свои «умения» и начинку.
Запуск программы приводит к активации модуля. Модуль может запросить у операционной системы через системную шину сколько там ему надо оперативной памяти, а также отдавать команды типа «прочти мне такой-то файл» или «сохрани такой-то файл». Но самое главное - код программы всегда хранится в самом модуле, в его ПЗУ. Контроллер памяти реализует представление ПЗУ+памяти запрошенной по системной шине как единого адресного пространства. В результате каждая программа, запущенная в модуле, думает, что она одна такая единственная, работающая в однозадачной операционке. Надо нарисовать окно? Без проблем, через системную шину бросается команда «нарисуй окно», «напиши вот там-то текст». А если какому-то модулю не хочется ждать системную шину и не хрчется выдавать наружу свои локальные данные, он всегда может иметь свою оперативку.
Надо показать видео? Опять легче легкого - запускаем модуль «декодер видео», он создает окно с видеобуфером. При открытии файла через системную шину запрашивается канал от видеодекодера на нужный файл, нужное устройство или нужный сайт. Данные попадают в декодер, тот их декодирует и фрейм вписывает в свое окно. После чего основная операционка, используя например аналог OpenGL отправляет команду на прорисовку в модуль видеоадаптера. А может быть и видеоплеер работает в основной операционку, а вот кодек на внешнем модуле. Или наоборот.
А програмный модуль Crysis IV вообще гонит команды OpenDirectY, которые центральный модуль просто «ретранслирует» видеоадаптеру. Красота! Взяли чип MS Office, воткнули его в хост с линуксом - и вот вам MSO в линуксе. Или iTunes в соплярисе. И orale в jailbsd.
В результате, одна копия программы == одна железка. Да, а ведь каждый модуль может иметь свой сертификат, зашитый в него вендором... И тогда любой другой модуль сможет обмениваться с ним данными по защищенному каналу, шифрованному с обеих строн. И проверить, что это действительно тот самый модуль. И хостовая ОС ничего не увидит. И обновления (прошивки модулей) будут передаваться шифрованными и подписанными.
Копирастический рай. Ты можешь делать все что угодно, но то что ты сделаешь не будет работать, ибо другие модули «это» к своиданным не пустят. Тебе нужна программа? Вот тебе железка с программой - попробуй скопируй.
Фактически, мы получаем X11 на кластере. Думаете, бред? А вот хрен там. Зачатки этого уже есть в Vista (почему она и была такой тяжелой и глючной). Так что будущее у нас хреновое - как только научаться клепать за смешные деньги миллиардами копий типовые чипы, так и придет писец.