Содержание статьи
GNU/Linux — это уникальный проект, который объединяет тысячи разработчиков по всему миру и развивается стремительными темпами. Сегодня GNU/Linux можно найти как на мощных суперкомпьютерах, так и на игровых приставках, телефонах, встраиваемых системах, рабочих станциях и десктопах. В этой мини-статье мы хотим предложить твоему вниманию самые интересные факты, касающиеся истории и текущего развития Linux.
Ядро Linux
Днем рождения Linux принято считать 25 августа 1991 года, когда в новостной рассылке операционной системы Minix появилось письмо Линуса Торвальдса о начале разработки ядра новой ОС. Хотя версия 0.01 увидела свет только 17 сентября, в этот день Линус отправил исходный код нескольким своим друзьям. По-настоящему публичным релизом принято считать 5 октября, когда вышла версия 0.02, доступная всем и бесплатно (в соответствии с идеологией Торвальдса «счастья всем, даром…»). Изначально новую ОС планировалось назвать Freax (free — свободный, freak — каприз или уродец, последняя буква от UNIX), но Ари Леммке, владельцу FTP-сервера, на котором размещались сырцы, название не понравилось, и он использовал каталог linux. Этот вариант и прижился.
Эмблему Linux выбирали долго, в итоге остановились на пингвине Tux. В своей книге Just for Fun Торвальдс пишет, что пингвина как эмблему он выбрал из-за того, что однажды в зоопарке (дело было в Австралии в 1993 году) его клюнул пингвин. Как шутил Торвальдс, после этого инцидента он заболел penguinitis. Талисман для Linux создал американский программист Ларри Юинг.
Linux быстро нашел единомышленников и за 22 года стал крупнейшим проектом сотрудничества на планете. Уже через год версия достигла 0.95, а через два года (1994) вышла версия 1.0, то есть основные недочеты были исправлены и ядро в целом готово. Сегодня над совершенствованием ядра работает целая армия помощников, а Линус уже далеко не самый активный разработчик. Торвальдсом на данный момент написано лишь 2% кода ядра Linux, но он принимает решение о внесении важных изменений в официальную ветку ядра.
Закон Линуса
Один из «Законов Линуса», названный в его честь и сформулированный программистом Эриком Рэймондом в четвертой части его эссе «Собор и базар» (The Cathedral and the Bazaar), гласит: при достаточном количестве глаз все ошибки лежат на поверхности (Given enough eyeballs, all bugs are shallow). То есть чем больше человек тестирует программу, тем больше вероятность обнаружения любой проблемы. Хотя этот закон и некоторые программисты оспаривают, считая, что если «тестеры» не обладают требуемой квалификацией, то их количество не имеет значения и не гарантирует безопасность кода.
Так как Линус владеет торговой маркой Linux, у него постоянно спрашивают, почему он не хочет создать дистрибутив, который бы так и назывался. Но он отвечает, что его это не интересует, а само ядро — это еще не весь Linux. Вместо того чтобы «делать миллиарды», он предпочитает рыться в коде и является типичным представителем down shift (у нас любят говорить «даошифтинг»). То есть человеком, предпочитающим жить в свое удовольствие, вместо того, чтобы постоянно беспокоиться о новом богатстве. На его образ мышления не повлияли даже множество премий, среди которых одна из самых престижных — Millennium Technology Prize. Журнал Time несколько раз помещал его в списки влиятельных людей мира. Его именем назван астероид (9793 Torvalds) и луна астероида (Linus). В настоящее время Торвальдс владеет пакетом акций Red Hat (достался в подарок при выходе компании на фондовый рынок, сейчас акция стоит 46 долларов) и работает в Linux Foundation (образовалась после слияния Open Source Development Labs и Free Standards Group). Он использует Fedora с рабочим столом XFce.
Xakep #305. Многошаговые SQL-инъекции
Статистика разработки ядра
С 2005 года собирается статистика, и на сегодня свой вклад в развитие ядра Linux внесли 10 000 разработчиков из более чем 1000 компаний, с 2012 года — 1000 разработчиков и 225 компаний. В прошлом году наиболее значительный вклад среди разработчиков внес Хартли Свитн (Hartley Sweeten), совершивший 2,3% от всех изменений в ядре. На втором месте идет Марк Браун (Mark Brown) с 1,5% изменений, на третьем Аль Виро (Al Viro) — 1,4%. Далее следуют Аксель Лин (Axel Lin) и Йоханнес Верг (Johannes Berg), которые внесли 1,2% и 1% изменений.
Заметно возросли и темпы развития. Цикл выпуска между версиями снизился в среднем с 80 до 70 дней, при этом применяется около 10 000 патчей, в час вносится в среднем 7,2 изменения, в день около 170. Большое количество изменений предлагают компании, выпускающие мобильные и встроенные устройства, — Linaro, Samsung и Texas Instruments в 2013 году внесли 11% изменений (в 2012 — 4,4%). Кроме того, заметен всплеск активности Google. Хотя среди патчей (и, кстати, очень качественных) этой корпорации всего 7000 строк кода связаны с Android, зато они покрывают буквально все подсистемы ядра: сетевую систему, безопасность, планировщик и так далее. То же самое относится к Samsung, которая привнесла в ядро новую файловую систему F2FS и много других патчей, не связанных с Android. Корпорация Microsoft, наоборот, после окончания адаптации Hyper-V к Linux фактически свернула работу по совершенствованию ядра. Действительно, зачем поддерживать прямых конкурентов? Интересно, что среди компаний — дистрибьюторов Linux (Red Hat, Novell, Oracle) разработчики Ubuntu — дистрибутива, который выше их всех по популярности, —при создании ядра себя никак не проявили, не попав даже в топ-25. В Canonical очень мало активных разработчиков, судя по всему, им проще, получив сообщение о проблеме, открыть тикет где-нибудь на bugzilla.redhat.com и подождать, пока ее решат за них.
Вопреки расхожему мнению, большая часть всех изменений, вносимых в ядро (более 80%), сделана программистами, получающими за эту работу оплату, в том числе и сотрудниками крупных компаний (например, Hitachi, LG Electronics, Renesas, NEC, Sony, Panasonic, Qualcomm). Понятно, что компаниям выгодно, чтобы система работала на их оборудовании и развивалась дальше (любопытный момент: каждый включенный в основное ядро патч может сэкономить компании до 250 000 долларов в год). Доля энтузиастов составляет 13,6%, еще 0,9% кода принадлежит образовательным учреждениям и столько же The Linux Foundation.
Любопытные факты о дистрибутивах
Debian
Один самых известных дистрибутивов, положивший начало многим проектам. Это крупнейший некоммерческий дистрибутив, известный своей стабильностью (в том числе и стабильным запаздыванием релизов) и безопасностью. 15 августа 2013 года Debian исполнилось двадцать лет. Название дистрибутива происходит от имен создателя проекта Яна Мердока (Ian Murdock) и его подруги Дебры (Debra). Релизы называют по персонажам из мультфильма Toy Story, нестабильный релиз sid — в честь ребенка, который регулярно ломал игрушки. Версия 1.0 не была выпущена из-за ошибки на CD, поэтому первым релизом считают 1.1.
В 2013 году общее количество строк исходных текстов составляет около 100 миллионов, из которых 68,5% представляет собой фактический код, остальное — пустые строки и комментарии. C 1996 года 4752 разработчиками было произведено около 470 000 коммитов, затронувших 1,4 миллиона файлов. Больше всего разработчиков Debian проживает в США (21,3%), Германии (13,3%) и Франции (7%). Наиболее продуктивный из них Йонас Смедегорд (Jonas Smedegaard), он присоединился к проекту в 2001 году и внес 9349 изменений. При написании используется около 70 языков. Самые популярные: C — 32,1%, С++ — 18,7%, XML — 9,8%, Autoconf — 7,6%, shell — 4,5%. По интенсивности разработки дистрибутив сегодня находится на уровне 2006 года (пик пришелся на 2009 год). В соответствии со стандартом COCOMO (COnstructive COst MOdel) проект стоит 1,2 миллиарда долларов или 22 984 человеко-лет.
Fedora
Проект Fedora Linux (ранее Fedora Core), поддерживаемый добровольцами, возник в Гавайском университете в 2002 году с целью обеспечить единое хранилище с Red Hat Linux. Но официальной датой рождения считается 22 сентября 2003 года, когда компания Red Hat объявила о разделении дистрибутива на два субпроекта — развиваемый при участии сообщества Fedora Linux и коммерческий Red Hat Enterprise Linux. То есть в этом году Fedora исполнилось десять лет, и сегодня он является платформой для тестирования новых технологий, которые потом интегрируются в RHEL. Дистрибутив содержит только свободное ПО.
В отличие от других дистрибутивов, Fedora не предлагает LTS-версий, релизы выходят каждые 6–8 месяцев и поддерживаются год. Кодовое имя выбирается сообществом на основе голосования. Логотип символизирует бесконечность, свободу и голос (infinity, freedom и voice). В проекте участвует более 25 000 разработчиков. Общее число пользователей по разным подсчетам составляет от 1 до 7 миллионов. Сам Fedora является основой для 94 дистрибутивов, из которых активными считаются 27.
Ubuntu
20 октября Ubuntu исполнилось девять лет. Дистрибутив создавался как временное ответвление от Debian, обеспечивающее регулярный выпуск новых версий каждые шесть месяцев. Имя Ubuntu на языке зулу означает «человечность», эмблема дистрибутива символизирует круг друзей. Название релиза состоит из цифры (год и месяц выхода) и кодового имени, состоящего из двух английских слов: прилагательного и названия животного, начинающихся на одну и ту же букву. Каждый четвертый релиз получает статус LTS (долгосрочной поддержки). Более 600 сотрудников Canonical трудится в ~200 городах 30 стран, компания имеет офисы в шести городах: Лондон, Бостон, Монреаль, Шанхай, Сан-Паулу, Тайбэй. Под управлением Ubuntu работает 8,2% интернет-сайтов из общего количества.
Общее количество пакетов в репозитории Ubuntu более 37 500, размер превышает 45 Гб. На его основе построен 131 дистрибутив, из которых 77 активные. Серверы Ubuntu One размещены на Amazon S3, на самом Amazon S3 пользователи в 54% случаях предпочитают именно образы Ubuntu. C 2008 года Ubuntu используется на серверах Википедии.