Размер ядра Linux достиг рубежа в 40 млн строк исходного кода. Из 40 млн строк 24 млн относятся к коду драйверов (например, код драйверов для GPU AMD занимает около 5 млн строк), а 4.4 миллиона специфичны для различных аппаратных архитектур (для поддержки архитектуры x86 используется примерно 500 тысяч строк)...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=62635
А ведь Таненбаум предупреждал Линуса 30 лет назад : "Монолит - это безумие, одумайся пока не поздно"
Не одумался.
А чем плохо 40 миллионов строк? Это же не одна большая функция на 40 миллионов строк, это модули.
Временем компиляции и попыткой разобраться в коде, например.
Для ускорения повторной компиляции есть ccache. Еще размер компилируемого зависит от конфигурации ядра, отлаживать можно на маленькой конфигурации, а потом тестировать на большой.
>Для ускорения повторной компиляции есть ccacheccache не абсолютен, это просто костыль, который иногда работает. При том же bisect, кеш будет очень быстро расти. Но си, это не про быструю компиляцию. Один из примеров того, как затормозить сборку на си https://www.opennet.dev/opennews/art.shtml?num=56449
Чувак,компиляция в любом случае не должна занимать даже одну минуту. Потому что ты теряешь кучу рабочего времени, вместо того, чтобы, собственно, работать.
В ядро присылают патчи. С каждым патчем от каждого человека счёт идёт не на минуты, а на недели потраченного времени, проведённого в компиляции всего этого ужаса. А ведь далеко не всегда можно учесть все крайние случаи при разработке алгоритма, если бы ьак
>Чувак,компиляция в любом случае не должна занимать даже одну минуту. Потому что ты теряешь кучу рабочего времени, вместо того, чтобы, собственно, работать.Поддерживаю. Когда действительно хочется поработать, а не попить кофе или просиживать штаны, долгая компиляция серьёзно мешает. Увы, похвастаться этим может малое количество языков. Из популярного - go, из не очень - ocaml, говорят pascal быстро собирает. Интерпретируемые языки не тратят время на компиляцию, но с другой стороны, там нет и проверок на очевидные ошибки. Зато всякие си, хаскели, кресты, тайпскрипты(как минимум в части проектов) и прочие очень любят затягивать компиляцию. Что бы ещё такого придумать, чтобы программа компилировалась несколько минут.
>Еще размер компилируемого зависит от конфигурации ядра, отлаживать можно на маленькой конфигурации, а потом тестировать на большой.Ещё предложи тестировать с флагом -O0 вместо -O2, хуже совета не придумаешь, так как поведение кода ВНЕЗАПНО меняется из-за UB в нём.
Я немного не в теме, внезапно интересно стало: ядро с какими оптимизациями собирают?
> Я немного не в теме, внезапно интересно стало: ядро с какими оптимизациями собирают?С одним из вариантов того что билдсистема предлагает. Вы, конечно, в своем праве попробовать и что-то еще - но вы как минимум получите на свою голову сильно менее протестированное комбо, и если что - то это вы сами виноваты.
> Временем компиляции и попыткой разобраться в коде, например.1. Можно все не собирать.
2. Наоборот это лучше, т.к. позволяет сразу искать все использования. Не зря крупные конторы весь код запихивают в монорепозитории.Тут скорее проблема не в хранении кода, а в использовании.
Плюсую за п.2.Тоже кушали кактус кода, распиханного по сабмодулям, а потом собрали всё в монорепу и жизнь решительно облегчилась.
В подмодулями только блобы всякие остались.
> Временем компиляцииНа моем динозавре ядро пару-тройку часов компилируется с конфигом от Debian'а.
Тем, что это монолит. Тот же reiserfs взяли и выкинули. В случае модулей, они могут жить какое-то время полностью независимо от ядра.
Я и не знал, что драйвер обязательно должен быть в ядре чтоб работать. Спс вам, а то я думал что могу у себя на локалхосте его держать и собирать. Сейчас попробовал написать простейший helloworld.ko - работает, видимо я что-то не так делаю, ведь его обязательно сначала в ядро должны принять.
> работает, видимо я что-то не так делаю, ведь его обязательно сначала в ядро должны принять.В ядро же их пихают, чтобы самим не сопровождать, или упросить для себя процесс?
>Я и не зналВот так и получается, что пишут в основном те, то ничего не знает, и самому узнать что-то, общаясь не получится
>Спс вам, а то я думал что могу у себя на локалхосте его держать и собиратьРовно до тех пор, пока он собирается. А с учётом "stable api is nonsense", нужен будет человек, который будет постоянно его обновлять. Полагаю, вы с этим не справитесь
>Сейчас попробовал написать простейший helloworld.koА теперь попробуйте не простейший, и времён какого-нибудь 2.6. Хорошо будет, если он в принципе портируется на современное ядро, и без кучи промежуточных ядер.
> А теперь попробуйте не простейший, и времён какого-нибудь 2.6. Хорошо будет, если
> он в принципе портируется на современное ядро, и без кучи промежуточных
> ядер.А зачем нам такое безумие?
Какое безумие? Выйдет когда нибудь версия 7.0, вы думаете, что там весь код из версии 6.6(или какая там последняя версия была) соберётся? А когда выйдет 8.0 и выше?
> Какое безумие?Говорить о поддержке 2.6 в 2025, конечно же.
> Выйдет когда нибудь версия 7.0, вы думаете, что там весь код из версии 6.6(или какая там последняя версия была) соберётся? А когда выйдет 8.0 и выше?
Я знаю что люди как огня боятся что в ядре нет стабильного API, но ещё я знаю что нестабильность этого API чудовищно преувеличена. ZFS поддерживает ядра от 3.10. Двенадцать лет ядру, если что.
>ZFS поддерживает ядра от 3.10. Двенадцать лет ядру, если что.Не впечатлили. Zfs активно разрабатывается. Вот было бы zfs двенадцать лет, после окончания активной разработки, тогда бы можно было о чём-то говорить.
>>ZFS поддерживает ядра от 3.10. Двенадцать лет ядру, если что.
> Не впечатлили. Zfs активно разрабатывается. Вот было бы zfs двенадцать лет, после
> окончания активной разработки, тогда бы можно было о чём-то говорить.Я и не собираюсь тебя впечатлять. Я просто рассказываю, как есть, и почему твои стенания никого не интересуют.
И что, кто-то уже вынес reiserfs в модуль? Или уже всё?
> И что, кто-то уже вынес reiserfs в модуль? Или уже всё?А это кому-то надо?
Речь не про то, нужна ли эта файловая система кому-то, а про то, сколько усилий будет нужно, когда она понадобится спустя время.
> Речь не про то, нужна ли эта файловая система кому-то, а про то, сколько усилий будет нужно, когда она понадобится спустя время.Если ты думаешь что в подержке ФС самая большая проблема это как модуль пересобрать, то ты явно не понимаешь о чем говоришь.
Это первый шаг для того, чтобы файловой системой можно было вообще пользоваться. И говорите прямо, без загадок, что там за самая большая проблема.
> Это первый шаг для того, чтобы файловой системой можно было вообще пользоваться. И говорите прямо, без загадок, что там за самая большая проблема.Стейт-машина, которая данные не продалбывает. Файловые системы делают лютое дрочево и оптимизации. Как только люди, которые пишут фреймворк и люди, которые пишут ФС, перестают друг с другом общаться, начинается порча данных. Особенно когда это все ещё и на сишке.
>Стейт-машина, которая данные не продалбываетЭм? Для того же reiserfs это уже есть.
>Файловые системы делают лютое дрочево и оптимизацииВопрос не в том, как быстро будет resierfs работать лет через десять, вопрос в том, будет ли он работать вообще.
> Эм? Для того же reiserfs это уже есть.Не, нету. Регулярно продалбывали данные в результате внутренних изменений vfs.
> Вопрос не в том, как быстро будет resierfs работать лет через десять, вопрос в том, будет ли он работать вообще.
Обновить api это меньшая из проблем. Основная это регресс.
>> Эм? Для того же reiserfs это уже есть.
> Не, нету. Регулярно продалбывали данные в результате внутренних изменений vfs.Они и без этого - регулярно продалбывали данные. Эти гении даже не думали что на диске может храниться образ диска/виртуалки. И их чудный fsck может при fsck - наступить на деревья ОБРАЗА, и разfsck'ить том с ними в вермишель, вкатив в него эти деревья без малейших сомнений.
> Обновить api это меньшая из проблем. Основная это регресс.
Осталось найти желающих заняться этим. После чего оказывается что 1 в тюрьме, 2 рассказал господам про "все м удачи" и зарелизил примерно нифига. А больше желающих и не нашлось.
> Я и не собираюсь тебя впечатлятьНе хотел, но впечатлил. Твои "недогоняния" всех впечатляют. Я другой аноним. Тебе брат-аноним пытается объяснить, что еще и сопровождать надо, условный пример привел, а ты к конкретным версиям в приведенном примере прикапываешься ("Говорить о поддержке 2.6 в 2025, конечно же"). Попробую подробно разжевать анекдот, персонально для тебя. Тот же пример, с подробными пояснениями. На дворе 2005 год. Студент, почесав пятую точку, подсмотрев примеры в интернетах, сказал товарищу: "- Смотри, как я могу!" - создает для ядра 2.6 ("и кому оно _сейчас_ надо?") модуль hellowrot.ko. " - Офигеть, работает! Да ты гений!", - восторгается приятель. Наваял курсовую и сдал, забыл. Проходит 20 лет. Немного поседевший "синьёр-помидор" натыкается на это своё поделие, нашел там что-то полезное для себя и пытается его использовать в ядре 6.12. И опачки - порвались по.очки. Просто всунуть не получается, надо пыхтеть. Потому что не сопровождал, не переносил от версии к версии, не учитывал изменения.
Здесь, конечно, ты теперь прикопаешься, что это какой-то студент с никому ненужной поделкой, но это была аллегория. В реальности же это мог быть какой-то заброшенный драйвер к забытой железке, которая сейчас кому-то вдруг сильно понадобилась именно в новом ядре.
Ну вот так всегда, начинаешь с людьми про ABI, релизы, рациональность и конкретные проблемы, а они начинают ныть что конкретика это слишком сложно, давайте лучше анекдоты, там-то сразу будет понятно.
> А зачем нам такое безумие?А напр. мне хочется обновить свой андроид до нового ядра.
Но проблемка что блобы прибиты к 4.4, а в 5.х бравые кернелописаки все разломали.
И усё, приплыли.
>> А зачем нам такое безумие?
> А напр. мне хочется обновить свой андроид до нового ядра.Это не тот кейс ради которого всем остальным надо страдать с микроядром и инфраструктурой вокруг него.
В случае с микроядром, блобы вполне могут прожить несколько мажорных релизов ядра, а это обновления безопасности в том числе. У той же nvidia тоже блобы, а это уже десктоп
> В случае с микроядром, блобы вполне могут прожить несколько мажорных релизов ядра,
> а это обновления безопасности в том числе. У той же nvidia
> тоже блобы, а это уже десктопМажорные релизы не имеют никакого отношения к апдейтам безопасности, потому что апдейты безопасности это апдейты без поломки ABI и модули прекрасно работают.
>Мажорные релизы не имеют никакого отношения к апдейтам безопасностиИмеют, если предыдущий мажорный релиз перестали поддерживать
>потому что апдейты безопасности это апдейты без поломки ABIТакой нумерации мало кто придерживается. Ни одного релиза с минорным релизом выше 20 у linux не было
> Имеют, если предыдущий мажорный релиз перестали поддерживатьЭто апгрейд дистрибутива. Пересобирается все, включая glibc и прочее днище. Проблемы все ещё нет.
> Такой нумерации мало кто придерживается. Ни одного релиза с минорным релизом выше 20 у linux не было
Родное сердце, никто не пользуется mainline kernel. Для обычных смертных есть LTS (5.4.289), для любителей упороться на отличненько есть RHEL с поддержкой на десять лет.
Ядро можно обновить в предалах одного дистрибутива даже в убунте
> Ядро можно обновить в предалах одного дистрибутива даже в убунтеНе просто можно, а она прям все время это делает. Более того, выпустили там одно велро, скачал через месяц а там уже из коробки другое. И драйвер нужной железки для именно этой убунту уже не встал, пришлось ядро даунгрэйдить и замораживать. И это минорное обновление блин. И это 2022 и драйвер 2022. Ну теоретизируйте дальше. Для форточек поставил в 2022 драйвер из 2015 - все ок.
>> А напр. мне хочется обновить свой андроид до нового ядра.
> Это не тот кейс ради которого всем остальным надо страдать с микроядром
> и инфраструктурой вокруг него.Фуксики вон пострадали. Написали микроядро, с драйвером фата на иогохе, и пошли мир захватывать. Мир все никак не захыватывался и не захватывался, недоумевая - зачем кому-то может быть надо тормозной и жрущий RAM драйвер выслкоинновационного FAT в 202x годах. А больше ничего особо и не вышло.
Они даже начали постепенно о чем-то догадываться и задекларили перепись дров на хруст. Но тут какой-то зоркий глаз в менеджменте наконец заметил, что профита с их проекта - нифига, а денег на разработчиков - дофига. Их и подвергнули децимации. Теперь план по захвату мира ограничен мягкими стенами^W^W парой фоторамок.
И причем тут монолит/микроядро? Там ровно те же самые проблемы со стабильностью API будут. И точно так же никто не запрещает держать микроядро со всеми юзерспейс-драйверами в одной монорепе.
>Там ровно те же самые проблемы со стабильностью API будутКак вы представляете себе микроядро, где "stable api is nonsense"?
> Как вы представляете себе микроядро, где "stable api is nonsense"?А так и будет, только не по той причине, по которой тут думают. Допустим, есть микроядро. Там какое-то api для ФС. Разработчики говорят: мамой клянусь, ваще стабильное. А дальше начинается игра в тестирование этого всего. Кто будет проверять, что в новом релизе не принесли регрессию? Авторы блобов? А точно будут? Потому что даже в монолитном ядре тестируют настолько отвратительно, что Грег вынужден был понизить с 5 до 2 лет срок поддержки stable ядер. А в монолите на авторов гораздо более сильный прессинг хоть как-то проверять что модуль не сломался в результате внутреннего рефакторинга подсистемы.
>Кто будет проверять, что в новом релизе не принесли регрессию?Поскольку кода будет меньше, то и регрессий тоже, а апи будет разделено между всеми используемыми ФС. И при создании новой файловой системы, как той же bcachefs необходимость патчить ядро сократится. Сейчас, даже маленькая опечатка в коде ФС - патч в ядро, его как минимум нужно открыть и посмотреть. В случае микроядерности нужно будет смотреть только логирование, и какие-то совсем уж уникальные вещи, всё остально будет целиком на совести авторов ФС.
> Поскольку кода будет меньшеКода не будет меньше. Кода (в общем) вероятно будет даже больше. Тестировать отдельный компонент (микроядро) и класть на регрессии в модулях? Это сделает ситуацию только хуже.
> то и регрессий тоже
Да с чего бы вдруг? Даже в монолите люди постоянно пользуются API не так, как надо. Только это ловить проще, потому что все в одном дереве.
> а апи будет разделено между всеми используемыми ФС
Оно и так разделено.
> И при создании новой файловой системы, как той же bcachefs необходимость патчить ядро сократится.
А какая разница что именно придется патчить? Объем _задач_ не изменится, потому что делать-то все равно надо все то же самое. Либо API будет настолько минимальным, что каждой ФС придется писать все с нуля (как стало с Wayland), либо API будет достаточно большим, чтобы начались проблемы с регрессией (как было с X11 и DE).
> Сейчас, даже маленькая опечатка в коде ФС - патч в ядро, его как минимум нужно открыть и посмотреть. В случае микроядерности нужно будет смотреть только логирование, и какие-то совсем уж уникальные вещи, всё остально будет целиком на совести авторов ФС.
Так оно и сейчас на совести авторов ФС. Какая разница в какой репозиторий патч нести?
>Кода не будет меньше. Кода (в общем) вероятно будет даже большеКода ядра - меньше
>Так оно и сейчас на совести авторов ФС. Какая разница в какой репозиторий патч нести?Сейчас любое изменение в ФС должно пройти мейнтеров ядра, в случае микроядра будет больше свободы, как и в случае модуля
> Кода ядра - меньшеА похрен. У тебя задача ФС запустить, поэтому код учитывается весь. Он со всех сторон сойтись должен.
> Сейчас любое изменение в ФС должно пройти мейнтеров ядра, в случае микроядра будет больше свободы, как и в случае модуляНет? Потому что изменения внутри ФС это твое личное дело. Мейнтейнеры ФС и разработчики ФС это одни и те же люди.
> Тем, что это монолит. Тот же reiserfs взяли и выкинули. В случае модулей, они могут жить какое-то время полностью независимо от ядра.zfs, nvidia, virtualbox, scst, какое-то время wireguard, ядерные модули для openvpn... да тысячи их.
>nvidiaЭто та nvidia, после установки дров от которой у людей чёрный экран, или другая?
>virtualboxЕсли вы не заметили, то у каждой конкретной версии виртуалбокса есть модуль под каждую конкретную версию ядра, и если они вдруг не совпадут, например версия виртуалбокса обновилась, а модуль всё ещё старый, то работать не будет. Перезагрузитесь, и заработает, до следующего обновления.
>да тысячи их.Нет никакой тысячи. Статически скомпилированный бинарник можно скачать/собрать на одной версии ядра, перезагрузится на вторую, и он прекрасно запустится, даже не заметив смены ядра. А вот с модулями такая история не пройдёт.
>>nvidia
> Это та nvidia, после установки дров от которой у людей чёрный экран,
> или другая?А есть какая-то другая nvidia? Я просто не знаю.
>>virtualbox
> Если вы не заметили, то у каждой конкретной версии виртуалбокса есть модуль
> под каждую конкретную версию ядра, и если они вдруг не совпадут,
> например версия виртуалбокса обновилась, а модуль всё ещё старый, то работать
> не будет. Перезагрузитесь, и заработает, до следующего обновления.Ну и так все сторонние модули работают. Обновляется ядро, обновляются модули. Проблема-то где?
>>да тысячи их.
> Нет никакой тысячи. Статически скомпилированный бинарник можно скачать/собрать на одной
> версии ядра, перезагрузится на вторую, и он прекрасно запустится, даже не
> заметив смены ядра. А вот с модулями такая история не пройдёт.А проблема-то в чем?
>Обновляется ядро, обновляются модули. Проблема-то где?Проблема в том, что модуль нужно регулярно проверять на совместимость с текущим ядром, и возможно патчить, иначе в определённый момент он просто не соберётся.
>>Обновляется ядро, обновляются модули. Проблема-то где?
> Проблема в том, что модуль нужно регулярно проверять на совместимость с текущим
> ядром, и возможно патчить, иначе в определённый момент он просто не
> соберётся.А это проблема? Ты лично от неё страдаешь? Покажешь нам исходники своего модуля?
Вышла новая видеокарта - добавляем код в ядро.
Появилась новая клавиатура - добавляем код в ядро. И так далее.Посмотри код. На каждую железку добавляем код в само ядро.
Ядро должно быть неким арбитром, распределителем, посредником между железом. Оно не должно содержать логику как работает то или иное оборудование.
> Вышла новая видеокарта - добавляем код в ядро.NVIDIA таскал свой блоб отдельно от Линукса годами. Воплей было -- мама не горюй.
> Появилась новая клавиатура - добавляем код в ядро.
С чего бы вдруг, оно все через hid_generic работает.
> Посмотри код. На каждую железку добавляем код в само ядро.
Далеко не на каждую железку.
> Ядро должно быть неким арбитром, распределителем, посредником между железом. Оно не должно содержать логику как работает то или иное оборудование.
Кому не должно? Почему не должно? Как будет выглядеть тестирование и разработки ядра если все модули теперь снаружи и закрытые, а вендоры страдают "спасите помогите вы там нам сломали но код мы вам не дадим"?
А если у Таненбаума драйверы к микроядру тоже достигнут 40 млн строк, то что?
И скорее всего, при прочих равных возможностях, у Танненбаума миллионов строк будет больше.
Ответ в самой новости:> В случае разделения разработки существует опасность, что коду драйверов будет уделяться меньше внимания.
ну и где теперь Таненбаум, а где Линус?
Где они, известно. Но известно также, что
> 0.0.1 - сентябрь 1991, 10 тыс. строк кода;это, видимо, то, что было ... заимствовано ... из Minix. Это то, что сделал упомянутый Вами второй персонаж. И это весь его вклад в проект.
>заимствовано ... из Minix.За базаром следи. Когда Майкрософт обвинил сообщество ядра в том, что они якобы своровали кода из MINIX. Таненбаум со своими студентами провёл аудит всего кода ядра. Никакого копипаста они не обнаружили. Более того Таненбаум защищал Линуса. Ядро Линукса это с нуля написанный Свободным Сообществом копилефтный проект.
Таки да. Майкрософт это подлая и проклятая компания.
Я, конечно, свечку не держал, но думаю, что Линусу было банально не интересно напрямую _заимствовать_ из миникс.
У Таненбаума есть книги и Minix, который используется в intel.
Предупреждать-то он может быть и предупреждал, но где сейчас поделки Танненбаума, а где - поделки Порвальдса?Как там это было-то: если твоя идея со строгим микроядром такая замечательная, то почему на 100% компьютеров установлен или монолит (окна/пингвин), или гибрид (маки)?
Где те самые микроядра, пришествием которых нас пугают уже десятилетиями?
Почему свободные микроядра не взлетели, хот казалось бы - бери себе код из пингвина, линкуй динамически и ты в шоколаде
> но где сейчас поделки ТанненбаумаВ каждом процессоре интел.
> а где - поделки Порвальдса?Аж на 4% дестопов, и на 70% смартфонов.
Не знаю кто побеждает, но кажется оба потрудились неплохо.
В виде МЕ-баттплага от штеуда, да. Плюс ты про сервера забыл, беэсде (тоже монолит) сейчас далеко там уже не хит
> Не знаю кто побеждаетМонолит. Даже интересно, если бы штеуд взял не миникс3, а что-то вроде фриртос, где весь образ системы - это фактически одно большое ядро - что бы тогда говорили?
> В виде МЕ-баттплага от штеуда, да.А это имеет значение?
Да, оно может быть баттплагом или зондом для фанатиков из секты детелюбов, но мы же говорим про распространенность, а не "как оно используется".> интересно, если бы штеуд взял не миникс3, а что-то вроде фриртос, где весь образ системы - это фактически одно большое ядро - что бы тогда говорили?
Говорили бы "примеров успешных микроядер нету".
Но он есть)
Хм...не стал бы называть это успешностью.
Это как продавать того же Диккенса или Рабле, но в нагрузку к обязательному, оплачиваемому клиентом же томику стихов конъюнктурного рифмоплёта Алаберды Палаберды-Оглы - а потом говорить, что эта макулатура очень популярная, ведь все кто купил классику мировой литературы также купили этот хлам.
Тупо.
А что вообще, в твоем понимании, "успешность"?Код работает? Да, он выполняет задачи которые ему поставили его создатели.
Он распространенный - да, буквально в каждом процессоре фирмы.То что это не нравится кому-то - ну так пойдите и купите свободный опенсорсный процессор ;)
> а потом говорить, что эта макулатура очень популярная,
> ведь все кто купил классику мировой литературы также купили этот хлам.Так в интелопроцах оно работает именно так, как нужно заказчику - интелу. Причем там же речь не только про "зонды", которые так любят обсуждать тут, но и все остальное - микрокод, анклавы и так далее.
А тебе вообще туда лезть не нужно, ты получил готовый программно-аппаратный комплекс.
Если что-то не нравится, купи у другого производителя.Ну и сравнивать ядро с Диккенсом... слишком много чести.
Скорее какая-то графомания, которая просто по случайности попала в школьную программу и теперь ее используют все.
Ядро - это не графомания, алё!
> Ядро - это не графомания, алё!40 млн строк кода, алё!
1.5 лямя амудешного автогенеренного шлака, поддержка некроплатформ и всякого легаси, всё это сочно приправлено stable api nonsence, чтобы разрабам было чем заняться после каждого обновления ядра.
>Хм...не стал бы называть это успешностью.У них была прекрасная возможность взять любой монолитный bsd, но тем не менее.
>Это как продавать того же Диккенса или РаблеКто это такие?
> У них была прекрасная возможность взять любой монолитный bsd, но тем не менее.Нет, не было.
В тот момент были суды между Berkeley Software и USL.
И бизнес решил не вкладывать рискованный проект.
А т.к. ось все равно была нужна - вложились в линукс, к сожалению.Ну а дальше - раз туда вложились, то и продолжили, никто же не хочет записать старые инвестиции в убытки.
> Кто это такие?
Та, были два чела-писаки. Короче, не заморачивайся.
>А т.к. ось все равно была нужна - вложились в линукс, к сожалению.Речь про то, что intel мог взять любой монолитный bsd для intel me.
>>А т.к. ось все равно была нужна - вложились в линукс, к сожалению.
> Речь про то, что intel мог взять любой монолитный bsd для intel me.Но... зачем? Зачем им в ME пихать такое огромное ядро как bsd?
В нем же куча лишнего - нужного для серваков/десктопов, но ненужное для их эмбедеда.
>Зачем им в ME пихать такое огромное ядро как bsd?Какое огромное? Вы не забывайте про всякие NanoBSD.
> на 70% смартфоновНо вменяемую поддержку родной для линя поддержки ext4 нет до сих пор не сделают..
>но где сейчас поделки Танненбаума, а где - поделки Порвальдса?Если без Андроида то поделка Танненбаума то более менее сравнимо распостранена. Не знал? :) Англи^W штеуд гадит (С) - провентилируй вопрос.
>Предупреждать-то он может быть и предупреждал, но где сейчас поделки Танненбаума, а где - поделки Порвальдса?Таненбаум изначально тормозил развитие minix, чтобы он был достаточно простым для учебника, а форка minix не случилось. Hurd тоже не успел релизнуться.
>Где те самые микроядра, пришествием которых нас пугают уже десятилетиями?А где хоть что-то кроме linux? Есть ещё несколько вариаций bsd, но они отстают даже в неядерных вопросах, тех, для исправления которых не нужна особая квалификация. А ответ прост: для ядра нужно определённое число разработчиков, которые будут писать драйвера, и кучу других вещей. Почти всех забрал себе linux, ещё часть на вариациях bsd, все остальные проекты не смогли собрать вокруг себя достаточно энтузиастов. Тот же zfs как пример, когда freebsd перешла на openzfs. Остальные не важно, что это - react os, haiku или что-то другое так и застряли либо в вечной альфе, либо в законченной любительской поделке.
>Почему свободные микроядра не взлетели, хот казалось бы - бери себе код из пингвина, линкуй динамически и ты в шоколадеКак у вас всё легко и просто. На самом деле, отличий куда больше. Номера системных вызовов(как и сами вызова), разные фичи, типа пространств имён, мелкие отличия, типа /dev/sda1 будет по другому называться и куча всего другого. Как насчёт того, чтобы портировать не только свою программу, но и компилятор, стандартную библиотеку, и немного кода сверху? Не говоря уже про то, что нужно не просто это сделать однократно, а поддерживать каждый проверять.
> Танненбаум тормозилНо как же... сверхмощщщная идея от маститого акадЭмика... которая уже много десятилетий(!) почему-то или сидит в полулюбительских проектах, или используется как прошивка для запуска или 2х (системных) процессов, или запускает монолитное ядро?
> А где хоть что-то кроме linux?
Маки на своей экосистеме, бээсд на серверах и у сборщиков прошивок для роутеров (хотя тут уже швах, пингвинёнок подрос)...впрочем, тут речь больше об идее. Ну говорил Танненбаум Торвальсу (в через открытую переписку и всему миру), ну молодец, старик, мощный мысль, без сарказма. Прорывная мысль, но на тот момент, когда все вылизывали код по битикам была нереализуема на любой системе вне лабораторного стенда.
Я про вообще выхлоп - если это такая крутая идея, то почему до сих пор не реализовано в том же виндузе? Руссинович им вылизал ядро для 7/2008R2 до такой потери совместимости с легаси, что пришлось городить эмулятор WoW64 и еще тучу костылей для софта. Что помешало ему, как классному спецу послушать классного академика, когда у него был полный карт-бланш (время/бабки/люди) на работу с ядром винд? Что помешало сделать виндуз - микроядерным? Железо уже позволяло на тот момент терпеть издержки на постоянные переключения контекстов и общение сервисов/серверов с софтом, дровами и друг-дружкой.
> Как у вас всё легко и просто.
Это был сарказм, если что. Ну, если у вас, мол, такая правильная архитектура ядра, то уж и код драйверов перенести смогёте, особенно если реализуете слой для POSIX, который прямо расписывает что должно быть и как должно оно себя вести.
>почему-то или сидит в полулюбительских проектахПотому, что размер ядра никак не влияет на популярность проекта. Какое бы не появилось сейчас микроядерное/монолитное ядро, оно не взелтит, потому, что уже существует популярный linux. Просто не будет достаточно разработчиков. Даже если население Земли удвоится, то всё равно, количества людей не хватит
>Маки на своей экосистемеВо-первых, код маков пишется за деньги. Во-вторых, маки сидят в своей нише, и даже не высовываются. Вот захочу я не покусанный экран, и всё, не видать мне мака
>бээсд на серверах и у сборщиков прошивок для роутеров (хотя тут уже швах, пингвинёнок подрос)...Как же так, у них тоже монолитное ядро. Вот это - самая слабая часть в вашей логике, поскольку потеря популярности bsd происходит в следствии тех же процессов, что не дают возникнуть новой микроядерной оси.
>Я про вообще выхлоп - если это такая крутая идея, то почему до сих пор не реализовано в том же виндузе?А почему её должны реализовать и тем более в винде?
>когда у него был полный карт-бланш (время/бабки/люди) на работу с ядром винд?Винда - плохой пример. Ранее они отчаянно цеплялись за обратную совместимость, и им ещё одна возможность разломать всё совершенно не нужна
>Железо уже позволяло на тот момент терпеть издержки на постоянные переключения контекстовС каждым годом, железо становится всё меньшей проблемой, а вот софт - всё большей. В восьмидесятых был смысл что-то делать, а вот в сентябре 1991 уже всё, начинать уже было поздно, нужно был что-то на уровне linux-а, не меньше
>то уж и код драйверов перенести смогётеЭто далеко не тривиально, не говоря уже о вопросе лицензирования, что резко уменьшает количество вариантов. Хотя, существует l4linux, и он вроде как даже жив.
> или монолит (окна/пингвин)А почему вы записываете windows в монолит?
Это гибрид, как не крути.> Где те самые микроядра, пришествием которых нас пугают уже десятилетиями?
Они скорее исчезли. Тот же Symbian и QNX были микроядрами.
Но вымерли они по причинам мало связанным с типом ядра))
Как и с гибридами - OS/2, BeOS, Plan9 были довольно популярны в свое время.
Но тоже исчезли. А гибридные винда и макось живут вполне неплохо.> Почему свободные микроядра не взлетели, хот казалось бы - бери
> себе код из пингвина, линкуй динамически и ты в шоколадеПотому что уже вложились в пингвина.
А одну работу дважды будут делать только при существенном профите.
>Почему свободные микроядра не взлетели, хот казалось бы - бери себе код из пингвина, линкуй динамически и ты в шоколадеРаньше микроядра не взлитали из за проблем с оборудованием -частое переключения контекста и защиты (уровень кольца защиты) отнюдь не способствовало быстродействию.Сейчас с виртулизацией и быстрым вызовом процедур аппаратная проблема исчезла - но вылезла другая: драйвера видиокарт.Смысл от микроядра когда драйвер занимает 300 мгб ОЗУ ? Т.Е микроядра опять оттесняються в узкую нишу реального времени и спецоборудование.
> А ведь Таненбаум предупреждал Линуса 30 лет назад : "Монолит - это безумие,
> одумайся пока не поздно"Ну и как, вы используете операционку Таненбаума? А, погодите, это она - использует вас? :)
Линукс и не монолит. Модульная загрузка уже давно. Хватит бред палить. То чо ядро не микро это для производительности лучше. Что тут тупизм вообще делает не понимаю.
>Модульная загрузка...От этого ядро не перестает быть монолитом. Просто часть кода, грузится по необходимости и всё. Так или иначе имеем сильную связь между ядром и модулем. Ты не можешь взять модуль условно пятилетней давности и использовать его с новым ядром.
Ты не можешь сейчас написать код под свою новую супер-пупер клавиатуру и мышь, собрать его в модуль и подключить его к универсальному интерфейсу ядра для устройств ввода. На текущий момент нет возможности сделать это так, чтобы собранный модуль не зависил от версии ядра, да и собственно нет нужного универсального интерфейса.
Поэтому придется отправлять свой код в ядро. И делать это каждый раз, когда будет необходимо : добавить новые фичи, новое оборудование, исправить что-то, то придётся опять отправлять код в ядро.
Что быдет, если ты используешь стабильный дистрибутив? Кто будет бэкпортировать код для новой супер-пупер клавиатуры и мыши в ядро текущего дистрибутива с ядром lts?
Это как пример.
Примечательно, что прошо 30 лет и всё ещё не поздно.
Мало! Даёшь ещё больше!
>24 млн относятся к коду драйверовТак тон задают производители железок.
Даёшь 100 миллионов строк к концу пятилетки!
Пятилетку за три релиза!
Количество строк в нашем ядре - счастье для наших программистов!
Догнать и перегнать Windows по количеству строк - наша общая цель и задача!
Экспорт кода в другие операционные системы!
через 34 года будет 160 млрд LOC
Сколько лет понадобится на переписывание на Rust? Си повезло с таким огромным кодом, никогда не уйдёт в прошлое.
Google вон пытался написать фуксию, 34% проекта на Rust. В итоге не потянули, забросили идею ОС с нуля писать.
> Сколько лет понадобится на переписывание на Rust?вопрос не имеет смысла, на раст можно переписывать, но не переписать
> Сколько лет понадобится на переписывание на Rust?А зачем его переписывать?
Проще сделать микроось под х86 или АРМ64, без тонн легаси и некроплатформ тридцатилетней давности. Но пока не сильно нужно, ядро опухло, но еще не лопнуло.> Си повезло с таким огромным кодом, никогда не уйдёт в прошлое.
Угу, наверное про латынь так же говорили. И про римскую империю.
> Google вон пытался написать фуксию, 34% проекта на Rust. В итоге не потянули, забросили идею ОС с нуля писать.
Гугл вообще славится кол-вом закопанных проектов. Но при этом новый код в андроиде стараются писать на расте.
Как контрпример - редох который пишут 2,5 калеки и у них уже дум запускается.
Да, дров нету, но мы помним линукс начала двухтысячных...
Если проще почему её не сделали и почему редокс не летит?
Потому что ядро еще шевелится)
Как только затраты превысят профиты - начнут задумываться.Ты что никогда не был в ситуации, когда точно знаешь, как переделать лучше, но "это же работать надо" и "оно ж работает -> не трогаю"))?
Латынь?
Это которая до сих пор используется как lingua franca для медиков?
Или та, на которой зиждется 2/3 вокобуляра западных языков?
Да, именно она.
Используется только для обозначения болезней, названий костей и сухожилий...
Никто сейчас не преподает медицина на латыне.
Т.е язык бывший языком науки, на котором научные работы писались даже в российской империи, стал просто языком для списка научных терминов.
Сколько людей в мире могут говорить и писать на нем? Вот то то и оно.> зиждется 2/3 вокобуляра западных языков?
Зиждется не значит живет
Так и СИ останется в будущих языках как "СИ подобный синтаксис".ps я уже молчу про то, что самой латыни было дофига и больше, и и по времени, и по диалектам.
До сих пор в программу классического обучения в частных школах - не для плебса и "новых денег" - входит латынь. Хм...
Куча классического культурного наследия в первозданном виде, типа пословиц и поговорок вида "Quod licet Jovi, non licet bovi", хм...
В девизах и речёвках до сих пор сидит латынь, даже у очень молодых организаций, типа "Semper fidelis" у штатовких КМП, хм...
При формировании новых терминов идут или греческие корни, или корни из латыни, хм...
Католические богослужения состоят на 100%, а оффициальные католические тексты пишутся на латыни, а только потом переводятся, хмм...
Да ничего, учитывая что 2 из четырёх Евангелий изначально написаны на греческом и все Деяния, а самая изначальная версия Ветхого завета в католичестве была целиком инкорпорировани из Септуагинты, а, кстати, новые практикуемые переводы были сделаны и с оглядкой на предыдущие, потому Ветхий завет это вам не перевод мосаретского извода с иврита, там видно греческое начало (тобишь С))
>потому Ветхий завет это вам не перевод мосаретского извода с ивритаА теперь сравниваем даты
Вот что говорит википедия про септуагинту
>выполненных в III—I веках до н. э. в АлександрииИ массоретские тексты
>Окончательный зафиксированный вид МТ приобрёл к X веку н. э.
>К началу XXI века самой древней полностью сохранившейся масоретской рукописью Танаха является манускрипт, созданный около 1008 года и называемый Ленинградским кодексом
>там видно греческое началоТо ли дело текст на иврите, написанный спустя ~1000 лет
Короче, самое древнее означает самое крутое.
Да, все именно так.
Но не смотря на все вышеперечисленное - на ней практически никто не говорит, она не является официальным языком ни одной страны, кроме Ватикана.Она достигла своего пика и умерла. И живет только ее наследие.
Плюс нынешний язык науки - это английский, который является языком германской группы, а не романской (а вот 200 лет назад, когда французский язык был везде и всюду... но не фартануло)
Плюс к этому это не была стандартная литературная латынь, это вульгата,- народное поделие близкое, но не идентичное литературной латыни, греческое среднее койне тоже не блистало изысками, но было чуть витьеватее вульгарной латыни, на этом не только Библию писали и не только внутри Греции общались. Латынь мощна падежными конструкциями, но её вульгарность всё теряет.
И разговаривает на ней 0 человек, хмм…
> До сих пор в программу классического обучения в частных школах - не для плебса и "новых денег" - входит латынь. Хм...А еще фехтование и верховая езда.
Нужно же как-то объяснить толстосумам-старперам, что именно знание мертвых языков будет выгодно отличать их деток от плебса.
Ну и шекелей немного с них взять.> Куча классического культурного наследия в первозданном виде, типа пословиц и поговорок вида "Quod licet Jovi, non licet bovi", хм...
Ну так в куче языков сейчас есть конструкции из СИ (которые он тоже позаимствовал) - например служебные слова или скобочки.
И может через 20 лет будет очередной язык с СИ подобным синтаксисом в котором будет for ( int i ...> В девизах и речёвках до сих пор сидит латынь, даже у очень молодых организаций, типа "Semper fidelis" у штатовких КМП, хм...
Чем моложе организация, тем больше они любят брать древние символы. Это логично.
Но боюсь у тех же КМП устав написан не на ней, а на английском (а точнее его упрощенном американском диалекте).> При формировании новых терминов идут или греческие корни, или корни из латыни, хм...
Учитывая сколько латынь позаимствовала из греческого, то скорее из греческого.
Но "взяли корень для термина" и "у нас тут латынь цветет и пахнет" это немного разные вещи.> Католические богослужения состоят на 100%, а оффициальные католические тексты пишутся на латыни, а только потом переводятся, хмм...
Которые они перевили с греческого.
И вообще выучить наизусть тарабарщину чтобы прочитать репчик у алтаря... на развитие науки и техники оно слава богу-машине влияет не сильно.Так что ты можешь хмыкать сколько угодно, но даже по твоим примерам место латыни в виде пары строк на флажке, уроков для богатых, и языка религии.
Ну и корнях для терминов истоки которых все уже забыли и им пофиг (кому какая разница что электрон назван в честь янтаря?).
Ничего ценного.
>До сих пор в программу классического обучения в частных школах - не для плебса и "новых денег" - входит латынь.И что на латыни можно почитать? Мануал по языку программирования, мангу, книгу по кулинарии? Может быть, хотя бы какую нибудь литературу по медицине, где от корки до корки всё будет на латыни?
>Куча классического культурного наследияЭто культурное наследие не всегда понятно даже после перевода, а вы про латынь говорите, не говоря уже о том, что частично оно давным давно стало просто пережитком прошлого.
>При формировании новых терминов идут или греческие корни, или корни из латыниДалеко не всех, взять то же программирование. Но даже если термины и будут из латыни, то остальной текст всё равно будет не на латыни. Взять фразу "водород горит в атмосфере кислорода с образованием воды", гугл перевод "hydrogenii ardet in oxygeni aere ad formam aquae", догадаться о смылсе можно только у слов "hydrogenii", "oxygeni", "aquae". И то, у этих слов есть неожиданные, для того, кто не учил латынь окончания
>В девизах и речёвках до сих пор сидит латыньПонимание речёвок не предполагается. Главное, чтоб звучали красиво
>Католические богослужения состоят на 100%Все католические прихожане знают латынь?
>И что на латыни можно почитать?Virgil, Aeneida.
Gaius Julius Caesar, Commentarii de bello Gallico.
Нерчинский догвор, собственно.
Что это такое и из какого века? Что можно почитать современного, хотя бы из конца двадцатого века, не говоря про последние пару лет?
И сама она на не менее чем 50% состояла из греческого, местами прям из афинско-ионийского койне, местами из дорийских варварских говоров (самый культурный из них из них римляне вырезали/уничтожили совсем)
словно две нейросети зарубилисьв комментариях
> словно две нейросети зарубилисьв комментарияхА вот и нет))
Хотя даже немного забавно видеть такой диалог.
Как будто на форум языковедов попал, а не на "канал про аниме"))
Причём Си-подобный синтаксис изобретён не сишкой, а её предшественниками B & BCPL.
900 лет.
♾️
все? померла? хм вот так нате ))
Да, померла, вот так вот. Гугл её выбросил на мороз.
Наоборот. Они её уже начали впихивать в Андроид.
> Сколько лет понадобится на переписывание на Rust?Чем больше, тем лучше.
FORTRAN тоже не спешит. А ведь на нём науку двигали, когда ещё C не было. Там тоже желающих нет переписать на чём-то посвежее.
В книжке "О, дивный мир" хорошо описано зачем публикуют эту бессмысленную информацию про количество строк.
скинь ссылку, куда заплатить денег, чтобы понять, о чём ты говоришь, очень хочется
Можно краткую выжимку?
Надо пойти посмотреть что скажет DeepSeek
Вот вам и монолитное ядро.
Прогресс. Линус с 386го начинал в 1991 году сейчас вроде на AMD Threadripper. Одно ядро которого в сотню раз быстрее чем 386 процессор.
IBM молодцы. Но что их связывает с Линусом? Общее прошлое?
> IBM молодцы. Но что их связывает с Линусом? Общее прошлое?Самое теплоё и святое - БАБЛО! ;-)
PS: ... погоди ... а ты ЧТО думал? >:-\
С ядром их связывает то, что они по факту его написали.
Превратили из студенческой поделки в нечто рабочее.
Проинвестировав туда кучу денег и больше 1к инженеров.А с Линусом... думаю он был не против))
>С ядром их связывает то, что они по факту его написали.Наглая ложь. IBM не учавствовала в написании ядра Линукса. Ядро написали программситы со всего мира. На первых порах ядро Линукса "духовно" поддержал AT&T. Что очень символично.
> На первых порах ядро Линукса "духовно" поддержал AT&T. Что очень символично.Это вы так про суд над BSDшниками? Такая себе моральная поддержка :). Хотя пример как делать не надо конечно - хороший и эффективный.
>Это вы так про суд над BSDшниками?Нет. At&T тепло отзывалась не только про ядро и про Линукс в целом. Сначала духовная поддержка. Деньги потекли потом.
> IBM молодцы. Но что их связывает с Линусом? Общее прошлое?То что оно на этом их S390 работает, например! И потому у них шкурный интерес чтобы ядро работало - и работало хорошо :)
> например, код драйверов для GPU AMD занимает около 5 млн строкКак так вообще?
Кодогенерация. Вот что бывает, когда в язычок не завезли шаблоны.
> например, код драйверов для GPU AMD занимает около 5 млн строкТам же сгенерированного кода много. Зачем его считать?
А его не надо качать когда делаешь git pull ?
Или его не придется компилять, даже если у меня видяха от зеленых?
Даже если бы в репу запихали огромнейший бинарный блоб - это тоже раздувает ропозиторий.
> Или его не придется компилять, даже если у меня видяха от зеленых?Вообще-то да. Если ты кернел для себя делаешь - то можешь и не компилять ненужный драйвер. Но, видимо, ядро ты компилять не умеешь и поэтому не в курсе.
Правда если ядро и для других раздавать предполагается - вот тут конечно облом.
> Вообще-то да. Если ты кернел для себя делаешьА если нет? Каждый раз пилить ядро "под себя" это к гентушникам и нерациональной трате эл-ва.
> Правда если ядро и для других раздавать предполагается - вот тут конечно облом.
Вот именно! Я про это и говорю.
У нас есть мегаблотварь куда запихано все что угодно от дравера для видяхи, до микроволновки.
Я не удивлюсь что там где-то лежат фотки из личного архива Торвальдса.
> А его не надо качать когда делаешь git pull ?
> Или его не придется компилять, даже если у меня видяха от зеленых?Модули включаются/отключаются, запусти make menuconfig и удивись сколько там всего можно не компилить если тебе не надо. Можно не то что драйвера, поддержку целых подсистем не собирать.
> Там же сгенерированного кода много. Зачем его считать?Так это ж код. При компиляции все 100500 регистров - каждой железки - будут таки парситься компилером. Даже если к половине нет доступа и нет кода сгенеренного этим - парсер то пахал.
>> Там же сгенерированного кода много. Зачем его считать?
> Так это ж код. При компиляции все 100500 регистров - каждой железки
> - будут таки парситься компилером. Даже если к половине нет доступа
> и нет кода сгенеренного этим - парсер то пахал.Да, но вникать в него не надо при нормальных обстоятельствах.
Какой процент кода составляют драйверы?
во втором предложении написано 🤦
Не увидел, честно)
Очевидно, что объём кода драйверов будет расти. И размер пакета linux-firmware
>И размер пакета linux-firmwareТы попутал в каталог firmware помещаются проприетарные блобы.
Когда нибудь сообщество ядра задумается над дизайном ядра. Ещё давно драйвера принтеров и сканеров были выведены из состава ядра в отдельные проекты (CUPS, SANE). Задумываться о микроядерном дизайне ядра нужно. Будет это в ближайшем будущем или далёком, неважно. Но задумываться об этом уже надо сейчас.
Не задумаются.
Пока не начнется совсем задница. А потом будут бегать в мыле и кричать "как же так произошло?!!!"))
Ну т.е будут себя вести как типичные программеры, или лучше сказать как обычные люди.
40Mloc. Офигеть. А драйверов под оффтопик все равно больше :D
> 40Mloc. Офигеть. А драйверов под оффтопик все равно больше :DНу запусти свой масдай на каком-нибудь Banana PI - посмотрим как там у тебя с драйверами.
> It is now possible (officially) to run Windows 10 IoT Core on the newer Banana Pi (Allwinner Technology Banana Pi BPI-M64, Allwinner Technology Pine64) Boards
От вантуза отошёл ещё в конце нулевых. Год-два назад с приятелем встретился. У него такой нескучный набор Ventoy + Windows 10 + драйвера, утилиты, MS Office, и всё это на твердотельном диске размером ок 100 Гб. Оказалось, что давно уже образы вантуза с офисом не помещаются на обычные флешки. Я был реально ошарашен. Чисто драйверы, незнаю как их собирают и кучкуют, весят примерно 20 Гб.P.S.
В контексте сабжа, драйвера ядра это не вантузные бинари. Это исходники. Размеры исходников и бинарей нельзя сравнивать.
О чём ты вообще говоришь, у меня есть "обычная флешка" на 512 Гб.
Отлично все помещается на обычные флешки, а 20 Гб драйверов у чувака это просто потому что коллекция почти на все случаи жизни, а не под конкретную машину. Под конкретную конфигурацию на самом деле будет примерно так - изошники винды ~5 Гб + Офиса ~1...3 Гб + драйвера ~1,5 Гб + кучка мелких утилиток. Итого менее 10 Гб на "джентльменский набор". Остальное ПО - кому что надо, можно и на терабайт набрать :)
Сам на линуксе давно сижу, но винду не дают забыть друзья-товарищи :)
Зачем вообще дрова на флешке, когда ≈90‰ выкачиваются через Windows Update? Пора бы уже свой Windows XP похоронить.
90 промилле как-то не очень впечатляет.
у меня весь antix на 4 гиговую старую флешку установлен как на жесткий диск, причем большую часть места занимает zoom (а ему надо 64 бита) и фаерфокс... Но офиса на флехе нет, да... Но и Антикс 21, в девичестве дебиан 11 - не то что-бы компактный дистр...
Скоро ИИ сможет предложить что-нибудь новое в этом плане. То, до чего человек не додумался.
ИИ ничего нового предложить не может. ИИ - это замена гугла, а не мозга.
Уже много чего предложил. Смени методичку.
> Из 40 млн строк 24 млн относятся к коду драйверовТо есть, больше половины жира ведра — драйвера.
на асм пишут видать их или количество аппаратных устройств столько много?
Сишка не сильно компактнее асма по количеству строк. Структурированнее, понятнее — но не компактнее. Особенно если по десять операторов в строку не писать.