-
> И это называется DMA.
Это называется отображение регистров устройств на память - схемотехническое решение для процессоров, у которых нет команд IN/OUT
-
> oxffff © (18.12.08 00:36) [39]
Кроме Intel и AMD есть еще ARM-ы и т. д. Мешать ничего не будет. Просто если устройство может писать в память, то, теоретически, оно может писать в пять код. И код может писать поверх существуюещего .NET кода.
-
> Игорь Шевченко © (18.12.08 00:52) [40] > > > И это называется DMA. > > > Это называется отображение регистров устройств на память > - схемотехническое решение для процессоров, у которых нет > команд IN/OUT
И такое есть (если не ошибаюсь у SUN sparc). Но речь шла не только об этом, есть еще DMA. Непосредственно DMA контроллер + Bus Master IDE. http://ru.wikipedia.org/wiki/DMAhttp://www.ixbt.com/mainboard/bmide.htmlНо и в том и в другом случае, либо физический адрес статичен и известен, либо динамичен (задается драйвером).
-
> Mystic © (18.12.08 00:54) [41] > > > oxffff © (18.12.08 00:36) [39] > > > Кроме Intel и AMD есть еще ARM-ы и т. д. Мешать ничего не > будет. Просто если устройство может писать в память, то, > теоретически, оно может писать в пять код. И код может > писать поверх существуюещего .NET кода.
В чем проблема? Устройство же не может просто писать произвольно как захочется, адрес этот либо статичен, либо задается посылателем запроса устройству. Ничего же не мешает зарезервировать пул страниц ядром, и просто не мапить их на линейное пространство.
-
Только что заметил ветку...
> В каком году Windows будет полностью переписана на .NET > Чтобы полностью и ядро и драйвера и вся системная часть была на .NET?
Никогда. Потому что ядро, написанное на .Net, не сможет работать без VM, а VM не может работать без ядра.
Слышать подобные вопросы от программиста - более чем странно.
-
-
> oxffff © (18.12.08 14:56) [45] > > А как же тогда oxffff © (15.12.08 23:51) [11]
А никак. Просто потому что CPU умеет исполнять только свой нативный код и ничего более. А это значит, что ядро любой ОС может быть выполнено только на этом нативном коде и ни на чем другом. Даже если это ядро будет представлять собой некую VM - все равно оно останется ядром и будет выполнено на нативном коде. И никакие танцы с бубнами тут не помогут.
-
> Юрий Зотов © (18.12.08 15:30) [46] > на нативном коде. И никакие танцы с бубнами тут не помогут.
Поможет .NET в железе. Где-то я эти мечты читал вроде.
-
> Юрий Зотов © (18.12.08 15:30) [46] > > > oxffff © (18.12.08 14:56) [45] > > > > А как же тогда oxffff © (15.12.08 23:51) [11] > > > А никак. Просто потому что CPU умеет исполнять только свой > нативный код и ничего более. А это значит, что ядро любой > ОС может быть выполнено только на этом нативном коде и ни > на чем другом. Даже если это ядро будет представлять собой > некую VM - все равно оно останется ядром и будет выполнено > на нативном коде. И никакие танцы с бубнами тут не помогут. >
Никто и не говорит о прямой аппаратной поддержке виртуальной машины. Однако ничего не мешает написать только минизагрузкик, который загружает виртуальную машину и передает ей управление. Причем часть загрузчика может быть написана на .NET языке и откомпилировано в целевую аппаратную платформу, например аналог Ngen. Вы читали ссылку полностью?
-
> Юрий Зотов © (18.12.08 14:51) [44]
Нуу... возможно появятся процессоры с аппаратной поддержкой IL. Или загружается загрузчик с мини-VM и HAL(то что нельзя использовать без нативного кода) где все остальное вплоть до драйверов устройств написано на .NET. Вполне реально уложить такой загрузчик с микроядром в 1Мб. Все остальное чистый .NET. Тогда мы имеем микроядро с сервисами, которые еще и работают на управляемом коде. В принципе MS уже нечто подобное для прикладной обкатки написала, посмотрите здесь: UMDF http://en.wikipedia.org/wiki/User-Mode_Driver_Framework
-
> Городской Шаман (18.12.08 15:41) [49] > Тогда мы имеем микроядро
Я сильно не спец в ОСях, но слышал сказки от MS, что они сделали в 2000 и т.д. типа микроядро. Но скорость оказалась никакущей, потому это "микроядро" "расширили", подпихав туда и драйвера и т.д. При этом упорно говорят, что архитектура, мол, микроядерная, но правда - и дальше выкручиваются.
-
> oxffff © (18.12.08 15:41) [48] > Городской Шаман (18.12.08 15:41) [49]
Ядро, по определению - это та часть ОС, которая может работать само по себе, без какой-либо внешней поддержки. Значит, ядро любой ОС может быть выполнено только на нативном коде CPU.
Назовите это ядро как угодно - VM, загрузчик VM, интерпретатор Васика, медиаплеер, Блокнот и т.д. Но выполнено оно все равно может быть только на нативном коде.
И этим все сказано. Ну не падают яблоки вверх , как ни шамань.
-
> В каком году Windows будет полностью переписана на .NET
а нахрена, кстати?
-
> KSergey © (18.12.08 16:13) [50]
Minix3 микроядерная архитектура, рвет по производительности и Win и *nix. Но писалась 15 лет.
-
> Юрий Зотов © (18.12.08 16:35) [51]
Но вы не будете отрицать что драйвер FDO нельзя написать на промежуточном языке, так как он не лезет к оборудованию, а только интерпретирует. Кроме того реальный драйвер оборудования тоже можно написать на .NET если HAL будет поддерживать функции IOPort.In(...) IOPort.Out(...).
-
> clickmaker © (18.12.08 16:43) [52] > > > В каком году Windows будет полностью переписана на .NET > > а нахрена, кстати?
Чтобы индусы могли писать драйвера?
-
> нахрена, кстати?
Присоединяюсь к вопросу. Я бы еще добавил, что неплохо бы расслоить загрузку. Ядро полностью отдельно, GDI тоже. (Или я что-то пропустил)
-
> Городской Шаман (18.12.08 16:53) [54]
Хоть драйвер, хоть что угодно еще можно написать в любом ненативном коде. Только без соответствующей поддержки работать этот код не будет - значит, к ядру ОС он по определению никакого отношения не имеет.
-
> Юрий Зотов © (18.12.08 17:01) [57]
Ладно, соглашусь. Про ядро погорячился. А что вы скажете про загрузчик, VM и HAL в нативном коде, а вот драйвера все на управляемом? Будет тормозить, но работать.
-
> Городской Шаман (18.12.08 17:39) [58] > а вот драйвера все на управляемом? > Будет тормозить, но работать.
А зачем? Ты хочешь устойчивость системы провысить за счет ее тормознутости. Смысл управления на уровне человека, обменом по шине(конкретнее отлавливание ошибок).
Я понимаю, что достает аккумулирование кривости рук третьего разработчика.
|