RuMoHoR написал(а):
Почти непробиваемая защита адресного пространства в 8086 ? Я что-то пропустил?

А красивый оборот «в реальном времени» надо употреблять аккуратно. Иногда и бабушка со счётами весьма оказывается весьма «в реальном времени». Так, к слову.
В механизмы защиты адресного пространства, примененные в i8086, были использованы самые совершенные из известных на то время. Увы, но специалисты IBM сочли их прямой угрозой их основной продукции, выпущенной значительно раньше и значительно отстающей по этим параметрам (System ... сколько их там было). Ведь надо не забывать, что IBM PC разрабатывался как "игрушка", которая вдруг оказалась столь доходной в руках никому не известных ранее конкурентов (разработки Синклера и последующее треумфальное шествие Sprctum и т.д.). В персональном компьютере, считалось, нет нужды заботится о многозадачности (один пользователь - одна задача - ведь именно так и делается на крупных вычислительных центрах того времени), нет нужды в организации защиты (от кого? ведь программа выполняется только одна - та, что запустил пользователь). Компьютер - это игрушка. Мечтать о том, чтобы он управлял чем-нибудь в реальном времени? А зачем? Не "жирно" ли будет той "персоне", что тычет пальчиком в кнопку на клавиатуре?
А в i8086 для !каждой! задачи выделялся отдельный сегмент памяти для кода, отдельный для данных, отдельный для стека, + 1 дополнительный сегмент. Для каждого из этих сегментов должна быть установлена физически отдельная память, каждая с адресным пространством в 1МБ (вот от сюда и цифра в 4МБ оперативки). Именно по этому и ни как не контролировались аппаратно такие известные уязвимости, как "переполнение стека", "изменеие кода данными" и т.д. и т.п. А зачем? Ведь изначально при правильном построении ЭВМ такое в принципе исключено! Аппаратные!!! механизмы следят за тем, чтоб ни одна задача сосвоим стеком или своими данными не залезла в чужую. И где это все в персоналке? Вот уж, во истину, "покалеченный" таким жестоким обращением ум современных программистов и не в состоянии даже увидеть признаков защиты... А ведь она самая лучшая и "защищенный" режим i80286 и далее призван только бороться с последствиями такого жестокого обращения с самыми современными технологиями. Да, именно с последствиями - посмотрите на истррию разработки и отладки i80286, i80386 - как "кувыркались" разработчики прогибаясь под безалаберных программистов.
Система работы в реальном времени в i8086 - лучшая! Аппаратная обработка приоритетов более 1000 прерываний... Где она? Ау! Какая изуродованная логика позволила задействовать именно этот механизм для вызова программ BIOS, операционной системы? И даже не Microsoft, кажется, это придумала... Хотя именно Microsoft и брали для разработки именно расширения BIOS - языка BASIC, который именно туда и должен был прописываться. Просто ужас, что в IBM PC оставили только один i8059 и только позже добавили к нему второй. А сколько потом программистов же плакало над PnP, разгребая эти дефицитные прерывания и каналы прямого доступа к памяти...
То, что i8086 - лучший, особенно, для вояк, и позволило выплыть PC. А именно, компания AMD, а за ней и другие получили лицензии на право производства этих сверхзащищенных, способных мнгновенно реагировать на несколько сотен событий одновременно, с расширяемой системой команд (а про сопроцессоры систем шифрования что-нибудь слышно?) микропроцессоров. До настоящего времени вояки ведь на них кое-что клепают...
Хотя такого "уродца" в то время и могли только избрести. Ведь в начале 80-х все мечтали о хорошем 8-и разрядном микропроцессоре. Именно такой и был взят изначально для IBM PC. Именно 8-и разрядный (i8088), но 16-разрядный внутри. В то время уже было известно, что 8-и разрядного адресного пространства не хватает и что нужно его расширять. Но только как это делать - ни кто не знал. Вот компания IBM и "потренировалась". Для серьезных ЭВМ того времени эта проблема изначально не была актуальной - там разрядность была изначально достаточной. Именно IBM PC дал старт 16-разрядным ПЭВМ. Ну а в 1985 уже активно готовились и к переходу на 32 разряда. Да, неплохие деньги удалось выбить на разработку от вояк. Может, чтоб оправдать затраченные деньги в новых моделях (латали в 1983-1985 скорее виртуальные дыры) и потребовалось наглядно раскрыть все уязвимости предыдущих моделей? А жертвой таких раскрытий и стал IBM PC. Хотя действительно массовым IBM PC стал только в 1990, когда уже продемонстрировав свой Pentium, Intel закрыла очередной этап освоения бешенных военных сумм. Именно этот факт (целью была разработка технологии) позволило сильно сбросить цену на процессоры предыдущего поколения - i80386. Ну а вояки вскоре с легкостью разрешили использовать наработанные технологии и для гражданских - в массе появилиь i80486DX2, DX4 на "военных" технологиях. Ведь СССР пал и как теперь оправдывать такие бешенные военные раходы? Прибыль от продажи процессоров и так стала окупать расходы на разработку, ну а военным потребовались дешевые процессоры с малым энергопотреблением для "умных" ракет и бомб. И вот, наслаждайтесь - в гражданке мобильные решения и на походе 1ГГц. Ох, уж эти военные секреты... Интересно, а как же удалось выбить деньги на таких "уродцев" как несколько ядер на одном чипе? Или это что, уже по "космической" программе пошло? Может, кто-нибудь знает?
Microsoft тоже молодцы. Они вовремя спохватились, что в 1985 Intel сдает очередной этап. i80386 нацелен именно на обеспечение аппаратной многозадачности для програм, написанных для типичных и "покалеченных" ЭВМ. Да, новые 32-х разрядные процессоры i80386, обеспечивают так же, как и в свое время i8086, параллельную работу нескольких программ, расчитанных на процессоры предыдущего поколения. Вот это было потрясение во времена MS DOS 3.0! Аж в Microsoft попробовали принтер для начала заставить фоном поработать. Позже вышел "уродец" - MS DOS 4.0 с зачатками многозадачности. Но было видно, что это - тупик. Персективным могло быть только иное направление - то, что подсмотрели у Macintosh и сами назвали Окном. Окном в новый мир, который был когда-то утерян вместе с многозадачностью и реальным временем... Microsoft - молодцы! Молодцы, что к 1990 году, когда Intel миру представляла новейшие технологии иного уровня, смогли представить Windows 3.0. И мир почти поверил, что многозадачность - возможна. И через 5 лет еще раз в этом убедился с выходом Windows 95, сломив сопротивление несмирённых... А ведь IBM уже в то время поняла, что очень многие супер-ЭВМ, что будут ею закончены через 5 лет, будут делаться именно на потомках того искалеченного в свое время i8086. Но ведь надо как-то оправдаться? Да, делает IBM на своих заводах и прямых конкурентов i8086 разработки Motorola (Power PC - потомок макинтошей) и конкурентов полноценных 64 разрядных процессоров. Сделала IBM и свою операционку (OS/2). Да уже не смогла тягаться с Microsoft и родилась Windows NT. А позже и UNIX оказался на IBM PC. Да только деньги вояки не так щедро давали... А вот Linux ныне управляет и марсоходами и прочими мелкими системами на той же МКС. "Космические" деньги. Плохо, что вояки немного покинули этот сектор - ныне у них терроризм в моде. Вот и застевают марсоходы на марсе с сообщениями "press any key" и ну ни как американцам не посторить на МКС такой системы жизнеобеспечения, чтоб ей свою жизнь доверить можно было (у России в этом комплексов нет). Эх, плохо что не вояки финансируют. У них вопросы совместимости с жизнью на ином уровне поставлены...
Так что вояки теперь не это направление финансируют. У них несколько иной "бжик". Типа еще со времен 1970-х, существует проблема решения достаточно емкой математики для получения изображения с так называемых синтезированных апертурных решеток (САР) в реальном времени. В России САР появились после того, как сбили уже мног-много лет назад соответствующий американский самолет-разведчик (один из первых - недолго летали в одиночестве). Эта же проблема и в космосе. Например, если хороший радиотелескоп на земной орбите будет в течение года смотреть на одну и ту же точку в космосе, то через год он вместе с вращением землм и сам сделает полный оборот. При правильной математической обработке всей записанной в течение года информации можно в компьютере искусствено "синтезировать" результаты работы радиотелескопа с антеной, размером равной радиусу вращения земли. Чем у радиотелескопа (радиолокатора) антенна больше, тем, теоретически, более мелкие объекты он может рассмотреть вдали. Но это в космосе . У вояк проще: пролетел самолет вдоль границы и получил "синтезированную" антенну размером с длину границы. Не удивляли ли раньше сообщения типа: спутник пролетел вдоль коменты и ... теперь на земле будет идти обработка полученных результатов в течение года - пяти... Увы, но это реальная цена современных супер-ЭВМ. Впрочем, у обеих сторон (США и Россия) в этом есть значительные продвижки. Это как раз то место, где можно ожидать новых прорывов после конверсии. Но здесь деньги будут вкладываться в обеспечение иной защиты. А именно, защиты передачи информации (квантовая защита - типа факт подслушивания можно определить с точностью 100 проц.) и защиты технологии самих ЭВМ (квантовых так же). Ну а про спутники, что годами не могут информацию обсчитать - так то взаимное пускание пыли в глаза...
Еще прикольное направление у вояк было. Году этак в 1982 в США соорудили суперЭВМ из 4096 (куб) процессоров i8086. (да, это чудо техники разработки 1979 года изначально для многопроцессорных систем предназаначалось). Похоже, долго ждали пока нормальный мат.сопроцессор Intel склепает. Это засекреченное чудо предназначалось для обеспечения стратегических интересов США - а именно того, что военная доктрина США подразумевает войну на чужой территории. Для реализации этой доктрины на практике необходимо банально иметь прогноз погоды в любой точке мира. Есс-но деньги по этой доктрине проходили не малые и удалсь вполне неплохо откатать технологию объединения тысяч моломощных микропроцессоров. Пиковая суммарная производительность у того чуда была где-то в районе современного Pentium 4 3ГГц, однако современный Pentium подобные задачи рещать будет этак на 2 порядка медленнее. Причина так же банальна: тактовые частоты процессоров взлетели по порядкам очень хорошо, а вот оперативная память, несмотря на свои DDR-ы от дедушек топчется почти рядом. А счет в той ЭВМ шел на тысячи процессоров (расчет погоды - задача очень хорошо распараллеливаемая). Ну а на счет этой дорогой и стратегически важной информации как погода - так теперь ее крохи американы налево и направо раздают через интернет или прямо со спутника открытым текстом. А вот попробуй узнать скорость ветра в заданной точке на карте на высоте 10 000 метров... Словом, многие даже и не догадываюся, что защита на самом деле есть! А ведь как известно из философии, идеальной может считаться только та вещь, которой нет, а все ее функции и свойства выполняются...
Вот и мучают меня смутные сомнения: а не IBM ли случаем в 1982 году на вояк ту суперЭВМ по расчету погоды клепало? Иначе как же они связалиь бы с этим новейшим и жутко дорогим i8086? Да и год появления в свет IBM PC уж что-то хорошо с этим проектом совпадает...
Ух, как круто воротят миром политика и военные доктрины. А ведь они изменились в последнее время...