Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.02.15;
Скачать: [xml.tar.bz2];

Вниз

В каком году Windows будет полностью переписана на .NET   Найти похожие ветки 

 
Городской Шаман   (2008-12-15 22:24) [0]

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

Ваш прогноз?
Почему?


 
Поросенок Винни-Пух ©   (2008-12-15 22:38) [1]

а сам фреймворк на чем крутиться будет?
на прерываниях биоса?
:)


 
DVM ©   (2008-12-15 22:39) [2]

Никогда не будет переписана. Виртуальная машина NET тоже сама на себе выполняться будет?


 
Городской Шаман   (2008-12-15 22:44) [3]


> DVM ©   (15.12.08 22:39) [2]
>
> Никогда не будет переписана. Виртуальная машина NET тоже
> сама на себе выполняться будет?


Нет, но сразу после загрузчика будет стартовать виртуальная машина с Jit-компилятором. Начальных 64-128 Мб для старта ядра ОС это будет вполне нормально.


 
DVM ©   (2008-12-15 22:48) [4]


> но сразу после загрузчика будет стартовать виртуальная машина
> с Jit-компилятором

Но она же будет не под .NET написана. Все на NET перевести не выйдет таким образом.


 
Pavia ©   (2008-12-15 22:50) [5]

Есть эксперементальная ос сингулярити она на нет пишется.
Нужно посмотреть на результаты тогда можно прогназировать. Так может за 2 года и перепишут. Но вопрос в том стоит или нет. Я считаю что стоит попробовать а там будет видно. Плюсы от этого есть. Но и минусов много. Нужну лет 5 на структурирование три из которых прошли. Если и будет то нераньше 2010.


 
DVM ©   (2008-12-15 22:50) [6]


> Городской Шаман   (15.12.08 22:44) [3]

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


 
Eraser ©   (2008-12-15 22:51) [7]

> [0] Городской Шаман   (15.12.08 22:24)

это еще зачем? .net позиционируется как платформа для прикладных приложений, там ей и место.


 
Pavia ©   (2008-12-15 22:55) [8]


> Начальных 64-128 Мб для старта ядра ОС это будет вполне
> нормально.

Не тут  в 2-10 раз больше нужно будет и приложения будут есть в 2 раза больше памяти.


 
Pavia ©   (2008-12-15 23:05) [9]


> это еще зачем? .net позиционируется как платформа для прикладных
> приложений, там ей и место.

И где-же она позиционируется?


 
@!!ex ©   (2008-12-15 23:36) [10]

Никогда, ИМХО.
Драйвера на .NET... такое и в кошмаре не приснится...


 
oxffff ©   (2008-12-15 23:51) [11]

http://www.rsdn.ru/article/singularity/singularity.xml


 
Mystic ©   (2008-12-15 23:56) [12]

Проект Singularity давно остановлен. Ну а так большого смысла в .NET на уровне ядра нет. Драйвера оборудования принципиально не могут быть управляемыми. А так, дже если брать чисто графическую подсистему, если ее реализовать в ООП-ключе, то все выльется в жуткие тормоза даже на современном железе.


 
oxffff ©   (2008-12-16 00:02) [13]


> Mystic ©   (15.12.08 23:56) [12]


Зато есть одно интересное преимущество, прощай защищенный режим с кольцами защиты.  GDT, LDT, NX бит и еже с ними.
Сколько могут поднять на одних только переключаниях на шлюзы вызова(call gates).


 
oxffff ©   (2008-12-16 00:08) [14]


> oxffff ©   (16.12.08 00:02) [13]


Ну GDT то LDT и PAGE TRANSLATION пусть конечно останутся
(нужно же по 4GB всем выделить :) ), только убрать сразу проверку DPL на CPL. Убрать сразу карту IO c TSS. И т.д. и т.п.


 
Eraser ©   (2008-12-16 00:12) [15]

> [13] oxffff ©   (16.12.08 00:02)

