Ядру Linux виповнилося 30 років

25 серпня 1991 після п'яти місяців розробки 21-річний студент Лінус Торвальдс оголосив у телеконференції comp.os.minix про створення робочого прототипу нової операційної системи Linux, для якої було відзначено завершення портування bash 1.08 і gcc 1.40. Перший публічний випуск ядра Linux було представлено 17 вересня. Ядро 0.0.1 мало розмір 62 Кб у стислому вигляді та містило близько 10 тисяч рядків вихідного коду. Сучасне ядро ​​Linux налічує понад 28 млн. рядків коду. За даними дослідження, проведеного в 2010 році на замовлення Євросоюзу, приблизна вартість розробки з нуля проекту, аналогічного сучасному ядру Linux, склала б більше мільярда доларів США (розрахунок проводився, коли в ядрі було 13 млн. рядків коду), за іншими оцінками - більше 3 мільярдів.

Ядро Linux було створено під враженням від операційної системи MINIX, яка не влаштовувала Лінуса своєю обмеженою ліцензією. Згодом, коли Linux став відомим проектом, недоброзичливці намагалися звинуватити Лінуса у прямому копіюванні коду деяких підсистем MINIX. Напад відбив Ендрю Таненбаум, автор MINIX, який доручив одному зі студентів провести детальне порівняння коду Minix та перших публічних версій Linux. Результати дослідження показали наявність лише чотирьох несуттєвих збігів блоків коду, зумовлених вимогами POSIX та ANSI C.

Спочатку Лінус задумав назвати ядро ​​Freax, від слів "free", "freak" та X (Unix). Але ім'я "Linux" ядро ​​отримало з легкої руки Арі Лемке (Ari Lemmke), який на прохання Лінуса розмістив ядро ​​на FTP-сервері університету, назвавши директорію з архівом не "freax", як просив Торвальдс, а "linux". Примітно, що заповзятливий ділок Вільям Делло Крок (William Della Croce) зумів зареєструвати торгову марку Linux і хотів згодом збирати відрахування, але пізніше передумав і передав усі права на торгову марку Лінусу. Офіційний талісман Linux-ядра, пінгвін Tux, був обраний у результаті змагання, що відбулося 1996 року. Ім'я Tux розшифровується як Torvalds UniX.

Динаміка зростання кодової бази (кількість рядків вихідного коду) ядра:

  • 0.0.1 - вересень 1991, 10 тис. рядків коду;
  • 1.0.0 - березень 1994, 176 тис. рядків коду;
  • 1.2.0 - березень 1995, 311 тис. рядків коду;
  • 2.0.0 - червень 1996, 778 тис. рядків коду;
  • 2.2.0 - січень 1999, 1.8 млн. рядків коду;
  • 2.4.0 - січень 2001, 3.4 млн. рядків коду;
  • 2.6.0 - грудень 2003, 5.9 млн. рядків коду;
  • 2.6.28 - грудень 2008, 10.2 млн. рядків коду;
  • 2.6.35 – серпень 2010, 13.4 млн. рядків коду;
  • 3.0 – серпень 2011, 14.6 млн. рядків коду.
  • 3.5 - липень 2012, 15.5 млн. рядків коду.
  • 3.10 – липень 2013, 15.8 млн. рядків коду;
  • 3.16 – серпень 2014, 17.5 млн. рядків коду;
  • 4.1 – червень 2015, 19.5 млн. рядків коду;
  • 4.7 – липень 2016, 21.7 млн. рядків коду;
  • 4.12 – липень 2017, 24.1 млн. рядків коду;
  • 4.18 – серпень 2018, 25.3 млн. рядків коду.
  • 5.2 - липень 2019, 26.55 млн. рядків коду.
  • 5.8 – серпень 2020, 28.4 млн. рядків коду.
  • 5.13 - червень 2021, 29.2 млн. рядків коду.

