LINUX.ORG.RU

Linux 5.13

 , , ,

Linux 5.13

2

1

Линус Торвальдс анонсировал новую версию ядра Linux 5.13, отдельно подчеркнув, что это самый большой релиз по количеству проделанной работы!

После седьмого релиз-кандидата у нас была довольно спокойная неделя, и я не вижу причин откладывать релиз версии 5.13. Изменений за последнюю неделю мало, всего 88 коммитов не считая слияний (и некоторые из них просто откаты). Это не особо важные исправления и поскольку их мало, я предлагаю людям просто просмотреть прилагаемый список изменений, чтобы узнать, что произошло. В целом в 5.13 очень много изменений. Фактически, это один из самых крупных релизов 5.х с более чем 16 тысячами коммитов (более 17 тысяч, если считать слияния) от более чем 2 тысяч разработчиков. Однако, все эти изменения затронули всё и понемногу, поэтому трудно выделить что-то одно…

Наиболее значимые изменения:

  • LSM-модуль Landlock для дополнительного ограничения процессов (подробности);
  • возможность сборки в Clang с защитой CFI (Control Flow Integrity) (подробности);
  • рандомизация стека ядра для каждого системного вызова;
  • поддержка одновременного сброса TLB;
  • поддержка чипов М1 (пока на начальной стадии);
  • поддержка новых GPU от Intel и AMD;
  • возможность прямого вызова функций ядра из BPF-программ (подробности);
  • виртуальное звуковое устройство на базе virtio;
  • multi-shot режим в io_uring.

Небольшая статистика в цифрах:

  • принято патчей – 17189 (2150 разработчиков);

  • изменено файлов – 12996 ;

  • добавлено строк кода – 794705;

  • удалено строк кода – 399590;

  • общий размер патча – 60МБ.

  • 47% – драйверы устройств;

  • 14% – специфические для аппаратных архитектур;

  • 13% – сетевой стек;

  • 5% – файловые системы;

  • 4% – подсистемы ядра.

Одновременно c релизом ядра 5.13, латиноамериканский Фонд свободного ПО сформировал вариант полностью свободного ядра 5.11 – Linux-libre 5.11-gnu, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В новом выпуске проведена чистка драйвера comedi. Прекращена чистка драйверов cyclades, isicom tty и i2400m wimax, которые были удалены из ядра. Обновлён код чистки блобов в драйверах и подсистемах amdgpu, i915 csr, r8152 usb, mhi bus, x86 touchscreen и qualcomm arm64.

Дисковая подсистема, ввод/вывод и файловые системы

  • Для файловой системы SMB3 реализована опция монтирования rasize, при помощи которой можно определить размер окна упреждающего чтения (readahead) для увеличения производительности некоторых видов нагрузки.
  • В файловой системе ext4 обеспечена перезапись элементов каталогов при удалении файлов, чтобы гарантировать, что имена удалённых файлов будут очищены. За счёт упреждающей загрузки битовых карт блоков повышена производительность кода для выделения блоков на недавно примонтированных ФС. В ext4 также разрешено одновременное использование режима работы без учёта регистра символов и шифрования.
  • В файловой системе exFAT добавлена поддержка ioctl-команды FITRIM (discard), для информирования накопителя о неиспользуемых в ФС блоках.
  • В файловой системе XFS добавлена возможность изъятия места из последней группы распределения в ФС, что стало первым звеном в реализации функции уменьшения размера существующих разделов с ФС XFS. Внесено несколько оптимизаций производительности.
  • В файловой системе Btrfs добавлено использование упреждающего чтения в команде send, позволившая сократить время полной отправки на 10%, а инкрементальной на 25%. Для зонированных блочных устройств обеспечено автоматическое фонового перераспределения зон при превышении порога в 75% неиспользуемого пространства.
  • В файловую систему EROFS (Enhanced Read-Only File System) добавлена поддержка режима big pcluster, позволяющего значительно увеличить производительность сжатия данных.
  • Добавлен новый системный вызов quotactl_path, который отличается от quotactl тем, что позволяет управлять квотами не через файл специального устройства, а через указание пути к точке монтирования ФС.
  • В механизме fanotify расширены возможности, доступные непривилегированным пользователям. Например, по аналогии с inotify без прав SYS_CAP_ADMIN теперь можно отслеживать события OPEN, ACCESS, MODIFY и CLOSE для файлов и каталогов.
  • В распределённой файловой системе OrangeFS (продолжение развития PVFS) реализована поддержка операций упреждающего чтения, позволивших существенно увеличить производительность операций чтения (в тестах пропускная способность возросла с 21.8 MB/s до 386 MB/s).
  • Повышена масштабируемость хэширования Device Mapper за счёт перехода на rbtree. В dm-integrity добавлена поддержка операции discard.

