История компьютера: от абака и арифмометров до ENIAC, транзисторов и ПК

История компьютера: от абака и арифмометров до ENIAC, транзисторов и ПК Полезное

История компьютера — это путь от ручных счетных приспособлений через механические калькуляторы и программируемые машины к электронным компьютерам с хранимой программой, а затем к микропроцессорам и персональным ПК. Ниже разберу ключевые шаги по порядку и отдельно — почему на вопрос «какой компьютер был первым» нет одного ответа. Границы этапов условны: страны и лаборатории шли параллельно, поэтому важнее понимать, что добавлял каждый шаг.

Мини-словарь: что считать компьютером

Спор о «первом компьютере» почти всегда — спор о терминах. Разведу четыре уровня:

Уровень Что умеет Пример
Счетное устройство помогает человеку считать, но каждое действие делает человек абак, счеты, логарифмическая линейка
Автоматический калькулятор сам выполняет арифметическую операцию арифмометр Томаса, Pascaline
Программируемая машина выполняет последовательность операций по внешней программе (перфолента, коммутация) Z3, Colossus, ENIAC
Компьютер с хранимой программой держит программу в той же памяти, что и данные, и может менять ее без перекоммутации Manchester Baby, EDSAC

Еще одно различие — аналоговые и цифровые машины. Аналоговая представляет число физической величиной (угол, длина на шкале, напряжение), цифровая — дискретными разрядами. Логарифмическая линейка и антикитерский механизм — аналоговые, арифмометр и ENIAC — цифровые. Слова «ЭВМ» и «компьютер» сегодня синонимы.

Ручной этап: абак

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

Логарифмы: умножение через сложение

В 1614 году шотландский математик Джон Непер опубликовал таблицы логарифмов, а в 1617 году описал «палочки Непера» — бруски с таблицей умножения, которые сводили умножение многозначных чисел к сложению частичных произведений.

Идея логарифма: lg(a·b) = lg a + lg b, то есть умножение заменяется сложением по таблице и обратным поиском. Английский астроном Эдмунд Гюнтер около 1620 года нанес логарифмическую шкалу на линейку, а Уильям Отред около 1622 года придумал сдвигать две такие шкалы друг относительно друга (описание опубликовал в 1632-м) — так появилась логарифмическая линейка. Ею инженеры пользовались до массового распространения карманных калькуляторов в 1970-х.

Принцип — логарифм, сложение, обратный переход — в коде (проверено на Python 3.14):

import math

a, b = 37, 54
la, lb = math.log10(a), math.log10(b)  # логарифмы (десятичные, не Неперовы)
s = la + lb                            # сложение вместо умножения
product = 10 ** s                      # обратный переход

print(f"lg {a} = {la:.4f}, lg {b} = {lb:.4f}")
print(f"сумма = {s:.4f}")
print(f"10^сумма = {product:.4f}, точно: {a * b}")

# Логарифмическая линейка дает 3 значащие цифры
approx = float(f"{product:.3g}")
print(f"с точностью линейки: {approx:g}")
lg 37 = 1.5682, lg 54 = 1.7324
сумма = 3.3006
10^сумма = 1998.0000, точно: 1998
с точностью линейки: 2000

Последняя строка — цена аналогового инструмента: около трех значащих цифр, а порядок числа инженер держал в уме.

Механические калькуляторы: от Шиккарда до «Феликса»

В 1623 году Вильгельм Шиккард описал в письме Кеплеру «считающие часы» — механизм, который складывал и вычитал на шестернях, а умножение делал с помощью встроенных палочек Непера. В 1642 году Блез Паскаль начал строить суммирующую машину Pascaline (рабочие экземпляры — с 1645 года). Готфрид Лейбниц в 1670-х создал машину со ступенчатым валиком, умножавшую повторным сложением со сдвигом.

Лейбниц же подробно описал двоичную систему счисления (статья 1703 года), хотя сам строил десятичные машины; основой компьютеров двоичная запись стала только в XX веке. Перевод в нее — повторное деление на 2:

