LINUX.ORG.RU

В freebsd давно выпилили utf-8 и все юзают fbterm и подобное, не? Потому, что этому коду нечего делать в ядре.

x3al ★★★★★
()

ппц, а как теперь загружаться в безопасном режиме? система больше не имеет право на поломку? понимаете, что теперь даже простой выхлоп ifconfig не будет помещаться на странице, когда отсутствует видеодрайвер? 80х24. офигеть.

теперь в конец каждой команды дописывать | less?

или теперь переписывать /etc/inittab чтобы он автоматически запускал сессию в screen / tmux?

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

console=ttyS0 и дальше цеплять нормальную машину.

А в интерактивном режиме непосредственно сидя за консолью можно и tmux использовать, да.

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

ппц, а как теперь загружаться в безопасном режиме? система больше не имеет право на поломку?

В линуксе есть безопасный режим?

понимаете, что теперь даже простой выхлоп ifconfig не будет помещаться на странице, когда отсутствует видеодрайвер? 80х24. офигеть.

Tmux запусти.

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

Особенно если надо выхлоп загрузки прочитать на экране, оч поможет tmux.

Но впрочем давно линукс об этом: в гамаке на лыжах….

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

Особенно если надо выхлоп загрузки прочитать на экране, оч поможет tmux.

А ты типа мог в него промотать? В любом случае, ты можешь логи внезапно в логах почитать.

Но впрочем давно линукс об этом: в гамаке на лыжах….

Линукс всегда был набором костылей. Ничего не изменилось.

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

Особенно если /var в ro…

Да я всё могу…. Даже скомпилировать что-нибудь могу прямо в горящем танке. Суть не в том.

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

Особенно если /var в ro…

А если у админа нет глаз, то как он будет логи читать?

Суть не в том.

Суть в том, что в лялексе нет и никогда не было нормального способа читать бутлоги кроме как подключиться по RS232. Сильно хуже не стало.

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

Хорошо не жили, нечего и начинать.

А то зарплату просто так платят что ли.

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

Как оно тебе поможет промотать до проблем с загрузкой ядра?

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

А если у админа нет глаз, то как он будет логи читать?

Вроде как бывают дисплеи Брайля, подключаемые по RS232.

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

Не «набором костылей», а «конструктором». Unixway же. У каждой отдельной софтины своя отдельная задача.

И сидеть в ядерной консоли без терминального мультиплексора и раньше было менее удобно. Я, когда сидел в ядерной консоли, сидел в screen'е. Так что, по ходу, я бы и с новым ядром с выпиленной прокруткой не заметил бы разницы.

Я и при сборке Pisaahriktux'а/1.5OSaahriktux'а первым делом собирал именно screen, а потом уже из него собирал всё остальное.

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

Не «набором костылей», а «конструктором». Unixway же. У каждой отдельной софтины своя отдельная задача.

Какая отдельная задача у ядра почти на 30 миллионов строк кода? Потому что сейчас, если бы у меня была Gentoo, ведро составляло бы наверное где-то треть всего кода по количеству строк. Ещё треть сожрал бы браузер. Если тут модно ругать браузеры за то, что они стали жирными, включают в себя всё больше и больше левых фич, то чем ведро отличается?

Или, например, тот же systemd, который тут модно поливать говном, весьма и весьма похож на ведро Linux архитектурно. Как так?

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

теперь в конец каждой команды дописывать | less?

Видимо.

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

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

Браузеры, да, становятся чуть ли не отдельными ОСями. Это уже как раз не Unixway, а наоборот.

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

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

ппц, а как теперь загружаться в безопасном режиме?

Как и всегда. У меня давно # CONFIG_VGACON_SOFT_SCROLLBACK is not set и никаких проблем с прокруткой в безопасном режиме уже много лет.

понимаете, что теперь даже простой выхлоп ifconfig не будет помещаться на странице

Ещё остались homo ertectus, которые до сих пор используют палку-копалку и не перешли на iproute2? Если не помещается — взял и перемотал, делов-то. Я всегда так делаю.

когда отсутствует видеодрайвер?

То есть никогда?

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

В ядре столько строк кода потому, что в его состав входят драйверы на весь зоопарк железа.

Зачем им туда входить? Почему Windows и Macos могут в сторонние драйверы, а линукс – нет? Получается очень забавная штука, когда закрытая и злобная венда гораздо дружелюбнее для разработчиков драйверов и железок, чем открытый и свободный Linux.

А без драйверов ядро бы стало бы гораздо худее.

Только что проверил.

 ▲ ~/devel/linux git ls-files -- drivers|xargs cat | wc -l
17921767
 ▲ ~/devel/linux git ls-files|xargs cat | wc -l
29463386

Без драйверов всё равно 12 миллионов строк. Это очень и очень много, на самом деле.

Браузеры, да, становятся чуть ли не отдельными ОСями. Это уже как раз не Unixway, а наоборот.

