История изобретения компьютера: от счётных машин до персонального ПК

Компьютер не изобрёл один человек. Современная машина возникла из нескольких независимых линий: механических калькуляторов, перфокарт, математической логики, электрических реле, электронных ламп, идеи хранимой программы и полупроводников. Блез Паскаль и Готфрид Лейбниц создавали счётные устройства, Чарльз Бэббидж спроектировал программируемую Аналитическую машину, Алан Тьюринг сформулировал теоретическую модель вычисления, а команды Конрада Цузе, Гарвардского Mark I, Colossus, ENIAC и других проектов построили разные ранние компьютеры. Поэтому ответ на вопрос «кто был первым» зависит от определения.

Счёт существовал до машины

Абак, счётные палочки и узелковые записи помогали человеку представлять числа, но сами не выполняли последовательность операций автоматически. Логарифмы и счётная линейка позволили заменить сложные вычисления более простыми. Эти инструменты показывают главную цель: вынести часть умственной процедуры во внешний объект.

В 1640-е годы Блез Паскаль построил механический калькулятор для сложения и вычитания. Колёса переносили десяток в следующий разряд. Готфрид Вильгельм Лейбниц позднее разработал ступенчатый барабан и машину, способную выполнять умножение и деление повторными операциями. Конструкции были сложны, дороги и чувствительны к точности деталей, но доказывали, что арифметические правила можно воплотить в механизме.

Перфокарта учит машину следовать данным

В начале XIX века ткацкий станок Жозефа Мари Жаккара использовал цепочку перфокарт для задания узора. Отверстие или его отсутствие определяло движение нитей. Станок не был универсальным компьютером, но демонстрировал способ отделить программу действий от механизма.

В конце XIX века Герман Холлерит применил перфокарты для обработки переписи населения США. Машины считывали отверстия электрическими контактами, считали и сортировали записи. Это уже была крупная система обработки данных, хотя её операции оставались специализированными.

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

Проекты Чарльза Бэббиджа

Английский математик Чарльз Бэббидж в 1820-е годы задумал Разностную машину для автоматического расчёта таблиц. Она должна была использовать метод конечных разностей и печатать результат, уменьшая человеческие ошибки. Финансирование и производство столкнулись с конфликтами, изменениями проекта и пределами точной механики, поэтому полная машина при жизни автора не была завершена.

Более смелая Аналитическая машина имела «мельницу» для операций, «склад» для чисел, условные переходы и перфокарты. По структуре она удивительно напоминает программируемый компьютер. Ада Лавлейс в примечаниях к описанию машины показала, как закодировать вычисление чисел Бернулли, и рассуждала о работе не только с числами, но и с символами.

Однако проект и работающий аппарат – не одно и то же. Бэббидж сформулировал архитектурные идеи, но не построил электронный или полностью действующий универсальный компьютер. Его значение заключается в ясном разделении памяти, вычислительного блока и программы.

Математическая основа вычислений

В XIX веке Джордж Буль создал алгебру логических значений. Позже Клод Шеннон показал, как булевы операции реализуются электрическими переключателями. Ноль и единица оказались удобны не потому, что компьютер понимает только две цифры, а потому, что физически легче надёжно различать два состояния.

В 1936 году Алан Тьюринг описал абстрактную машину, читающую и записывающую символы по правилам. Модель помогла определить, что вообще является вычислимым алгоритмом. Она не была чертежом конкретного компьютера, но дала теоретический язык универсальной программируемой машины.

В то же десятилетие инженеры строили реальные устройства на реле. Электромеханическое реле надёжно переключает контакт, однако работает намного медленнее электронной лампы.

Конрад Цузе и Z3

Немецкий инженер Конрад Цузе строил машины в домашних условиях. Его Z3, завершённая в 1941 году, использовала телефонные реле, двоичную арифметику и программу на перфорированной плёнке. Её считают первым работоспособным программно управляемым автоматическим цифровым компьютером.

Z3 не имела электронной скорости и не хранила программу в общей памяти. Условные возможности были ограничены. Тем не менее она автоматически выполняла последовательность вычислений над числами с плавающей точкой и стала важной вехой.

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

Военные электронные машины

Вторая мировая война резко увеличила спрос на вычисления. Британские Colossus создавались для криптоанализа и использовали тысячи электронных ламп. Они были электронными и программируемыми с помощью переключателей и соединений, но предназначались для специального класса задач, а сведения о них долго оставались секретными.