def to_binary(n: int) -> str:  # для n >= 0
    if n == 0:
        return "0"
    bits = []
    while n > 0:
        bits.append(str(n % 2))  # остаток - очередной разряд
        n //= 2
    return "".join(reversed(bits))

for n in (5, 13, 1945):
    print(n, "->", to_binary(n), "| проверка:", bin(n))
5 -> 101 | проверка: 0b101
13 -> 1101 | проверка: 0b1101
1945 -> 11110011001 | проверка: 0b11110011001

Частая ошибка при обратном переводе: int("1101") читает строку как десятичное число и дает 1101, а не 13. Нужно указать основание: int("1101", 2) дает 13.

Массовым механический калькулятор стал в XIX веке: Шарль Ксавье Томас де Кольмар запатентовал арифмометр в 1820 году, а серийно его выпускали с 1851 года. В Петербурге Вильгодт Однер в 1873 году придумал арифмометр с колесом переменного числа зубьев (фабричный выпуск — с 1890 года); его потомок, советский «Феликс», выпускался с 1929 по 1978 год.

Перфокарты и машины Бэббиджа: идея программы

В 1801-1804 годах Жозеф Мари Жаккар создал ткацкий станок, узор на котором задавала цепочка перфокарт: смена карт меняла узор без переделки механики. Так появилась идея, что порядок действий можно хранить отдельно от машины.

Англичанин Чарльз Бэббидж в 1822 году предложил разностную машину для расчета таблиц многочленов, а с 1834 года проектировал так и не построенную аналитическую машину: арифметическое устройство («мельница»), память («склад»), программа на перфокартах и условный переход. Ада Лавлейс в 1843 году опубликовала для нее план вычисления чисел Бернулли — его часто называют первой программой (хотя наброски программ были и у самого Бэббиджа).

В 1890 году перепись населения США обработали на перфокарточных табуляторах Германа Холлерита. Его компания в 1911 году вошла в объединение CTR, в 1924 году переименованное в IBM, а перфокарты оставались основным носителем ввода до 1970-х.

1936-1946: теория, реле и первые электронные машины

В 1936 году Алан Тьюринг описал абстрактную машину, способную выполнить любой алгоритм, — математическую модель универсального компьютера. Клод Шеннон в магистерской работе 1937 года (опубликована в 1938-м) показал, что схемы из реле реализуют булеву алгебру, то есть логику можно собирать из переключателей.

Машина Год Элементная база Программируемость
Z3 (Конрад Цузе, Германия) 1941 реле по перфоленте, без условных переходов
ABC (Атанасов и Берри, США) 1942 лампы не программируемая, решала системы линейных уравнений
Colossus (Томми Флауэрс, Великобритания) 1944 лампы коммутацией и переключателями, одна задача — взлом шифра Lorenz
Harvard Mark I (IBM и Говард Эйкен, США) 1944 электромеханика по перфоленте
ENIAC (Экерт и Мокли, США) 1945 (объявлен в 1946) лампы универсальная, программа задавалась кабелями и переключателями

Colossus взламывал не «Энигму», а шифр Lorenz; «Энигму» вскрывали электромеханические «бомбы» Тьюринга и Уэлчмана.

ENIAC — первая электронная универсальная машина: 17 468 ламп, около 27 тонн, до 5000 сложений в секунду. Но для смены задачи ее перекоммутировали вручную, иногда днями.

Хранимая программа: архитектура фон Неймана

В 1945 году Джон фон Нейман написал отчет о машине EDVAC, где программа хранится в той же памяти, что и данные. Эту схему называют архитектурой фон Неймана. Первой ее реализовала Manchester Baby: 21 июня 1948 года она выполнила программу из памяти. В мае 1949 года в Кембридже заработал EDSAC — первая такая машина для регулярных расчетов.

В СССР в Киеве под руководством Сергея Лебедева построили МЭСМ: первый пробный пуск — в ноябре 1950 года, приемка в эксплуатацию — в декабре 1951-го. С 1953 года в Москве выпускали первую серийную советскую ЭВМ «Стрела» (главный конструктор Юрий Базилевский). В 1951 году появились первые коммерческие компьютеры Ferranti Mark 1 и UNIVAC I, а ламповую IBM 650 (1954) выпустили тиражом около двух тысяч.

