|
|
Да-а-а, тема "win32 в ядро линукс" оказалась куда продуктивней, чем я предполагал.
Во-первых, мне уже намекнули, что в ядро Линукса (точнее, в загружаемый "ядрёный" модуль)
планируют встроить не win32, а NT kernel API. Во-вторых, рассказали, что это будет
вовсе не так плохо, а даже скорее круто. В результате последовавшего обсуждения :-)
у меня сложилось следующее мнение.
- пусть делают, жалко что ли. Это модуль, в конце концов. Не нравится - не загружай.
- на общую глючность вроде как действительно сильно повлиять не должен - win32
до ядра не допустят, а ядерный модуль можно написать достаточно аккуратно.
- к wine и прочим win-эмуляторам (и не-эмуляторам) это отношения не имеет.
Точно так же как и к vmware. Несмотря на то, что изначально речь шла про
некие заточки для wine.
- wine наличие "ядрёного модуля, прикидывающегося ядром НТ" не поможет никак.
NT kernel API не особо "заточена" для постройки над ней именно winXX
(команды разработчиков ядра и win32-обертки явно взаимодействовали ну оч-чень слабо,
в результате NT kernel API не так уж чтобы сильно заточен для постройки над ним именно
winXX - часть возможностей kernel API просто не используется, а бОльшая часть win-функционала
реализована в самой win-подсистеме).
Поэтому если ставить целью разработать свой
эмулятор win32, то и "прослойку" к ядру имеет смысл придумать свою,
заранее заточенную именно под это, а не брать nt kernel API.
- учитывая вышеизложенное я вижу единственную причину создавать именно
NT kernel API, а не что-нибудь другое. И причина - желание использовать
поверх этого готовый win32, уже реализованный Микрософтом в win NT.
Выколупав его из дистрибутива, а точнее - "вколупав" в поставленную для этого NT
свой "эмулятор" вместо штатного ядра.
- это, с одной стороны, даже хорошо. Поскольку самостоятельная реализация
winAPI, со всем его набором взаимоскомпенсированных багов и недокументированных
фич, есть "закат солнца вручную" (что, при наличии энтузиазма в принципе
реализуемо, но солнце при этом случайно может закатиться на востоке, а потом не выкатиться
обратно), здесь же имеется тот самый winAPI, только работающий поверх другой
подложки - то есть, все баги и фичи выполнены автоматически (ибо они - (c)microsoft(r)(tm)),
работы же при этом нужно делать меньше (только "транслятор" ядрёных вызовов).
- с другой же стороны, это означает, что получается не win-эмулятор
вроде wine (который free), а некая подложка, на которую можно водрузить купленную
(или честно украденную) WinNT. То есть... шаг вперед по скорости после vmware
(та вынуждена эмулировать все железо, этой достаточно прикинуться ядром),
но - привязка к микрософту остается, и запустить msie на свежескачанном
с какого-нибудь redhat.com и свежепоставленном дистрибутиве линукса не удастся -
там просто неоткуда взяться winNT :-)
- вывод - пусть делают. Хуже не будет, а пригодиться может. Поскольку
винда в результате будет не "как настоящая", а самая настоящая в натуре, :-)
а уж кому это нужно - на НТишку разорятся как-нибудь.
| |
| |