Прогрес розвитку ядра:

  • Linux 0.0.1 - вересень 1991, перший публічний випуск, що підтримує тільки CPU i386 і завантажується з дискети;
  • Linux 0.12 - січень 1992, код почав поширюватися під ліцензією GPLv2;
  • Linux 0.95 - березень 1992, забезпечена можливість запуску X Window System, реалізована підтримка віртуальної пам'яті та розділу підкачування.
  • Linux 0.96-0.99 - 1992-1993, почалася робота над мережевим стеком. Представлено файлову систему Ext2, додано підтримку формату файлів ELF, представлено драйвери для звукових карт і контролерів SCSI, реалізовано завантаження модулів ядра та файлової системи /proc.
  • У 1992 році з'явилися перші дистрибутиви SLS та Yggdrasil. Влітку 1993 року було засновано проекти Slackware та Debian.
  • Linux 1.0 - березень 1994, перший офіційно стабільний реліз;
  • Linux 1.2 - березень 1995, істотне збільшення кількості драйверів, підтримка платформ Alpha, MIPS і SPARC, розширення можливостей мережевого стека, поява пакетного фільтра, підтримка NFS;
  • Linux 2.0 - червень 1996 року, підтримка багатопроцесорних систем;
  • Березень 1997: заснований LKML, список розсилки розробників ядра Linux;
  • 1998 рік: запущений перший кластер, що потрапив до списку Top500, на базі Linux, що складається з 68 вузлів з CPU Alpha;
  • Linux 2.2 - січень 1999, збільшено ефективність системи управління пам'яттю, додано підтримку IPv6, реалізовано новий міжмережевий екран, представлено нову звукову підсистему;
  • Linux 2.4 - лютий 2001, забезпечена підтримка 8-процесорних систем та 64 Гб ОЗУ, файлова система Ext3, підтримка USB, ACPI;
  • Linux 2.6 - грудень 2003, підтримка SELinux, засоби автоматичного тюнінгу параметрів ядра, sysfs, перероблена система керування пам'яттю;
  • 2005 року представлений гіпервізор Xen, який відкрив еру віртуалізації;
  • У вересні 2008 року сформовано перший реліз платформи Android, заснованої на ядрі Linux;
  • У липні 2011 року після 10 років розвитку гілки 2.6.x здійснено перехід до нумерації 3.x. Число об'єктів у Git-репозиторії досягло 2 млн;
  • У 2015 відбувся випуск ядра Linux 4.0. Число git-об'єктів у репозиторії досягло 4 млн;
  • У квітні 2018 року подолано кордон у 6 млн git-об'єктів у репозиторії ядра.
  • У січні 2019 року сформовано гілку ядра Linux 5.0. Репозиторій досяг рівня 6.5 млн git-об'єктів.
  • Опубліковане в серпні 2020 року ядро ​​5.8 стало найбільшим за кількістю змін із усіх ядер за весь час існування проекту.
  • У ядрі 5.13 було поставлено рекорд за кількістю розробників (2150), зміни яких увійшли до складу ядра.
  • У 2021 році у гілку ядра Linux-next доданий код для розробки драйверів мовою Rust. Ведеться робота з включення компонентів підтримки Rust в основний склад ядра.

68% всіх змін до ядра внесено 20 найбільш активними компаніями. Наприклад, при розробці ядра 5.13 10% усіх змін підготовлено компанією Intel, 6.5% - Huawei, 5.9% - Red Hat, 5.7% - Linaro, 4.9% - Google, 4.8% - AMD, 3.1% - NVIDIA, 2.8% - Facebook, 2.3% – SUSE, 2.1% – IBM, 1.9% – Oracle, 1.5% – ARM, 1.4% – Canonical. 13.2% змін підготовлено незалежними учасниками або розробниками, які явно не заявили про свою роботу на певні компанії. 1.3% змін підготовлено студентами, аспірантами та представниками навчальних закладів. За кількістю доданих в ядро ​​5.13 рядків коду лідирує компанія AMD, частка якої склала 20.2% (драйвер amdgpu налічує близько 3 млн. рядків коду, що приблизно 10% від загального розміру ядра - 2.4 млн. рядків припадає на згенеровані автоматично заголовні файли з даними для регістрів GPU ).

Джерело: opennet.ru

Додати коментар або відгук