IBM-PC-совместимый компьютер — семейство компьютеров на процессорах архитектуры x86 или x86-64, происходящее от IBM PC, XT и AT, обладающее определёнными архитектурными особенностями, развивавшееся под влиянием компаний Intel и Microsoft. Совместимость касается как программного обеспечения, позволяя запускать его на актуальных машинах без эмуляции, так и аппаратного за счёт использования открытых стандартов. Из-за ослабления влияния фирмы IBM её название отпало, и их стали называть просто PC-совместимым или даже «PC». Не любой персональный компьютер является PC, в то же время не любой PC является персональным компьютером — существуют PC-совместимые серверы и кластеры.

История

Предыстория PC не был первым персональным компьютером вообще и даже первым персональным компьютером фирмы IBM. С 1975 года выпускались машины серии 51XX на процессоре собственной разработки , представлявшем собой набор микросхем невысокой степени интеграции и отдельных транзисторов. В 1980 году готовился к выпуску наследник этой серии уже на микропроцессоре Intel 8085 — IBM System/23, известный как «Datamaster», однако из-за проблем с портированием на новую систему языка BASIC выход новой машины задерживался. Этот восьмибитный компьютер был значительно дороже конкурентов: Apple II, Commodore VIC-20, Atari 400/800 и TRS-80 CoCo и не имел даже возможности отображать графику. Компании требовалась более дешёвая модель, разработку которой поручили Дону Эстриджу. Для ускорения разработки ему дали полную свободу действий, в том числе широкое использование компонентов сторонних производителей.

Оригинальный IBM PC Несмотря на небольшой размер команды, разработка IBM PC заняла всего год и 1 месяц — компьютер был представлен в августе 1981, спустя месяц после выхода System/23. Важнейшими особенностями IBM PC были модульный принцип — когда устройство состояло из сменных модулей, и принцип открытой архитектуры, заключавшийся в том, что устройство компьютера не держалось в секрете, комплект схем продавался за 49 $ — для того, чтобы облегчить сторонним производителям задачу разработки периферии. Другая важная особенность IBM PC — использование BIOS, прошитого в ПЗУ промежуточного ПО, реализующего стандартный программный интерфейс для доступа к устройствам, расположенным на материнской плате без знания их конкретной аппаратной реализации и обращений к ОС. Этот же подход приняли многие разработчики периферии (например, жёстких дисков), записывая в ПЗУ своих устройств ПО драйверов низкого уровня, реализующих стандартные протоколы. Чтобы помешать конкуренции, компания IBM запатентовала прошивку BIOS, запретив её использование в компьютерах конкурентов. Однако запатентован был лишь конкретный код прошивки, но не её программный интерфейс, что впоследствии позволило сторонним разработчикам выпускать программно-совместимые продукты, обходя патент IBM с использованием метода «чистой комнаты».

Первые совместимые компьютеры Слухи о том, что другие компании готовятся к выпуску совместимых с IBM PC компьютеров, возникли сразу же после выхода PC Спустя год после выхода в журнале InfoWorld появилась заметка:

Популярность IBM PC была столь высока, что они сразу стали большим дефицитом, что также гарантировало высокий спрос на совместимые машины. Первыми стали Columbia Data Products, выпустив в июне 1982 года модель MPC 1600. Тогда же вышел частично совместимый Eagle 1600 от Eagle Computer, а в ноябре — первый переносной PC-совместимый компьютер . Проблему с патентом на BIOS компании решали путём реверс-инжиниринга по «методу чистой комнаты». В том же году лицензионные копии процессоров Intel стала выпускать компания AMD.

В мае 1984 года компания выпустила на рынок Phoenix BIOS, вскоре появились и другие разработчики — American Megatrends и Award Software, что позволило выйти на рынок PC-совместимых компьютеров другим производителям.

Ослабление IBM, усиление роли Intel и Microsoft Желая вытеснить конкурентов с рынка, в 1987 году компания IBM выпустила модель PS/2 — серию компьютеров с более высокими характеристиками, чем у имевшихся на рынке моделей других производителей за счёт новой шины MCA с большей, чем у ISA, пропускной способностью, а также поддерживавшую автоматическое определение подключенного устройства. Однако лицензионная политика в отношении новинки была слишком жёсткой, отчего производители предпочли скооперироваться и разработать шину EISA, которая не нарушила бы совместимости со старыми устройствами. В дальнейшем компания Intel разработала более удачную шину PCI, которая оказалась более популярна, чем EISA, и стала стандартом де-факто до выхода в 2004 году шины PCIe. Таким образом, вместо вытеснения конкурентов, с выпуском PS/2 компания IBM окончательно потеряла своё влияние на рынок PC-совместимых машин, уступив место Intel и Microsoft. В 2004 году IBM объявила об уходе с рынка PC-совместимых компьютеров, впоследствии продав все права на производство ноутбуков и настольных компьютеров компании Lenovo.

Эпоха Windows Несмотря на то, что компьютеры с процессорами 80386 были доступны с 1986 года (один из первых — ), основной операционной системой для PC оставалась MS-DOS, однозадачная ОС, не использовавшая всех возможностей процессора. Альтернативные ОС для PC существовали, но не пользовались популярностью, либо использовались только в узкоспециализированных нишах. Первые версии Windows также не получили широкого распространения, к тому же это были лишь надстройки над DOS, реализующие многозадачность и среду рабочего стола.