Память и системные сервисы

  • Добавлен новый контроллер cgroup – «Misc» (CONFIG_CGROUP_MISC), предназначенный для ограничения и отслеживания скалярных ресурсов, которыми можно управлять с использованием простого счётчика и ограничивать, задавая максимально допустимые значения. В качестве примера применения нового контроллера cgroup упоминается управление идентификаторами адресного пространства, применяемыми в механизме AMD SEV (Secure Encrypted Virtualization).
  • В интерфейсе асинхронного ввода/вывода io_uring для запросов POLL реализован режим multi-shot, при котором POLL не удаляется после генерации события, а остаётся активным и может генерировать несколько событий.
  • Из realtime-ветки ядра перенесён код, обеспечивающий обработку программно генерируемых прерываний в потоках ядра, что позволяет вытеснять их более приоритетными процессами.
  • Добавлена внутренняя библиотека netfs, в которую вынесены типовые функции, используемые в сетевых файловых системах.
  • Для архитектуры PowerPC реализована поддержка пространств имён для времени (time namespaces), позволяющих использовать в контейнере своё время.
  • Для архитектуры RISC-V реализована поддержка kexec, crash dump, kprobe и запуска ядра по месту (execute-in-place, выполнение с исходного носителя, без копирования в ОЗУ).
  • В BPF-программах трассировки появилась возможность использования локального для задачи хранилища данных task-local storage, обеспечивающего более высокую производительность за счёт привязки данных к конкретному BPF-обработчику.
  • Реализован новый механизм для прямого вызова функций ядра из BPF-программ, который уже использован в реализации алгоритмов перегрузки TCP. Для обеспечения безопасности вызываемые функции должны быть явно определены в белом списке.
  • В систему трассировки функций ftrace добавлена опция func-no-repeats, позволяющая отразить повторяющиеся последовательные вызовы функции в виде счётчика.
  • В системный вызов userfaultfd(), предназначенный для обработки page faults (обращение к невыделенным страницам памяти) в пространстве пользователя, добавлена возможность управления частичными fault-ами, при которых страница памяти присутствует, но нет записи в таблице страниц памяти.
  • Прекращена поддержка специального файла /dev/kmem, при помощи которого можно получить доступ ко всему адресному пространству ядра. Данный файл признан устаревшим и создающим проблемы с безопасностью.
  • Для чипов Intel реализован новый драйвер для управления охлаждением, позволяющий снижать частоту процессора при опасности перегрева. В отличие от имеющегося механизма активации TCC (Thermal Control Circuit), новый драйвер манипулирует относительными значениями, т.е. может снизить частоту на этапе начала значительного роста температуры, не дожидаясь преодоления порогового критического значения.
  • Реализована возможность одновременного сброса локального и внешнего буферов ассоциативной трансляции (TLB), которая привела к увеличению скорости прохождения теста Sysbench на 1-4%.

