Π Π΅Π»ΠΈΠ· ядра Linux 5.6

ПослС Π΄Π²ΡƒΡ… мСсяцСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ прСдставил Ρ€Π΅Π»ΠΈΠ· ядра Linux 5.6. Π‘Ρ€Π΅Π΄ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: интСграция VPN-интСрфСйса WireGuard, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° USB4, пространства ΠΈΠΌΡ‘Π½ для Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ TCP ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ BPF, Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° MultiPath TCP, ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΠ΅ ядра ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ 2038 Π³ΠΎΠ΄Π°, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ «bootconfig», Π€Π‘ ZoneFS.

Π’ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ принято 13702 исправлСний ΠΎΡ‚ 1810 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²,
Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°Ρ‚Ρ‡Π° — 40 Мб (измСнСния Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ»ΠΈ 11577 Ρ„Π°ΠΉΠ»ΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 610012 строк ΠΊΠΎΠ΄Π°,
ΡƒΠ΄Π°Π»Π΅Π½ΠΎ 294828 строк). Около 45% всСх прСдставлСнных Π² 5.6
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ связаны с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ устройств, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 15% ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠΌΠ΅ΡŽΡ‚
ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ обновлСнию ΠΊΠΎΠ΄Π°, спСцифичного для Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€, 12%
связано с сСтСвым стСком, 4% — c Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ систСмами ΠΈ 3% c Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ
подсистСмами ядра.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π°:

  • БСтСвая подсистСма
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° рСализация VPN-интСрфСйса WireGuard, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° основС соврСмСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ (ChaCha20, Poly1305, Curve25519, BLAKE2s), прост Π² использовании, Π»ΠΈΡˆΡ‘Π½ услоТнСний, Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π°Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» сСбя Π² рядС ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΉ ΠΈ обСспСчиваСт ΠΎΡ‡Π΅Π½ΡŒ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (Π² 3,9 Ρ€Π°Π· ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°Π΅Ρ‚ OpenVPN ΠΏΠΎ пропускной способности). Π’ WireGuard примСняСтся концСпция ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π°ΠΌ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, которая ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ привязку ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ сСтСвому интСрфСйсу Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ для связывания ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. ОбмСн ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ для установки соСдинСния производится ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с SSH. НСобходимыС для Ρ€Π°Π±ΠΎΡ‚Ρ‹ WireGuard криптографичСскиС ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹ Π±Ρ‹Π»ΠΈ пСрСнСсСны ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Zinc Π² состав ΡˆΡ‚Π°Ρ‚Π½ΠΎΠ³ΠΎ Crypto API ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² состав ядра 5.5.
    • ΠΠ°Ρ‡Π°Π»Π°ΡΡŒ интСграция ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ MPTCP (MultiPath TCP), Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TCP для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ TCP-соСдинСния с доставкой ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ нСскольким ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·Π½Ρ‹Π΅ сСтСвыС интСрфСйсы, привязанныС ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ IP-адрСсам. Для сСтСвых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ соСдинСниС выглядит ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ TCP-соСдинСниС, Π° вся Π»ΠΎΠ³ΠΈΠΊΠ° раздСлСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² выполняСтся силами MPTCP. Multipath TCP ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ пропускной способности, Ρ‚Π°ΠΊ ΠΈ для увСличСния надёТности. НапримСр, MPTCP ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° смартфонС с использованиСм ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π»ΠΈΠ½ΠΊΠΎΠ² WiFi ΠΈ 4G ΠΈΠ»ΠΈ для сокращСния расходов Π·Π° счёт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ сСрвСра с использованиСм Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Π΅ΡˆΡ‘Π²Ρ‹Ρ… Π»ΠΈΠ½ΠΊΠΎΠ² вмСсто ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΡ€ΠΎΠ³ΠΎΠ³ΠΎ.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° дисциплины ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сСтСвых ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ sch_ets (Enhanced Transmission Selection, IEEE 802.1Qaz), ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ распрСдСлСния пропускной способности ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ классами Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. Если Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ класс Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π½ΠΈΠΆΠ΅ прСдоставлСнной пропускной способности, Ρ‚ΠΎ ETS позволяСт Π΄Ρ€ΡƒΠ³ΠΈΠΌ классам Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ (Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ) ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ. Qdisc sch_ets настраиваСтся ΠΊΠ°ΠΊ дисциплина PRIO ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ классы Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° для опрСдСлСния строгих ΠΈ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ пропускной способности. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ETS ΠΊΠ°ΠΊ комбинация дисциплин PRIO ΠΈ DRR — ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Тёстко ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… классов Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ PRIO, Π½ΠΎ Ссли Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π΅Ρ‚, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ DRR.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ BPF_PROG_TYPE_STRUCT_OPS, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ядра Ρ‡Π΅Ρ€Π΅Π· BPF. Π’ настоящСС врСмя ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² контроля ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ TCP Π² Π²ΠΈΠ΄Π΅ BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° DCTCP.
    • Π’ ядро приняты измСнСния, пСрСводящиС инструмСнтарий ethtool с ioctl() Π½Π° использованиС интСрфСйса netlink. Новый интСрфСйс ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ошибок, позволяСт ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ увСдомлСния ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ состояния, ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ядром ΠΈ пространством ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ сокращаСт число синхронизируСмых ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… списков.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° рСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° управлСния сСтСвыми очСрСдями FQ-PIE (Flow Queue PIE), Π½Π°Ρ†Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° сниТСниС Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ влияния ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π° Π³Ρ€Π°Π½ΠΈΡ‡Π½ΠΎΠΌ сСтСвом ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ (bufferbloat). FQ-PIE дСмонстрируСт Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ использовании Π² систСмах с ΠΊΠ°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΌΠΎΠ΄Π΅ΠΌΠ°ΠΌΠΈ.
  • Дисковая подсистСма, Π²Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы
    • Для Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Btrfs Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° асинхронная рСализация ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ DISCARD (ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠ° освобоТдённых Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ физичСски). Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ DISCARD Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ синхронно, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³Π»ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΡΠ΅Π΄Π°Π½ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ·-Π·Π° оТидания Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ накопитСлями. Асинхронная рСализация позволяСт Π½Π΅ ΠΆΠ΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ DISCARD Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π² Ρ„ΠΎΠ½Π΅.
    • Π’ XFS ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° чистка ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ использовались старыС 32-разрядныС счётчики Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Ρ‚ΠΈΠΏ time_t Π·Π°ΠΌΠ΅Π½Ρ‘Π½ Π½Π° time64_t), приводящиС ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ 2038 Π³ΠΎΠ΄Π°. УстранСны ошибки ΠΈ поврСТдСния памяти, Π²ΡΠΏΠ»Ρ‹Π²Π°Π²ΡˆΠΈΠ΅ Π½Π° 32-разрядых ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…. ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΠΎΠ΄ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ.
    • Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму ext4 внСсСны ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, связанныС c ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ inode ΠΏΡ€ΠΈ опСрациях чтСния ΠΈ записи. ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ пСрСзаписи Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прямого Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° (Direct I/O). Для упрощСния диагностики ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ обСспСчСно сохранСниС Π² супСрблокС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ послСднСго ΠΊΠΎΠ΄ΠΎΠ² ошибок.
    • Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС F2FS Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² сТатом Π²ΠΈΠ΄Π΅. Для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° сТатиС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ «chattr +c file» ΠΈΠ»ΠΈ «chattr +c dir; touch dir/file». Для сТатия всСго Ρ€Π°Π·Π΄Π΅Π»Π° Π² ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ mount ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ «-o compress_extension=ext».
    • Π’ состав ядра принята файловая систСма ZoneFS, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰Π°Ρ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π·ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ устройствами хранСния. Под Π·ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ накопитСлями ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ΡΡ устройства Π½Π° Тёстких ΠΌΠ°Π³Π½ΠΈΡ‚Π½Ρ‹Ρ… дисках ΠΈΠ»ΠΈ NVMe SSD, пространство для хранСния Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Π±ΠΈΡ‚ΠΎ Π½Π° Π·ΠΎΠ½Ρ‹, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ»ΠΈ сСкторов, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ допускаСтся лишь ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ всСй Π³Ρ€ΡƒΠΏΠΏΡ‹ Π±Π»ΠΎΠΊΠΎΠ². Π€Π‘ ZoneFS Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Western Digital ΠΈ связываСт ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π·ΠΎΠ½Ρƒ Π² Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² raw-Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π±Π΅Π· манипуляции Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ сСкторов ΠΈ Π±Π»ΠΎΠΊΠΎΠ², Ρ‚.Π΅. позволяСт прилоТСниям ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ API вмСсто прямого обращСния ΠΊ Π±Π»ΠΎΡ‡Π½ΠΎΠΌΡƒ устройству ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ioctl.
    • Π’ NFS ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΏΠΎΠ²Π΅Ρ€Ρ… UDP. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Π² спСцификации NFS 4.2 возмоТности прямого копирования Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСрами. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая опция монтирования «softreval», Π² случаС ΠΎΡ‚ΠΊΠ°Π·Π° сСрвСра Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π°Ρ использованиС ΠΏΡ€ΠΎΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². НапримСр, ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ послС нСдоступности сСрвСра сохраняСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ пСрСмСщСния ΠΏΠΎ путям Π² NFS-Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΈ обращСния ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая осСла Π² кэшС.
    • ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° оптимизация ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° fs-verity, примСняСмого для контроля цСлостности ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ подлинности ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ чтСния, благодаря ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ Ρ…Π΅Ρˆ-Π΄Π΅Ρ€Π΅Π²Π° ΠœΠ΅Ρ€ΠΊΠ»Π°. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π»ΡΡ‚ΡŒ FS_IOC_ENABLE_VERITY Π² условиях отсутствия Π΄Π°Π½Π½Ρ‹Ρ… Π² кэшС (ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΎ ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ страниц с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ).
  • Виртуализация ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ
    • ОбъявлСна ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ модуля SELinux Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π° Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° ΡƒΠΆΠ΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ SELinux Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π°. Для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ SELinux потрСбуСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ «selinux=0» Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ядра.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° пространств ΠΈΠΌΡ‘Π½ для Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (time namespaces), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ состояниС систСмных часов (CLOCK_REALTIME,
      CLOCK_MONOTONIC, CLOCK_BOOTTIME), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ своё врСмя ΠΈ ΠΏΡ€ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ хост ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΠΉ CLOCK_MONOTONIC ΠΈ CLOCK_BOOTTIME (ΡƒΡ‡Π΅ΡΡ‚ΡŒ врСмя послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° нахоТдСния Π² спящСм Ρ€Π΅ΠΆΠΈΠΌΠ΅).

    • Π£Π΄Π°Π»Ρ‘Π½ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡƒΠ» /dev/random. ПовСдСниС /dev/random ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΎ ΠΊ /dev/urandom Π² ΠΏΠ»Π°Π½Π΅ прСдотвращСния блокирования энтропии послС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡƒΠ»Π°.
    • Π’ основной состав ядра Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ гостСвым систСмам, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ VirtualBox, ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, экспортируСмыС хост-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ (VirtualBox Shared Folder).
    • Π’ подсистСму BPF Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ (BPF dispatcher), Π² условиях примСнСния ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Retpoline для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π°Ρ‚Π°ΠΊ класса Spectre V2 ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Π° BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΡ€ΠΈ наступлСнии привязанных ΠΊ Π½ΠΈΠΌ событий (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π°Ρ‘Ρ‚ возмоТнось ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² XDP-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΈ поступлСнии сСтСвого ΠΏΠ°ΠΊΠ΅Ρ‚Π°).
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ встроСнных Π² APU AMD ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ TEE (Trusted Execution Environment).
  • ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΈ систСмныС сСрвисы
    • Π’ BPF Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° вСдётся Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Ρ‹ ΠΏΠΎ добавлСнию ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… BPF. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом станСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° динамичСских Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π² Ρ‚ΠΎΠΌ числС для Π·Π°ΠΌΠ΅Π½Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²ΠΎ врСмя ΠΈΡ… использования. Π’ подсистСмС BPF Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ map (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для сохранСния постоянных Π΄Π°Π½Π½Ρ‹Ρ…), ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ устройство «cpu_cooling» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΎΡ…Π»Π°ΠΆΠ΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π³Ρ€Π΅Ρ‚Ρ‹ΠΉ CPU ΠΏΡƒΡ‚Ρ‘ΠΌ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π΅Π³ΠΎ Π² состояниС простоя (idle) Π½Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ систСмный Π²Ρ‹Π·ΠΎΠ² openat2(), ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π»Π°Π³ΠΎΠ² для ограничСния Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ (Π·Π°ΠΏΡ€Π΅Ρ‚ пСрСсСчСния Ρ‚ΠΎΡ‡Π΅ΠΊ монтирования, символичСских ссылок, magic-ссылок (/proc/PID/fd), ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² «../»).
    • Для Ρ€Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… систСм Π½Π° Π±Π°Π·Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ big.LITTLE, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ‡ΠΈΠΏΠ΅ ΠΌΠΎΡ‰Π½Ρ‹Π΅ ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ энСргоэффСктивныС ядра CPU, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ обСспСчСно выставлСниС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° uclamp_min (появившийся Π² ядрС 5.3 ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ закрСплСния Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ). Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π°Ρ‡Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠΌ Π½Π° ядрС CPU, ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΌ достаточно ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.
    • Π―Π΄Ρ€ΠΎ ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΎ ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ 2038 Π³ΠΎΠ΄Π°. Π—Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ послСдниС ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… для счётчика ΡΠΏΠΎΡ…Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ использовался 32-разрядный (signed int) Ρ‚ΠΈΠΏ time_t, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π° ΠΎΡ‚ 1970 Π³ΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ Π² 2038 Π³ΠΎΠ΄Ρƒ.
    • ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΎ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅ интСрфСйса асинхронного Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° io_uring, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ обСспСчСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ: IORING_OP_FALLOCATE (Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ пустых областСй), IORING_OP_OPENAT,
      IORING_OP_OPENAT2,
      IORING_OP_CLOSE (ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²),
      IORING_OP_FILES_UPDATE (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· списка быстрого доступа),
      IORING_OP_STATX (запрос ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ„Π°ΠΉΠ»Π΅),
      IORING_OP_READ,
      IORING_OP_WRITE (ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½Ρ‹Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈ IORING_OP_READV ΠΈ IORING_OP_WRITEV),
      IORING_OP_FADVISE,
      IORING_OP_MADVISE (асинхронныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² posix_fadvise ΠΈ madvise), IORING_OP_SEND,
      IORING_OP_RECV (ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΈ ΠΏΡ€ΠΈΡ‘ΠΌ сСтСвых Π΄Π°Π½Π½Ρ‹Ρ…),
      IORING_OP_EPOLL_CTL (Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ дСскрипторами epoll).

    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ систСмный Π²Ρ‹Π·ΠΎΠ² pidfd_getfd(), Π΄Π°ΡŽΡ‰ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ процСссу ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ процСсса Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ дСскриптор ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ «bootconfig», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΎΠΏΡ†ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ядра Ρ‡Π΅Ρ€Π΅Π· Ρ„Π°ΠΉΠ» с настройками. Для добавлСния ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΎΠ±Ρ€Π°Π· initramfs ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° bootconfig. Указанная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для настройки kprobes Π²ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.
    • ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ оТидания записи ΠΈ чтСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»Π°Ρ… (pipe). ИзмСнСниС ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡, ΠΊΠ°ΠΊ распараллСлСнная сборка Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². ΠŸΡ€ΠΈ этом оптмизация ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π³ΠΎΠ½ΠΊΠΈ Π² GNU make ΠΈΠ·-Π·Π° ошибки Π² выпускС 4.2.1, которая устранСна Π² вСрсии 4.3.
    • Π’ prctl() Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Π»Π°Π³ PR_SET_IO_FLUSHER, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ процСссов, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΡ…ΡΡ высвобоТдСниСм памяти, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ слСдуСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ограничСния Π² ситуации Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ памяти Π² систСмС.
    • На основС примСняСмой Π² Android систСмы распрСдСлСния памяти ION Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° подсистСма dma-buf heaps, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ DMA-Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² для совмСстного использования областСй памяти Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ, прилоТСниями ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ подсистСмами.
  • АппаратныС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ E0PD, появившСгося Π² ARMv8.5 ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ Π°Ρ‚Π°ΠΊ, связанных со спСкулятивным Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ инструкций Π² CPU. Π—Π°Ρ‰ΠΈΡ‚Π° Π½Π° Π±Π°Π·Π΅ E0PD ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ мСньшим Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ расходам, Ρ‡Π΅ΠΌ Π·Π°Ρ‰ΠΈΡ‚Π° KPTI (Kernel Page Table Isolation).
    • Для систСм Π½Π° Π±Π°Π·Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ARMv8.5 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° инструкции RNG, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ доступ ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌΡƒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ псСвдослучайных чисСл. Π’ ядрС инструкция RNG задСйствована для формирования энтропии ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ прСдоставляСмого ядром Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° псСвдослучайных чисСл.
    • Π£Π΄Π°Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ MPX (Memory Protection Extensions), добавлСнная Π² ядрС 3.19 ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° соблюдСниС Π³Ρ€Π°Π½ΠΈΡ† областСй памяти. Указанная тСхнология Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° распространСния Π² компиляторах ΠΈ Π±Ρ‹Π»Π° ΡƒΠ΄Π°Π»Π΅Π½Π° ΠΈΠ· GCC.
    • Для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ RISC-V Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠ³ΠΎ инструмСнта KASan (Kernel address sanitizer), ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ выявлСниС ошибок ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° спСцификации USB 4.0, которая основана Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ Thunderbolt 3 ΠΈ обСспСчиваСт ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π΄ΠΎ 40 Π“Π±ΠΈΡ‚/с, сохраняя ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с USB 2.0 ΠΈ USB 3.2. По Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Thunderbolt интСрфСйс USB 4.0 позволяСт Ρ‚ΡƒΠ½Π½Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΠΏΠΎΠ²Π΅Ρ€Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ кабСля с Ρ€Π°Π·ΡŠΡ‘ΠΌΠΎΠΌ Type-C, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ PCIe, Display Port ΠΈ USB 3.x, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ сСтСвых Π»ΠΈΠ½ΠΊΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ хостами. РСализация основана Π½Π° ΡƒΠΆΠ΅ входящСм Π² ядро Linux Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ Thunderbolt ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с хостами ΠΈ устройствами, совмСстимыми с USB4. ИзмСнСния Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ устройств Thunderbolt 3 Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° соСдинСний (Connection Manager), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° созданиС Ρ‚ΡƒΠ½Π½Π΅Π»Π΅ΠΉ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… устройств Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·ΡŠΡ‘ΠΌ.
    • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ amdgpu Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ копирования HDCP 2.x (High-bandwidth Digital Content Protection). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ASIC-Ρ‡ΠΈΠΏΠ° AMD Pollock, основанного Π½Π° Raven 2. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сброса GPU для сСмСйств Renoir ΠΈ Navi.
    • Π’ DRM-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ Intel Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° DSI VDSC для Ρ‡ΠΈΠΏΠΎΠ² Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Ice Lake ΠΈ Tiger Lake, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ LMEM mmap (device local memory), ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ парсинг VBT (Video BIOS Table), Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° HDCP 2.2 для Ρ‡ΠΈΠΏΠΎΠ² Coffee Lake.
    • ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° amdkfd (для дискрСтных GPU, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Fiji, Tonga, Polaris) с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ amdgpu.
    • ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ k10temp, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ появилась ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² напряТСния ΠΈ силы Ρ‚ΠΎΠΊΠ° для CPU AMD Zen, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… свСдСний c Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, примСняСмых Π² CPU Zen ΠΈ Zen 2.
    • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ nouveau Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅ΠΆΠΈΠΌΠ° Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ для GPU NVIDIA Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Turing (GeForce RTX 2000), Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ 3D-ускорСния для Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚ (трСбуСтся Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ с Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписью NVIDIA). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° графичСского Π΄Π²ΠΈΠΆΠΊΠ° TU10x. Π Π΅ΡˆΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с HD Audio.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сТатия Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Ρ‡Π΅Ρ€Π΅Π· DisplayPort MST (Multi-Stream Transport).
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ «ath11k» для бСспроводных Ρ‡ΠΈΠΏΠΎΠ² Qualcomm с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ 802.11ax.
      Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ основан Π½Π° стСкС mac80211 ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌΡ‹ Ρ‚ΠΎΡ‡ΠΊΠΈ доступа, Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ станции ΠΈ ΡƒΠ·Π»Π° Mesh-сСти.

    • Π§Π΅Ρ€Π΅Π· sysfs прСдоставлСн доступ ΠΊ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ показаниям Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π½Π° соврСмСнных Тёстких дисках ΠΈ SSD.
    • ВнСсСны сущСствСнныС измСнСния Π² Π·Π²ΡƒΠΊΠΎΠ²ΡƒΡŽ систСму ALSA, Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π½Π° ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ 2038 Π³ΠΎΠ΄Π° (ΡƒΡ…ΠΎΠ΄ ΠΎΡ‚ использования 32-разрядного Ρ‚ΠΈΠΏΠ° time_t Π² интСрфСйсах snd_pcm_mmap_status ΠΈ snd_pcm_mmap_control). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ΄Π΅ΠΊΠΎΠ²
      Qualcomm WCD9340/WCD9341, Realtek RT700, RT711, RT715, RT1308, Ingenic JZ4770.

    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ для LCD-ΠΏΠ°Π½Π΅Π»Π΅ΠΉ Logic PD 28, Jimax8729d MIPI-DSI, igenic JZ4770, Sony acx424AKP, Leadtek LTK500HD1829, Xinpeng XPP055C272, AUO B116XAK01, GiantPlus GPM940B0,
      BOE NV140FHM-N49,
      Satoz SAT050AT40H12R2,
      Sharp LS020B1DD01D.

    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ARM-ΠΏΠ»Π°Ρ‚ ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Gen1 Amazon Echo (OMAP3630-based), Samsung Galaxy S III mini (GT-I8190), Allwinner Emlid Neutis, Libre Computer ALL-H3-IT, PineH64 Model B, Aibretech Amlogic GX PC,
      Armada SolidRun Clearfog GTR, NXPGateworks GW59xx,
      Tolino Shine 3 eBook reader,
      Embedded Artists COM (i.MX7ULP), SolidRun Clearfog CX/ITX ΠΈ HoneyComb (LX2160A), Google Coral Edge TPU (i.MX8MQ),
      Rockchip Radxa Dalang Carrier, Radxa Rock Pi N10, VMARC RK3399Pro SOM
      ST Ericsson HREF520, Inforce 6640, SC7180 IDP, Atmel/Microchip AM9X60 (ARM926 SoC, Kizboxmini), ST stm32mp15, AM3703/AM3715/DM3725, ST Ericsson ab8505, Unisoc SC9863A, Qualcomm SC7180. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° PCIe-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, примСняСмого Π² Raspberry Pi 4.

ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ латиноамСриканский Π€ΠΎΠ½Π΄ свободного ПО сформировал
Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ свободного ядра 5.6Linux-libre 5.6-gnu, ΠΎΡ‡ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚ элСмСнтов ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², содСрТащих нСсвободныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ»ΠΈ участки ΠΊΠΎΠ΄Π°, ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ. Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π±Π»ΠΎΠ±ΠΎΠ² Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… для AMD TEE, ATH11K ΠΈ Mediatek SCP. ΠžΠ±Π½ΠΎΠ²Π»Ρ‘Π½ ΠΊΠΎΠ΄ чистки Π±Π»ΠΎΠ±ΠΎΠ² Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… ΠΈ подсистСмах AMD PSP, amdgpu ΠΈ nouveau.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