LINUX.ORG.RU

Ядро Linux преодолело 40 млн. строк кода

 

Ядро Linux преодолело 40 млн. строк кода

0

3

Количество строк кода в ядре Linux преодолело рубеж в 40 миллионов, из них последние 20 млн. оно набрало за последние 10 лет (с 2015 года).

Пруф с терминалом, где это самое число измерено.

Поздравим разработчиков с юбилеем! %)

>>> Подробности

★★★★★

Проверено: dataman ()
Последнее исправление: hobbit (всего исправлений: 3)

А ещё эта помойка весит ≈500 мегабайт! В сжатом виде!

Ещё чуть-чуть, и блоб nvidia обгонят. (%

mord0d ★★★★★
()

А что такое «40 млн строк кода»? Это как тут 8 строк, да?

/*1*/ #include <stdio.h>
/*2*/ 
/*3*/ int main(int argc, char** argv)
/*4*/ {
/*5*/     printf("Hello, world!");
/*6*/     return 0;
/*7*/ }
/*8*/
verh010m
()

Поздравим разработчиков с юбилеем! %)

Думал, какие же ассоциации у меня это поздравление вызывает, не сразу понял. Наверное это примерно как поздравлять человека с тем, что он достиг 150 кг массы. Ну и естественно, по этому поводу надо подарить тортик и бочку пива.

CrX ★★★★★
()
Ответ на: комментарий от goingUp

Круто. Ядро развивается.

Это - нифига не круто. Потому как явно показывает на то, что оттуда давно пора выделить подавляющее число драйверов, сделать нормальные и стандартные процессы взаимодействия с ними и перестать заниматься фигней с монструозным монолитом. Драйвера должны быть на совести производителей железа по большей части. И всякие апи для взаимодействия с ядром должны быть стандартными, а не меняться в зависимости от положения звезд на небе и наличия, или отсутсвия похмелья у Торвальдса… :)

DrRulez ★★★★
()

… и так и не научился эффективно свопится в ситуации нехватки ОЗУ ))))

psv1967 ★★★★★
()

писюнами... зачеркнуто, фрейдами меряемся?! :о)

sunjob ★★★★★
()
Ответ на: комментарий от DrRulez

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

…а вот здесь можно вырыть озерцо и развести в нем лебедей)

goingUp ★★★★★
()
Ответ на: комментарий от DrRulez

Драйвера должны быть на совести производителей железа

А производителям железа это нахер не впёрлось - куда удобнее один раз нагадить в ядро и пусть ищут мейнтейнера. 🤡

Out of tree modules поддерживаются уже очень давно. Многие ли производители этим пользуются?

aol ★★★★★
()

Ужас. И это они недавно выкидывали устаревшее.

R_He_Po6oT ★★★★★
()
Ответ на: комментарий от CrX

О, монолитное ядро Linux! Эта гранитная скала, на которой покоятся сервера и вёсла айтишников, внезапно трещит по швам. Давай разбираться, какие куски этой некогда незыблемой твердыни летят в пропасть.

  1. Память? Какая память?

Поддержка swapless-систем в ядре превратилась в кошмар. Удаление zswap/zram в пользу PSI (Pressure Stall Information) заставляет старенькие ноутбуки умирать в судорогах при нехватке оперативки.

  1. Scheduler? Скорее, шедулер «братской могилы»

Казалось бы, CFS (Completely Fair Scheduler) был вершиной гениальности, но теперь на горизонте E/Scheduler, B/Scheduler, X/Scheduler – никто не понимает, что лучше, а что просто набор сломанных костылей.

  1. Wayland побеждает… или нет?

X.org помирает, Wayland жует гвозди, а пользователи продолжают страдать, потому что у них либо лагает композитинг, либо ничего не работает. NVIDIA? Не завезли!

  1. Systemd — оно вообще ядро или нет?

Не так давно мы смеялись, что systemd скоро станет частью ядра. Так вот, это уже практически произошло – без него ни один современный дистрибутив не может нормально загрузиться. Кто сказал «инициализация в user space»? Забудьте!

  1. BPF, Rust, eBPF — ядро теперь в сборной солянке

Традиционные C-разработчики уже рвут волосы, ведь теперь в ядро пихают Rust. И это не просто «для теста» – Rust-модули уже считаются мейнстримом. А BPF? Это теперь полноценный язык программирования внутри ядра!

  1. Все ломается при каждом обновлении

Великолепный Linus Torvalds еще держит систему в кулаке, но как только выходит новая версия 6.x – начинается кровавая баня с обратной совместимостью.