Виртуализация и безопасность

  • В состав включён LSM-модуль обеспечения изоляции приложений Landlock, позволяющий ограничить взаимодействие с внешним окружением группы процессов и разработанный с оглядкой на такие механизмы изоляции как XNU Sandbox, FreeBSD Capsicum и OpenBSD Pledge/Unveil. Логика предоставления доступа определяется при помощи BPF-программы, но в отличие от seccomp-bpf, Landlock не фильтрует системные вызовы и их аргументы, а позволяет ограничить использование объектов ядра, таких как иерархии файлов. При помощи Landlock любой процесс, в том числе непривигелированный, может надёжно изолировать себя и не допустить обхода изоляции в случае выявления уязвимостей или вредоносных изменений в приложении. Landlock позволяет процессу создать защищённые изолированные окружения, реализованные в форме дополнительного слоя над существующими системными механизмами управления доступом. Например, программа может запретить доступ к файлам за пределами рабочего каталога.
  • Добавлена возможность рандомизации смещений в стеке ядра при обработке системных вызовов с целью усложнения атак на стек. Суть предложенной защиты в выборе случайного смещения стека при каждом системном вызове, что усложняет определение раскладки стека в памяти даже в случае получения информации об адресах, так как при следующем системном вызове базовый адрес стека изменится. Для включения рандомизации предложены параметр командной строки ядра randomize_kstack_offset=on/off и настройка CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT. Накладные расходы оцениваются приблизительно в 1% потери производительности.
  • Добавлена поддержка сборки ядра с включением в компиляторе Clang механизма защиты CFI (Control Flow Integrity), добавляющего перед каждым косвенным вызовом функции проверки для выявления некоторых форм неопределённого поведения, которые потенциально могут привести к нарушению нормального порядка выполнения (control flow) в результате применения эксплоитов, изменяющих хранимые в памяти указатели на функции. Для включения CFI предложен параметр CONFIG_CFI_CLANG.
  • В предоставляемом ядром сервисе хранения ключей шифрования (key ring) механизм доверительных ключей (Trusted Keys) теперь охватывает не только ключи из TPM-модулей, но и из окружений TEE (Trusted Execution Environment). Для управления источником доверительных ключей предложен загрузочный параметр trusted.source. Кроме того, добавлена возможность обработки доверительных ключей в формате ASN.1. Добавлен параметр для упреждающей загрузки списка отозванных сертификатов во время загрузки ядра. Решена проблема CVE-2020-26541 с игнорированием в чёрном списке UEFI Secure Boot сертификатов, поставляемых в формате EFI_CERT_X509_GUID, что позволяло загрузить систему с отозванным сертификатом.
  • В криптоподсистему ядра добавлена поддержка проверки цифровых подписей ECDSA на базе эллиптических кривых. Реализована возможность верификации политик SELinux при помощи подсистемы IMA (Integrity Measurement Architecture), обеспечивающей поддержание базы хэшей для проверки целостности данных.

Сетевая подсистема

  • Удалена поддержка технологии WiMAX, которая уже не используется в публичных сетях, а в ядре единственным драйвером с которым можно использовать WiMAX остаётся устаревший драйвер Intel 2400m. В сетевом конфигураторе NetworkManager поддержка WiMAX была прекращена в 2015 году. В настоящее время WiMax практически полностью вытеснена такими технологиями, как LTE, HSPA+ и Wi-Fi 802.11n.
  • Добавлен драйвер для сетевого адаптера MANA (Microsoft Azure Network Adapter).
  • В драйвер ath11k добавлена поддержка беспроводных модулей Qualcomm QCN9074 с поддержкой 802.11ax.
  • В драйвере iwlwifi реализована возможность пассивного сканирования каналов в диапазоне 6GHz.
  • Проведена оптимизация подсистемы XDP (eXpress Data Path), позволяющей манипулировать сетевыми пакетами на стадии до их обработки сетевым стеком ядра Linux. Проведённые тесты демонстрируют увеличение производительности XDP на 4-8%. Для устройств virtio прирост производительности программной обработки AF_XDP может достигать 33%.
  • В ICMP реализована поддержка расширенных PROBE-сообщений, определённых в RFC 8335.
  • Продолжена интеграция в ядро MPTCP (MultiPath TCP), расширения протокола TCP для организации работы TCP-соединения с доставкой пакетов одновременно по нескольким маршрутам через разные сетевые интерфейсы, привязанные к разным IP-адресам. В новом выпуске добавлена поддержка sockopt для задания типовых опций TCP. Реализована возможность сброса отдельных подпотоков (subflow).
  • В netfilter добавлена поддержка управления ресурсами при помощи унифицированной иерархии cgroups v2.
  • В ethtool реализован интерфейс для чтения статистики IEEE MIB с поддержкой mlx5 и bnxt. Сетевым драйверам разрешено извлечение произвольных данных из SFP EEPROM, манипулируя не связкой смещение+размер, а страницами памяти.

