История и архитектура на процесорите на Интел от серията 80x86:
8086 (16 битови регистри) - използва реален режин на адресиране на паметта. Достъпна памет: 1мб. Начин на адресиране: 4 сегмента по 64кб (при промяна на базовия адрес на сегмента може да се адресират така споменатият 1мб).
80286 (16 битови регистри) - използва реален режим на паметта до 1мб + "екстрата" HMA (high memory area), която представлява 64кб след този 1мб (т.е. ако базовия адрес на сегмента е в края на този 1мб, то може да се адресират 1мб + 64 кб - 16байта). Друго нововъведение: защитен режим на адресиране на паметта! Тук могат да се адресират 16мб памет (може и да се лъжа, но линейният адрес е 24 битов), като се използват т.нар. дескрипторни таблици, в които са описани селекторите за достъп до паметта (IDT, GDT, LDT). Предимства: достъп до по-голям обем памет (благодарение на селекторите/дескрипторите), защита на части от паметта чрез флагове, опростено превключване на затачи през селектора за задачи (TSS).
80386 (32 битови регистри) - поддържа споменатите режими за работа с паметта, но с няколко промени и допълнения: защитения режим вече използва 32-битов линеен адрес на паметта (4гб). Подобрени са възможностите за защита на достъпа до паметта и работата със задачите; възможност за следене за достъп до памет и входно-изходни портове от дадена програма. Новост е виртуален 8086 режим, който е (почти) съвместим с реалния режим на 8086, т.е. е възможно да се създават няколко виртуални машини, в които паралелно (естествено чрез режим на времеделене) да се изпълняват няколко програми (например за ДОС: текстов редактор, файлов мениджър и нещо друго).
80486 (32-битов) - няколко инструкции за обработка на данни и подобрена скорост на изпълнение. По отношение на организация на процесите, превключване на задачите и другите системни нововъведения на 386 - нищо ново!
80586 (пентиум) - инструкции за работа с кеша (новост, която после е добавена и при по-новите 486), нови инструкции за обработка на данните. На системно ниво - пълна съвместимост без промяна на абсолютно нищо, засягащо работата с паметта и процесите. По-късно се добавят ММХ инструкциите за мултимедийна обработка.
Всички следващи процесори, включително и пентиум 4 няма промяна в системата си за работа с паметта и процесите! P4HT притежава нови възможности, но не съм се интересувал какво точно са засегнали на ниско ниво (асемблер) при работа с паметта и превключване на процесите. Остава си ограничението от 32-бита за регистрите и 32-битова адресация (4гб)...
Сега малко за "новите" продукти. Отивам в кварталния магазин да си взема модем - уви няма голямо разнообразие и има само някакъв софтуерен, но на него пише че върви на пентиум или по-хубав процесор. Много лошо! Аз съм с 486

'> Какво ще правя? Трябва да се разкарвам в лошото време до някой по-добре зареден магазин и да дам още 20$ за хардуерен. За моя радост комшийчето има пентиум и иска да си купи и то модем. Правим сделка с него - ако не тръгне на моя компютър, то го взема и всичко е ОК. Почваме пробите. Инсталатора се оплаква, че не му харесва процесора и пита дали съм сигурен да продължа. Естествено, че ще продължа! Всичко е ОК за сега. Първа проба за набиране на номер... БУМ! Син екран (все пак е вин95). Издънка в драйвера на модема. Гледам аз с хиев във файла на това място и какво виждам? RDTSC - инструкция (за пентиум! и по-хубавите процесори), която се използва за четене на вградения таймер! Търся във файла и я намирам на още едно място. Махам ги двете инструкции от драйвера и пак пускам да набира... Тии, тиии, тиии... Номера е набран. Модема се вързва в интернет! Малко е нестабилен и дропи често, но все пак работи. Техническа подробност: Нестабилността е от изтритите инструкции за четене на таймера, защото чрез тях се осъществява контрола за дължината на тоновете, които се подават на модема (все пак е софтуерен

'>
Въпрос: Какво прави модема зависим от пентиум процесорите? Хардуера или софтуера или по-скоро глупавите програмисти? Ако имаше сорс на драйвера, можеше ли да се заменят тези две инструкции като се отчитат времеконстантите и модема да върви на 386?
А сега за старите продукти: преди 10 и повече години са разработени много продукти, които са получили такова разпространение (в порядъците на милиони копия) сред комерсиалните потребители (богатите фирми с много компютри

'>, че работата на тези компании вече зависи от тези продукти и една промяна в използваните технологии, която е свързана със закъснения поради внедряването й, ще доведе до загуби, а може и до фалит. Пренаписването на аналогични продукти е свързано с проблеми при преминаването на друга платформа, при прехвърляне на съществуващите данни и т.н.
Въпрос (вин ориентиран): искате ли вашите 10 милиона клиенти да фалират, т.е. след година да не са ваши клиенти, ако преминат на нова платформа (например от ДОС към вин, от вин3.1 към винНТ, вин към лин)? Какви загуби ще претърпите, ако се запази съвместимостта (скорост, стабилност), или ако догодина няма кой да ви купи продукта?
Подобен въпрос може да се зададе и за линукс, но ще ги оставя да си ги задавате сами

'> Само ще спомена зависимостите на по-стар и изоставен от авторите му код спрямо новите променени...
Весели празници!
---
Малко линкове:
http://www.freedos.org/ - msdos съвместима ос!
http://developer.intel.com/ - истината за възможностите на процесорите
http://www.v2os.cx/ - некомерсиална операционна система, написана изцяло на асемблер (на това му викам хоби

'>