C, PHP, VB, .NET

Дневникът на Филип Петров


* Ключалката на кутията и Turbo бутона

Публикувано на 07 март 2021 в раздел История.

Едно време компютрите можеха да се заключват с ключ, нямаше нужда да търсиш с лупа бутона за хардуерно рестартиране и имаха бутон за „Турбо“, който… забавяше системата. В долната статия ще разкажа кое за какво служеше…

 

1. Ключалката

Старите IBM PC-съвместими компютри работиха под DOS. Това е операционна система, в която няма никакъв механизъм за автентикация. Няма различни потребители, няма права за достъп, т.н. Тоест пускате компютъра и започвате да работите, като имате достъп до всичко. Това не беше особен проблем за домашните компютри – дори през 2020+ съм виждал често хора, които ползват общ семеен компютър с единствен профил в Windows, който почти винаги е без парола (т.е. всички в дома работят с един акаунт). За офис компютри обаче си беше сериозен проблем, защото не е нормално едни служители да могат да се ровят по документите на други зад гърба им.

При компютрите от поколение 486 вече се появяваше и се използваше концепцията за слагане на пароли за пускане на компютъра в BIOS, но при по-старите подобна функционалност беше по-скоро екзотика. Причината е, че при много старите компютри BIOS беше записан в ROM (read only memory), т.е. по него практически не можеше да се променя нищо – настройките са такива каквито е задал производителя и концепция да влезнеш в setup utility (натискайки DEL или F2 непосредствено след пускането на компютъра) всъщност липсваше, защото няма какво да се настройва. При 386 тази функционалност е започнала да се появява (можело е да се влезне и да започнат да се настройват определени неща), но отново паролите са били по-скоро рядкост.

Имаше и още един проблем – кражбите на хардуер. При организации, в които контролът на достъп е по-слаб (например училища и университети), опасността някой да отвори кутията и да открадне компонент си беше реална. Компютърните части бяха много по-скъпи, отколкото са сега.

Ето защо производителите на хардуер навремето са измислили кутиите с ключалки, с които да добавят функционалност към компютрите ориентирани към бизнес потребители. С тях буквално заключвате компютъра и той не може да се използва или отваря. Действаха по различен начин при различните производители, но общата концепция беше ключалката да има две функции:

  • Спира електричеството до жизненоважно за функционирането на компютъра устройство – например клавиатурата или флопито/твърдия диск;
  • Прави така, че кутията на компютъра да не може да се отвори (освен с груба сила, т.е. чупене).

При домашните компютри ключовете често се губеха, но не беше драма. Много рядко се използваха, като най-честата употреба беше когато родителя иска да накаже детето за провинение – заключваше му компютъра и прибираше ключа за наказание.

2. Големият Reset бутон

Когато компютъра „забие“, решението е „рестартирай и ще се оправи“. По онова време обаче забиванията не бяха както сега – някоя програма „се бъгва“ и се налага да я затвориш и отвориш наново. Тогава често забиваше всичко – цялата операционна система спира да функционира и буквално не можеш да направиш нищо. А когато това се случи, няма как да спреш компютъра или да го рестартираш софтуерно – налага се това да се направи чрез хардуера. Reset бутона, който си го има и до ден днешен, но не се използва от почти никой, е точно за това. Ако с Power буквално се гасеше тока на дъното и компютъра спираше перманентно, с Reset тока спира за кратко и се пуска отново, с което компютъра стартира отначало.

Днес Reset прави същото нещо, но бутончетата са малки и повечето хора дори не знаят, че съществуват. А Power бутоните са „меки“ и могат да се настройват софтуерно през BIOS/UEFI – например се прави така, че да го задържиш 4 секунди преди да угаси компютъра, а при еднократно натискане само да го приспива (sleep режим).

3. Турбо бутоните

Навремето PC се развиваха много по-бавно от сега – вървяха на „поколения“ – 8086, 80286, 80386, 80486. Когато се появеше нова платформа, тя се налагаше с точно определен процесор с точно определена тактова честота и съответно бързина. Тогава производителите на софтуер са се нагаждали спрямо тази платформа и в началото софтуера е бил оптимизиран за нея. Да, но впоследствие производителите на хардуер са вадили подобрени процесори. Например 8086 процесорите са започнали с 5Mhz и впоследствие са достигнали до 10Mhz. При 80286 са се надградили с 5, 6, 8, 12,5, 16, 20 до цели 25Mhz. При 80386 надграждането е започнало от 12 и е стигнало до 33Mhz. А при 80486 e започнало от 33 и е достигнало до 99Mhz (рекламирано като 100).

За някои софтуерни продукти тези разлики в скоростта на процесора не само не са проблем, но са и нещо хубаво – програмата да работи по-бързо обикновено е нещо очаквано и добро. Не такова е било положението с всички. Представете си, че в една компютърна игра например героите започнат да се движат по-бързо – ще стане много трудна за играене. Много често обаче се е случвало точно това! Често програмистите са пишели своите продукти като са ги оптимизирали като бързина спрямо най-масовите платформи, които са актуални в момента, и не са се грижили какво ще се случи с тях ако изведнъж бъдат пуснати на по-бърз компютър. Тоест програмистите масово не са се грижили да следят часовника и да правят изкуствено забавяне на операциите чрез временно приспиване на процесите разчитало се е, че компютрите са еднакво бързи.

Както казах, това имаше сериозно отражение при компютърните игри. Например когато пуснете страхотната псевдо 3D игра Test Drive 3 на Pentium 100, колата започва да се движи толкова бързо, че не може да се играе. А ако я пуснете на съвременен компютър с емулатор и не ограничите софтуерно скоростта, при пускане на състезание играта просто премигва и се оказва, че след хиляди незабелязани от вас катастрофи изведнъж сте се оказали на финиш линията. По времето на ерата на компютрите 286, 386 и 486 проблемът беше наличен масово при повечето компютрни игри.