Оборудование

  • Реализована начальная поддержка ARM-чипа Apple M1, охватывающая контроллер прерываний, таймер, UART, SMP, функции для организации ввода/вывода и MMIO. Обратный инжиниринг GPU пока не завершён, для организации вывода предоставляется поддержка фреймбуфера и консоли через последовательный порт.
  • Продолжена чистка ядра от старых драйверов, удалены драйверы gasket (Google ASIC), sysace, umem и несколько старых драйверов для последовательных портов.
  • После 13 лет нахождения в ветке staging стабилизирован и перенесён в основной состав драйвер comedi для поддержки устройств сбора данных.
  • Добавлен драйвер GUD (Generic USB Display) с реализацией базового драйвера для экранов и TV-адаптеров, подключаемых через интерфейс USB. Драйвер предоставляет DRM-свойства (Direct Rendering Manager) для поворота изображения, управления яркостью, доступа к EDID, настройки видеорежимов и подключения TV, которые могут использоваться в качестве основы для создания драйверов для конкретных устройств.
  • Добавлена поддержка процессора Loongson-2K1000, включающего два ядра MIPS64r2.
  • Добавлен звуковой драйвер virtio с реализацией виртуального звукового устройства, которое можно использовать в гостевых системах для вывода и записи звука без проброса доступа к звуковой карте и без эмуляции.
  • В драйвере amdgpu добавлена начальная поддержка GPU Aldebaran (gfx90a). Включена начальная поддержка технологии адаптивной синхронизации FreeSync для HDMI (ранее была доступна для DisplayPort), которая позволяет корректировать частоту обновления информации на экране. Включена поддержка ASSR (Alternate Scrambler Seed Reset). Добавлен ioctl для запроса возможностей, связанных с кодированием и декодированием видео. Добавлен режим CONFIG_DRM_AMD_SECURE_DISPLAY для обнаружения изменений в дисплеях, отображающих критически важную информацию. Добавлена поддержка механизма энергосбережения ASPM.
  • В драйвере i915 для видеокарт Intel включена поддержка чипов Intel Alderlake-S. Добавлена поддержка eDP MSO (Embedded DisplayPort Multi-SST Operation).
  • Добавлена поддержка игрового контроллера Luna (Amazon), а также сенсорных экранов Hycon HY46XX, ILITEK Lego Series и MStar MSG2638.

Перевод изменений взят с сайта Opennet, ссылка на новость: https://www.opennet.ru/opennews/art.shtml?num=55397

>>> Подробности

★★★★

Проверено: Shaman007 ()
Последнее исправление: claire (всего исправлений: 6)
Ответ на: комментарий от X512

А как тебе такое - не хватило памяти, чтобы запустить системный монитор 😂 (или аналоги, чтобы узнать кого прибить и прибить).

Вообще то, что ты пишешь про С++ не имеет ничего общего с организацией виртуальной памяти в os.

В линуксе можно банально запросить у системы 40 гигов памяти (через mmap) и если в них не писАть, нечего страшного не произойдет.

Если в хайку это сделано по-другому, окей. Но у нее другие задачи. Что-то будет делать гораздо менее удобно (например, гонять ту же jvm).

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

Действия приложения?

Показать ошибку, не сохранить и продолжить работу. Пользователь закроет лишние программы, вкладки в браузере и вызовет сохранение ещё раз.

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

А как тебе такое - не хватило памяти, чтобы запустить системный монитор

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

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

А как тебе такое - не хватило памяти, чтобы запустить системный монитор 😂 (или аналоги, чтобы узнать кого прибить и прибить).

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

X512 ★★★★★
()

А ещё, вроде, должна более хорошая поддержка линейки аудиоинтерфейсов Focusrite Scarlett подъехать. По крайней мере, первые патчи уже уехали в апстрим.

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

Тут кстати файл подкачки и поможет. Если Гном просто выделил себе про запас.

Почитай, как устроена работа с памятью в Линуксе.

Если кто-то «просто выделил себе про запас», вообще ничего не произойдёт кроме того, что ядро отметит, что теперь vmsize у процесса вырос.

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

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

Ну или если делать mlock или сразу маппить залочено. Но так мало кто делает ибо очень накладно по ресурсам.

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

Ок. Когда получишь null где-то в дебрях своей логики, как будешь распутывать этот клубок?

Да никак не будешь. Это на словах все готовы обрабатывать.
А на деле начнёшь с самого старта выделять себе куски сала побольше, «чтобы потом хватило».
На жалобы пользователей будешь огрызаться «увеличьте своп».

