LINUX.ORG.RU
ФорумTalks

Если бы вам выдался шанс переписать Linux с нуля

 , ,


0

2

Не ядро Linux, а все базовые составляющие дистрибутива: ядро, системные библиотеки, систему инициализации, графическую подсистему, десктопное окруженние, звуковую систему… Что бы вы в первую очередь изменили? Именно речь о том, что затруднительно изменить в существующей системе.

Ну я бы, из того, что приходит в голову, сделал бы стабильный API для модулей ядра. Хотя бы для драйверов конкретных типов оборудования. Да, ядро должно развиваться, но не все драйверы принимают в апстрим. Даже свободные, например, драйвер для ZFS.

Ещё бы сделал ограничение доступа приложений к системным ресурсам как в Android. Не обязательно для всех приложений, можно опционально. Если пользователь доверяет приложению (или технически затруднительно проконтролировать), то пользователь может дать полные права. А если не доверяет, то приложение должно вручную запрашивать разрешения на работу с камерой, микрофоном, произвольному доступу к файлам, скриншотам и т.п.


Ответ на: комментарий от hobbit

Там с лицензией кое-какие непонятки, я ведь правильно понимаю?

Возможно. Но тем не менее драйверы с несовместимыми с GPL лицензиями существуют. Мало того, их разработчики являются платиновыми членами Linux Foundation, которая башляет на разработку ядра Linux.

Драйвер ZFS стоит особняком, потому что он, несмотря на то, что лицензия несовместима с GPL2, является свободным.

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

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

Wapieth
() автор топика

Смотря чего ты хочешь добиться.

Если бы я хотел добиться нормальной работы ОС, то перво-наперво я бы назначил ответственных и запретил форкание.

Все что предлагаешь ты - это лечение поноса затыканием жопы, но причина поноса именно «базар» в разработке и подходе. Ну ты бы сделал ограничение доступа приложений, а Васян не сделал бы. В результате половина Линуксов была бы с ограничением доступа приложений, а половина нет.

После чего 3d-party разработчик, допустим игори, либо вынужден был выпускать две версии, под Линукс с ограничением доступа приложений, и под Линукс без ограничения доступа приложений, либо забить и делать под предсказуемые ОС.

Затем половина скачавших твой Линукс сидела бы в безопасности, а половина скачавших форкнутый Линукс Васяна (напомню, в текущей парадигме, оба из них Линуксы) сидела бы в решете, и когда другие люди, спрашивали бы «а чо там с безопасностью в Линукс», пользователи ВасяноЛинукса отвечали бы «дуршлаг !!11».

Заметь как оно делается в Мелкософт Шindows. Компоненты работают слаженно, условный MS Wordpad знает как работает MS переключалка языков или MS часы. Но вместе с тем, тебе никто не запрещает ни пользоваться другим редактором, ни установить пунтосвитчер, ни запузырить другие часики. И даже рабочий стол с explorer поменять на другой. Но дефолтно - именно так.

После того как будут найдены ответственные - неважно компания, группа, или клуб анонимных алкоголиков, они уже будут решать, Линукс будет с ZFS или с ext4, pulseaudio или pipewire, X11 или Wayland. И когда они решат - вся группа будет пилить то что решено, а не так как сейчас: иксы тормозят, давайте придумаем новые иксы, прошло 15 лет, теперь у нас два графосервера и обеими невозможно нормально пользоваться. А уже кому не нравится - базару нет, пилите свою реализацию, совместимость на вашей совести, установщик в систему тоже.

У тебя слишком узкое видение мира, бро. Смотри шире.

windows10 ★★★★★
()
Последнее исправление: windows10 (всего исправлений: 1)

Что бы вы в первую очередь изменили?

Ничего.

Ну я бы, из того, что приходит в голову, сделал бы стабильный API для модулей ядра. Хотя бы для драйверов конкретных типов оборудования.

Вы так часто работаете с API и разношерстным оборудованием, что вас это волнует?

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

Вы так часто работаете с API и разношерстным оборудованием, что вас это волнует?

ядерная часть видеодров например. Из-за неё приходится целиком новое ядро собирать если что-то не работает (а с современными GPU это почти постоянно).

videoloopback

и прочее по мелочи (например, броадкомовская вебкамера в макбуках)

Но только я подозреваю, что достоинства Линукса-с-обвязкой частично являются оборотной стороной его недостатков - быстрая разработка мешает как своим так и чужим, хотя в итоге в мире капитала всё равно бОльшая метлау мегакорпораций. Что патенты, что само железо вынуждают играть по чужим правилам.