А ведро на 12 миллионов строк не считая драйверов – это Unix way что ли?

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

Так и ядро – это не одна отдельная утилита, по сути. Это как busybox, который один бинарник, только в нём дофига разных зачастую никак не связанных функций.

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

Зачем им туда входить?

Для удобства юзера. Они уже есть и в ядре им самое место.

Почему Windows и Macos могут в сторонние драйверы, а линукс – нет?

Никто не запрещает собирать и устанавливать сторонние драйверы. И ряд драйверов именно так и распространяется. Тот же проприетарный драйвер Nvidia собирает и устанавливает свой сторонний модуль ядра, который не входит в состав ядра по умолчанию.

Без драйверов всё равно 12 миллионов строк. Это очень и очень много, на самом деле.

Смотря для чего. Сейчас уже не 90-е. Вот и ядру приходится выполнять больше функций.

А ведро на 12 миллионов строк не считая драйверов – это Unix way что ли?

Да.

Так и ядро – это не одна отдельная утилита, по сути.

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

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

Для удобства юзера. Они уже есть и в ядре им самое место.

Чо? Типа, если это будут пакеты из репозитария, юзеру будет неудобно?

Никто не запрещает собирать и устанавливать сторонние драйверы.

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

Мы с поцонами, когда делали одну свою ядерную штуку, нам чтобы поддержать CentOS 6 и 7 по сути пришлось половину драйвера переписывать. Потому что в API сетевого стека было оооочень много различий.

И ряд драйверов именно так и распространяется.

Назови хотя бы 5 кроме nvidia, amd и какого-нибудь mellanox.

Смотря для чего. Сейчас уже не 90-е. Вот и ядру приходится выполнять больше функций.

Каких функций? Зачем их выполнять ядру? Почему их не может выполнять отдельная программа в юзерспейсе?

Это вообще не юзерспейсная программа, а ядро.

В чём принципиальная разница-то? Ну, кроме самомнения разработчиков и общей ауры таинственности.

Которое должно выполнять всё, что требуется от ядра.

От ядра требуется только реализовать планировщик процессов и IPC и переключать контекст. Всё остальное без проблем уходит в юзерспейс. Даже линукс умеет юзерспейсные драйвера и прочие штуки.

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

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

Ядро на куски никак не разбирается.

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

Чо? Типа, если это будут пакеты из репозитария, юзеру будет неудобно?

А если у юзера система превратится в тыкву без отсутствующих драйверов?

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

Возможно. Но это уже несколько другой вопрос.

Назови хотя бы 5 кроме nvidia, amd и какого-нибудь mellanox.

Столько не назову, но в этом списке нет, по ходу, например, производителя чипов для USB Wi-Fi, который 6 лет назад выкладывал исходники драйвера для Linux'а на своём собственном сайте, а также производителя аппаратных устройств шифрования Рутокен (а они тоже свой отдельный драйвер для Linux'а делали).

Каких функций?

Системных.

Зачем их выполнять ядру?

Для скорости же. Если их вынести в юзерспейс, то система превратится в черепаху.

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

Никто не запрещает собирать и устанавливать сторонние драйверы.

Вот только «stable api is nonsence». В итоге драйвера не собираются даже на другой минорной версии ядра

cvs-255 ★★★★★
()
Ответ на: комментарий от saahriktu

А если у юзера система превратится в тыкву без отсутствующих драйверов?

С чего она должна в тыкву превратиться? При установке системы ставишь драйвер, потом он обновляется. Что не так?

Возможно. Но это уже несколько другой вопрос.

Да нет, это ровно тот же вопрос.

Столько не назову

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

Системных.

Что такое «системные функции»? Нужен ли DNS ресолвер в ядре? Потому что это явно системная штука. Окей, как насчёт сислог демона? Тоже системнее некуда.

Для скорости же. Если их вынести в юзерспейс, то система превратится в черепаху.

Чо? У тебя юзерспейс на отдельном процессоре что ли? Или ты думаешь, что при запуске кода в Ring 0 сразу получается +200% буст к производительности?

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

С чего она должна в тыкву превратиться? При установке системы ставишь драйвер, потом он обновляется. Что не так?

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

У тебя юзерспейс на отдельном процессоре что ли?

Нет, не на отдельном, тут в другом дело.

Переключения контекста - удовольствие дорогое.

Переключение контекста обычно требует больших вычислительных затрат, и основной этап при проектировании операционной системы заключается в оптимизации использования переключения контекста. Переход от одного процесса к другому требует определенного времени для сохранения состояния регистров, обновления различных таблиц и списков и т.д. Например, в ядре Linux переключение контекста включает в себя переключение регистров, указателя стека, счетчика команд, но не включает в себя переключение адресного пространства.

Именно отсюда и возникают тормоза при вынесении кода в юзерспейс.

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

Дело вовсе не в выносе в юзерспейс, а в отсутствии стабильных интерфейсов.

Почему-то ядру NT основы заложенной архитектуры не помешали 30 лет тащить совмстимость, вводя новые важные фичи только на мажорных релизах.

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

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