Американский ENIAC, завершённый в 1945 году, рассчитывал артиллерийские таблицы и другие задачи. Он был электронным, цифровым и универсальным, занимал большой зал и потреблял значительную мощность. Для новой задачи операторы перестраивали кабели и переключатели, что занимало намного больше времени, чем современная загрузка программы.

Женщины-программисты ENIAC разрабатывали процедуры и настраивали машину, хотя их вклад долго недооценивали. Программирование возникло как самостоятельная инженерная работа ещё до привычных языков и экранов.

Идея хранимой программы

Следующий поворот – хранить команды в той же электронной памяти, что и данные. Машина могла читать инструкцию, изменять последовательность и быстро переходить к другой программе без перекоммутации панелей. Эту архитектуру связывают с проектом EDVAC и докладом Джона фон Неймана, но идеи обсуждались широкой группой специалистов.

В 1948 году Manchester Baby выполнил первую программу на электронной машине с хранимой программой. Затем EDSAC и другие системы показали практическое программирование. Полный смысл этого перехода разбирает статья «Как хранимая программа изменила компьютер».

Хранимая программа сделала компьютер универсальным в повседневном смысле. Один аппарат мог считать траекторию, обрабатывать перепись или работать с текстом, если имел подходящие устройства ввода и программу.

Лампы, транзисторы и микросхемы

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

Изобретённый в 1947 году транзистор позволил создать меньший, холодный и надёжный переключатель. В 1950-е появились транзисторные компьютеры. Затем интегральная схема разместила множество элементов на одном кристалле, а микропроцессор собрал центральный процессор в одной или нескольких микросхемах.

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

Языки программирования

Первые программисты задавали машинные коды и адреса. Ассемблер заменил числовые команды мнемониками, а компилятор позволил описывать задачу на языке более высокого уровня. Грейс Хоппер была одним из пионеров компиляторов и продвигала идею машинно-независимого программирования.

FORTRAN, созданный командой Джона Бэкуса в IBM и выпущенный в 1957 году, сделал удобнее научные и инженерные формулы. Его влияние рассматривает статья «Как Fortran научил компьютер понимать формулы». COBOL ориентировался на деловые данные, а позднейшие языки расширили круг разработчиков.

Программа стала переносимым продуктом, хотя зависимость от системы и оборудования полностью не исчезла. Развитие программного обеспечения оказалось не менее важным, чем уменьшение транзисторов.

От больших машин к персональному компьютеру

В 1950–1960-е годы компьютеры покупали государства, университеты и корпорации. Пользователи приносили задания операторам или работали через терминалы. Мини-компьютеры сделали интерактивную работу доступнее лабораториям и небольшим организациям.

Микропроцессоры 1970-х позволили энтузиастам и компаниям создавать настольные машины. Altair 8800 продавался как набор и вдохновил раннюю индустрию микрокомпьютеров. Apple II, Commodore PET и TRS-80 предложили более целостный опыт, а IBM PC 1981 года укрепил архитектуру, вокруг которой вырос рынок совместимых устройств.

Графический интерфейс, мышь и идеи окон разрабатывались раньше массового ПК в исследовательских центрах, включая Xerox PARC. Их коммерческое распространение сделало компьютер понятнее неспециалисту. При этом командная строка и текстовые интерфейсы не исчезли.

Зачем нужна операционная система

Ранние машины выполняли одно задание с непосредственным управлением оборудованием. По мере усложнения понадобились программы, распределяющие память, процессорное время, файлы и устройства. Пакетные системы сменились многозадачными и многопользовательскими.

Сегодня человек взаимодействует не с «голым» процессором, а с целой программной средой. Из каких уровней она состоит, рассказывает статья «Из чего состоит операционная система». Именно ОС позволяет одному приложению открывать файл и показывать окно, не зная точной модели накопителя и видеокарты.

Интернет и мобильная эпоха

Сетевое взаимодействие превратило отдельные машины в глобальную инфраструктуру. Компьютером теперь является не только настольный корпус: смартфон, автомобильный блок, роутер, сервер и бытовой контроллер тоже содержат процессор, память и программу.

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

Кто всё-таки изобрёл компьютер

Для первой механической счётной машины называют Паскаля, для проекта универсальной программируемой машины – Бэббиджа, для теории – Тьюринга, для работающей релейной системы – Цузе, для ранней электронной универсальной машины – команду ENIAC, а для хранимой программы – коллективы EDVAC, Manchester Baby и EDSAC.

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

Старый адрес «Создание компьютера» объединён с этой страницей и постоянно перенаправляет сюда. Так история собрана в одном каноническом материале, а две страницы больше не конкурируют с одинаковым ответом.