Когато включим съвременен компютър днес, сякаш всичко се случва магически: появява се логото на производителя, операционната система се зарежда и за секунди работният плот е готов. Под тази привидна простота обаче се крие дълга история, която започва с... Персонален компютър на IBM и оригиналния му BIOS. Фърмуер, който не само вдъхна живот на хардуера, но и отбеляза раждането на клонирани компютри и цялата PC екосистема, която познаваме днес.
В следващите редове ще разгледаме как е работил BIOS-ът на IBM PC. Ще разгледаме какво е правил от момента на включване на машината, защо IBM са смятали, че това ще им позволи да запазят контрола върху стандарта и как този монопол е бил разбит. По пътя ще разгледаме ролята, която е изиграла Microsoft, как са се появили съвместимите устройства и защо този привидно временен дизайн на IBM се е превърнал в глобален стандарт.
Какво се случва, когато включите IBM PC: истинската роля на BIOS
Когато включите оригинален IBM PC, на практика нищо в системата не е „живо“: Нито RAM паметта е инициализирана, нито видеокартата отговаря, нито клавиатурата е готоваИ още по-малко DMA контролерът, контролерът на прекъсванията или програмируемият таймер. Единствените неща, които реално работят, са процесорът Intel 8088 и възможността за четене на съдържанието на ROM паметта.
По дизайн, 8088 започва да изпълнява инструкции на физическия адрес на паметта, който е еквивалентен на FFFF:0000hНа тази позиция, в системния ROM, IBM е поставила инструкция за преход (JMP), която пренасочва изпълнението към началото на кода за самотестване, известния Самотест при включване (POST)Оттам нататък компютърът започва да се събужда, парче по парче.
POST тестът е отговорен, на първо място, за проверката на самия процесор, валидирането на целостта на ROM паметта, в която се намира BIOS, и ROM паметите, които съдържат... IBM касета BASICСъщо така проверете и пребройте наличната RAM памет. В допълнение, Той инициализира основните интегрални схеми на системата една по една.
С напредването на POST теста, BIOS резервира и запълва определени области с ниска памет с таблици с данни и вътрешни работни областиСамо когато тези адреси правилно сочат към своите обработчици и прекъсванията на процесора са задействани, може да се каже, че BIOS „оживява“ и започва да предлага услугите си към всеки софтуер, който се изпълнява след това.
След като проверките са завършени и не бъдат открити критични грешки, BIOS изпълнява втория основен блок от кода за зареждане: Зареждащо устройство за обувки (BSL). Този, който е отговорен за стартиране на процеса на зареждане на операционната система или, ако това не е възможно, на BASIC кода в ROM паметта.

От POST до стартиране на системата: как работеше Boot Strap Loader
Boot Strap Loader на IBM PC беше сравнително малка, но важна част от кода. Трябваше да намеря валидно устройство за зареждане и да прехвърля контрола към негоПърво, проверяваше дали съществува валидно флопидисково устройство с поставена дискета. Ако намерише такова, се опитваше да прочете първия си физически сектор, известния зареждащ сектор.
Съдържанието на този сектор беше копирано на много специфичен адрес в паметта, 0000:7C00h (BOOT_LOCN)След това BIOS ще прескочи до този адрес, оставяйки следващата фаза от процеса на зареждане в ръцете на този малък буутлоудър. Ако не бъде намерена дискета, ако устройството не съществува или ако четенето е неуспешно по някаква причина, BIOS ще прибегне до план Б: стартиране на ROM-резидентната IBM касета BASIC, който представи началния си екран, готов за въвеждане на команди.
Това поведение бележеше ясна разлика от много по-късни клонинги. Много съвместими устройства нямаха BASIC в ROM, така че ако не можеха да заредят boot сектора, това, което показваха, беше просто съобщение за грешка, като например „Няма устройство за зареждане“без да се предлага на потребителя авариен BASIC интерпретатор.
На дискети, форматирани с PC DOS, първият сектор, до който BIOS осъществява достъп, съдържа малка програма, която прави разлика между системен диск и диск с данни. Ако е диск с данни, се показва съобщение; ако е системен диск, се започва зареждането на основните DOS файлове в паметта и се изпълнява кодът, който... Операционната система току-що беше завършила зареждането си.Този критичен компонент в крайна сметка стана цел на механизмите за защита от копиране. А по-късно и на множество вируси в boot сектора, които се заредиха преди всичко друго. Те останаха в паметта, готови да заразят други дискети.
BIOS услуги: прекъсвания, вход/изход и вътрешни таблици
Освен зареждането, BIOS на IBM PC предоставяше набор от стандартни входно/изходни функции, достъпни чрез софтуерни прекъсвания. Ранните програми и операционни системи можеха да извикат тези функции, за да... четене от клавиатурата, запис на екрана, управление на принтера, достъп до флопи дискови устройства или комуникация със серийния порт RS-232, наред с други задачи.
Методът за достъп беше много прост. Програмата зареждаше необходимите параметри в регистрите на процесора (AX, BX, CX, DX и др.) и изпълняваше инструкция. INT nкъдето n беше номерът на прекъсването на BIOS. 8088 се консултираше с таблицата с вектори, преминаваше към съответната рутина и след завършване на повикването, BIOS връщаше контрола на програмата, понякога връщайки и резултати в регистри.
Успоредно с това, BIOS трябваше да управлява няколко хардуерни прекъсвания, идващи от контролера 8259: таймерът (IRQ0), клавиатурата (IRQ1) и контролерът на флопи диска (IRQ6) Това бяха най-подходящите. Те се преобразуваха съответно във вектори на прекъсвания 08h, 09h и 0Eh, а BIOS вече имаше подготвени обработчици за актуализиране на системния брояч на време, обработка на натискания на клавиши или реагиране на събития на входно/изходни операции от флопи диск.
В допълнение към сервизните повиквания и хардуерните драйвери, BIOS предоставяше на системата серия от таблици с параметри и области с данни в малко RAMЕдин особено важен блок се намираше между сегментите 0040:0000 и 0040:00FF, където, наред с други неща, се съхраняваха конфигурацията на серийния и паралелния порт, състоянието на клавиатурата и нейния 16-символен кръгов буфер, информация за активното видео, данни за касетъчното устройство и брояч на тактове (при 18,2 Hz), използван за изчисляване на часа от деня.

