D-S писал(а):
SII писал(а):
D-S писал(а):
Я кстати операционками начал интересоватся с VMM и считаю его самой сложной частью операционной системы. Вторая по сложности - межпроцессные коммуникации. Если грамотно осилить и то и это - остальное вопрос техники.
Вообще-то самое сложное в любой полноценной оси -- это ввод-вывод. Он сложней, чем всё остальное, вместе взятое. Второй по сложности, вероятно, является эффективная поддержка многопроцессорности. Виртуальная же память, как и межпроцессные коммуникации -- это так, мелочи
Не согласный
. С вводом-выводом - поспорю. Тут тоже много темных мест и неправильно спроектированная система будет большой затычкой, но здесь всё гораздо более проработано у других авторов
"Гораздо более проработано" в сравнении с чем? С виртуальной памятью? Так дело в том, что виртуальная память не является необходимой: и без неё можно много чего полезного делать, а в некоторых применениях она вообще недопустима (в управлении технологическими процессами, например, где важно гарантированное время реакции). В частности, именно поэтому в своей системе я её пока вообще никак не поддерживаю: система ж в первую очередь для промышленного применения, где ВП только мешает. Хотя поздней будет и вариант с ВП -- для "конкуренции" со всякими там андроидами и прочими могильными виндами.
Тем не менее, факт остаётся фактом: самое сложное в развитой ОС -- именно ввод-вывод. Здесь дело в первую очередь заключается в "неоднородности" внешних устройств. Одно работает с процессором и памятью так, другое -- эдак, третье -- вообще самостоятельный процессор, ну т.д. А теперь добавьте сюда Plug&Play, "горячее" подключение, энергосбережение... С ВП же всё просто и понятно, никаких особых заморочек там нет.
Цитата:
Значит должна быть полностью продумана с самого начала - иначе как в линукс - за пару выходов субверсий дрова запросто перестают работать (во всяком случае раньше так было).
Вот-вот. И Винда в этом плане -- хороший пример. WDM держится уже четверть века, постепенно развиваясь и расширяясь, а восходит вообще к 1970-м годам. Ну а если уж что-то меняют, то из-за реально назревших вещей (например, перепилили графическую подсистему для поддержки DirectX 10), а не из-за того, что криво до этого было написано. Правда, WDM переусложнена...
Цитата:
Относительно VMM скажу, что память выходит сейчас выходит на первое место по затратности на скорость во время исполнения - так что грамотное исполнениее VMM - залог удачной системы
Нихт ферштейн
Что за "затратность" такая и как это связано со скоростью "во время исполнения"?
Цитата:
Даже в миникс, которую любительской язык не поворачивается назвать её нет толком.
А она и есть любительская. От того, что человек книжку выпустил, его продукт не становится автоматически шедевром.
Цитата:
У QNX - гибридное ядро (драйвера вне ядра, большинство подсистем - в ядре). Гибридное ядро - самое производительное и разумно минимальное, выигрышной темы для микроядра мне как-то не видно. Ещё одна засада для производительности - отдельное адресное пространство ядра. Необходимо дать возможность ядру непосредственно манипулировать данными в процессе.
Вообще, тут необходимо определится с терминами...
Угу, потому что с терминами слишком вольно обходятся. Если делить только на монолит и микроядро -- то QNX надо объявлять всё же монолитом, поскольку от настоящего микроядра там минимум (в виде выноса тех самых драйверов). Насёт производительности Вы загнули: теоретически самое производительное ядро -- это монолит, ибо только там минимальные накладные расходы.
У меня в этом плане нечто среднее между монолитом и QNX: драйверы могут входить в состав ядра, а могут быть выполнены как задачи режима пользователя. В частности, в ядре я размещаю все быстрые и компактные драйверы, напрямую работающие с "железом", в то время как тяжеловесные -- типа файловых систем -- будут выполнены в виде задач (пока поддержки для них нет, но думаю, появится довольно скоро: по работе надо будет обеспечить возможность чтения-записи SD-карт и флэшек, а значит, надо делать FAT32).
Цитата:
Не понятно только - откуда их так много в линукс и появились они там практически с самого начала. Если-бы в своё время там не появилось передового тогда графического интерфейса с сетью (а сделал это как раз не Торвальдс), возможно серьёзные дядьки и не заинтересовались линуксом. Почитайте его книгу внимательно. Его пригласила для знакомства Новелл, которая сама в это время делала графический проект для десктопа. Дальше пошли в ход деньги...
Насколько я понимаю, Л.Т. не делал полностью новую систему: он взял готовый API, с которым был знаком (униховый) и сделал свою реализацию этого АПИ. Благодаря этому на его системе появилась возможность запуска кучи готовых программ (для униха). Кстати, поэтому его система оказалась более вменяемой, чем КОС, где не было готового АПИ, и всё делалось прямо "из головы". Ну а чтобы из головы сделать, эта самая голова должна быть уже хорошо наполненной, а не только хорошо устроенной -- т.е. нужен приличный опыт изучения разных систем. А этого у подавляющего большинства осеписателей нет. (Кстати, у того же Л.Т. его тоже нет, из-за чего в Линухе полно глупостей вроде тех же проблем с драйверами).