avatar
Social Engineering
@Social_engineering
28.08.2025 08:03
Откуда взялся Unix?

Многие полагают, что «Unix» и «Linux» — это одно и то же. Но по состоянию на 2025 год с большинством дистрибутивов, ситуация почти так и обстоит.

В 1969 году Кен Томпсон, сотрудник-исследователь из лаборатории «Bell Labs» экспериментировал в области проектирования операционных систем. Тогда в Bell Labs имелся PDP-7, компьютер с интересной периферией: у него был очень быстрый (по тем временам) дисковый накопитель. Томпсон заинтересовался, на какую максимальную пропускную способность может выйти этот дисковод при обработке данных, поэтому написал собственную программу, служившую интерфейсом для жёсткого диска. Это была серьёзная задача: в те времена всё программировали на ассемблере, а для того, чтобы создать драйвер жёсткого диска, требовалась масса низкоуровневого кода.

В какой-то момент Томпсон осознал: в этот интерфейс уже вложено столько труда, что программу практически можно считать полноценным ядром операционной системы. Он посчитал, что ещё три недели — и он доведёт ядро до ума. Неделю на создание нового редактора, неделю на работу с ассемблером и ещё неделю, чтобы написать прототип ядра. Именно с этого прототипа и начинается история операционной системы Unix.

Этот ранний прототип и заложенные в нём идеи показались интересными, и Томпсон вместе с коллегами по Bell Labs принялся его развивать. Единственный паттерн проектирования в новой системе заключался в следующем: нужно много полезных инструментов, каждый из которых сфокусирован на решении ровно одной задачи. Брайан Керниган, ещё один исследователь из Bell Labs, предложил назвать новую систему «Unix» — как бы в противовес операционной системе «Multics», которой компания Bell Labs также занималась несколькими годами ранее. Но проект «Multics» не удался из-за того, что та ОС получалась очень сложной.

К ноябрю 1971 года «Bell Labs» собрала программы для новой операционной системы, и так был создан «Unix, 1-я редакция». За ней последовали Unix 2nd Edition в июле 1972 года, Unix 3rd Edition в феврале 1973 года и Unix 4th Edition в ноябре 1973 года.

Эти ранние версии Unix не слишком отличались от современных систем Linux. Многие команды, на которые мы сегодня полагаемся при работе с Linux, присутствовали уже в Unix 2nd Edition. Например, команда cat для отображения файлов, команды mkdir и rmdir для управления каталогами, cp, mv и rm для управления файлами, chmod и chown для управления доступом к файлам.

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

Особенно сильно от исходного Unix до современных дистрибутивов Linux изменился разброс доступных опций командной строки. Когда компьютеры стали гораздо быстрее, и памяти стало больше, каждый инструмент стал брать на себя всё больше и больше работы. Например, команда ls из версии Unix 2nd Edition поддерживала всего пять опций: -l для вывода списка в длинном формате, -t для сортировки по времени, а не по имени, -a для перечисления всех файлов, -s для показа, каков размер каждого файла и -d для перечисления имён каталогов, а не их содержимого. Современная команда ls в GNU поддерживает как эти исходные опции, так и более пятидесяти расширений для них.

Родословная всех современных Unix-подобных систем прослеживается вплоть до исходного Unix. Linux — одна из таких систем, использующих инструментарий GNU. Набор GNU основан на инструментах Unix. В 2025 Linux уже не указывается в исходной структуре Unix, и неслучайно: теперь Linux поддерживает такие архитектуры и инструменты, о которых и мечтать было нельзя на момент зарождения Unix. Но общий принцип работы с командной строкой по-прежнему сохранился во многом таким, каким его закладывали в Unix в 1970-е. В следующий раз, когда вам доведётся при помощи ls вывести список файлов из каталога — вспомните, что вы пользуетесь инструментом, которому уже больше пятидесяти лет.

S.E. ▪️ infosec.work ▪️ VT
104 22.9K

Обсуждение 0

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram

Social Engineering

125.1K
Делаем уникальные знания доступными.

Вакансии - @infosec_work

Вопросы, предложения, пожелания, жалобы - @Social_Engineering_bot

Сотрудничество — @SEAdm1n

РКН: https://vk.cc/cN3VwI
Открыть в Telegram