Так что менять Линукс похоже надо с изменения того мира, в котором он крутится.. ну там, разработчиков отягощенных мыслями о вечно и пользователях …. А откуда их взять? Ну, для этого все правила игры нужно переделать (например, чтобы капитализмъ тихо и аккуратно ушли, пока он нам планетку не доломал)

Andrew-R ★★★★★
()
Ответ на: комментарий от Wapieth

Linux Foundation, которая башляет на разработку ядра Linux

На ЛОРе как-то было обсуждение материала, в котором утверждалось, что всё не так просто и к собственно разработке у этого Linux Foundation и его денег отношение довольно косвенное…

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

Нашёл. Там утверждается, что

Итак, за этот год (2021 - h.) доход Linux Foundation составил 177 мегадолларов, в основном от пожертвований и членских взносов от корпораций-участников. Из них, на поддержку собственно ядра Linux было потрачено… 3.4%

С другой стороны, Линус трудоустроен именно там, что, в общем, достаточно важно.

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

Но тем не менее драйверы с несовместимыми с GPL лицензиями существуют.

Ну вот тебе и задачка: написать драйверы-аналоги (но не производные работы) под совместимой с GPL лицензией. Можно даже под BSD, её двух- и трёхпунктные редакции (для некоторых это до сих пор внезапно) FSF признаёт GPL-совместимыми.

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

С одной стороны, сильное влияние корпораций и людей с большими деньгами на развитие ядра — это реальность. С другой стороны, безусловно интересный вопрос «это всегда развитию линукса для простых пользователей помогает или бывает, что и мешает?» я бы предпочёл обсудить к людьми, которые сами писали патчи в ядро или другие ключевые компоненты экосистемы GNU/Linux и пытались их пропихивать в апстрим. Были ли у них проблемы и если были, то по каким причинам. Я — не пытался, к сожалению, я в опенсорсе только как программист-прикладник подвизаюсь.

Есть среди читающих эту тему такие?

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от Andrew-R

А я не у вас спросил, а у ТС.

ядерная часть видеодров например.

Ну это вообще беда пожизненная и касается не только видимо драйверов. Но один раз подобрали рабочие и робит. Ну лет через н-цать повторить операцию в связи с апгрэйдом.

и прочее по мелочи (например, броадкомовская вебкамера в макбуках)

Очень смешно. ЕМНИП после переезда на M1 и Линус свалил с макбуков.

например, чтобы капитализмъ тихо и аккуратно ушли, пока он нам планетку не доломал

А что на замену предлагаете?

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

пытались их пропихивать в апстрим.

Патчи в kernel - личный опыт

Были ли у них проблемы и если были, то по каким причинам.

Да, по причине невменяемой системы принятия патчей. Забил.

dataman ★★★★★
()

Да в общем-то только в ядре и хотелось бы поменять кое-какие мелочи. Ну типа

  • выкинуть сокеты и сделать реально «всё есть файл»
  • сделать так, чтобы ядро принципиально невозможно было использовать в ведроиде и другой проприетарщие (как минимум лицензию поменять), разумеется не забыв прихлопнуть проприетарные драйвера и любую возможность из драйвера дёргать юзерспейсный блоб.
  • добавить стек для Software Defined Radio и неспешно заменять фирмварь WiFi/Bluetooth на опенсорс без возможности каких-либо ограничений типа crda и оглядок на всякие FCC
  • добавить больше контроля над процессам из юзерспейса, чтобы с процессами можно было делать вообще всё, от прибивания процессов висящих в любром IO включая свопинг простым kill до жёсткого и безусловного ограничения доступной физической памяти, типа чтобы всякие браузеры в принципе не могли никакими ухищрениями выжрать больше 1Гб например, вне зависимости от количества форков, тредов, запущенных с нуля процессов и пр. - есть бинарник, ему разрешено 1Гб, и ни капли больше, хоть 100 раз его запусти, демонизируй, да что угодно.
  • сделать человеческий интерфейс к nf/tc, чтобы не вот это вот цископодобное убожище где надо полстраницы текста набрать чтобы тупо ограничить скорость по какому-нибудь условию, а просто nftc limit speed 1Mbit for (process "chrome"|source somehost.org|udp sport 12345|iface eth1|...) или nftc rewrite 192.168.0.123 with 192.168.254.123, причём интерфейс должен быть человеческим на уровне ядерного API, а не посредством юзерспейсных тулзов, чтобы вся эта иерархия таблиц, цепочек, фильтров, классов, дисциплин жила исключительно в ядре, где ей и место.
  • перестать ломать API драйверов, как мнимум гарантировать обратную совместимость, чтобы какой-нибудь out-of-source драйвер 10-тилетней давности не приходилось переписывать, если вдруг понадобилось запустить старую железку под новым ядром.
  • добавить возможность для любых юзерспейсных программ создавать абсолютно фейковые девайсы и /sys|/proc выдающие фейковые данные, от всяких cpuid и камер до фейкового сетевого адаптера или там фейкового serial, чтобы юзерспейс не имел никакой возможности отличить их от настоящих. Сейчас это делать тоже возможно, но для большинства девайсов придётся писать (или использовать out-of-tree) драйверок и запихивать софтину в специально настроенный контейнер. Весьма актуально для всякой проприетарщины. Много где валяется skeleton.c, вот их можно было бы сделать такими дефолтными обманками, с файловым интерфесом где-нибудь в /dev для скармливания фейковых данных из юзерспейса.

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

