LINUX.ORG.RU

Ответ на: комментарий от anonymous

>То, что модульная ОС - обязательно микроядерная, это такое же заблуждение, как и то, что многозадачная ОС эта та, что обладает оконным интерфейсом.

Попробуй, обьясни это РТО ;)

bsh ★★★
()
Ответ на: комментарий от ivan_gur

Вагнер ссылался на своих знакомых, работающих разработчиками в MS. Он вообще довольно много любопытного рассказывал про некоторые внутренние особенности фирмы. Зайди в http://www.google.ru/advanced_group_search?hl=ru и среди fido7.* поищи точную фразу idea processing

Что касается матерного стишка, то он был не в коде, а в ресурсах, а там вообще столько всякого мусора понапхано...

anonymous_incognito ★★★★★
()
Ответ на: комментарий от PTO

>2 zim: ну ноу комментс, так ноу комментс, но плиз прокомментируйте вот эту: http://www.securitylab.ru/45275.html

А что тут комментировать? Я уже собственно по этому поводу высказался "Я понимаю как можно допустить ошибки, приводящие к "гонке", переполнению инта или буфера, как можно не учесть переменную окружения или не отфильтровать опасные параметры"

Но я не понимаю почему в ОС, построенной на объектно-ориентированных принципах с абстракцией данных, веб-браузер занимается установкой апдейтов, да ещё и так криво. К тому же я не очень понимаю, чем апдейт дивиди так отличается от обновления остальных системных файлов, что ему понадобился отдельный всплывший на поверхность костыль.

zim
()
Ответ на: комментарий от bsh

ну если хорошо помните тот флейм, то давайте начнем цитирование: "1992-01-29 05:23:33 PST Andy Tanenbaum (ast@cs.vu.nl) LINUX is obsolete ...

MICROKERNEL VS MONOLITHIC SYSTEM Most older operating systems are monolithic, that is, the whole operating system is a single a.out file that runs in 'kernel mode.' This binary contains the process management, memory management, file system and the rest. Examples of such systems are UNIX, MS-DOS, VMS, MVS, OS/360, MULTICS, and many more.

The alternative is a microkernel-based system, in which most of the OS runs as separate processes, mostly outside the kernel. They communicate by message passing. The kernel's job is to handle the message passing, interrupt handling, low-level process management, and possibly the I/O. Examples of this design are the RC4000, Amoeba, Chorus, Mach, and the not-yet-released Windows/NT.

слово mostly вы конечно пропустили.

Систем, внутри которых работает микроядро (от QNX или того же Mach) на земле больше, чем всего Linux + UNIX monolitic и в самом что ни наесть продакш юзе.

PTO
()
Ответ на: комментарий от zim

2 Ivan ака anonymous (*) (23.05.2004 16:21:27)
а теперь вернемся к моему изначальному посту:
"PTO (*) (12.05.2004 15:29:19)
В винде НЕТ _монолитного_ ядра, более того, оно достаточно близко к микроядру (его писал тот же человек, что руководил созданием МАХа). Идеологически весь виндоуз состоит из кусочков (модулей), которые взаимодействуют по уровням по определенным протоколам, схемам, вызовам (интерфейсам), при этом любой элемент (драйвер, провайдер, компонент и т.п.) можно заменить подсунув другой соответствующий по вызовам/интерфейсам. Вам советовали прочесть книжку авторитетных авторов, которые 1й - ковырялся в исходниках виндов, а 2й прошел дебаггером по всем закоулкам и _знают_ как оно работают, а не _верят_ что где-то монолитное ядро... но у вас нет времени для того чтобы понять на сколько большую глупость вы тут сморозили - оставим это на вашей совести"

и где я говорил, что модульная обязательно микроядерная?

И вот тут еще есть информация об интересном исследовании
http://www.vuse.vanderbilt.edu/~srs/three.unexpected.ppt - сорри, только в паверпоинте, но вроде как его умеет опенофис открывать + Линус Торвальдс в своей бессмертной книги очень положительно о данной программе отзывался

Там собственно интересным в рамках данного обсуждения будет "неожиданный результат номер 2"