А если, например, юзер перенесёт систему с HDD на SSD, но при этом в его системе не было драйвера для SSD, а установить его он забудет?

Я не хочу тебя расстраивать, но у SSD и HDD один и тот же драйвер – ahci.

А так уже имеющийся драйвер SSD просто подгружается.

Ну, круто. Кто мешает по дефолту ставить в систему драйвера про запас? И зачем эти драйвера держать в ядре при этом?

Именно отсюда и возникают тормоза при вынесении кода в юзерспейс.

Отлично! А если не переключать контекст из юзерспейса в кернелспейс лишний раз, тормозов будет ещё меньше! И тогда чем меньше хрени в ядре, тем лучше скорость! Видишь, как всё отлично выходит?

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

Драйвера накопителей и так стабильно отваливаются, потому что утилита генерации initramfs слишком умная.

Я однажды просто засунул в конфиг опцию принудительно класть в образ драйверы всех возможных контроллеров и с тех пор живу спокойно. Почему это нельзя сделать по умолчанию, хз…

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

Я не хочу тебя расстраивать, но у SSD и HDD один и тот же драйвер – ahci.

Практика показывает, что, например, без драйверов MMC ядро Linux SSD может и не увидеть (а сами SSD появляются в системе как /dev/mmcblk*).

Кто мешает по дефолту ставить в систему драйвера про запас?

С этим нужно возиться. А так просто ставишь ядро и вместе с ним все имеющиеся драйверы.

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

Практика показывает, что, например, без драйверов MMC ядро Linux SSD может и не увидеть (а сами SSD появляются в системе как /dev/mmcblk*).

MMC и SSD – разные вещи.

С этим нужно возиться. А так просто ставишь ядро и вместе с ним все имеющиеся драйверы.

Кому надо возиться? Я просто поставил Windows и у меня все нужные драйвера. Перенос на другой диск тоже без проблем работает. Почему линукс так не может?

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

MMC и SSD – разные вещи.

Как показывает практика, не совсем разные. Десктопные SSD могут и не требовать MMC, не знаю. Однако, SSD в ноутбуках и неттопах появляются в системе именно как /dev/mmcblk*.

Я просто поставил Windows и у меня все нужные драйвера.

Винда из коробки тоже не без драйверов. Там тоже есть своя коллекция драйверов из коробки.

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

FB вроде никто не выкидывал, только VGA. Так что спокойно

Твой пост остался незамечен, не мешай людям паниковать )))

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от hateyoufeel

Почему линукс так не может?

См выше мой коммент про initramfs. Опять все через одно место было сделано в дефолтном конфиге.

Насчет винды:

Тут на одной машине биос что-то взбрыкнул и перекинул сата в режим ide.

Винда не загрузилась. No boot device.

А казалось бы, что мешает грузить fallback драйвера из загрузчика ядра.

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

SSD в ноутбуках и неттопах появляются в системе именно как /dev/mmcblk*.

Это не SSD. Это напаянный MMC. У меня в старых ноутбуках SSD опознавались как /dev/sdX, в новых – /dev/nvmeXnY ибо NVMe.

Винда из коробки тоже не без драйверов. Там тоже есть своя коллекция драйверов из коробки.

Эта коллекция драйверов не является частью ядра Windows и разрабатывается сторонними разработчиками отдельно от Windows. Просто они входят в дистрибутив Windows.

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

См выше мой коммент про initramfs. Опять все через одно место было сделано в дефолтном конфиге.

Речь вообще не про initrd сейчас, а про то, что в линуксовом ядре дофига дерьма, которого там быть не должно.

Тут на одной машине биос что-то взбрыкнул и перекинул сата в режим ide.

Охлол! У меня лялекс бы тоже не загрузился, потому что драйвер PATA давно выключен в конфиге ядра дистрибутива.

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

Насчет дерьма сонласен.

Должны быть отдельные репозитории с кодом и отдельные разработчики.

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

Это не SSD. Это напаянный MMC.

Гм. А в характеристиках пишут, что SSD...

/dev/nvmeXnY ибо NVMe

О, такое у меня, оказывается, тоже есть.

Эта коллекция драйверов не является частью ядра Windows и разрабатывается сторонними разработчиками отдельно от Windows. Просто они входят в дистрибутив Windows.

Ну, в принципе, да, можно отдельно от ядра разрабатывать и опакечивать в отдельный пакет. kernel-firmware, вон, в отдельный пакет выносят, можно и пакет kernel-drivers сделать как коллекцию драйверов для ядра.

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

Гм. А в характеристиках пишут, что SSD…

Чувак, тебя нае^Wобманули.

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

Можно было бы. Только в лялексе это невозможно из-за отсутствия более-менее стабильного ядерного API. Хотя бы в пределах мажорной версии. В той же венде до сих пор многие драйверы от Vista работают, хотя уже почти 14 лет прошло.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.