OSDev
http://osdev.su/

Химера ОС
http://osdev.su/viewtopic.php?f=4&t=169
Страница 1 из 7

Автор:  alexei [ 16 ноя 2007, 05:30 ]
Заголовок сообщения:  Химера ОС

И винда и линух стоят на идеях 20-ти летней давности. В эпоху интернета они просто не могут быть надежными. Разработки новых ОС на коленке утыкаются в драйвера и тихо ползут куда-то. Что делать? А кто виноват знают все :lol:
Предлагаю:
Сервера вместо драйверов. Каждый сераер (группа серверов) на своей виртуальной машине.
Маленький и простой гипервизор раздает железо серверам низкого уровня.
Сервера предоставляют ресурсы, включая виртуальное железо.
Гипервизор раздает эти ресурсы другим по их запросам (если разрешено).
Каждый сервер сидит в своём адресном пространстве своей VM и ничего не видит кроме тех ресурсов, которые ему дал гипервизор (CPU, BIOS, память, и т.д.)
Примеры серверов: File Server, Network Connection Server, Keyboard Server, Drive Server, Win32 Server, Virtual Memory Server, BIOS Server.
Поначалу почти всё можно просто собрать из готовых деталей :)
Наприер Линух как File Server и Drive Server, Колибри - Network, Windows - USB, а собственное творение (написанное как угодно и на любом языке) работает на своей собственной отдельной VM, получает сколько хочет памяти, процессоров и всго остального, включая ресурсы высокого уровня, например OpenGL дисплей :)
В дальнейшем происходит частичная замена серверов работающих под другими ОС на самодельные или написанные производителями железа.
Сервера будут простыми и ясными. В результате меньше багов и высокая скорость работы (потери на переключениях между VM будут, но зато всё остальное!)
Пояснения:
Ресурс - это некий протокол взаимодействия.
Сервер базирующийся на известной ОС - это user-mode программа, которая взаимодействует с другими серверами через гипервизор.
Сервера общаются через гипервизор.
Гипервизор простой потому, что он только ''распределяет'' ресурсы, обеспечивает связи серверов и переключает CPU.

Ваше мнение?

Автор:  phantom-84 [ 16 ноя 2007, 08:29 ]
Заголовок сообщения:  Re: Химера ОС

Либо "гипервизор" должен вобрать в себя всю работу с аппаратурой на самом низком уровне, чтобы VM нормально работали, а это уже не маленький "гипервизор", либо речь идет о микроядре, где по идее серверы не должны подвешивать систему и в случае чего легко перезапускаться, а на практике частенько подвешивают и не перезапускаются (система не падает окончательно, но контроль над ней теряется). Я это к тому, что идея не нова, но идеально реализовать ее на практике не реально.

Автор:  Himik [ 16 ноя 2007, 13:00 ]
Заголовок сообщения:  Re: Химера ОС

Интересно, а как будут взаимодействовать Линух File Server с Колибри Network?

Автор:  vkos [ 16 ноя 2007, 15:28 ]
Заголовок сообщения:  Re: Химера ОС

А зачем брать что-то из Линукс, что-то из Колибри?? Лучше сделать сервер, позволяющий запускать Линукс- или Колибри-приложения. А основную часть написать самому...

Автор:  SII [ 16 ноя 2007, 22:45 ]
Заголовок сообщения:  Re: Химера ОС

alexei

И винда и линух стоят на идеях 20-ти летней давности. В эпоху интернета они просто не могут быть надежными

Если неполиткорректно выражаться -- полная чушь, причём со всех точек зрения. И винда, и линух стоят на идеях никак не менее 30-летней давности ;) А их ненадёжность с эпохой интернета никак не связана -- они столь же ненадёжно работали (и работают) и без интернета. Главные причины ненадёжности -- громоздкость систем (как следствие неграмотного проектирования) и низкое качество реализации (как следствие стремление сделать "всё для всех", причём в сжатые сроки).

Автор:  alexei [ 17 ноя 2007, 00:00 ]
Заголовок сообщения:  Re: Химера ОС

Цитата:
Либо "гипервизор" должен вобрать в себя всю работу с аппаратурой на самом низком уровне, чтобы VM нормально работали, а это уже не маленький "гипервизор", либо речь идет о микроядре, где по идее серверы не должны подвешивать систему и в случае чего легко перезапускаться, а на практике частенько подвешивают и не перезапускаются (система не падает окончательно, но контроль над ней теряется). Я это к тому, что идея не нова, но идеально реализовать ее на практике не реально.
//Phantom-84 16.11.2007, 08:29

Допустим, запущен только один "сервер", который на самом деле полная ОС. В этом случае гипервизор фактически ничего не делает (позволяет ОС работать со всем железом) см. BluePill.
Если запущено две ОС, они-же сервера, (А и Б) и А получила диски, а Б сетевую карту, то обращения А к дискам идут напрямую, а к сетевой карте эмулируются программой работающей на Б. Соответственно, на А работает программа эмулирующая диски для Б.
Пример не самый лучший, просто хотел пояснить идею.
И, конечно, эмуляция железа не самый лучший протокол взаимодействия серверов, хотя и полезный. Паравиртуализация с использованием специальных драйверов, которые поддерживают более эффективный протокол, будет работать быстрее.
Пример: виртуальный BIOS, который позволяет грузиться с iSCSI или даже HTTP ;)

Не вижу ни "всю работу с аппаратурой на самом низком уровне" ни микроядра.
Передача прерываний и трансляция обращений не такая уж большая работа, хотя, конечно, там будут свои проблемы :(

Автор:  SII [ 17 ноя 2007, 00:39 ]
Заголовок сообщения:  Re: Химера ОС

alexei

Извините, а как будете делить неделимые ресурсы вроде контроллера прерываний? И кто будет управлять памятью? А процессорное (реальное) время кто делить будет между "серверами"?

Автор:  alexei [ 17 ноя 2007, 08:39 ]
Заголовок сообщения:  Re: Химера ОС

Цитата:
alexei

Извините, а как будете делить неделимые ресурсы вроде контроллера прерываний? И кто будет управлять памятью? А процессорное (реальное) время кто делить будет между "серверами"?
//SII 17.11.2007, 00:39

Это всё, конечно, будет делать гипервизор - больше некому.
"Общесистемный" Paging - тоже забота гипервизора, хотя чтение/запись страниц будет делать отдельный сервер.
Большая проблема с shared interrupts :( Пока думаю переназначать IRQ так, чтобы каждый IRQ относился только к одному серверу. :(
В общем случае, гипервизор транслирует или эмулирует прерывания.
Физические страницы назначает и распределяет гипервизор, так чтобы VM могла иметь "псевдо-физическую" (виртуализировуемую гипервизором) памать любого размера.
Распределение процессора для time-critical I/O тоже не просто, но возможно (это уже детали реализации).

Автор:  vkos [ 17 ноя 2007, 10:53 ]
Заголовок сообщения:  Re: Химера ОС

С прерываниями можно организовать так:
Гипервизор обрабатывает все прерывания, а во время обработки выполняет код серверов, которые "попросили" это прерывание.

Автор:  sadko [ 17 ноя 2007, 12:29 ]
Заголовок сообщения:  Re: Химера ОС

Чё-то бред полнейший. Так безграмотно обращаться с ресурсами.

Страница 1 из 7 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/