Вывод? Монолитное ядро Linux не просто разваливается, оно уже держится на болтах, проволоке и молитвах системных администраторов. Так что готовьтесь: скоро мы либо уйдем в мир микроядер, либо начнем пересобирать Linux из кусков, разбросанных по всему интернету.

EnterpriseTestAuto
()
Ответ на: комментарий от EnterpriseTestAuto

Это всё прекрасно, но где здесь разваливание на куски? 1 — нет разваливания. 2 — вместо разваливания наоборот упихивание всего и побольше. 3 и 4 — вообще не имеют отношения к ядру. 5 — опять сборная солянка, а не разваливание — процесс противоположный. 6 — просто неправда.

Итог: учись троллить лучше и не путайся в методичках. Ядро линукса не «разваливается», а «пухнет и скоро лопнет». Не надо путать! Если оно и летит в пропасть, то большим куском (дальше сам додумаешь, всему тебя учить). Никакого ухода в мир микроядер точно не предвидится. А если и предвидится, то не у Линукса.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 2)
Ответ на: комментарий от CrX

Linux: опухшее ядро, готовое к взрыву

  1. Внутреннее ожирение: ядро разрастается до кошмарных масштабов

Было минималистичное ядро? Забудьте. Сейчас это гипермаркет функций, где:

Поддержка всех архитектур сразу – от микроконтроллеров до суперкомпьютеров.

Впихнули поддержку Rust? Отлично, ждём JavaScript (шутка… пока что).

eBPF теперь встроенный интерпретатор внутри ядра. Может, давайте уже Lua добавим?


  1. Systemd: растущий нарост, который скоро съест ядро

Systemd когда-то был простым инициализатором. Теперь он лезет в сетевой стек, управление пользователями, сервисами и даже в ядро.

Уже ходят слухи, что systemd initrd скоро станет «правильным способом загрузки Linux».

Почему ядро инициализируется через гигантский сервис-менеджер? Кто кого загружает – ядро систему или наоборот?


  1. Обратная совместимость? Это что вообще?

Код ядра постоянно переписывается, убираются старые API.

NVIDIA, VirtualBox и прочие каждое обновление оказываются в ситуации «почините ваш модуль».

Если кто-то сказал «поддержка старого железа в Linux лучше, чем в Windows» – посмотрите на Wi-Fi адаптеры Realtek 10-летней давности.


  1. Scheduler-войны: какой из них окончательно сожрёт CPU?

CFS – неидеален, но стандарт. Но зачем тогда появляются MuQSS, BFS, BMQ?

Real-time в Linux? Удачи, если у вас не специализированный патч RT-kernel.

Планировщики ресурсов грызутся, как стая пингвинов в битве за рыбу.


  1. Файловые системы: каждый год новая, но ext4 всё равно жив

Btrfs – то жив, то мёртв. Facebook его хвалит, Red Hat его хоронит.

ZFS – судимся с Oracle, но используем.

XFS – стабильный, но зачем, если все сидят на ext4?

F2FS, Reiser4, NILFS2 – зачем их вообще в ядре держат?


Вывод

Linux не разваливается – он превращается в неповоротливого Франкенштейна. Каждая новая фича в ядре – это ещё один костыль, который поддерживает гипертрофированный организм, пока он не лопнет.

Скоро ли? Нет. Болезненно ли? Да. Будем ли использовать дальше? Конечно! А что ещё остаётся?

EnterpriseTestAuto
()
Ответ на: комментарий от EnterpriseTestAuto

там пару тыщ строк на говнорасте… ошибся 12 тыщ, но все равно капля в море, если этот код выкинуть, никто не заметит

rtxtxtrx ★★
()
Последнее исправление: rtxtxtrx (всего исправлений: 1)
Ответ на: комментарий от EnterpriseTestAuto

Btrfs – то жив, то мёртв. Facebook его хвалит, Red Hat его хоронит.

Ага так хоронит, что он дефолт скоро 10 лет

ZFS – судимся с Oracle, но используем.

нет в ядре и не будет

XFS – стабильный, но зачем, если все сидят на ext4?

если бы ext4 была идеальна, то не использовали бы xfs на серваках

F2FS, Reiser4, NILFS2 – зачем их вообще в ядре держат?

рейзер выкинули


ты тож так себе эксперт… все комментировать не имеет смысла

rtxtxtrx ★★
()

Ядро Linux преодолело 40 млн. строк кода

И че? Спасибо, что мне теперь приходится покупать еще памяти, и вместо HDD - SSD.

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