Но эту ситуацию изменил выход Windows 95, сопровождавшийся масштабной рекламной кампанией. По функциональности Windows 95 уже стояла наравне с конкурентами с других платформ, поддерживалась автоконфигурация оборудования (Plug&Play) и защита памяти. Кроме того, для игровых и мультимедийных приложений было разработано API DirectX, предоставляющее доступ к расширенным функциям видеоадаптера, звуковой карты и игровых контроллеров. С выходом Windows 95 Microsoft стала основным игроком, наряду с Intel, диктующим основные стандарты платформы. В частности, компании Intel и Microsoft в 1997—2001 годах выпускали набор спецификаций PC System Design Guide, диктовавший, какие стандарты должен поддерживать компьютер, чтобы считаться PC-совместимым.

Тем не менее, приложения для DOS, в том числе игры, продолжали выпускаться и после появления Windows 95, в частности, игры на движке Build Engine, такие как Duke Nukem 3D (1996). Основная причина — однозадачный DOS позволял отдавать все ресурсы процессора игре, что позволяло снизить системные требования, а также незрелость «игровых» API, имевших низкую функциональность и большие накладные расходы, что ограничивало производительность. Первой широко принятой индустрией видеоигр версией DirectX, обеспечивавшей сравнимую с DOS производительность, была пятая, вышедшая одновременно с Windows 98 в мае 1998 года.

Дальнейшее развитие платформы В 1995 году компания Intel представила стандарт ATX, диктующий геометрические размеры компонентов компьютера, расположение, форму и распиновку разъёмов и крепёжных элементов, а также параметры блока питания. Этот стандарт прижился не сразу, став массовым только с начала 2000-х годов — до тех пор производители ориентировались на IBM PC/AT.

С 1997 по 2001 компании Intel и Microsoft совместно выпускали документ под названием PC System Design Guide, содержащий рекомендации о том, какие стандарты должен поддерживать компьютер, чтобы считаться PC-совместимым. Было выпущено четыре редакции: PC97, PC98, PC99 и PC2001. Кроме основных стандартов они содержали рекомендации по цветовому кодированию разъёмов, а также о том, какие технологии следует считать устаревшими, и воздержаться от их использования в новых моделях и от поддержки в новых версиях ПО.

Архитектура

IBM-PC-совместимые компьютеры построены на базе микропроцессоров, совместимых с 8086. Обязательно также наличие BIOS или UEFI, стандартных для PC системы адресации, прерываний, прямого доступа к памяти и системных шин (в зависимости от поколения компьютера это может быть ISA, PCI или PCI-Express).

Процессор

Оригинальный IBM PC производился с процессором Intel 8088. Кроме 16-битной системы команд, этот процессор мог адресовать без дополнительных ухищрений до 1 мегабайта (220 байт) оперативной памяти, когда большинство применявшихся в персональных компьютерах микропроцессоров могло адресовать только 64 килобайта. Позже его сменил сначала Intel 80286, имевший защищённый режим и умевший адресовать до 16 мегабайт (224), а потом — Intel 80386, с 32-битным машинным словом и адресным пространством до 4 гигабайт (232). В дальнейшем, вплоть до перехода на x86-64, изменения практически не затрагивали систему команд, хотя его внутреннее устройство значительно перерабатывалось: математический сопроцессор был перенесён внутрь кристалла процессора, появился процессорный кэш, изменялась внутренняя архитектура процессора и т. д.

Математический сопроцессор

Изначально, вплоть до Intel 80386, процессоры Intel не имели встроенных средств для расчётов с плавающей запятой, однако в качестве опции для этой цели мог быть установлен дополнительный сопроцессор. Начиная с Intel 80486 блок для работы с плавающей запятой становится частью центрального процессора.

x86-64

На смену процессорам архитектуры IA-32 компания Intel готовила совершенно новую архитектуру — Itanium. Однако, ошибки в маркетинге и технические проблемы привели к тому, что конкуренцию выиграла архитектура x86-64, разработанная компанией AMD и почти полностью обратно совместимая с 32-битной архитектурой процессоров Intel.

Распределение памяти

Основная область памяти, барьер 640 килобайт

В процессорах intel 8086/8088 доступен лишь 1 мегабайт (220 байт) памяти, однако через часть этого пространства доступна видеопамять, память BIOS и различных внешних устройств, поэтому для самих программ остаётся только 640 килобайт (адреса  — ). Более поздние модели процессоров имеют больший объём адресуемой памяти, но для этого требовалось перейти в другой режим процессора. Кроме того, особенность конструкции процессора intel 80286 позволяла с помощью определённых ухищрений обращаться к дополнительным 64 К памяти (—), и для обеспечения совместимости с таким режимом был организован специальный ключ, доступный через порт контроллера клавиатуры.

Верхняя память (UMA)

Адреса с по заполнены данными различных устройств: сюда проецируется часть видеопамяти, BIOS , память настроек и области конфигурирования Plug and Play. Для ускорения работы с этой областью памяти может использоваться так называемое «теневое ОЗУ», когда данные при записи копируются и в память устройства, и в специальную область ОЗУ, а при чтении берутся только из ОЗУ, однако такой режим доступен на процессорах 80386 и выше, и только для тех устройств, которые не могут самостоятельно изменять значения этой памяти.

Кроме того, существует возможность отображать на область UMA и области из дополнительной памяти — с помощью спецификаций EMS и XMS.

Дополнительная память

Начиная с процессора 80286 появился защищённый режим, который имеет две функции: доступ к областям памяти дальше 1 мегабайта и защита памяти. Изначально существовало два способа доступа к памяти: сегментный и страничный, однако первый, несмотря на свои преимущества, так и не получил распространения из-за своей сложности, поэтому начиная с x86-64 процессоры поддерживают только страничную адресацию.

Память режима SMM

Область памяти, доступная в режиме SMM — достаточно невелика, но к ней невозможно стандартными средствами обратиться из операционной системы и прикладных программ. Эта память используется для того, чтобы режим SMM включался прозрачно для других программ и не портил регистры процессора, а также для хранения данных и кода, необходимых для работы SMM.

Виртуальная память