обмен шила на мыла. защищенный режим то не с проста придуман, а именно для улучшения производительности.


 
oxffff ©   (2008-12-16 00:15) [16]


>  а именно для улучшения производительности


А как защищенный режим оказывает влияния на производительность?


 
oxffff ©   (2008-12-16 00:21) [17]


> Eraser ©   (16.12.08 00:12) [15]


Protected mode - он потому, что

CHAPTER 12
PROTECTION
Protection is necessary for reliable multitasking. Protection can be used to prevent tasks from
interfering with each other. For example, protection can keep one task from overwriting the
instructions or data of another task.
During program development, the protection mechanism can give a clearer picture of
program bugs. When a program makes an unexpected reference to the wrong memory space,
the protection mechanism can block the event and report its occurrence.
In end-user systems, the protection mechanism can guard against the possibility of software
failures caused by undetected program bugs. If a program fails, its effects can be confined to
a limited domain. The operating system can be protected against damage, so diagnostic
information can be recorded and automatic recovery attempted.
Protection can be applied to segments and pages. Two bits in a processor register define the
privilege level of the program currently running (called the current privilege level or CPL).
The CPL is checked during address translation for segmentation and paging.


 
Eraser ©   (2008-12-16 00:25) [18]

> [16] oxffff ©   (16.12.08 00:15)

самым прямым образом - работе с оборудованием и памятью не мешают второстепенные задачи.


 
Eraser ©   (2008-12-16 00:26) [19]

> [17] oxffff ©   (16.12.08 00:21)

это только подтверждает то, что я сказал выше.


 
oxffff ©   (2008-12-16 00:31) [20]


> Eraser ©   (16.12.08 00:25) [18]


> Eraser ©   (16.12.08 00:26) [19]


Ну не выкручивайся, :)
по твоим словам, один и тот же код будет работать быстрее в защищенном режиме. Но это не так.
Попробуй обратись в портам ввода вывода разрешенным в IO MAP TSS из RING3 и из реального режима.
+тебе еще пример TLB

The information which either maps linear addresses into physical addresses or raisesexceptions is held in data structures in memory called page tables. As with segmentation, this information is cached within the CPU to minimize the number of bus cycles required for address translation. Unlike segmentation, the address translation caches are completely invisible to application programs. The processor"s caches for address translation information
are called translation lookaside buffers (TLB). The TLBs satisfy most requests for reading
the page tables. Extra bus cycles occur only when the TLBs cannot satisfy a request. This
typically happens when a page has not been accessed for a long time.

Еще вопросы?


 
axis_of_evil ©   (2008-12-16 00:41) [21]

не .net, но аналог - Active Oberon System
интересующиеся могут посмотреть Bluebottle OS

http://bluebottle.ethz.ch/
http://forum.oberoncore.ru/index.php
http://a2os.org.ua/forums/


 
Petr V. Abramov ©   (2008-12-16 01:23) [22]

CLR будет крутиться на жабе, а жаб-машина будет написана на .Net


 
Eraser ©   (2008-12-16 01:48) [23]

> [20] oxffff ©   (16.12.08 00:31)


> по твоим словам, один и тот же код будет работать быстрее
> в защищенном режиме

я такого не говорил.
защищенный режим это способ структурировать выполнение кода.
т.е. избежать ситуации, когда иконка, запуздыренная в трей не будет давать обновить страницу памяти из свопа.


 
Petr V. Abramov ©   (2008-12-16 01:57) [24]


> защищенный режим это способ структурировать выполнение кода.

это способ immediate получить AV некорректному приложению, вместо падения системы через небольшое неопределенное время, в течение которого глючить будет все.


 
Eraser ©   (2008-12-16 02:20) [25]

> [24] Petr V. Abramov ©   (16.12.08 01:57)

и это тоже, но не это первопричина.


 
KilkennyCat ©   (2008-12-16 03:18) [26]