Впрочем, это всё не больше чем wishful thinking, ибо разработка ядро давно оккупирована проприерастами которые не дадут добавить что-либо противоречащее их хотелкам, да и сам Линус не имеет ничего против тивоизации, ограничения прав пользователя (crda и подобные) и проприетарных драйверов.

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

Заметь как оно делается в Мелкософт Шindows. Компоненты работают слаженно, условный MS Wordpad знает как работает MS переключалка языков или MS часы. Но вместе с тем, тебе никто не запрещает ни пользоваться другим редактором, ни установить пунтосвитчер, ни запузырить другие часики. И даже рабочий стол с explorer поменять на другой. Но дефолтно - именно так.

И толку? Это приводит к тому, что в первый день человек занимается установкой браузера, медиапроигрывателя и Notepad++. А интеграция браузера приводит к тому, что после того как его блокируешь из-за уязвимостей перестаёт работать помощь и новомодная панель Параметры (толку от них, конечно, не очень много, но что мешало привязаться к выбранному браузеру, а не прибитому гвоздями).

Уж лучше как в Линукс, где можно выбрать из сотни преднастроенных окружений.

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

Проблема в том, что GNU Hurd к сожалению, занимаются ещё более упоротые персонажи, чем ядром линукса. И, к тому же, хурдовый подход ещё меньше препятствует созданию проприетарных драйверов чем линуксовый.

Stanson ★★★★★
()

Ты бы ничего не сделал, как и прям щас. Или почему ты щас не переписываешь?

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

Это приводит к тому, что в первый день

Ты знаешь какие компоненты у тебя установлены, как они работают, как ими пользоваться, и что нужно если их не хватает.

Знает и 3rdparty-программист, пишущий фотожопу, фрутилупсю или игорю. Это ускоряет разработку и уменьшает говнокод. Еще бы, вот например PlaySound из WinApi тянется со времен 95 винды, это ВСË что нужно для проигрывания звука. Сколько звуковых систем сменил Линукс с 95 года?) И по хорошему либо их все надо ifdef'ить, либо распрощаться с совместимостью, и тогда толку кукарекать про кроссплатформенность попенсорсного ПО, если оно не может в линукс 5-тилетней давности.

как в Линукс

Окей. Тогда у меня всего один вопрос: у меня Линукс. Скажи мне как поставить firefox?

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

Писал бы на С++

На ADA писать надо. Для любителей ООП - оно там тоже есть. Зато наделать глупых ошибок в коде - очень намного труднее.

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

людьми, которые сами писали патчи в ядро или другие ключевые компоненты экосистемы GNU/Linux и пытались их пропихивать в апстрим.

Я когда-то пытался отправить патч в Иксы. Мне даже не ответили.

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

Они и не ответят. Сейчас Wayland и Иксы майнят одни и те же люди. А их работодатели закапывают Иксы. Конечно они отвечать не будут, если там активность будет, то им атата будет.

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

Как правило, из пакетного менеджера.

monk ★★★★★
()

Если бы вам выдался шанс переписать Linux с нуля

Как ещё Linux не угробили?
Ведь каждый релиз сотни тысяч строк изменяют в ядре.

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

Именно что отправлял,правда уже не помню в какую из так как было это полтора десятка лет назад(2008 год). И как я уже писал - мое письмо просто проигнорировали - оно даже в рассылке не появилось. По-видимому посчитали спамом. Возможно - из-за плохого английского в стиле примерно как у гуглопереводчика.

Следы сохранились?

Первый вариант патча: https://www.opennet.ru/openforum/vsluhforumID15/2365.html#1

Вариант,подправленный под более новый Дебиан,которым сейчас пользуюсь: https://debianforum.ru/index.php?topic=15610.0

watchcat382
()

Перевёл бы весь высокоуровневый код на C#, скриптоту на Python, а там где производительность/работа с железом очень нужна на растишку. Просто потому что от растишки жопа горит, чтоб использовали его только там где действительно надо, а не то что полно софта вроде файлового менеджера на сишке (привет наутилусу, например) и при этом оно лагает как говно если директория большая, даже на Java меньше лагов.

peregrine ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)