Поколения ЭВМ: транзистор, микросхема, микропроцессор

Деление на поколения — учебная условность по элементной базе: годы перекрываются, в разных странах смена шла со сдвигом.

Поколение Элементная база Примерные годы Примеры
Первое электронные лампы 1940-е — 1950-е ENIAC, EDSAC, МЭСМ, IBM 650
Второе транзисторы конец 1950-х — 1960-е IBM 7090, IBM 1401, PDP-1
Третье интегральные схемы середина 1960-х — 1970-е IBM System/360 и System/370, PDP-11, ЕС ЭВМ
Четвертое микропроцессоры (БИС и СБИС) с 1970-х по сей день Intel 4004, IBM PC, современные ПК и смартфоны

Транзистор создали в Bell Labs в декабре 1947 года Бардин и Браттейн из группы Шокли (Нобелевская премия 1956 года — всем троим). Он заменил лампу: меньше, надежнее, меньше греется. Интегральную схему независимо предложили Джек Килби (Texas Instruments, 1958) и Роберт Нойс (Fairchild, 1959).

В 1956 году IBM выпустила RAMAC — первый компьютер с жестким диском (5 миллионов символов). В 1964 году IBM анонсировала семейство System/360: программы переносились между моделями разной мощности без переписывания. Оговорка к таблице: в System/360 стояли гибридные модули SLT, на монолитные микросхемы IBM перешла в System/370. Совместимые с System/360 машины в СССР выпускали как ЕС ЭВМ.

«Пятое поколение» — не новая элементная база, а японская госпрограмма 1982-1992 годов по машинам для логического вывода и ИИ, так что по элементной базе мы до сих пор в четвертом поколении.

Персональный компьютер

В 1971 году Intel выпустила 4004 — первый коммерческий микропроцессор на одном кристалле; это открыло путь к дешевым компьютерам. В 1975 году набор Altair 8800 запустил волну любительских машин. В 1977 году вышли Apple II (его разработал Стив Возняк), Commodore PET и TRS-80 — первые массовые ПК в готовом корпусе.

В 1981 году вышел IBM PC с открытой архитектурой, и совместимые с ним машины стали стандартом «персоналки». В 1984 году Apple Macintosh популяризировал графический интерфейс с мышью. Дальше менялся масштаб, а не принцип: смартфоны и дата-центры — по-прежнему цифровые машины с хранимой программой.

Выводы

  • «Первый компьютер» зависит от критерия: первая работающая программируемая автоматическая машина — Z3 (1941), первая электронная универсальная — ENIAC (1945), первая с хранимой программой — Manchester Baby (1948).
  • Идея программы отдельно от машины идет от перфокарт Жаккара и аналитической машины Бэббиджа.
  • Поколения ЭВМ — условная классификация по элементной базе: лампы, транзисторы, интегральные схемы, микропроцессоры.

Где применяется / связь с практикой

Освойте тему на практике

Процессор, память с программой и данными, шина, устройства ввода и хранения — это архитектура фон Неймана в миниатюре. Специалист техподдержки каждый день работает с ее потомками: диагностирует ПК, ставит ОС, разбирается с дисками, сетью и периферией. Этот путь разбирают на курсе «Специалист технической поддержки». Посмотреть формат занятий бесплатно можно на открытых уроках Otus.

FAQ

Почему компьютеры считают в двоичной системе, а не в десятичной?
Элементу с двумя устойчивыми состояниями (реле замкнуто или разомкнуто, транзистор открыт или закрыт) надежнее различать два уровня, чем десять. При этом ранние машины, включая ENIAC и Harvard Mark I, были десятичными — двоичная запись победила не сразу.

Когда появился первый ноутбук?
Переносные компьютеры появились в начале 1980-х: Osborne 1 (1981) весил около 11 кг и был скорее «чемоданом». Раскладную форму с экраном над клавиатурой ввел GRiD Compass (1982), а массовой она стала к концу 1980-х.

OTUS Журнал