Раздел 4.3. Linux и Git: Победа анархии (1991 — 2005)
В этом разделе мы увидим, как один студент в своей спальне случайно уничтожил бизнес-модели крупнейших корпораций мира. Это история о том, как бесплатное победило платное, как анархия победила иерархию, и как гнев одного человека подарил нам главный инструмент современной разработки.
Раздел 4.3. Linux и Git: Победа анархии (1991 — 2005)
В начале 90-х мир софта был феодальным.
- Если вы хотели UNIX, вы платили $5,000–$20,000 компаниям Sun, HP или SGI за рабочую станцию.
- Если вы хотели Windows, вы платили «налог» Microsoft с каждого ПК.
- Исходный код был самым охраняемым секретом фирмы. За попытку посмотреть внутрь вас могли засудить за промышленный шпионаж.
В это время в Хельсинки, Финляндия, жил 21-летний студент, который просто хотел поиграть с новым процессором, но у него не было денег на дорогой софт.
А. «Просто хобби»: Линус Торвальдс
Сюжет: Студент и его новый компьютер
1991 год. Линус Торвальдс учится в Хельсинкском университете. Он тратит все свои сбережения ($3,500) на новый компьютер с новейшим процессором Intel 386. Линус хочет установить на него UNIX, потому что привык к этой системе в университете. Но цены на коммерческий UNIX астрономические. Существует учебная версия MINIX, написанная профессором Эндрю Таненбаумом. Но Таненбаум был строг: он запрещал модифицировать код и добавлять новые функции, чтобы система оставалась простой для студентов.
Линус решает написать свой эмулятор терминала, чтобы подключаться к университетской сети из дома.
- Сначала ему нужно было просто читать клавиатуру и выводить буквы на экран.
- Потом ему понадобилось скачивать файлы — пришлось написать драйвер диска.
- Потом ему понадобилось управлять файлами — пришлось написать файловую систему. Постепенно эмулятор превратился в ядро операционной системы.
Письмо в Usenet: Самое важное сообщение в истории IT
25 августа 1991 года Линус пишет историческое сообщение в новостную группу comp.os.minix:
«Привет всем, кто использует миникс. Я делаю (бесплатную) операционную систему (это просто хобби, она не будет большой и профессиональной, как GNU) для клонов 386(486) AT...»
Он не собирался захватывать мир. Он назвал проект Freax (Free + Freak + X), но администратор FTP-сервера, выложивший файлы, переименовал папку в Linux (Linus + Unix), потому что Freax звучало глупо.
Эффект Базара: Собор против Базара
Почему Linux выжил, а сотни других любительских ОС умерли? Философ Эрик Реймонд позже опишет этот феномен в книге «Собор и Базар».
- Модель Microsoft (Собор): Код пишут избранные жрецы за закрытыми дверями. Планы засекречены. Релизы выходят раз в год после тщательного тестирования.
- Модель Linux (Базар): Код открыт всем. Линус выкладывал новую версию каждый день.
- Закон Линуса: «Если у вас достаточно глаз, все баги становятся мелкими» (Given enough eyeballs, all bugs are shallow).
Пользователи не просто жаловались на баги, они присылали патчи (исправления). Хакер из Австралии написал драйвер для дисковода. Студент из Бразилии написал стек TCP/IP. Линус стал не «главным архитектором», а «добродушным диктатором» (BDFL), который просто фильтровал чужой код.
Священный союз: GNU + Linux
У Линуса было ядро (мотор), но не было инструментов (руля и колес). В это же время в Бостоне Ричард Столлман и его проект GNU имели отличные бесплатные инструменты (компилятор GCC, оболочку Bash), но не имели работающего ядра (их ядро Hurd застряло в разработке). Эти два проекта соединились. Так родилась полноценная ОС (которую Столлман настаивает называть GNU/Linux).
Вхождение Корпораций: IBM делает ставку на миллиард
К концу 90-х Linux стал феноменом среди гиков. Но большой бизнес боялся его.
- Директор банка спрашивал: «Кто будет отвечать, если сервер упадет? Студент из Финляндии?».
В 2001 году случается поворотный момент. Новый CEO IBM Лу Герстнер принимает рискованное решение. IBM объявляет, что инвестирует $1 миллиард в развитие Linux. IBM нанимает сотни разработчиков, чтобы допиливать Linux, и запускает легендарную рекламную кампанию (граффити «Peace, Love, Linux» на тротуарах Сан-Франциско).
Зачем? (Бизнес-контекст) IBM поняла стратегию «Commoditize the Complement» (Обесценить дополнение).
- Врагом IBM была Microsoft, которая владела монополией на ОС (Windows Server) и брала за это огромные деньги.
- IBM зарабатывала на продаже «железа» и сервиса.
- Логика IBM: «Если мы сделаем ОС бесплатной (Linux), у клиента останется больше денег, чтобы купить наши супер-дорогие серверы».
Это легитимизировало Linux. Теперь банки могли ставить его, зная, что за спиной стоит «Голубой Гигант».
Результат: Сегодня Linux работает везде.
- На всех суперкомпьютерах мира (TOP-500).
- На серверах Google, Facebook, Amazon (весь интернет стоит на Linux).
- На вашем телефоне (Android — это Linux).
- На Марсе (вертолет Ingenuity работает на Linux). А Линус Торвальдс работает из дома в халате, управляя самым сложным проектом в истории человечества.
Б. Git: Рожденный в ярости (2005)
К 2005 году ядро Linux разрабатывали тысячи людей. Управлять этим потоком изменений вручную (через патчи в email) стало невозможно. Долгое время Линус использовал проприетарную систему BitKeeper. Компания-владелец дала бесплатную лицензию разработчикам ядра.
Конфликт
Сообщество Open Source ненавидело BitKeeper, потому что он был закрытым. В 2005 году Эндрю Триджелл (создатель Samba) попытался сделать реверс-инжиниринг протокола BitKeeper, чтобы написать свой бесплатный клиент. Владелец BitKeeper, Ларри МакВой, пришел в ярость. Он посчитал это нарушением соглашения и отозвал бесплатную лицензию у Линуса и всей команды.
Мировое сообщество Linux оказалось у разбитого корыта. Им нечем было управлять кодом.
Две недели гнева
Линус Торвальдс исчез из интернета. Он взял отпуск. Он был зол. Он ненавидел существующие бесплатные системы (CVS, Subversion). Он считал их идиотскими, потому что они были централизованными.
- В Subversion был «Главный сервер». Если у вас нет интернета, вы не можете сохранить версию, не можете посмотреть историю. Ветвление (создание экспериментальной копии) занимало минуты и копировало все файлы.
Философия Линуса:
«Я хочу систему, которая работает как файловая система. Я хочу, чтобы у каждого разработчика была ПОЛНАЯ копия всей истории проекта на его ноутбуке. Я хочу, чтобы ветвление (branching) и слияние (merging) занимало миллисекунды».
Через 10 дней он выложил первую версию Git. Название — британский сленг, означающий «мерзавец» или «неприятный человек». Линус пошутил: «Я эгоист, поэтому называю все проекты в честь себя. Сначала Linux, теперь Git».
Революция Децентрализации
Git изменил механику работы программиста.
- Локальность: Вы можете работать в самолете без интернета. Вы делаете коммиты локально.
- Дешевые ветки: В старых системах создание «ветки» было болью. В Git это мгновенная ссылка. Это поощряет эксперименты: «Создам ветку, попробую безумную идею, если не выйдет — просто удалю».
- Безопасность: Git использует криптографические хеши (SHA-1) для каждого изменения. Нельзя подменить код в истории так, чтобы никто не заметил. Это было критично для защиты Linux от закладок спецслужб.
Социальная сеть для кода (GitHub)
Сам по себе Git — это суровая консольная утилита для гиков. Но в 2008 году три парня в Сан-Франциско (Том Престон-Вернер, Крис Ванстрат и Пи Джей Хайетт) создали GitHub. Они сделали для Git красивый веб-интерфейс и добавили кнопку Pull Request.
Это изменило культуру разработки.
- Раньше: Чтобы предложить исправление в Open Source, вы должны были подписаться на рассылку, скачать код, сделать патч, отправить его по email и молиться, чтобы суровый админ его не удалил.
- Теперь: Вы нажимаете кнопку «Fork» (делаете свою копию), правите код и нажимаете «Pull Request» (Предложить изменения).
Разработка стала социальной. Код стало можно «лайкать» (Stars).
Бизнес-контекст: В 2000-х Стив Балмер (CEO Microsoft) кричал: «Linux — это рак!». В 2018 году Microsoft при Сатье Наделле купила GitHub за $7.5 миллиардов. Почему? Потому что Microsoft поняла: разработчики — это новые «королемейкеры». GitHub — это место, где живет весь мировой код. Владеть GitHub — значит владеть пульсом индустрии.
Итог раздела 4.3
Линус Торвальдс — уникальная фигура в истории. Он дважды изменил мир, просто пытаясь решить свои локальные проблемы.
- Он хотел сэкономить $5000 на UNIX — и создал Linux, уничтожив бизнес рабочих станций и создав фундамент для Интернета.
- Он хотел удобный инструмент для управления версиями — и создал Git, изменив то, как работают 100 миллионов программистов каждый день.
Его история доказывает: в цифровую эпоху один человек с хорошим вкусом, плохим характером и открытым кодом может победить корпорации с миллиардными бюджетами.
Что дальше? Мы разобрались с софтом (Linux), данными (SQL) и инструментами (Git). Но все это по-прежнему работало на «железных» серверах, которые нужно было покупать, монтировать в стойки и охлаждать. В следующем модуле мы увидим, как Джефф Безос, продавец книг, превратил серверы в электричество, создав Облако.