А когда твой калькулятор дорастёт до уровня фотошопа, прикрутишь себе свою собственную абстракцию со свопом, блекджеком и шлюхами.

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

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

При попытке показать ошибку приложение получило out of memory exception.

Не получит. Окно создать заранее и спрятать. Можно ещё для окна зарезервировать память, например просто выделить блок памяти «якорь», и освобождать его в ситуации нехватки памяти. Когда ситуация нехватки закончилась, вернуть якорь обратно.

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

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

Да никак не будешь. Это на словах все готовы обрабатывать. А на деле начнёшь с самого старта выделять себе куски сала побольше, «чтобы потом хватило». На жалобы пользователей будешь огрызаться «увеличьте своп».

Если я не пророк, то как минимум капитан.

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

Не получит. Окно создать заранее и спрятать.

Очень эффективное использование системных ресурсов — создавать и держать в памяти окна для каждой программы, которые не понадобятся в 99.999% случаев.

Может сделать одно такое универсальное окно для всех, чтобы не плодить сущности?

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

Раз ты любишь С++, послушай Саттера, где он рассуждает, что надо убрать std::bad_alloc и заменить его на std::terminate.

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

Ещё раз - памяти программам всегда хвататет (кроме когда явно запрашиваешь большие куски). Если нет, то лучше упасть сразу.

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

Может сделать одно такое универсальное окно для всех, чтобы не плодить сущности?

Тоже вариант: сервис нотификации для сообщений об ошибках, устойчивый к нехватке памяти.

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

Ага, только чтобы отправить ему сообщение, нужно выделить память. Да и потом, дальше-то как приложению работать?

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

Тоже вариант: сервис нотификации для сообщений об ошибках, устойчивый к нехватке памяти.

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

Потребовалось всего два шага.

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

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

Нет. IPC может работать без дополнительного выделения памяти при отправке сообщения.

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

Сервис нотификации – это не арбитраж. Он просто показывает окно с сообщением, присланным по IPC. Такие сервисы в Линуксе уже давно были, но сомневаюсь в их устойчивости к нехватке памяти.

К тому же в этом нет особой необходимости. Окна много памяти не занимают, особенно в Haiku где нет композитора и двух растровых буферов на каждое окно.

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

А много не надо. Достаточно, чтобы одного байта не хватило. При твоём подходе без оверкоммита. И это притом, что все приложения должны себе сколько-то резервировать «прозапас», чтобы обработать отказ в выделении памяти.

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

памяти программам всегда хвататет (кроме когда явно запрашиваешь большие куски). Если нет, то лучше упасть сразу.

А еще такая мысль. Учитывая, сколько новых веток кода для обработки всех нехваток памяти потребуется, и насколько вообще все будут забивать на их тестирование, то это просто океан потенциальных дыр, гонок, искусной подмены данных через манипуляцию точным размером доступной памяти… Ух!

Этакий Meltdown на программном уровне.

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

Раз ты любишь С++, послушай Саттера, где он рассуждает, что надо убрать std::bad_alloc и заменить его на std::terminate.

Я люблю далеко не весь C++, а довольно узкое его подмножество. Большая часть стандартной библиотеки C++ – это мусор.

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

А еще такая мысль. Учитывая, сколько новых веток кода для обработки всех нехваток памяти потребуется, и насколько вообще все будут забивать на их тестирование, то это просто океан потенциальных дыр, гонок, искусной подмены данных через манипуляцию точным размером доступной памяти… Ух!

Опять проявление убогого императивного мышления с закатом солнца вручную.

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

Ну а как ты это обрабатываешь? Часто пишешь catch(std::bad_alloc) ? И что делаешь в этом случае? Как тестируешь, что хэндлер не аллоцирует память? Или у тебя свой хэндлер на этот случай?

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

Большая часть стандартной библиотеки C++ – это мусор.

В языках тоже эксперт…

Как тестируешь ветки исполнения для исключений, расскажи. Есть какое покрытие тестами?

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

Как тестируешь ветки исполнения для исключений, расскажи.

Делаю чтобы кидалось исключение временной правкой кода и смотрю что будет.

Есть какое покрытие тестами?

