Можно ли создать ОС, которая может запускать все приложения? - PullRequest
2 голосов
/ 26 января 2011

Просто подумайте: если нам нужно сделать наше приложение кроссплатформенным, то возможно ли создать кросс-прикладную ОС?

Ответы [ 6 ]

2 голосов
/ 26 января 2011

номер

Допустим, вы идете и инвестируете - огромное количество - усилий на создание вашей Uber-OS (которая будет запускать приложения Mac, приложения Linux, приложения Unix, приложения Android, приложения i-phone, приложения Nokia, Symbian приложения, приложения SAP, приложения Windows и т. д.)

Тогда ничто не мешает кому-то писать новую ОС, которую вы не поддерживаете.

P.S. Существуют сотни (если не тысячи) различных портативных устройств для сканирования продуктов, весов, данных и т. Д., Многие из которых имеют собственный вид ОС.

1 голос
/ 26 января 2011

Во-первых, существует практическая невозможность успешного отслеживания эволюции неограниченного числа операционных систем. Учитываем ли мы встроенную ОС? Как насчет одноразовой ОС для конкретных приложений? Как насчет проприетарной ОС без доступа к документации?

Тогда есть также - очень трудная, если не невозможная, проблема объединения различных парадигм, используемых в дикой природе. В идеале вы хотели бы, чтобы службы ОС, такие как буфер обмена, или сеть, или ... или ... работали единообразно и позволяли приложениям взаимодействовать, как если бы они были ориентированы на одну и ту же ОС.

(Давайте даже не будем думать о различных аппаратно-зависимых приложениях.)

После всего этого вы также должны подумать, как будет развиваться разработка приложений для вашей собственной ОС ...

Интересно, подходит ли это для теорем Гёделя о неполноте : -)

PS: Тем не менее, существует довольно много проектов, пытающихся преодолеть различные бреши в ОС:

http://en.wikipedia.org/wiki/List_of_computer_system_emulators

http://en.wikipedia.org/wiki/List_of_emulators#Operating_System_emulators

1 голос
/ 26 января 2011

Технически да, если вы ограничиваете область действия all всеми приложениями, работающими на основных ОС.

Теоретически возможно создать ОС, которая могла бы обрабатывать приложения, работающие на4-5 наиболее распространенных ОС, но объем работ будет огромен.

Каждый раз, когда в любую из ОС добавляется новая функция, вам также необходимо добавить ее в свою ОС - так жепоскольку его практически невозможно построить, вам понадобится достаточно большая команда разработчиков, чтобы опередить 4-5 самых больших команд / групп разработчиков в мире.

1 голос
/ 26 января 2011

Нет, но при виртуализации у вас может быть один компьютер , который может запускать любое приложение.

0 голосов
/ 26 января 2011

Что вы определяете в операционной системе, которая может запускать все приложения?

Приложения в основном написаны на языке более высокого уровня, а затем переводятся в двоичный код, который отличается между машинными архитектурами (например, Intel и PowerPC) и операционными системами (такими как системы на базе Windows или Unix).

Java, например, является только кроссплатформенным, потому что не сам язык является кроссплатформенным (любой язык высокого уровня), а потому что существуют виртуальные машины Java для разных архитектур и операционных систем, которые абстрагируют неоднородность базовой системы.

Это определенно не теоретически невозможно (ничего, кроме некоторых математических задач), но можете ли вы представить, что нужно сделать, чтобы заставить эту вещь работать? В основном вы можете запускать программы для Linux в Windows с помощью CygWin, вы также можете запускать программы для Windows в Linux с помощью Wine. Все они пытаются создать небольшую операционную систему (например, ядро ​​Windows) в вашей другой ОС (например, Linux). Это, вероятно, не то, что вы хотите.

Подводя итог, я не могу представить, чтобы кто-то действительно пытался это сделать. Со всеми деньгами в мире, серьезно. Лучше инвестировать в написание собственных приложений для операционных систем, которые вы хотите поддерживать.

0 голосов
/ 26 января 2011

Что вы можете сделать, это использовать виртуальные машины, такие как Программное обеспечение VMWare , и эмулировать несколько операционных систем на одной физической машине.

...