Comments 50
Индусские колеры AMD во всей их красе
askubuntu.com/questions/863521/how-does-the-linux-kernel-deal-with-drivers
Ядро Linux представляет собой своего рода виртуальную машину для процессов. Процессы работают без всякой информации про оборудование компьютера — ядро абстрагирует весь уровень оборудования в единый совместимый виртуальный интерфейс. Кроме того, ядро реализует многозадачность прозрачно для всех процессов — каждый процесс «думает», что он является единственным процессом в системе, и имеет полные и эксклюзивные права на память и другие ресурсы оборудования компьютера. Фактически же — ядро выполняет несколько процессов одновременно, и оно ответственно за распределение ресурсов оборудования таким образом, что бы каждый процесс получил достаточный доступ к этим ресурсам.
В связи с этим размещение драйверов в ядре более понятно.
Можно считать что это такая монорепа для множества проектов.
почему?
Хорошо, что в Linux
Один древний сервер на Windows 2000 стал после перезагрузки выпадать в синий экран. Поднятие бэкапа помогло частично — стало можно загрузиться один раз. Код ошибки сообщал о повреждении реестра, но реестр был в порядке. После длительных поисков на одном из старых форумов нашлась информация — раздел System реестра не должен был превышать ЕМНИП 8 МБ, иначе под него не хватало выделяемой на этом этапе загрузки области ОЗУ. Помогло удаление следов драйвера видеокарты Nvidia — раздел уменьшился на треть.
Было же время, когда на маленькой флешке можно было носить набор драйверов для практически любого массового железа, а для переноса самого важного хватало дискеты.
если сервер продолжает работать на W2000
Ммм Сервер
На неподдерживаемой, 10 лет как, ОС… о остатками драйвера nvidia, что наводит на мысль что он собран на коленке из десктопного железа
Но в глюках у вас виноват конечно микрософт ;)
У нас есть софт который работает только на 2000 винде. Платить миллионы за новый? Придётся, но позже. И все равно этот будет лет 10 еще нужен даже если новый появится.
Вопрос кто виноват сразу перешёл в практическую плоскость — что делать.
А что не так с драйвером nvidia? Вполне нормальное было дело, matrox'ы не везде были.
Ну а любителям реестра — попробуйте в нем поменять ключи и применить их не перезагружая «профиль пользователя»/систему. Если вы скажите, что это «нинужна». Почему же тогда сами майки когда выпустят очередное кривое обновление советуют поменять настройки реестра и перезагрузиться? Почему многие программы после установки или обновления требуют перезагрузку, даже если они драйверы не устанавливали?
Ну а любителям реестра — попробуйте в нем поменять ключи и применить их не перезагружая «профиль пользователя»/систему
вы подменяете сущности
Реестр это просто БД, есть куча юниксового софта, где после правки конфигов надо делать reload или вообще restart, тут весь вопрос лишь в архитектуре софта, настройки которого вы меняете
«требуют перезагрузку» — это всё история из времен Win9x где реально на каждый чих надо было перезагружатся, начиная с Win2k все стало гораздо лучше… но опятьже тут проблема не в «злом и ужастном реестре», а в архитектуре, если бы вместо реестра были ini файлики как в старь, точно также надо было бы перезагружаться
Реестр это просто БД, есть куча юниксового софта, где после правки конфигов надо делать reload или вообще restart, тут весь вопрос лишь в архитектуре софта, настройки которого вы меняете
Вы будете делать reload/restart софту, а не всей системе.
«требуют перезагрузку» — это всё история из времен Win9x где реально на каждый чих надо было перезагружатся, начиная с Win2k все стало гораздо лучше… но опятьже тут проблема не в «злом и ужастном реестре», а в архитектуре, если бы вместо реестра были ini файлики как в старь, точно также надо было бы перезагружаться
В этом ущербность и проявляется. Монолит + не предусмотрен reload в принципе. Были бы ini-файлики в иерархической системе — было бы проще читать/раздавать права приложениям.Потому что большинству приложений весь реестр не нужен, а нужна только его часть.
Вы будете делать reload/restart софту, а не всей системе.
а это смотря что вы меняете
Представляете, при изменении параметров grub надо систему перезагружать чтобы они применились! Неслыханно. И даже без реестра.
В этом ущербность и проявляется. Что не предусмотрен reload в принципе.
Прям вообще не предусмотрен? а какже я, когда давно еще сисадмином работал, ставил кучу патчей через wsus на винду, и она не просила меня перезагружаться? Магия… или всётаки не ВСЕ апдейты требуют перезагрузку? А может всётаки и линукс надо перезагружать при изменении некоторых системных частей чтобы они применились? Давайте уж попродробнее, и не приводить в пример убунтовский livepatch который не во всех линуксах есть и не ко всему применим
. Были бы ini-файлики в иерархической системе — было бы проще читать/раздавать права приложениям.
ага, слышал я про историю что в юниксе идеальная модель прав на файлики… причем большая часть это утверждающих впервые слышала об acl в линуксе — от меня (ого, оказывается не только user+group можно! и не всем достаточно)
А вы видимо ниразу не слышали что в реестре можно на ветки права ставить тоже
Представляете, при изменении параметров grub надо систему перезагружать чтобы они применились!
Мы говорим про загрузчик системы. Он и так работает только при загрузке, потом завершает работу, что вы собрались там применять на горячую? Параметры запуска ядра? Так они относятся к ядру, а не к grub. И многие параметры ядра можно заменить во время работы.
Прям вообще не предусмотрен? а какже я, когда давно еще сисадмином работал, ставил кучу патчей через wsus на винду, и она не просила меня перезагружаться?
WSUS так же требует перезагрузку, просто то что нельзя заменить во время работы будет заменено после перезагрузки. Так что тут мы имеем дело с отложенной перезагрузкой.
от меня (ого, оказывается не только user+group можно! и не всем достаточно)
Кому не достаточно может использовать xattr.
при совершенно небольшом приложении рук, данные из реестра элементарно превращаются в файлики которые можно править руками, бекапить и частично восстанавливать
==
p.s. вы опять холивар хотите устроить, даже не вникая в подробности устройства и работы «неправильной ОС»?
весь виндовый бекап-софт без проблем умеет работать с реестром, и архивировать и частично восстанавливать.
При этом делает он это настолько феерично, что у таких контор как Veeam и Acronis всегда есть заработок на создании «образов» системы. Как вы думаете почему?
А до висты был еще и популярен ERD.
При этом делает он это настолько феерично,
насколько феерично?
У меня вот было феерично когда мне «великий, могучий и незаменимый tar» в солярисе запорол utf-8 имена в файлах и в таком виде закатал на пленку, при этом ни сказав ни слова что чтото идет не так
Мы сейчас еще о хранении конфигурации системы/приложений говорим?
Так это вы про бекапы начали, я продолжил
Где вы видели конфиги использующие кириллицу в именах?
(взлгянул в календарь) а что в 2020 году так нельзя? всеж с пеной у рта кричать что везде utf8 и вообще мир во всем мире?
Я например видел несколько раз виндовые инсталляторы, которые «крашились» на кириллице в пути
а я в разнокалиберных юниксах тоже самое видел
Так что тут проблемы кодировок лежат целиком на совести разработчиков софта, и на тех кто его неправильно применяет.
ах вот оно что. Когда винда просит перезагрузится, она значит плохая, а когда линукс то это разработчики какогонить wpa_supplicant или usbfilter виноваты, не, ну а чо, отлично.
Подозреваю единственное преимущество встроенного в проводник виндового архиватора
помню лет 10 назад линуксойды кричали что встроенный в винду софт это зло и убивает мир и веру в людей. а в ваш любимой *никс какой архиватор «встроен»?
(взлгянул в календарь) а что в 2020 году так нельзя? всеж с пеной у рта кричать что везде utf8 и вообще мир во всем мире?
Можно, но зачем? Поиметь проблемы на ровном месте? Вместо settings.json «Настроечки.жсн»? а если пользователь не русскоязычный? А если не умеет UTF. Да и банально переведенное в бинарный вид будет вдвое длиннее.
Так это вы про бекапы начали, я продолжилПро бэкапы я начал в контексте, не удобно бэкапить, не удобно частично восстанавливать. Упакованный «монолит» проще повредить, чем серию мелких файлов… Потому коммерческие решения пока на мой взгляд с бэкапами именно системного раздела вместе с реестром справляются лучше, чем встроенные средства самой windows.
помню лет 10 назад линуксойды кричали что встроенный в винду софт это зло и убивает мир и веру в людей. а в ваш любимой *никс какой архиватор «встроен»?
Зависит от того, что входит в понятие базовой системы и какой архиватор требуется для упаковки распаковки пакетов. Tar точно входит во все дистрибутивы. В остальном, зависит от того какой архиватор вам нужен. Тар это ведь по сути даже не про сжатие — это способ представить файловую иерархию в виде одного бинарного файла. И чтобы вы знали tar'ов на самом деле несколько разных существует, так же почти каждый ЯП имеет в своем составе библиотеку для написания собственного tar. Вот например пакет из go. В самом начале расписано какие имеются форматы и чем различаются и там далеко не все реализовано. tar
Когда винда просит перезагрузится, она значит плохая, а когда линукс то это разработчики какогонить wpa_supplicant или usbfilter виноваты, не, ну а чо, отлично.
Разработчики wpa_supplicant точно не попросят вас перезагрузиться. usbfilter — даже не нашел такого приложения для linux. Есть что-то от asus и оно точно виндовое. В linux вас попросят перезагрузиться наверное только если нужно обновить ядро. Если какой-то драйвер скомпилирован в виде модуля, то его можно выгрузить и загрузить снова.
Можно, но зачем? Поиметь проблемы на ровном месте? Вместо settings.json «Настроечки.жсн»?
Я с вами согласен, однако мой опыт подсказывает что люди не всегда это понимают, особенно молодые-горячие, им только дай волю, и пробелы и в именах и русские буквы.
Потому коммерческие решения пока на мой взгляд с бэкапами именно системного раздела вместе с реестром справляются лучше, чем встроенные средства самой windows.
Ну и хорошо. в чем проблема то? (хотя я скорблю по ntbackup) в линуксе бекап «изкоробки» надо самостоятельно костылить, штатного нажал-кнопку-все-хорошо там нет
И чтобы вы знали tar'ов на самом деле несколько разных существует, так же почти каждый
Конечно я знаю, для меня было откровением лет 15 назад когда я узнал что есть tar gnu-тый, и есть tar юниксовый и у последнего нет части функционала первого… и гуглинг мануалов без оглядки на это приводит по началу в замешательство… в моем случае у него не было поддержки utf в именах файлов несмотря на то что солярка была конца 2000х годов выпуска
Ну и хорошо. в чем проблема то? (хотя я скорблю по ntbackup) в линуксе бекап «изкоробки» надо самостоятельно костылить, штатного нажал-кнопку-все-хорошо там нет
Tar не устраивает? Почти вся конфигурация системы и приложений(за исключением некоторых пользовательских и «не таких как все») хранится в /etc. Запись туда производится редко. Атрибуты GNU tar сохранять умеет. в том числе и расширенные. Хотите пользовательских — присовокупьте еще /home целиком или выборочно каждого пользователя. Хотите всю систему — выберите изначально файловую систему с поддержкой snapshot или lvm. Если грамотно разнесли пользовательские данные и var на отдельные разделы, то и root можно бэкапить тем же tar.
tar gnu-тый, и есть tar юниксовый и у последнего нет части функционала первого…Есть еще как минимум bsdtar и pax.
особенно молодые-горячие, им только дай волюМолодые и горячие недавно в ext патч протолкнули, чтобы в имена файлов сделали регистронезависимыми. Хорошо хоть это пока только опция, а не поведение по-умолчанию.
Tar не устраивает?
под tar надо писать всё вручную всякими скриптиками и подробно описывать эти ценные знания для потомков
помню я работал в одной конторе, у нас был начальник, админ netware старой закалки (у нас была винда в тот момент, на серверах которые к нашему отделу относились), у него всё администрирование было на bat файлах самописных… я до того момента еще ни разу не видел скриптов на пару мегабайт размером, с функционалом давно встроенным в саму ОС…
вот мы угорели это мигрировать на штатный и более нормальный функционал.
Я конечно понимаю что «руками всё сделать лучше и надежнее»… но не всегда это аналог самого лучшего решения во всех смыслах
Это без xattr, но если не используете apparmor или что-то подобное, то обычно не требуется. Всю строку можно добавить в крон. А если правильно настроили почту, то вам еще и log.txt свалится. В нем будет список добавленных в архив файлов. И если при добавлении какого-то файла возникнет ошибка, то на нем лог прервется. Если требуется какое-то более сложное поведение то потребуется скрипт, но вряд ли будет больше двух трех десятков строк вместе с форматированием, украшательствами и прочим. Точно не больше двух килобайт.
Сейчас посмотрел один из своих самых длинных скриптов. Бэкапит сайт на wordpress и создает дамп базы mysql. Хранит 10 последних копий локально и три на удалеленном ftp. Всего 99 строк на sh с форматированием и комментариями всего около 3кБ. Правда использует еще одну самописную утилиту на go? которая парсит дату в имени файла и удаляет истекшие архивы на ftp (еще около 100 строк), но это скорее мой каприз — мне хотелось гарантировано знать что на ftp останутся фалы не старше трех дней, но производить чистку только в том случае. если при создании и копировании архивов нет ошибок.
Опять же есть и более сложные системы бэкапа. На любой вкус от amanda/bacula/borg до графических надстроек над консольными утилитами вроде wiki.gnome.org/Apps/DejaDup или community.linuxmint.com/software/view/timeshift
В контексте бэкапа только конфигурации системы я ответил, что можно бэкапить только /etc, и отдельные каталоги в папке пользователя, если нужно сохранить пользовательские настройки.
Но в целом, все зависит от дистрибутива. Есть например Alpine, который по умолчанию хранит /etc в виде архива, а при старте распаковывает его. Есть специализированные дистрибутивы которые хранят настройки в одном файле, а при старте создают из него /etc…
— Не, сынок. Это фантастика. А теперь давай добавим немного php в наш драйвер.
Чип, предоставляющий функции драйвера? Ну, теоретически, такое можно представить. При загрузке он обнаруживает код ядра и используя DMA модифицирует его, дописывая драйвер.
Но, боюсь, это будет уже не "функция драйвера", а "функция malware с уклоном в APT", потому что большинство экспертов с большим сомнением смотрят на оборудование, осуществляющее code injection.
Так Raspberry-PI работает. На GPU крутится ОС, а Линукс драйвер просто копирует туда OpenGL команды.
Правда сейчас появился полноценный драйвер.
Тогда пришлось бы хранить те исходные данные, из которых все генерируется. Которые не факт что меньше по объёму. И очень вероятно, что эти исходные данные — проектная документация или даже непосредственно Verilog код, что AMD открывать явно не захочет. Ну и плюс придется коммитить код утилит для генерации.
Тем временем замечательный открытый (али нет?) драйвер amdgpu не ставится на linux-image-5.8.0-55-generic, нужно обязательно откатываться на linux-headers-5.4.0-58-generic headers.
Драйвер AMD Radeon составляет 10,5% ядра Linux 5.9