После двух месяцев разработки Линус Торвальдс анонсировал (https://lkml.org/lkml/2015/11/1/202) релиз ядра Linux 4.3 (http://kernel.org). Среди наиболее заметных изменений: удаление обособленного драйвера ФС ext3, отключение поддержки режима VM86, средства для наследования capabilities, включение по умолчанию сборки с IPv6, реализация виртуальных таблиц маршрутизации, сетевой планировщик "overflow", возможность обработки page fault в пространстве пользователя, дополнительная защита от fork-бомб, фреймворки для разработки драйверов NVMEM и MOST, зависимость от openssl-devel при сборке с поддержкой верификации модулей по цифровым подписям.
В новую версию принято около 11 тысяч исправлений от более чем 1500 разработчиков, размер патча - 42 Мб (изменения затронули 10388 файлов, добавлено 643628 строк кода,
удалено -333888 строк). Около 48% всех представленных в 4.3
изменений связаны с драйверами устройств, примерно 18% изменений имеют
отношение к обновлению кода специфичного для аппаратных архитектур, 11%
связано с сетевым стеком, 3% - файловыми системами и 4% c внутренними
подсистемами ядра.Из наиболее интересных новшеств (http://kernelnewbies.org/Linux_4.3) можно отметить:
-
Дисковая подсистема, ввод/вывод и файловые системы- Из состава ядра исключён драйвер ext3, так как он является дублирующим - функции работы с разделами ext3 имеются в драйвере ext4, который полностью обратно совместим с прошлым поколением ФС и может использоваться в качестве прозрачной замены драйвера ext3;
- Параметр discard_max_bytes теперь доступен на запись, что позволяет ограничивать максимальный размер операций discard (https://ru.wikipedia.org/wiki/TRIM) для блочного устройства. Опция даёт возможность увеличить отзывчивость в условиях обилия крупных discard-операций за счёт их разбиения на более мелкие;
- Для файловой системы F2FS реализован ioctl F2FS_GARBAGE_COLLECT для внепланового вызова операции сборки мусора из пространства пользователя;- Большая порция незначительных исправлений для файловых систем Btrfs (http://lkml.iu.edu/hypermail/linux/kernel/1509.0/02784.html), ext4 (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.g... и XFS (http://lkml.iu.edu/hypermail/linux/kernel/1509.0/03565.html);
Из улучшений Btrfs ожно выделить реализацию флага BTRFS_RBIO_REBUILD_MISSING для RAID 5/6 и поддержку контроллеров blkio. В ext4 и xfs отмечены только исправления.
-
Память и системные сервисы- Осуществлено (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.g... блокирование поддержки устаревшего 16-разрядного виртуального режима адресации VM86 (https://ru.wikipedia.org/wiki/%D0%A0%D0%... в условиях, когда значение vm.mmap_min_addr не равно нулю. Разработчики столкнулись с дилеммой: с одной стороны режим VM86 может быть использован для совершения атак и его оставление негативно повлияет на безопасность, но с другой стороны VM86 востребован для работы DOS-эмуляторов, т.е. подпадает под один из главных принципов разработки ядра - сохранение неизменности программных интерфейсов для приложений пространства пользователя. В итоге, было достигнуто компромиссное решение: блокировать работу VM86 только при установке ненулевых значений нижнего лимита маппинга памяти (vm.mmap_min_addr), при которых DOS-эмуляторы заведомо неработоспособны. Так как vm.mmap_min_addr по умолчанию установлен 4096, то для большинства конфигураций VM86 будет отключен. При необходимости запуска DOS-эмулятора, пользователи должны установить (https://www.opennet.me/tips/info/1655.shtml) vm.mmap_min_addr в ноль и тогда VM86 будет автоматически активирован.
- В состав ядра принят API userfaultfd (https://www.kernel.org/doc/Documentation/vm/userfaultfd.txt) для реализации обработчиков обращений к невыделенным страницам памяти (page faults) в пространстве пользователя. Обработка page faults в пространстве пользователя необходима для оптимизации выполнения live-миграции гостевых окружений KVM без остановки работы гостевой системы. Для ускорения миграции гостевое окружение может быть переключено на новый хост c оставлением рабочей памяти на старом хосте. При обращении к ещё не перенесённой памяти в новом окружении будет сгенерирован page fault, на основании которого специальный обработчик в пространстве пользователя загрузит отсутствующий блок памяти по сети и разместит в адресном пространстве гостевой системы. Подобный подход позволит обойтись без реализации протокола live-миграции на стороне ядра.
- Возможность прикрепления eBPF-обработчиков к контрольным проверкам uprobes (userspace probes), используемым для анализа поведения выполняемых в пространстве пользователя приложений. Указанная возможность позволяет применять BPF для трассировки кода в пространстве пользователя.
- В состав набора исходных текстов ядра включена библиотека libbpf, предоставляющая средства для работы со скриптами BPF. В настоящее время библиотека уже задействована в утилите perf;- В cgroups добавлен (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.g... механизм "PIDs controller (https://www.kernel.org/doc/Documentation/cgroups/pids.txt)&q... для противодействия наводнению системы процессами (защита от fork-бомб). PIDs controller даёт возможность задать лимит на максимальное число процессов в группе, при превышении которого блокируется создание новых задач через вызовы fork() и clone();
- Для архитектуры MIPS реализована поддержка системы контрольных проверок uprobes (userspace probes), используемой для анализа поведения выполняемых в пространстве пользователя приложений;
- Реализованы средства (http://lwn.net/Articles/642202/) для отслеживания редко используемых (idle) страниц памяти, что может применяться для оптимизации распределения памяти между контейнерами и виртуальными машинами;
- Добавлен (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.g... новый системный вызов membarrier() для установки барьеров на память для всех работающих в системе потоков;-
Виртуализация и безопасность
- Возможность (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.g... наследования capabilities дочерними процессами, запускаемыми через execve(). Основная идея в предоставлении привилегированным процессам, работающим не под пользователем root, возможности запускать другие программы, передавая им ограниченный набор расширенных прав. Для включения наследования применяется маска PR_CAP_AMBIENT, указываемая для подлежащих наследованию capabilities;- В ptrace() добавлена новая операция PTRACE_O_SUSPEND_SECCOMP, позволяющая заморозить выполнение фильтров seccomp, что может применяться для заморозки процессов, находящихся в режиме seccomp. Операция доступна только для процессов с привилегиями CAP_SYS_ADMIN в первичном пространстве идентификаторов процессов;
- В подсистему Smack добавлена возможность привязки меток к адресам IPv6;
- В подсистему SELinux добавлена поддержка проверки вызовов ioctl() в разрезе отдельных команд;
- Правила аудита теперь могут привязываться к процессам на основе привязки к запущенному исполняемому файлу;
- Реализована поддержка режима "privileged access never", доступного в новых процессорах ARM/ARM64 и позволяющего ограничить доступ кода, работающего на уровне ядра, к адресам в пространстве пользователя;
- В proc добавлен новый файл /proc/kpagecgroup, который содержит информацию о привязке cgroups к страницам физической памяти;- Верификация модулей по цифровым подписям переведена на формат PKCS#7, что требует наличия openssl-devel при сборке ядра с поддержкой цифровых ...
URL: https://lkml.org/lkml/2015/11/1/202
Новость: http://www.opennet.me/opennews/art.shtml?num=43238
VM86 же ещё лет десять назад удалить собирались.
Ядро состоит из легаси кода чуть более чем полностью
а "легаси" вы для красного словца вставили?
Это ж детишке, у них всё, что старее недели - древний отстой мамонта.
> ...чуть более чем полностью"Не только лишь всё" - другими словами. :)
В новости указана причина, по которой его оставляют:VM86 востребован для работы DOS-эмуляторов, т.е. подпадает под один из главных принципов разработки ядра - сохранение неизменности программных интерфейсов для приложений пространства пользователя.
Ждём gentoo-sources-4.3.0. Улучшения в Btrfs это всегда повод обновить ядро.
Какая взаимосвязь с реальностью?
Какая там у тебя реальность, я без понятия. А так - если в новой версии есть какие-то улучшения, то логично на неё обновиться.
да да.. всегда есть улучшения :) только это поможет тебе или нет - вопрос
А вы все улучшения из ядра пользуете я полагаю ?
А к этому есть какие-то препятствия?
Вообще то да
Какие?
Вообще-то "вообще то" пишется как "вообще-то".
При чем тут "все"? Вопрос про улучшения btrfs
дык уже. и раньше новости.
# eix sys-kernel/gentoo-sources
[U] sys-kernel/gentoo-sources
Available versions:
(3.4.110) (~)3.4.110^bs
…
(4.2.5) (~)4.2.5^bs
(4.3.0) (~)4.3.0^bs
{build deblob experimental kdbus symlink}
Installed versions: 4.2.4(4.2.4)^bs(10:48:47 24.10.2015)(-build -experimental -kdbus -symlink) 4.2.5(4.2.5)^bs(02:03:26 28.10.2015)(-build -experimental -kdbus -symlink)
Homepage: https://dev.gentoo.org/~mpagano/genpatches
Description: Full sources including the Gentoo patchset for the 4.3 kernel tree# ls -l /usr/portage/sys-kernel/gentoo-sources/gentoo-sources-4.3.0.ebuild
-rw-r--r-- 1 root root 793 ноя 2 05:01 /usr/portage/sys-kernel/gentoo-sources/gentoo-sources-4.3.0.ebuild
Значит, это zugaina запаздывает)
> Значит, это zugaina запаздывает)А eix зачем? Если регулярно делать eix-sync (у меня он делается автоматически), то на zugaina вообще нет надобности заходить – есть eix -R. Если не нужно смотреть в оверлеи: раньше юзал znurt.org как аналог packages.g.o с хорошим интерфейсом, но теперь, наконец, обновили сам packages.gentoo.org – там теперь даже история изменений ебилдов прямо на странице есть!
> hardened-sources
> зависимость от openssl-devel при сборке с поддержкой верификации модулейЭта поддержка зачем-то вылезла при сборке v4.3-rc6, не будучи запрошенной.
Стандартные в таких случаях вопросы: насколько больше "железа" стало поддерживаться в этой ветке ядра? (А сколько неподдерживаемых устройств в линуксе есть на данный момент?) Какой будет срок жизни этой ветки ядра? В состав каких дистрибутивов оно может потом войти? (А в каких ранее установленных ОС может быть смысл ихнее ядро поменять на это?)
И по состоянию насегодня- а какие ветки ядра наиболее подходят для стараго "железа"?
Вы же уже знаете стандартные ответы. И если бы действительно было интересно -- давно бы уже научились давать их себе сами.Для старого железа наиболее подходит 2.6.32, как мне кажется (оно в некотором виде до сих пор поддерживается редхатом и применяется в ряде дистрибутивов).
Страшная картина: Миша наехал на Мишу.
Я что-то не понял с capability. Их же и раньше можно было наследовать. Необходимо было только два флага включить. Уже давно можно было систему без рута сконфигурировать, на одних капах.
по ссылке всё четко расписано:
> Each task has four capability masks: effective (pE), permitted (pP), inheritable (pI), and a bounding set (X)
> If you aren't root and you execute an ordinary binary, fI is zero, so your capabilities have no effect whatsoever on pP'. This means that you can't usefully execute a helper process or a shell command with elevated capabilities if you aren't root.
> This patch adds a fifth capability mask called the ambient mask (pA). pA does what most people expect pI to do.
> ……
что-то эта ботва с VM86 попахивает каким то поттером
> что-то эта ботва с VM86 попахивает каким то поттеромДа нет, всё достаточно разумно. Перечитайте все связанные с этими буковками кусочки новости и при желании -- документацию dosemu по ним же.
Qualcomm Atheros QCA6174 заработал без компилирования backports. Ура
> Правила аудита теперь могут привязываться к процессам на основе привязки к запущенному исполняемому файлуВот прямо недавно настраивал и очень этого не хватало. Прям хоть иди и обновляй продакшн на 4.3
Это LTS ядро или нет? Может кто-то в курсе?
LTS назначается конечным дистрибьютором.
Он имеет в виду stable-ветку ядра. Оно назначается лично Грегом К.-Х.
Ответ на главной странице kernel.org!
> Это LTS ядро или нет? Может кто-то в курсе?
А Торвальдс ещё успевает анализировать, что есть в ядре, что можно выпилить и, что нужно добавить? Мне кажется, что ядро сейчас как неуправляемый снежный ком.
> 4% c внутренними подсистемами ядра400 строк от 10 000, за 2 меясяца, думаю, осиливает
Ему надо ещё успевать раздавать факи в LKML...
Собственно, в этом и заключается его ревью новых пулл реквестов)
На моей основной системе - стареньком Duron - поддержки ext4 нет, поэтому на / - ext3. Как меня коснётся изменение в новом ядре? Смогу ли я открыть свой ext3 с какого-нибудь Recovery LiveCD? А потом, загрузив EL5, всё ли у меня будет читаться и писаться после работы с разделом ext4-драйвером?
>> На моей основной системе - стареньком Duron - поддержки ext4 нетНе вижу взаимосвязи.
Ну, в общем-то, в новости прямым текстом сказано, что драйвер ext4 обратно совместим с ФС ext3. При работе с ФС ext3 будет попросту задействован драйвер ext4, так что ничего страшного случиться не должно.
И что же тогда, по-твоему, имеет смысл гонять на реальном железе?
Да, "ниже" - это очень правильное место для такого ответа!
> И что же тогда, по-твоему, имеет смысл гонять на реальном железе?Вот этого "петра". Тряпками по выбору. Эт если туда отсюда добежит...
PS: пп. 4, 6, 7 http://wiki.opennet.ru/ForumHelp
Для "этого" - чего? Для удаления с носителя? Или для звания "худшей ОС века"? Так, да, окна и маки обе подходят идеально для этого.
Убогая поддержка конкретного железа сейчас во всех системах. При чём со старой периферией в линуксе как-раз таки ещё более-менее работает. А по поводу всего остального - это скорее про оффтопик. На дебиане с таким не встречался.
> Признайся, зачем нужен линукс на реальном железеЕсть два стула: Windows и OS X. Первый - школьный стул из голой сосны, чуть шевельнулся не так, и полная задница заноз. Второй - лакированное кресло из красного дерева, которое сразу фиксирует тебя в одной стандартной позе, и тут главное - убедить себя, что это и была твоя любимая поза, ага.
А есть Linux - набор инструментов и материала. Собрал роскошное анатомическое кресло под рельеф своего тела, обвязал его автоматизацией на все случаи жизни, и годами пользуешься. Правда, этот Linux ко всяким убунтам не имеет отношения.
>> Ну да, в игры не погоняешь особоА уроки уже сделал?
P.S. а если серьезно, то для игр есть PS4.
для игр есть детская комната
> А уроки уже сделал?Каникулы же!
> ... Не задумываясь о убогой поддержке конкретного железа, не матерясь на кривые драйвера к якобы "поддерживаемому"Слюхай, купи Ладу Приору, иди на форум Range Rover, и там ной про то, что дороги говно.
> На моей основной системе - стареньком Duron - поддержки ext4 нет, поэтому
> на / - ext3. Как меня коснётся изменение в новом
> ядре?Всё будет нормик. Драйвер не станет тихо апгрейдить ФС на следующеую версию :)
Круть, спасибо.
> наследования capabilities дочерними процессами, запускаемыми через execve().Ура, свежая дырень!!!
Вообще-то наоборот. Наконец-то я смогу избавиться от некоторых костылей с CAP_SETUID.
Ну допустим за свой бинарник ты отвечаешь, что он няшный и дружелюбный.
А кто ответит за тот, кого ты exec_нул? А если подсунули фейковый бинарь или свой PATH;
1. В любом случае будет лучше, когда у него будет просто CAP_DAC_READ_SEARCH, а не uid=0.
2. Мой бинарник кроме capabilities использует seccomp, chroot/pivot_root/umount, unshare и cgroups. Даже если бинарник окажется злым, то сделать намеренно что-то плохое будет всё равно сложновато.
3. Тот, кто настраивал конфиг к моему бинарнику и способ его запуска, пусть и отвечает за няшность этого exec-нутого бинарника.
дрова для риалтековских вифи уже добавили? А то компилять с гитхаба - ниторт
> дрова для риалтековских вифи уже добавили? А то компилять с гитхаба - нитортЗнаешь как выглядел ОпенНет 10 лет назад?
"В реалтекоском драйвере, в функции get_rx_frame(), есть переменная int count.
в предыдущей версии на 64-рязрядных системах там возникало переполнение,
я предложил патч меняющий на тип size_t. Не вкурсе, патч приняли или иное решение нашли?"А сейчас форум - сборище гoвнa бесполезного.
Короче, тошнит от вас, вали сюда https://www.microsoft.com/ru-ru/software-download/windows10ISO
И что такого нового мог увидеть "линуксятник" в АппСторе, чего не видел в Синаптике?
Ах да, цены - по баксу даже за откровенное дерьмо, две-три цены по сравнению с виндами - для действительно нужных программ.
В принципе, скупая слеза тоже могла быть, но я скорее подозреваю фейспалм...P.S. Вообще наш коверный нынче что-то истерит. Набрасывает неразбавленного, его трут безжалостно, а он все набрасывает...
Какие?! Их там в staging с десяток, наверное.
О, vrf-lite!
А в предыдущих релизах mpls какой-никакой впилили.
Правильной дорогой движемся, товарищи!
> О, vrf-lite!
> А в предыдущих релизах mpls какой-никакой впилили.
> Правильной дорогой движемся, товарищи!Не очень много подробностей в vrf-lite пока что, к сожалению.
Ранее было два механизма для реализации vrf-lite:
множественные таблицы маршрутизации и правила для lookup'а в нужную таблицу (лимит - 256 таблиц);
сетевые пространства имен (конкретного лимита не нашел);Эта реализация обещает быть легче обоих вариантов, что радует.
Кто-нибудь тестировал? Как под нагрузкой?
По ссылкам сходил, подробностей там негусто.
Посмотрим, чем будет это. Пока что самый информативный источник - собственно коммит. И он пока довольно печально выглядит (особенно в todo)http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.g...
Это хорошо же!
Молодцы, чо!
errors lines of code errors/KLOC
kernel/acct.c 1 603 1.6
kernel/audit_tree.c 1 989 1.0
kernel/cpuset.c 4 2701 1.4
kernel/kthread.c 1 697 1.4
kernel/module.c 6 4090 1.4
kernel/padata.c 2 1106 1.8
kernel/profile.c 1 614 1.6
kernel/reboot.c 1 558 1.7
kernel/smp.c 1 742 1.3
kernel/stop_machine.c 1 617 1.6
kernel/pid_namespace.c 1 410 2.4
kernel/nsproxy.c 1 260 3.8
kernel/params.c 4 1014 3.9
kernel/pid.c 2 610 3.2
kernel/audit.c 9 2037 4.4
kernel/jump_label.c 2 463 4.3
kernel/auditsc.c 14 2424 5.7
kernel/cpu.c 5 837 5.9
kernel/resource.c 9 1535 5.8
kernel/dma.c 1 161 6.2
kernel/module_signing.c 2 251 7.9
kernel/cred.c 7 811 8.6
kernel/ksysfs.c 2 244 8.1
kernel/context_tracking.c 2 219 9.1
kernel/auditfilter.c 15 1417 10.5
kernel/configs.c 1 100 10.0
kernel/relay.c 14 1358 10.3
kernel/compat.c 13 1177 11.0
kernel/signal.c 53 3673 14.4
kernel/debug/kdb/kdb_support.c 1 928 18.1
kernel/events/core.c 1 9139 18.1
kernel/irq/handle.c 1 198 18.1
kernel/irq/irqdesc.c 1 644 18.1
kernel/locking/locktorture.c 1 816 18.1
kernel/locking/percpu-rwsem.c 1 166 18.1
kernel/rcu/rcutorture.c 1 1903 18.1
kernel/sched/deadline.c 1 1882 18.1
kernel/sched/debug.c 1 672 18.1
kernel/time/itimer.c 1 302 18.1
kernel/time/posix-cpu-timers.c 1 1497 18.1
kernel/time/tick-broadcast-hrtimer.c 1 120 18.1
kernel/time/timer.c 1 1696 18.1
kernel/time/timer_stats.c 1 426 18.1
kernel/trace/blktrace.c 1 1818 18.1
kernel/trace/trace_branch.c 1 415 18.1
kernel/trace/trace_clock.c 1 141 18.1
kernel/trace/trace_functions.c 1 690 18.1
kernel/trace/trace_mmiotrace.c 1 365 18.1
kernel/trace/trace_nop.c 1 100 18.1
kernel/trace/trace_printk.c 1 367 18.1
kernel/trace/trace_probe.c 1 724 18.1
kernel/trace/trace_seq.c 1 378 18.1
kernel/trace/trace_syscalls.c 1 751 18.1
kernel/trace/trace_uprobe.c 1 1337 18.1
kernel/bpf/syscall.c 2 660 36.3
kernel/bpf/verifier.c 2 2183 36.3
kernel/debug/kdb/kdb_main.c 2 2955 36.3
kernel/events/uprobes.c 2 1994 36.3
kernel/kmod.c 2 697 36.3
kernel/locking/rtmutex-debug.c 2 185 36.3
kernel/locking/rwsem-xadd.c 2 576 36.3
kernel/locking/spinlock_debug.c 2 303 36.3
kernel/power/main.c 2 647 36.3
kernel/power/process.c 2 238 36.3
kernel/power/suspend_test.c 2 219 36.3
kernel/power/user.c 2 479 36.3
kernel/time/hrtimer.c 2 1804 36.3
kernel/tracepoint.c 2 521 36.3
kernel/trace/trace_events_filter.c 2 2440 36.3
kernel/trace/trace_stack.c 2 485 36.3
kernel/uid16.c 2 218 36.3
kernel/user.c 2 229 36.3
kernel/user_namespace.c 2 1013 36.3
kernel/irq/proc.c 3 517 54.5
kernel/trace/ring_buffer.c 3 4972 54.5
kernel/trace/trace_irqsoff.c 3 765 54.5
kernel/locking/rtmutex.c 4 1678 72.7
kernel/locking/spinlock.c 4 408 72.7
kernel/sched/cpudeadline.c 4 247 72.7
kernel/trace/trace_events.c 4 2944 72.7
kernel/trace/trace_output.c 4 1257 72.7
kernel/sysctl_binary.c 3 1495 88.2
kernel/time/clocksource.c 5 1021 90.9
kernel/time/tick-sched.c 5 1195 90.9
kernel/trace/trace_sched_wakeup.c 5 817 90.9
kernel/bpf/core.c 6 764 109.0
kernel/locking/rtmutex-tester.c 6 421 109.0
kernel/power/snapshot.c 6 2608 109.0
kernel/workqueue.c 6 5296 109.0
kernel/power/hibernate.c 7 1169 127.2
kernel/printk/printk.c 9 3140 163.6
kernel/time/posix-timers.c 9 1132 163.6
kernel/time/time.c 9 762 163.6
kernel/trace/ftrace.c 9 5968 163.6
kernel/trace/trace.c 9 7207 163.6
kernel/trace/trace_export.c 10 196 181.8
kernel/cgroup.c 12 5680 218.1
kernel/locking/lockdep.c 14 4301 254.5
kernel/sched/core.c 18 8476 327.2
kernel/sched/fair.c 24 8511 436.3
kernel/sysctl.c 34 2813 618.1
kernel/power/swap.c 48 1594 872.7
И что это за кол-во ошибок, можете пояснить?
За все время исправленных в этом файле?
overflow (aka ovf) это ессно IPVS scheduler