TechnoMag ★★
()
Ответ на: комментарий от otto

Она уже не та была, что раньше, вот мандреик линукс… то было чудо!

gruzin
()
Ответ на: комментарий от verh010m

Комментарии забыл еще ;)

Zhbert ★★★★★
() автор топика
Ответ на: комментарий от otto

Только ж недавно Мандриву 2007

И это была новинка после Мандрейка!

Jurik_Phys ★★★★★
()
Ответ на: комментарий от One

Только спустя годы осознаешь, что финский деструктивный пацан лишил нас и совершенной архитектуры 680x0, и идеальной ОС MINIX

Minix тогда был игрушкой вроде KolibriOS или Haiku, только ни разу не свободной. Насчёт божественности микроядер тоже есть вопросы. Всё-таки они добавляют накладные расходы. Ну и рабочий софт - это компромисс между интересами разработчика и пользователя. Во многом из-за сложности разработки микроядер Линус в одиночку смог, а целый проект GNU - нет.

Моторолу добавили в Linux в 1996 году с версией 2.0. Если уж и винить операционные системы, то ее закопала винда. И то сначала постаралась IBM, выбрав x86 для PC.

Vidrele ★★★★
()
Ответ на: комментарий от Vidrele

Насчёт божественности микроядер тоже есть вопросы.

Да какие вопросы. В серверах и настольных компьютерах микроядра не нужны.

ox55ff ★★★★★
()
Ответ на: комментарий от otto

Всего 30 строк кода в Linux снизили «прожорливость» дата-центров на 30% Это пишут на сайте Ferra.ru Так что есть резервы !

q137
()
Ответ на: комментарий от CrX

Оно примерно линейно жиреет, или экспоненциально? Или ещё как?

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

frob ★★★★★
()
Ответ на: комментарий от robot12

Не совсем понятно где повод для поздравлений. Скорее повод задуматься над тем как это всё контролировать :)

Скорее всего там 90 % кода древние архитектуры и поддержка морально устаревших устройств. Это контролировать никому ни надо, само отомрет

cap838383
()
Ответ на: комментарий от unDEFER

Интересно сколько строк кода используется в среднем на реальной машине?

На ядре 3.1.6 я тщательно выбрасывал всё лишнее при сборке ядра. Объём распакованных исходников был примерно в 17 раз больше несжатого монолитного ядра. Сейчас я махнул рукой, до сих пор сижу на 5.15, но соотношение возросло до 29, если считать только модули, видимые по lsmod.

Какой будет объём, если скомпилировать все исходники ядра — не знаю, но если оно похоже на большинство открыто-свободных программ, бинарники вдвое меньше исходников. (Исключения — OpenOffice, игры с большим количеством растровой графики и звука и т.п.)

Получается, я использовал 7-12 % кода ядра. Думаю, с новым ядром будет заметно меньше 7%, особенно если рискну и повыкидываю всё ненужное.

question4 ★★★★★
()
Ответ на: комментарий от frob

какое-то время по инерции ещё жирело линейно

Пруф можно?

question4 ★★★★★
()
Ответ на: комментарий от EnterpriseTestAuto

Reiser4, NILFS2 – зачем их вообще в ядре держат?

В ядре держат Reiser4?

Остальная аналитика того же уровня?

question4 ★★★★★
()
Ответ на: комментарий от FishHook

виндовз-95 на дискету влезала

Кто этот человек?

А на дискету в 1995 году влезала Нетварь. И то, ей требовалась вторая дискета для драйверов.

question4 ★★★★★
()
Ответ на: комментарий от One

финский деструктивный пацан лишил нас и совершенной архитектуры 680x0,

680x0 на линуксах была довольно популярна в 2000-х годах. Но новых процессоров нет.

и идеальной ОС MINIX

Линукс пришлось городить из-за её запредельной медлительности.

question4 ★★★★★
()
Ответ на: комментарий от verh010m

А что такое «40 млн строк кода»? Это как тут 8 строк, да?

Сомневаюсь, чтобы в исходниках было такое. Но да, wc -l считает и комментарии, и пустые строки.

question4 ★★★★★
()

Поздравим разработчиков с юбилеем! %)

Посочувствовать надо, неумеющим в декомпозицию.

Psilocybe ★★★★
()
Ответ на: комментарий от aol

Out of tree modules поддерживаются уже очень давно. Многие ли производители этим пользуются?

Не поддерживаются, потому что stable-api-nonsense.rst.

hateyoufeel ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.