Что вы все программно мыслите... все будет аппаратно.


 
Джо ©   (2008-12-16 04:53) [27]


> KilkennyCat ©   (16.12.08 03:18) [26]
> Что вы все программно мыслите... все будет аппаратно.

Вот даже сокет 939 устарел шибко-шибко, под него щас и процессор не сыщешь (и сижу с ним, сокетом, как дурак). Так что, к тому времени, как устареет .Нет, сменится еще поколений 16 процессоров...


 
Skyle ©   (2008-12-16 06:30) [28]


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

Когда компьютеры будут аппаратно исполнять MSIL. Типа как LISP-машины в прошлом веке.


 
KilkennyCat ©   (2008-12-16 07:28) [29]

Тест(


 
KilkennyCat ©   (2008-12-16 07:30) [30]

Странно, не проходили мессаги...

> Джо ©

У нас продаются S939 - 3000+, 3200+, 3500+  и 3800+ от 699 руб до 2400руб соответственно.


 
Petr V. Abramov ©   (2008-12-16 15:09) [31]


> Eraser ©   (16.12.08 02:20) [25]
> > [24] Petr V. Abramov ©   (16.12.08 01:57)
>
> и это тоже, но не это первопричина.

ругаться лень


 
Mystic ©   (2008-12-16 21:54) [32]

> oxffff ©   (16.12.08 00:08) [14]

Если бы все было так просто.. Начнем с того, что JIT-компилятор должен иметь возможность транслировать в нативный код и его запускать. Значит это можно делать средствами .NET. Так что все равно проверки что можно, а что нельзя никуда не денутся. Да и не самое это узкое место :)


 
LK2008   (2008-12-16 22:20) [33]

никак - иначе сразу отхачят


 
oxffff ©   (2008-12-17 08:42) [34]


> Mystic ©   (16.12.08 21:54) [32]


Если бы все было так сложно, как кто-то хочет сказать.
Ну к делу.
Singularity – ... Предыдущие системы, за исключением расширений ядра в SPIN, были написаны на не безопасных языках программирования и использовали в качестве механизма изоляции аппаратное управление памятью и кольца защиты процессора. Singularity использует для изоляции процессов и предотвращения доступа к аппаратным ресурсам языковую безопасность и коммуникации посредством передачи сообщений.

Поскольку IL набор инструкций .NET для простых смертных не содержит никаких аппаратных инструкций типа in|out, то технически ничего не мешает их ввести в IL набор, поскольку в большинстве известных мне процессорных архитектур (я не утверждаю, что знаю все) эти инструкции присутствуют. Далее проиходит анализ интроспекции Trusted .NET кода перед JIT компиляцией на предмет возможностью переназначения ресурсов DMA, IRQ, Shared IRQ, IO range и т.д. и т.п. Далее JIT компилер обращается к PnP .NET менеждеру, который уведомляет о наличии таких то и таких, то ресурсов доступных. JIT компилер производит транслирование IN|OUT IL команд в команд процессора In out c "заколоченными" номерами портов которые дал PnP. То есть по факту IL in|out не содержат номера портов в качестве операндов, а получают от  runtime .NET.
   Таким образом эта проверка (доступ к аппаратным ресурсам)производится в моменты компиляции IL кода + в моменты перекомпиляции кода при изменении параметров оборудования например при Shared ресурсе.

