Конференция "Прочее" » В каком году Windows будет полностью переписана на .NET
 
  • Игорь Шевченко © (18.12.08 00:52) [40]

    > И это называется DMA.


    Это называется отображение регистров устройств на память - схемотехническое решение для процессоров, у которых нет команд IN/OUT
  • Mystic © (18.12.08 00:54) [41]

    > oxffff ©   (18.12.08 00:36) [39]


    Кроме Intel и AMD есть еще ARM-ы и т. д. Мешать ничего не будет. Просто если устройство может писать в память, то, теоретически, оно может писать в пять код. И код может писать поверх существуюещего .NET кода.
  • oxffff © (18.12.08 14:33) [42]

    > Игорь Шевченко ©   (18.12.08 00:52) [40]
    >
    > > И это называется DMA.
    >
    >
    > Это называется отображение регистров устройств на память
    > - схемотехническое решение для процессоров, у которых нет
    > команд IN/OUT


    И такое есть (если не ошибаюсь у SUN sparc).
    Но речь шла не только об этом, есть еще DMA.
    Непосредственно DMA контроллер + Bus Master IDE.

    http://ru.wikipedia.org/wiki/DMA
    http://www.ixbt.com/mainboard/bmide.html

    Но и в том и в другом случае, либо физический адрес статичен и известен,  либо динамичен (задается драйвером).
  • oxffff © (18.12.08 14:42) [43]

    > Mystic ©   (18.12.08 00:54) [41]
    >
    > > oxffff ©   (18.12.08 00:36) [39]
    >
    >
    > Кроме Intel и AMD есть еще ARM-ы и т. д. Мешать ничего не
    > будет. Просто если устройство может писать в память, то,
    >  теоретически, оно может писать в пять код. И код может
    > писать поверх существуюещего .NET кода.


    В чем проблема?
    Устройство же не может просто писать произвольно как захочется, адрес этот либо статичен, либо задается посылателем запроса устройству.
    Ничего же не мешает зарезервировать пул страниц ядром, и просто не мапить их на линейное пространство.
  • Юрий Зотов © (18.12.08 14:51) [44]
    Только что заметил ветку...

    > В каком году Windows будет полностью переписана на .NET
    > Чтобы полностью и ядро и драйвера и вся системная часть была на .NET?

    Никогда. Потому что ядро, написанное на .Net, не сможет работать без VM, а VM не может работать без ядра.

    Слышать подобные вопросы от программиста - более чем странно.
  • oxffff © (18.12.08 14:56) [45]

    > Юрий Зотов ©   (18.12.08 14:51) [44]


    :)

    А как же тогда  oxffff ©   (15.12.08 23:51) [11]
    очень рекомендую
    http://www.rsdn.ru/article/singularity/singularity.xml
  • Юрий Зотов © (18.12.08 15:30) [46]

    > oxffff ©   (18.12.08 14:56) [45]
    >
    > А как же тогда  oxffff ©   (15.12.08 23:51) [11]


    А никак. Просто потому что CPU умеет исполнять только свой нативный код и ничего более. А это значит, что ядро любой ОС может быть выполнено только на этом нативном коде и ни на чем другом. Даже если это ядро будет представлять собой некую VM - все равно оно останется ядром и будет выполнено на нативном коде. И никакие танцы с бубнами тут не помогут.
  • KSergey © (18.12.08 15:38) [47]
    > Юрий Зотов ©   (18.12.08 15:30) [46]
    > на нативном коде. И никакие танцы с бубнами тут не помогут.

    Поможет .NET в железе. Где-то я эти  мечты читал вроде.
  • oxffff © (18.12.08 15:41) [48]

    > Юрий Зотов ©   (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 15:41) [49]

    > Юрий Зотов ©   (18.12.08 14:51) [44]


    Нуу... возможно появятся процессоры с аппаратной поддержкой IL. Или загружается загрузчик с мини-VM и HAL(то что нельзя использовать без нативного кода) где все остальное вплоть до драйверов устройств написано на .NET. Вполне реально уложить такой загрузчик с микроядром в 1Мб. Все остальное чистый .NET.

    Тогда мы имеем микроядро с сервисами, которые еще и работают на управляемом коде.

    В принципе MS уже нечто подобное для прикладной обкатки написала, посмотрите здесь: UMDF http://en.wikipedia.org/wiki/User-Mode_Driver_Framework
  • KSergey © (18.12.08 16:13) [50]
    > Городской Шаман   (18.12.08 15:41) [49]
    > Тогда мы имеем микроядро

    Я сильно не спец в ОСях, но слышал сказки от MS, что они сделали в 2000 и т.д. типа микроядро. Но скорость оказалась никакущей, потому это "микроядро" "расширили", подпихав туда и драйвера и т.д.
    При этом упорно говорят, что архитектура, мол, микроядерная, но правда - и дальше выкручиваются.
  • Юрий Зотов © (18.12.08 16:35) [51]

    > oxffff ©   (18.12.08 15:41) [48]
    > Городской Шаман   (18.12.08 15:41) [49]


    Ядро, по определению - это та часть ОС, которая может работать само по себе, без какой-либо внешней поддержки. Значит, ядро любой ОС может быть выполнено только на нативном коде CPU.

    Назовите это ядро как угодно - VM, загрузчик VM, интерпретатор Васика, медиаплеер, Блокнот и т.д. Но выполнено оно все равно может быть только на нативном коде.

    И этим все сказано. Ну не падают яблоки вверх , как ни шамань.
  • clickmaker © (18.12.08 16:43) [52]
    > В каком году Windows будет полностью переписана на .NET

    а нахрена, кстати?
  • Городской Шаман (18.12.08 16:49) [53]

    > KSergey ©   (18.12.08 16:13) [50]


    Minix3 микроядерная архитектура, рвет по производительности и Win и *nix. Но писалась 15 лет.
  • Городской Шаман (18.12.08 16:53) [54]

    > Юрий Зотов ©   (18.12.08 16:35) [51]


    Но вы не будете отрицать что драйвер FDO нельзя написать на промежуточном языке, так как он не лезет к оборудованию, а только интерпретирует. Кроме того реальный драйвер оборудования тоже можно написать на .NET если HAL будет поддерживать функции IOPort.In(...) IOPort.Out(...).
  • Городской Шаман (18.12.08 16:53) [55]

    > clickmaker ©   (18.12.08 16:43) [52]
    >
    > > В каком году Windows будет полностью переписана на .NET
    >
    > а нахрена, кстати?


    Чтобы индусы могли писать драйвера?
  • isasa © (18.12.08 16:56) [56]

    > нахрена, кстати?


    Присоединяюсь к вопросу.
    Я бы еще добавил, что неплохо бы расслоить загрузку.
    Ядро полностью отдельно, GDI тоже. (Или я что-то пропустил)
  • Юрий Зотов © (18.12.08 17:01) [57]
    > Городской Шаман   (18.12.08 16:53) [54]

    Хоть драйвер, хоть что угодно еще можно написать в любом ненативном коде. Только без соответствующей поддержки работать этот код не будет - значит, к ядру ОС он по определению никакого отношения не имеет.
  • Городской Шаман (18.12.08 17:39) [58]

    > Юрий Зотов ©   (18.12.08 17:01) [57]


    Ладно, соглашусь. Про ядро погорячился. А что вы скажете про загрузчик, VM и HAL в нативном коде, а вот драйвера все на управляемом? Будет тормозить, но работать.
  • isasa © (18.12.08 17:53) [59]

    > Городской Шаман   (18.12.08 17:39) [58]
    > а вот драйвера все на управляемом?
    >  Будет тормозить, но работать.


    А зачем?
    Ты хочешь устойчивость системы провысить за счет ее тормознутости.
    Смысл управления на уровне человека, обменом по шине(конкретнее отлавливание ошибок).

    Я понимаю, что достает аккумулирование кривости рук третьего разработчика.
 
Конференция "Прочее" » В каком году Windows будет полностью переписана на .NET
Есть новые Нет новых   [134449   +17][b:0][p:0.001]