Набор от символи, памет и отворена архитектура на IBM PC
Друг ключов аспект от наследството на BIOS и IBM PC беше стандартизацията на разширен набор от ASCII символиЗапочвайки със 7-битов ASCII (0-127), IBM дефинира разширен 8-битов набор (0-255). Той включваше символи с ударения, гръцки символи, математически символи и известните псевдографски символи за рисуване на квадрати, сенки и ленти на екрана.
В текстови режими, MDA и CGA видеокартите имаха свои собствени ROM памети със символи, съдържащи всички 256 символа. В графични режими, за първите 128 кода се използваше таблица с битови шаблони, съхранявана в BIOS ROM паметта. Стандартните контролни символи (0–31) се използваха като... видими графични символи, като например лица, стрелки и блокове които много DOS програми използват за своите интерфейси.
А картата на паметта? Процесорът 8088 можеше да адресира до 1 MiB (20 бита). IBM резервира горната част, от A0000h до FFFFFh, за ROM и видео памет, оставяйки първите 640 KiB (00000h-9FFFFh) за използваема RAM памет от DOS и приложения. В рамките на този първи мегабайт, областта F6000h-FDFFFh е била разпределена за BASIC в ROM, а FE000h-FFFFFh за BIOS. Този дизайн ще определи, в продължение на години, известната бариера от 640 KB на персоналния компютър.
Това горно пространство, запазено за ROM и адаптерна памет, скоро стана споделена основа за нови видеокарти (Hercules, EGA и др.), разширителни ROM памети (например, контролери за твърди дискове) и, по-късно, за механизмите на EMS разширена памет, която превключваше „прозорци“ на допълнителна памет в тези пропуски в адресната карта, за да се заобиколят ограниченията на DOS в реален режим.
IBM, техническа прозрачност и грешката, която отвори вратата за клонинги
IBM не само пусна на пазара персоналния компютър през 1981 г., но и придружи хардуера с изключително подробна техническа документация. Техническа справка Моделите IBM 5150 и по-късните модели включваха пълни електронни схеми и подробно описание на всяка верига, карти на паметта. И най-важното, дизасемблираният и анотиран списък на ROM BIOS.
Тази прозрачност беше нож с две остриета. От една страна, тя улесняваше разработчиците на хардуер да създават напълно съвместими разширителни карти за броени седмици. От друга страна, правеше много изкушаващо да... копиран директно от BIOS кода или неговата вътрешна структураIBM разчиташе на армията си от адвокати, за да спре всякакви клонинги, които бяха „твърде сходни“. За известно време страхът от съдебна битка възпираше много кандидати.
Интересът към предлагането на машини, съвместими с IBM PC, обаче продължи да расте. През 1982 г. Columbia Data Products MPC 1600, считан от мнозина за първия компютър, напълно съвместим с BIOS на IBM. През 1983 г. Преносим Compaqкойто ще се превърне в най-известния клонинг на първото поколение. Междувременно проекти като MPX-16 на Стив Чиарча демонстрираха как да се изградят 16-битови компютри със съвместими с PC слотове, почти като образователен инструмент.
Тези ранни производители са се сблъсквали с деликатно предизвикателство. Те са се нуждаели за точно възпроизвеждане на поведението на BIOSВъпреки това, те не можеха да копират нито един ред от кода му по правни причини. Много от тези, които се опитаха да го направят, бяха директно изправени пред съдебни дела от IBM, които ги принудиха да изтеглят продуктите си или напълно да преработят фърмуера.
Техниката „Чиста стая“ и легално клониране на BIOS
Изправени пред тази ситуация, някои компании прибягнаха до много специфична правна и техническа стратегия: „Дизайн за чисти помещения“Основната идея беше проста, но взискателна. Тя се състоеше в пълно отделяне на екипа, който анализираше IBM BIOS, от екипа, който пренаписваше съвместимия фърмуер.
На практика, първоначална група инженери, които можеха задълбочено да изучат кода на IBM и неговото поведение, се посветиха на документирането какво е правил всеки прекъсващ механизъм, какви стойности е връщал, как е реагирал в крайни случаии т.н. Оттам те генерираха неутрална спецификация на функционалните изисквания, напълно чиста от фрагменти от код, вътрешни имена или идентични структури.
Втори екип, който законно не е могъл да има контакт с кода или с техническите справочници на IBM, е бил отговорен, въз основа на тази спецификация, за напишете нов BIOS, с различен вътрешен дизайн, но със същото „външно поведение“Когато резултатът беше достатъчно съвместим, той се считаше за „чист“ клонинг от правна гледна точка.
Този подход, сравнително нов по онова време, стана популярен след случаи като този на CompaqCompaq Portable, пуснат на пазара през 1983 г., е първият напълно съвместим компютър без IBM BIOS. Въпреки че има дебат дали Columbia Data Products са постигнали пълно легално клониране първи, Compaq стана... Най-големият конкурент на IBM в сферата на персоналните компютриПо този начин се демонстрира, че архитектурата може да бъде възпроизведена без заплащане на лицензи.
IBM, Microsoft и ефектът на доминото от отварянето на BIOS
Докато контролът на IBM върху BIOS се разпадаше, друга компания се оказа изключително силна: MicrosoftОт самото начало IBM беше постигнала споразумение с Бил Гейтс, според което операционната система, използвана в персоналния компютър, PC-DOSЛицензиран е при определени условия. Това позволява на Microsoft да продава практически идентична версия (MS-DOS) на други съвместими производители.
Произходът на DOS също има своя собствена предистория. Microsoft купува операционна система, наречена QDOS/86-DOS, на ниска цена. Тя е разработена от Seattle Computer Products и е базирана на CP/M API на Digital Research. След като адаптира и подобри кода с помощта на неговия автор, Тим Патерсън, Microsoft го преименува на MS-DOS. След това те предлагат варианта PC-DOS на IBM. В същото време те запазват правото да лицензират MS-DOS на всеки друг производител, който го поиска.
Когато Compaq, Columbia, азиатските производители и много други започнаха да имат BIOS, съвместим със законите, естествената комбинация беше този BIOS плюс MS-DOSПо този начин IBM загуби монопола си върху архитектурата на персоналните компютри. В същото време Microsoft стана истинският собственик на софтуерния „етаж“, на който бяха базирани почти всички производители.
Масовото нарастване на съвместимите компютри, спадът на цените, разпространението на клонинги и лесното копиране на софтуер... Всичко това доведе до разпространението на персоналните компютри в офисите и домовете по целия свят. Резултатът беше консолидирането на това, което щеше да стане известно като партньорство между персонални компютри. “Wintel” (Windows + Intel). С Microsoft и производителите на x86, които доминират на пазара на настолни компютри в продължение на десетилетия.
Междувременно IBM се опита да си върне контрола, като въведе новата шина MCA (Micro Channel Architecture) в своята PS/2 линия. Тази шина изискваше лицензи. Въпреки това, индустрията до голяма степен избра да продължи с... ISA шина, наследена от PC/XT и ATОпитът за връщане към затворена архитектура се провали. Така де факто стандартът остана този, който се роди отворен през 1981 г.
От класическия BIOS до модерната епоха: техническо и културно наследство
Въпреки че днес говорим повече за UEFI, отколкото за BIOS, много от концепциите, въведени с IBM PC, остават. Идеята за резидентен фърмуер, който Той инициализира хардуера, извършва POST тест, установява стандартен интерфейс за услуги и след това предава контрола на зареждаща програма на операционната система. Това остава валидно. Всъщност, това е основата за стартиране на всеки съвременен компютър.
По подобен начин, наследството от прекъсванията в BIOS, картата на паметта под първия мегабайт, историческите I/O портове (COM1, LPT1 и др.) и много конвенции за x86 архитектурата се поддържат от десетилетия поради причини, свързани с... обратна съвместимостДори днес много BIOS/UEFI предлагат „наследени“ слоеве за съвместимост, които емулират поведение, наследено от 5150, така че по-старите операционни системи или определени инсталатори да могат да функционират без проблеми.
От икономическа и културна гледна точка, историята на BIOS-а на IBM и клонирането му в чисти помещения вероятно е един от епизодите, които... повечето са подкрепили отварянето и стандартизацията на пазара на персонални компютриБез това юридически чисто излизане от контрола на IBM, днешният пейзаж на персоналните компютри би бил далеч по-фрагментиран и патентован, като всеки голям производител би поддържал своя собствена затворена платформа.
Поглеждайки назад, BIOS на IBM PC беше много повече от просто фърмуер за зареждане. Той беше техническият и правен ключ, който определя стандарта за съвместим персонален компютърВерига от технически и договорни решения обяснява защо днес говорим за „PC“ почти като синоним на персонален компютър. И защо стотици производители са успели да изградят върху тази отворена основа огромна екосистема, която продължава да се развива.