Таким образом уже не будет комманд процессора типа SYSENTER и SYSCALL причем у AMD и intel они разные, но смысл их один "даешь быстрый вход в режим ядра". Но все равно накладно. + нет необходимости в других аппаратных проверках. типа RPL, CPL, DPL.
    Тем не менее расмотренный мною случай решения не единственный, например IL набор команд можно не расширять, а для например делать при JIT inline кода для вызовов HardwareResources.AssignIRQ(acquireIORange) - это пседвовызовы. (Например в IL наборе нет lock\unlock (С# lock) вызова для объекта, зато есть библиотечный тип с вынесенной за приделы IL реализации, оно понятно что разницы не будет - что это будет IL в .NET Set или вызов типа в стандартной библиотеке .NET.)
Причем идея в том, что система сама предоставляет ресурс и технически в него можно что то только передать и получить аля BlackBox, но не перенастроить.

Думаю в Microsoft парни тоже не простые, и еще не такое могут предложить.
Такие вот дела. :)

Что меня смущает, так это только коммуникации посредством передачи сообщений/ Здесь возможны "провалы".


 
WondeRu ©   (2008-12-17 17:17) [35]

Можно операционку на Java написать :)
http://en.wikipedia.org/wiki/Java_processor is the implementation of the Java Virtual Machine (JVM) in hardware. In other words the bytecodes that make up the instruction set of the abstract machine become the instruction set of a concrete machine.


 
Mystic ©   (2008-12-17 22:41) [36]

> oxffff ©   (17.12.08 08:42) [34]

IL анонсировался как независимый от платформы язык. Поэтому не вижу большой необходимости включать в него инструкции обращения к портам. Получается набор из Intel-IL, AMD-IL, и т. д. Во-вторых, многие устройства внешние физически пишут в память. Как тебе идея написать какой-нить щейдер, который пропишет результаты вычисления в стек, а там будем JMP на блок данных?


 
Petr V. Abramov ©   (2008-12-17 23:40) [37]


> IN|OUT IL команд в команд процессора In out c "заколоченными"
> номерами портов которые дал PnP. То есть по факту IL in|out
> не содержат номера портов в качестве операндов, а получают
> от  runtime .NET.
>    Таким образом эта проверка (доступ к аппаратным ресурсам)производится
> в моменты компиляции IL кода + в моменты перекомпиляции
> кода при изменении параметров оборудования например при
> Shared ресурсе.

Bred of Sieve Cobyle
это все аппаратно сделано в 286-м процессоре, на уровне какого-то аппарантного исключения по обращению к порту не из ring0.


 
oxffff ©   (2008-12-18 00:21) [38]


> Petr V. Abramov ©   (17.12.08 23:40) [37]


Bred of Sieve Cobyle?
Ты суть разговора держишь?

Мы обсуждаем как возможно сократить количество проверок при работе всего в RING0.


 
oxffff ©   (2008-12-18 00:36) [39]


> Mystic ©   (17.12.08 22:41) [36]
> > oxffff ©   (17.12.08 08:42) [34]
>
> IL анонсировался как независимый от платформы язык. Поэтому
> не вижу большой необходимости включать в него инструкции
> обращения к портам. Получается набор из Intel-IL, AMD-IL,
>  и т. д.


Абсолютно не получается. Opcode x86 команд In|Out идентичны.
Ничего не мешает ему таким и оставаться.


>Во-вторых, многие устройства внешние физически
> пишут в память.


И это называется DMA. И что им будет мешать?


>Как тебе идея написать какой-нить щейдер,
>  который пропишет результаты вычисления в стек, а там будем
> JMP на блок данных?


А с какого собственно перепугу там будет JMP?
Да, и шейдер это в видеодаптере. И он совершенно не пишется на IL.


 
Игорь Шевченко ©   (2008-12-18 00:52) [40]


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


Это называется отображение регистров устройств на память - схемотехническое решение для процессоров, у которых нет команд IN/OUT



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2009.02.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.006 c
2-1230969991
N_SSS
2009-01-03 11:06
2009.02.15
Подключение справочников (Lookup) для DbGridEh


2-1231405184
FEV
2009-01-08 11:59
2009.02.15
Работает ли внешняя программа?


11-1197220362
Elec3C
2007-12-09 20:12
2009.02.15
Drag n Drop в ListBox


3-1214897442
Раиса
2008-07-01 11:30
2009.02.15
Количество знаков после запятой при присваивании из поля таблицы


15-1229513514
Knight
2008-12-17 14:31
2009.02.15
Эмуляция событий мыши.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский