LINUX.ORG.RU

История изменений

Исправление Stanson, (текущая версия) :

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

  • выкинуть сокеты и сделать реально «всё есть файл»
  • сделать так, чтобы ядро принципиально невозможно было использовать в ведроиде и другой проприетарщие (как минимум лицензию поменять), разумеется не забыв прихлопнуть проприетарные драйвера и любую возможность из драйвера дёргать юзерспейсный блоб.
  • добавить стек для 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, :

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

  • выкинуть сокеты и сделать реально «всё есть файл»
  • сделать так, чтобы ядро принципиально невозможно было использовать в ведроиде и другой проприетарщие (как минимум лицензию поменять), разумеется не забыв прихлопнуть проприетарные драйвера и любую возможность из драйвера дёргать юзерспейсный блоб.
  • добавить стек для 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, :

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

  • выкинуть сокеты и сделать реально «всё есть файл»
  • сделать так, чтобы ядро принципиально невозможно было использовать в ведроиде и другой проприетарщие (как минимум лицензию поменять), разумеется не забыв прихлопнуть проприетарные драйвера и любую возможность из драйвера дёргать юзерспейсный блоб.
  • добавить стек для Software Defined Radio и неспешно заменять фирмварь WiFi/Bluetooth на опенсорс без возможности каких-либо ограничений типа crda
  • добавить больше контроля над процессам из юзерспейса, чтобы с процессами можно было делать вообще всё, от прибивания процессов висящих в любром 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, :

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

  • выкинуть сокеты и сделать реально «всё есть файл»
  • сделать так, чтобы ядро принципиально невозможно было использовать в ведроиде и другой проприетарщие (как минимум лицензию поменять), разумеется не забыв прихлопнуть проприетарные драйвера и любую возможность из драйвера дёргать юзерспейсный блоб.
  • добавить стек для Software Defined Radio и неспешно заменять фирмварь WiFi/Bluetooth на опенсорс без возможности каких-либо ограничений типа crda
  • добавить больше контроля над процессам из юзерспейса, чтобы с процессами можно было делать вообще всё, от прибивания процессов висящих в любром 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 и подобные) и проприетарных драйверов.