2 ivan_gur (*) (23.05.2004 16:38:06): для винды я могу скачать заплатку чтобы посмотреть этот ДВД - где мне такую скачать для линукса? и куда пошли сотнимиллионов долларов акционеров линуксовых компний и пресловутые ярды от ИБМа, что мне для дистра линукса, которому еще пол-года нет выкачивать приходится заплаток больше, чем для 3х летней Винды?! Почему ядро и куча обвеса содержит кучу ошибок, почему не могут никак отладить sendmail за последние 25 лет? почему мне приходится регулярно его патчить? Разве сообществу опенсорс нельзя привлечь нормальных специалистов, чтобы счастие мгновенно настало?!
Вот у МСа после начала его перестройки от кол-ва фич к безопасности количество уязвимостей в новых продуктах снизилось в разы, а в Линуксе выросло в разы?

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

2 zim: не браузер, а объект, браузер точно такой же объект и если объект не проверяет что ему передают, то проблема у объекта и его автора, а не принципах абстракции данных. отличается тем, что это отдельный объект, не такой как другие. Та ошибка в КДЕ собственно очень похожа - не проверяются опасные параметры.

PTO
()
Ответ на: комментарий от PTO

Называйте IE как хотите - объектом, сущностью или даже метафизическим явлением, но суть от этого не изменится. МС создает систему так, как по их мнению дешевле, а дешевле как им кажется посадить толпу индусов, которая кодит как умеет. К чему такой подход ведёт мы я думаю скоро понаблюдаем.

zim
()
Ответ на: комментарий от zim

Странно, по той информации, что я имею в редмонде сидит более 800 русских девелоперов... и очень много из них в ИЕ команде... може дело не в индусах?

PTO
()
Ответ на: комментарий от PTO

2 PTO (*) (24.05.2004 14:05:23)

>"матный стишок был в модуле сделанным третьей фирмой, да и то, при просмотре кода его американец найти не сможет, да и переделан модуль уже давно."

Мне от этого не легче. Доразрабатывают они ещё так!

>"Вот у МСа после начала его перестройки от кол-ва фич к безопасности количество уязвимостей в новых продуктах снизилось в разы"

А что есть лонгхорн, если не добавление новых фич вроде панели управления антивирусом? Какая перестройка? А если уязвимостей стало меньше, то почему в Интернет всё равно невозможно спокойно выходить? Как говорится, если в программе есть одна ошибка, то там есть ещё десять.

Ведь же, фактически, вопрос таков: "Чему нужно поучиться у Лонгхорна?" Чему поучиться у NT вообще - я вижу, а чему у конкретно Лонгхорна - НЕТ!

>"Разве сообществу опенсорс нельзя привлечь нормальных специалистов"

Я Вам про МС, а Вы мне про опенсорс. Вопрос-то таков: Раз БГ такой умный, богатый, может привлечь хороших специалистов и т.д., то почему всеобщее счастие в лице МС ещё не наступило?!

>"и где я говорил, что модульная обязательно микроядерная?"

Вообще-то, я обращался не лично к Вам, а просто констатировал факт: да, есть такое распространённое заблуждение. Надеюсь, что Вы его не разделяете.

ЗЫ: Вот ведь интересно - как пользователей-то выдрессировали! Как DVD не проигрывается - так это бага крутая! А как без антивируса и файервола (да и с ними!!!) без опасения за сохранность данных в Интернет выйти нельзя - так это нормально, к этому все привыкли ещё со времён windows 9x. Это нормально, если у меня (вполне типичная конфигурация!) с привилегиями SYSTEM выполняются многие мегабайты кода, в которых, конечно, туева хуча ошибок?!

ivan_gur
()
Ответ на: комментарий от ivan_gur

Насчёт поддержки/неподдержки устройств. Почему я должен кричать "ОС YYY - рулезззз" из-за того, что она поддерживает больше устройств, если ОС XXX на поддерживаемом ею оборудовании более эффективна в работе, хоть и поддерживает не всё оборудование, поддерживаемое YYY?

IMHO, проблемы поддержки/неподдержки устройств - это проблемы производителей оборудования, которые и сами драйвера не пишут, и спецификации не публикуют.