Може да го забележите и при конзолните игри от онова време, които по същество също са си компютри. Например едни и същи игри за NES се играят различно на американска и на европейска конзола. Понеже PAL опреснява екрана 25 пъти в секунда, а NTSC го прави 30 пъти, това прави игрите с 20% по-бавни, когато се пуснат на PAL телевизор. При някои игри, като например Супер Марио, това е взето под внимание от разработчиците и е оправено в софтуера – там играта е изкуствено забързана при PAL режим, за да се компенсира въпросното забавяне, но пък от своя страна се е получил друг ефект свързан с музиката – понеже тя е свързана с изобразяването на кадрите на екрана (системата не е многозадачна, а е редувала инструкции към видео и звукови чипове последователно), при европейските конзоли музиката на Супер Марио е по-бърза. При други игри не е правена компенсация въобще и наистина в Европа част игрите за NES вървят по-бавно, отколкото в САЩ. Всичко това беше ефект от факта, че производителите на игри са разчитали на унифицирания хардуер с винаги еднаква скорост на изпълнение на инструкциите и не са писали кода си така, че да може да бъде пренасян на друга система/компютър.

Точно това e породило и концепцията за въвеждане на хардуерен бутон „Turbo“ при компютрите от поколения 286, 386 и 486. Идеята е, че ако някой реши да си направи ъпгрейд (да си купи по-нов процесор), той може да натисне турбо бутона, с което буквално да забави компютъра и да го „свали“ към базовата скорост на предишния си процесор и така да може да ползва и старите си програми. Така ъпгрейдите ставаха много по-плавно и не спираха хората от купуване на нов процесор за старата си машина – няма да се откажеш само защото някоя специфична програма/игра вече няма да работи както очакваш.

При 486 например първоначалният процесор е бил с равна скорост на процесора и на шината – 33 Mhz. При следващите процесори 486, които работят на по-висока тактова честота, смъкването на скоростта е било винаги именно до въпросните 33 Mhz. Един вид първият 80486 процесор е бил дефиниран като някакво базово ниво, а всички следващи, които са били по-бързи, са можели да се забавят така, че да станат съвместими с него.

И да, противно на очакванията „турбо“ бутона всъщност забавяше компютъра, а не го правеше по-бърз. Това объркваше хората и затова при по-хубавите кутии имаше цифров дисплей, на който е изобразена текущата тактова честота на процесора. Само при най-последните 100Mhz 80486 компютри се налагаше да се изписва „LO“ и „HI“, защото дисплеите на кутиите имаха позиция само за две букви и не можеше да се изпише „100“.

Концепцията за хардуерен бутон за забавяне умря след поколението компютри 486, защото при него различните производители започнаха да се състезават много агресивно за скорост и производителност (да правят все по-бързи 486 компютри) и вече стана ясно, че в бъдеще нещата ще стават прекалено динамични и ще е много трудно да се унифицират до някакви базови нива. Съгласете се, че разлики от 33 до 100 MHz за сравнително кратък период от време е прекалено много. Започнаха да се роят модели като DX, SL, SX, DX2, DX-S, DX2-S, SX-S, SX2, DX4, DX2WB, DX4WB, GX… Тоест конкуренцията на пазара уби унификацията и това направи непрактична концепцията да пишеш софтуера така, че да разчита на конкретна платформа – пазарът на хардуер стана шарен. Не всички се научиха веднага (например спомената от мен по-горе игра Test Drive 3 си беше писана за 33Mhz процесор и разчиташе на Турбо бутона), но при Pentium вече беше неизбежно, защото там Intel решиха подобен бутон напълно да отсъства. Това беше момента, в който тази хардуерна концепция за правене на обратна съвместимост беше отхвърлена напълно, а производителите на софтуер трябваше най-накрая да се научат да програмират по-умно и да се възползват от компютърния часовник.

П.П. Чудили ли сте се откъде идват тези съкращения SX и DX? Въведени са при 80386 компютрите за да означат дали процесорите са „Single word eXternal“, т.е. използва 16 битова шина за достъп до паметта, или „Double word eXternal“, т.е. 32 битова шина, което позволява не само повече информация накуп, но и адресиране на по-големи количества оперативна памет (при 16 битовата шина сте ограничени до 16MiB RAM, докато с 32 битовата ограничението е от 4GiB).

Това обаче не е така при 486 компютрите, които са си 32 битови. При тях обаче решават да използват старите съкращения, за да обозначат дали процесора има нужда от допълнителен копроцесор за обработка на инструкции с плаваща запетая (при SX) или копроцесора е вграден в самия централен процесор (при DX). Потребителите тогава са знаели, че SX е по-лошото, а DX по-доброто, поради което маркетинга е преизползвал тези означения.

П.П.2. Колкото до номерата след тях – SX2, DX2 – те първоначално са значели, че тактовата честота на процесора ще работи на скорост двойна на шината (при първоначалните варианти не е имало множител и са били равни), но и това бързо заглъхва като концепция, защото при DX4 всъщност множителя е бил 3, а не 4. И да, сетихте се, че 100Mhz 80486 процесори са били всъщност 3х33 = 99 Mhz. Маркетингът обаче твърдо не е бил съгласен на такова неразумно минимално занижение. Когато става дума за цена, това е добре, но когато става дума за скорост – не.

 



Добави коментар

Адресът на електронната поща няма да се публикува


*