В большинстве проектов тестирование ручное. Каждый написанный участок кода должен быть запущен хотя бы один раз. Если что-то поменялось, ещё раз запустить. Автоматическое тестирование применяется для особых случаев. Также часто используются Assert(bool condition) в том числе в релизных сборках и с ручной проверкой что оно реально срабатывает.

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

В нескольких потоках запустить цикл никто не мешает.

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

Вот так космические ракеты в океан и запускают 🙁

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

GUI-приложение хотело сохранить данные в файл, но на этапе подготовки к сериализации получило out of memory exception.

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

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

Если в хайку это сделано по-другому, окей. Но у нее другие задачи. Что-то будет делать гораздо менее удобно (например, гонять ту же jvm).

JVM и оверкоммит вообще не совместимы. Там дворник по памяти постоянно вперёд-назад бегает.

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

зачем нужен Linux на компьютерах Apple?

Странный вопрос.

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

Или для такого кейса: а почему бы и нет? Дуалбут, так же, как и у многих с Windows. Что-то тебе приятнее на macOS делать, что-то - на Linux.

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

Чтобы получить свободную операционную систему на имеющемся железе. Которая не будет сливать всё и вся корпорации

Это для параноиков и борцунов с капитализмом. А для нормальных людей - потому что некая ОC, отличающаяся от macOS, лучше соответствует их пользовательским задачам, связанным с работой и развлечениями.

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

Экспертиза прям струится…

Слово «экспертиза» в русском языке так не применяется. Экспертиза – это действие.

X512 ★★★★★
()

поддержка чипов М1 (пока на начальной стадии);
поддержка новых GPU от Intel и AMD...

«Эльбрус» отсутствует.

Mischutka ★★★★★
()

принято патчей – 17189 (2150 разработчиков); изменено файлов – 12996 ; добавлено строк кода – 794705; удалено строк кода – 399590; общий размер патча – 60МБ.

С каждой версией ядра много кода удаляется и добавляется.
Есть ли гарантия, что все эти добавления протестированы?
Да и ядро то не мусорная свалка в которую пихают всякую всячину.
ИМХО ядро должно предоставлять все, без чего ОС трудно назвать ОС.
А все остальные дополнения должны использовать API ядра.
Но зачем они нужны в ядре?

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

Бред

Бред это сносить с мака родную ОС, идеально заточенную под его железо, и ставить красноглазую ОС, с которой половина железа работать не будет. Таких людей лечить надо.

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

Это не отменяет, что выше написанное бред.

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

это дефолтное состояние Lбруса

anonymous
()

В файловую систему EROFS (Enhanced Read-Only File System

никак не могу найти,
оно с дедупликацией?

darkenshvein ★★★★★
()

виртуальное звуковое устройство на базе virtio; его пока нету в qemu?

ne-vlezay ★★★★★
()
Ответ на: комментарий от fornlr

не так давно
4 года назад

Неплохо так на ноль поделил.

И да, какие флешки в 2021 году? Сейчас же время облаков (максимум — переносные SSD, которые нужны лишь единицам).

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

И что ты этим хотел сказать?

Что я не нормальный человек, потому что почему-то продолжаю пользоваться macOS, хотя она на самом деле не соответствует моим пользовательским задачам, связанным с работой и развлечениями?

Или что я не нормальный человек, потому что на самом деле macOS вполне соответствует моим пользовательским задачам, связанным с работой и развлечениями, но я не хочу почему-то ей пользоваться?

Кстати, я вообще не маковод ни разу, хехе.

IRASoldier ★★
()

Покупать комп с М1, чтобы потом ставить на нём Виндовс 11 и Линукс? Кто-то знает толк в извращениях.

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

кстати ещё раз показывает перспективы этого М1, если сходу использование макоси вообще не рассматривается…

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

Если система на HDD, а своп на zram, то высокий своппинес даст лучшую отзывчивость. 200 будет лучше, чем 100.

For in-memory swap, like zram or zswap, as well as hybrid setups that have swap on faster devices than the filesystem, values beyond 100 can be considered. For example, if the random IO against the swap device is on average 2x faster than IO from the filesystem, swappiness should be 133 (x + 2x = 200, 2x = 133.33).

https://github.com/torvalds/linux/blob/master/Documentation/admin-guide/sysctl/vm.rst#swappiness

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.