ivan_gur
()
Ответ на: комментарий от PTO

>"Достаточно взять ту же джаву и запуситить любое приложение с JITом и без оного и посмотреть на скорость работы. "

А по-нормальному откомпилировать из исходного кода в нативный минуя байт-код нельзя?!

>"В виндах ядро это очень маленький кусочек - ntoskrnl - который занимается шедулингом потоков, обработкой исключительных событий, обработкой прерываний, синхронизацией процессоров на многопроцессорных системах + созданием объектов собственно ядра. Все остальное: подсистемы создания потоков и процессов, менеджер объектов, управление виртуальной памятью, вводом-выводом, драйвера и т.п. - это не ядро, это компоненты, которые работают в режиме ядра процессора."

Хм... Причём здесь ядро процессора? Они что, в микрокоде написаны? И зачем их выносить в отдельные потоки исполнения? Почему нельзя их просто защитить семафорами, к примеру? Ведь, насколько я знаю, NT загружается в память специальным загрузчиком, который может это всё слинковать.

ivan_gur
()
Ответ на: комментарий от ivan_gur

1. дык и что? где-то внутри бинарный файл при определенных условиях выглядел как матерный стишок... а в исходниках Линукса слова fuck встречается много-много раз (в тех исходниках виндов, что утекли я насчитал 8 раз - дык оно вовнутри пользуется, а РедХат наружу раздает)

2. перестройка названная Trustworthy Computing - в рамках ее ВСЕ программеры и тестеры прошли специальные курсы, написали кучу софта для автоматизации тестирования, привлекли толпу консультантов, остановили разработку на 9 месяцев на аудит кода. Уязвимостей стало меньше, предпринято ряд мер для повышения уровня защищенности кода, причем пошли широким фронтов, а книжка "Защищенный код" aka Writing Secure Code 2nd Edition стала мега бест-селлером - ее МС на всех девелоперских мероприятиях раздает - типа "у нас скоро все будет тип-топ - потом возьмуться хакать ваши приложения - давайте вместе этого не допустим".
Почему в Интернет нельзя выйти?! дык куча народу сидить на старых ОС и в ус не дует их пропатчить, появилась куча софта, скрипт-кидди, которые сканируют сети от нечего делать... 5 лет назад такого не было, а 10 лет назад не было таких угроз как класс... сегодня они появились - конторы, производители ПО перестраивают свою работу чтобы ответить новым угрозам - как могут, пытаются дотянуться до своих старых заказчиков - нате вам бесплатный СД - только поставьте пжалста апдейты безопасности. вон МС - своего антивируса нет - дык договорились с третьей фирмой - бесплатно раздают

чему учиться у лонгхорна - см. собственно статью на которую данный тред ссылается... а так Avalon, Indigo, WinFS все на managed code - весьма интересно получается

угу, БГ умный и богатый и привлекает хороших специалистов, но всеобщее счастие еще не наступило - они над этим работают, тратя по 6 миллиардов долл. в год на исследования и разработки. вопрос в приоритетах - пока стояла задача сделать кучу фич - они появлялись регулярно - теперь задача сделать безопасность - предварительные результаты этой работы впечатляют весьма и весьма (к примеру - год назад выпущенный IIS6.0 - ни одной дырки, а вот в Апаче за это время...)

Да нет конечно, модульность это только необходимое условие для pure-микроядра, но не достаточное. Линукс данному условию необходимому удовлетворяет? ИМХО очень вряд-ли, либо с большими допущениями, а вот ВинНТ вполне и даже очень.

Дело в том, что и пользователи ДВД и те, кто страдает от ошибки в LSASS есть клиенты МСа, посему она делает все, чтобы их удовлетворить, выпуская исправления и для тех и для других

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

А зачем напрямую в нативный? та же джава или дотНЕТ позволяют сделать бинарник, в котором сразу будет найтив код... просто если я делают софт и хочу чтобы максимум народа им пользовалось я буду собирать бинарник для процессора, минимального по требованиям и тот, у кого есть Пентиум Супер Мега 10 будет исполнять мою программу в откомпилированном виде с использованием инструкций только для первого Пентиума, даже без ММХ... в случае с менеджед кодом - я отдал бинарник и он на самой машине откомпилируется для именно того проца, который мне нужен - не важно П2 это или Итаниум...

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

PTO
()
Ответ на: комментарий от PTO

>"1. дык и что? где-то внутри бинарный файл при определенных условиях выглядел как матерный стишок... а в исходниках Линукса слова fuck встречается много-много раз (в тех исходниках виндов, что утекли я насчитал 8 раз - дык оно вовнутри пользуется, а РедХат наружу раздает) "

В исходниках линукса они почему-то в комментариях. А тут как-то просочилось. Вопрос: не может ли так ещё чего просочиться?

>"чему учиться у лонгхорна - см. собственно статью на которую данный тред ссылается... а так Avalon, Indigo, WinFS все на managed code - весьма интересно получается "

Извините, но крутизны и нужности для себя я в этом не вижу.

>"к примеру - год назад выпущенный IIS6.0 - ни одной дырки, а вот в Апаче за это время..."

А у меня не сервер, да и вообще безопасность ОС определяется самым слабым её местом.

>"Дело в том, что и пользователи ДВД и те, кто страдает от ошибки в LSASS есть клиенты МСа, посему она делает все, чтобы их удовлетворить, выпуская исправления и для тех и для других"

Только пусть для вторых МС делает это поусерднее, тогда будет нормально.

>"А зачем напрямую в нативный? та же джава или дотНЕТ позволяют сделать бинарник, в котором сразу будет найтив код... просто если я делают софт и хочу чтобы максимум народа им пользовалось я буду собирать бинарник для процессора, минимального по требованиям и тот, у кого есть Пентиум Супер Мега 10 будет исполнять мою программу в откомпилированном виде с использованием инструкций только для первого Пентиума, даже без ММХ... в случае с менеджед кодом - я отдал бинарник и он на самой машине откомпилируется для именно того проца, который мне нужен - не важно П2 это или Итаниум... "

Прям как в том анекдоте:

>"В психбольницу приехало высшее начальство, решили посмотреть, как там дела обстоят. - А как вы определяете, когда больного можно уже выписывать? - Мы ведём его в ванную, затыкаем ванну затычкой, наполняем водой, ставим рядом ковшик и ведро. Потом просим больного как можно быстрее вылить воду из ванны. - Нормальный человек, конечно, возьмёт ведро, - сказал начальник. - Нет, нормальный человек выдернет затычку! "

Спрашивается: а почему бы не отдать исходник, раз из него на той самой машине откомпилируется ещё лучше (по крайней мере, не вижу причин, по которым из байт-кода будет лучше)?

ivan_gur
()
Ответ на: комментарий от ivan_gur

> Спрашивается: а почему бы не отдать исходник, раз из него на той самой машине откомпилируется ещё лучше (по крайней мере, не вижу причин, по которым из байт-кода будет лучше)?

В принципе, это и есть исходник. Только на IL. Плюсы - следующие:

0) Сборка занимает меньший объем, хотя-бы потому, что из нее удалены все коментарии.

1) Более быстрая компиляция в натив чем из текстового файла, т.к. синтаксис IL проще, чем, например, синтаксис C# или C++. Кроме того компилируется только то, что выпоняется - если в коде есть функции, которые никогда не вызываются (например, обработчики ошибок, которые могут никогда и не произойти) то они вообще не компилируются.

2) В .Net существует множество языков, использование IL позволяет конечному пользователю не иметь на своей машине конкретный копилятор (например, программа может быть написана на Фортране, но компилятор Фортрана - коммерчиский продукт, мне что, от пользователя требовать, что-бы он купил Фортран долларов за 600$ для работы с моей программой?)

3) Прозрачное исполнение разных версий сборок side-by-side в пределах одного процесса.

Список можно продолжить.

gggg
()
Ответ на: комментарий от gggg

>"0) Сборка занимает меньший объем, хотя-бы потому, что из нее удалены все коментарии.

1) Более быстрая компиляция в натив чем из текстового файла, т.к. синтаксис IL проще, чем, например, синтаксис C# или C++. Кроме того компилируется только то, что выпоняется - если в коде есть функции, которые никогда не вызываются (например, обработчики ошибок, которые могут никогда и не произойти) то они вообще не компилируются. "

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

>"2) В .Net существует множество языков, использование IL позволяет конечному пользователю не иметь на своей машине конкретный копилятор (например, программа может быть написана на Фортране, но компилятор Фортрана - коммерчиский продукт, мне что, от пользователя требовать, что-бы он купил Фортран долларов за 600$ для работы с моей программой?)"

Коммерческие компиляторы это уже отдельная история. И неужели нет некоммерческих компиляторов фортрана? Правда, насколько я знаю, многие компиляторы отличаются в основном способами оптимизации, но .NET ещё и сам пытается оптимизировать!

>"3) Прозрачное исполнение разных версий сборок side-by-side в пределах одного процесса. "

Поясните, пожалуйста, что это значит.

>"Список можно продолжить. "

Защиту интеллектуальной собственности забыли ;)

ivan_gur
()
Ответ на: комментарий от ivan_gur

> side-by-side:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html...

Я думаю, что подобное не очень просто сделать на уровне иходных текстов.

> неужели нет некоммерческих компиляторов фортрана

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

С защитой интелектуалной собственности как раз на оборот, не ;), а :( - IL не помогает, т.к. в большинстве случаев из него можно восстановить исходный код программы. А дизасемблер IL вообще входит в SDK.

gggg
()
Ответ на: комментарий от ivan_gur

Да, на счет качества JIT

Я уже приводил, по моему, пример Quake2 для .Net

http://www.vertigosoftware.com/quake2/

Вот результаты тестов (с www.rsdn.ru)

Установил OpenGL-режим... разрешение 1024*768, текстуры на максимум... Врубил из консоли timedemo 1... Протестировал...

Результаты такие:

-----------------+--------------+-------------------------------+

Первый проход (FPS)| Второй (и далее) проход (FPS) |

-----------------+--------------+-------------------------------+

managed | 160 | 183 |

-----------------+--------------+-------------------------------+

native | 180 | 184 |

-----------------+--------------+-------------------------------+

исходная версия | 170 | 180 |

(3.05) | | |

-----------------+--------------+-------------------------------+

gggg
()
Ответ на: комментарий от gggg

Т.е. скорость работы полученного native и "native через JIT" практически одинаковое. При первом проходе JIT выполняет компиляцию IL - это отражается на результатах, но как видно, потери не так велики. При втором прохорде Managed хуже Native из за "дорогих" переходов managed(Quiake)->native(OpenGL, DirectX, Win32).

gggg
()
Ответ на: комментарий от PTO

>"А вот почему нужно делать модульно усе в ядре, да разные потоки, да сообщения - см. Таненбаума + те слайды, сноску на которые я тут приводил выше"

Почему нужно делать всё в ядре модульно (и то до определённого предела) - я понимаю. Но почему _всё_ делать отдельными потоками - нет. Многие подсистемы (тот же планировщик, большинство драйверов, подсистему виртуальной памяти и т.д.) можно спокойно выполнять как обычно, т.е. чтобы они действовали от имени вызвавшего их потока, как в *NIX. Кстати говоря, для любой микроядерной ОС можно написать эквивалентную монолитную. Естественно, что в отдельные потоки можно и нужно вынести редко используемые, но сложные подсистемы (думаю, что планировщик к ним не относится). Например, можно вынести в отдельный процесс программу работы с каталогами ФС и правами доступа, но оставить в самом ядре поддержку inode и дескрипторов файлов, т.е. базовые часто используемые операции должны быть реализованы в ядре.

ivan_gur
()
Ответ на: комментарий от gggg

2 gggg:

> неужели нет некоммерческих компиляторов фортрана

>Для .Net я таких не знаю.

А зачем для .NET, раз я хочу, чтобы работало без него?

Кстати, если .NET - это всего лишь предразобранный исходник (вроде того, что делает компилятор в процессе компиляции) - то это ещё ничего, вполне нормальная вещь, можно нормально компилировать в нативный код. А если это что-то типа ассемблера - то оптимизировать уже скомпилированное весьма сложно за неимением той информации, которую даёт исходник. Тут нужно восстановить ясность.

>IL не помогает, т.к. в большинстве случаев из него можно восстановить исходный код программы.

Кстати, у кого-нибудь есть пример восстановленного кода и исходного? Интересно посмотреть.

ivan_gur
()
Ответ на: комментарий от ivan_gur

> оптимизировать уже скомпилированное весьма сложно

Компиляторы .Net языков не занимаются опримизацией создаваемого IL-кода, скорее они просто работают по определенному набору шаблонов (это, не в последнюю очередь и делает возможеым создание декомпиляторов). Сам IL-код получается ноптимизированным (возможно кроме уж совсем явных случаев - удаления неиспользуемых переменных и методов). Сам IL - это ассемблер, но только некоторой абстрактной .Net-машины. по этому с оптимизаций нативного кода у JIT нет особых проблем. Если очень хочется можно использовать NGEN и получить из managed сборки ее нативную версию (именно это делается с самим .Net Framework при установке на машину пользователя).

По мимо прочего, использование IL значительно упрщает процесс создания компиляторов для новых языков - их авторам не нужно сильно думать об опримизации, достаточно сгенерировать IL "по шаблону", а полную оптиизацию выполнит JIT. В .Net SDK поставляются примеры трех компиляторов - CLisp, MyC и "Simple Managed C Compiler"

> Кстати, у кого-нибудь есть пример восстановленного кода и исходного? Интересно посмотреть.

http://homepages.cwi.nl/~arie/rewiki/DecompilationAnakrinoTest.html

gggg
()
Ответ на: комментарий от gggg

>"По мимо прочего, использование IL значительно упрщает процесс создания компиляторов для новых языков - их авторам не нужно сильно думать об опримизации, достаточно сгенерировать IL "по шаблону", а полную оптиизацию выполнит JIT. В .Net SDK поставляются примеры трех компиляторов - CLisp, MyC и "Simple Managed C Compiler"

"

Значит, всё-таки, ассемблер... Но, по-моему, предразобранный код был бы лучше.

ivan_gur
()
Ответ на: комментарий от gggg

> Кстати, у кого-нибудь есть пример восстановленного кода и исходного? Интересно посмотреть.

>http://homepages.cwi.nl/~arie/rewiki/DecompilationAnakrinoTest.html

Посмотрел. Имена переменных, всё-таки, обрезаются, поэтому результат выглядит хорошо, но не очень :(

ivan_gur
()
Ответ на: комментарий от ivan_gur

>> Значит, всё-таки, ассемблер

Ассемблер, это просто такой общеупотребимый термин. Сам IL гораздо больше похож на язык программирования (наверное на forth, но здесь я могу ошибаться), чем на машинный язык.

gggg
()
Ответ на: комментарий от ivan_gur

>Почему нужно делать всё в ядре модульно (и то до определённого предела) - я понимаю. Но почему _всё_ делать отдельными потоками - нет...

Добавлю: принципы разработки ОС сильно напоминают принципы разработки процессоров. Процессоры в своё время появились как выделенный класс устройств, позволяющий решать широкий круг задач за счёт ПО. Аналогично, когда в ПО появилось много повторяющихся частей, ОС выделились в отдельный класс, что позволило легче писать это самое ПО и выделять прикладные программы в отдельные модули. Потом процессоры и ОС стали сложнее, и поэтому и там, и там стало логично тоже использовать подобный подход (ядро процессора, ядро ОС). Но никому не нужны процессоры, которые сделаны по принципу "оставим в ядре минимально необходимое, а именно операции с отдельными битами, как позволяющие сделать всё остальное". Подобный подход имеет право на жизнь, но, особенно, в ОС для него как раз меньше всего причин. В отдельные процессы нужно выносить не всё, что возможно, а то, что действительно необходимо. Если ОС, удовлетворяющую задаче, можно без проблем сделать монолитной, то лучше это сделать. Кстати, ИМХО, стоило бы потрудиться над специальным компилятором для ОС. Ведь основным преимуществом микроядра считается то, что ОС легче разрабатывать, но такого же эффекта можно достигнуть, если применять особый достаточно интеллектуальный компилятор.

ivan_gur
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.