ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Oracle ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠ΅ Π²ΡΠΏΡΡΠΊΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Oracle Linux 9 ΠΈ ΡΠ΄ΡΠ° Unbreakable Enterprise Kernel 7 (UEK R7), ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π΅ Oracle Linux Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΡΡΠ°ΡΠ½ΠΎΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΡ Ρ ΡΠ΄ΡΠΎΠΌ ΠΈΠ· Red Hat Enterprise Linux. ΠΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Oracle Linux 9 ΡΠΎΠ·Π΄Π°Π½ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠΉ Π±Π°Π·Ρ Red Hat Enterprise Linux 9 ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π±ΠΈΠ½Π°ΡΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π½Π΅ΠΉ.
ΠΠ»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π±Π΅Π· ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΠ΅ iso-ΠΎΠ±ΡΠ°Π·Ρ, ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 8.6 ΠΠ ΠΈ 840 ΠΠ, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ x86_64 ΠΈ ARM64 (aarch64). ΠΠ»Ρ Oracle Linux 9 ΠΎΡΠΊΡΡΡ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ ΠΈ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ yum-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Ρ Π±ΠΈΠ½Π°ΡΠ½ΡΠΌΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠΈΠ±ΠΎΠΊ (errata) ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΠ»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Ρ Π½Π°Π±ΠΎΡΠ°ΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Application Stream ΠΈ CodeReady Builder.
ΠΠΎΠΌΠΈΠΌΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° Ρ ΡΠ΄ΡΠΎΠΌ ΠΈΠ· ΡΠΎΡΡΠ°Π²Π° RHEL (Π½Π° Π±Π°Π·Π΅ ΡΠ΄ΡΠ° 5.14) Π² Oracle Linux ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠ΄ΡΠΎ Unbreakable Enterprise Kernel 7, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° ΡΠ΄ΡΠ΅ Linux 5.15 ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Oracle. ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΡ ΡΠ΄ΡΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°Π·Π±ΠΈΠ²ΠΊΡ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΡΠΈ, Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΌ Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Oracle. Π―Π΄ΡΠΎ Unbreakable Enterprise Kernel ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΡΡΠ°ΡΠ½ΠΎΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΡ Ρ ΡΠ΄ΡΠΎΠΌ RHEL ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΄ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ DTrace ΠΈ ΡΠ»ΡΡΡΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Btrfs. ΠΡΠΎΠΌΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° ΠΏΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π²ΡΠΏΡΡΠΊΠΈ Oracle Linux 9 ΠΈ RHEL 9 ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Ρ (ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² Π°Π½ΠΎΠ½ΡΠ΅ RHEL9).
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π° Π² ΡΠ΄ΡΠ΅ Unbreakable Enterprise Kernel 7:
- Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Aarch64. Π Π°Π·ΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π½Π° 64-ΡΠ°Π·ΡΡΠ»Π΄Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ARM ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ Ρ 64 ΠΠ Π΄ΠΎ 4 ΠΠ, ΡΡΠΎ Π»ΡΡΡΠ΅ ΡΠΎΡΠ΅ΡΠ°Π΅ΡΡΡ Ρ ΠΎΠ±ΡΡΠΌΠ°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ, ΡΠΈΠΏΠΈΡΠ½ΡΠΌΠΈ Π΄Π»Ρ ARM-ΡΠΈΡΡΠ΅ΠΌ.
- ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° ΠΏΠΎΡΡΠ°Π²ΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ DTrace 2.0, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π° Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΄ΡΠ° eBPF. DTrace 2.0 ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ²Π΅ΡΡ eBPF, ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ²Π΅ΡΡ eBPF ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π² Linux ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ.
- Π Π°ΡΡΠΈΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π€Π‘ Btrfs. Π Btrfs Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ DISCARD Π΄Π»Ρ ΠΏΠΎΠΌΠ΅ΡΠΊΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄ΡΠ½Π½ΡΡ Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ. ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ ΠΆΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ DISCARD Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Π΅ΠΌ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π² ΡΠΎΠ½Π΅. ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΎΠΏΡΠΈΠΈ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄ΡΠ½Π½ΠΎΠΉ Π€Π‘: «rescue=ignorebadroots» Π΄Π»Ρ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΡΠ½Π΅Π²ΡΡ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² (extent, uuid, data reloc, device, csum, free space), «rescue=ignoredatacsums» Π΄Π»Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠΌΠΌ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ ΠΈ «rescue=all» Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ‘ignorebadroots’, ‘ignoredatacsums’ ΠΈ ‘nologreplay’. ΠΠ½Π΅ΡΠ΅Π½Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ fsync(). ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° fs-verity (ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΠΈ ΠΈ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²) ΠΈ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
- Π XFS ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ DAX Π΄Π»Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π€Π‘ Π² ΠΎΠ±Ρ ΠΎΠ΄ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΡΡΠ° Π΄Π»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΅ΡΠ°ΡΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ 32-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ time_t Π² 2038 Π³ΠΎΠ΄Ρ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΎΠΏΡΠΈΠΈ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ bigtime ΠΈ inobtcount.
- ΠΠ½Π΅ΡΠ΅Π½Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ OCFS2 (Oracle Cluster File System).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ZoneFS, ΡΠΏΡΠΎΡΠ°ΡΡΠ°Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π·ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ. ΠΠΎΠ΄ Π·ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΡΠΌΠΈ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π° ΠΆΡΡΡΠΊΠΈΡ ΠΌΠ°Π³Π½ΠΈΡΠ½ΡΡ Π΄ΠΈΡΠΊΠ°Ρ ΠΈΠ»ΠΈ NVMe SSD, ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·Π±ΠΈΡΠΎ Π½Π° Π·ΠΎΠ½Ρ, ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ Π³ΡΡΠΏΠΏΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΠΎΡΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π»ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π²ΡΠ΅ΠΉ Π³ΡΡΠΏΠΏΡ Π±Π»ΠΎΠΊΠΎΠ². Π€Π‘ ZoneFS ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΡ Π·ΠΎΠ½Ρ Π² Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Π΅ Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² raw-ΡΠ΅ΠΆΠΈΠΌΠ΅ Π±Π΅Π· ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΅ΠΊΡΠΎΡΠΎΠ² ΠΈ Π±Π»ΠΎΠΊΠΎΠ², Ρ.Π΅. ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ API Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π±Π»ΠΎΡΠ½ΠΎΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ioctl.
- Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° VPN WireGuard.
- Π Π°ΡΡΠΈΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ eBPF. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ CO-RE (Compile Once — Run Everywhere), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ eBPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ eBPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ, Π°Π΄Π°ΠΏΡΠΈΡΡΡΡΠΈΠΉ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΡΠ΄ΡΡ ΠΈ ΡΠΈΠΏΠ°ΠΌ BTF (BPF Type Format). ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ «BPF trampoline», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²Π΅ΡΡΠΈ ΠΊ Π½ΡΠ»Ρ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΄ΡΠΎΠΌ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ BPF. ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ΄ΡΠ° ΠΈΠ· BPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
- ΠΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ Π΄Π΅ΡΠ΅ΠΊΡΠΎΡ ΡΠ°ΡΡΠ΅ΠΏΠ»ΡΠ½Π½ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ («split lock»), Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΡ ΠΏΡΠΈ Π΄ΠΎΡΡΡΠΏΠ΅ ΠΊ Π½Π΅Π²ΡΡΠΎΠ²Π½Π΅Π½Π½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡ Π΄Π²Π΅ Π»ΠΈΠ½ΠΈΠΈ ΠΊΠ΅ΡΠ° CPU. Π―Π΄ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π° Π»Π΅ΡΡ Π²ΡΡΠ²Π»ΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΈΠ³Π½Π°Π» SIGBUS ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΡΠ·Π²Π°Π²ΡΠ΅ΠΌΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ.
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Multipath TCP (MPTCP), ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° TCP Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΎΠΉ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΌΠ°ΡΡΡΡΡΠ°ΠΌ ΡΠ΅ΡΠ΅Π· ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊ ΡΠ°Π·Π½ΡΠΌ IP-Π°Π΄ΡΠ΅ΡΠ°ΠΌ.
- Π ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ΅ Π·Π°Π΄Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ SCHED_CORE, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΄ΡΠ΅ CPU. ΠΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ cookie-ΠΈΠ½Π΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΠΎΠ±Π»Π°ΡΡΡ Π΄ΠΎΠ²Π΅ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ). ΠΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° CPU ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅ΠΌ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π°ΡΠ°ΠΊ ΠΊΠ»Π°ΡΡΠ° Spectre Π·Π° ΡΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ SMT (Hyper Threading) Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ ΠΈ Π½Π΅ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ Π΄ΠΎΠ²Π΅ΡΠΈΡ Π·Π°Π΄Π°Ρ.
- ΠΠ»Ρ cgroups ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ slab (slab memory controller), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»Π΅Π½ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΎΠΌ ΡΡΡΡΠ° slab Ρ ΡΡΠΎΠ²Π½Ρ ΡΡΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π½Π° ΡΡΠΎΠ²Π΅Π½Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ΄ΡΠ°, ΡΡΠΎ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ slab-ΡΡΡΠ°Π½ΠΈΡΡ Π² ΡΠ°Π·Π½ΡΡ cgroup, Π²ΠΌΠ΅ΡΡΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΡΡΠ΅ΠΉ slab Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ cgroup. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ slab, Π½Π° 30-45% ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π΄Π»Ρ slab ΠΏΠ°ΠΌΡΡΠΈ, Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΎΠ±ΡΠ΅Π΅ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ΄ΡΠΎΠΌ ΠΈ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ.
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΏΠΎΡΡΠ°Π²ΠΊΠ° ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ CTF (Compact Type Format), ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ Π‘ΠΈ-ΡΠΈΠΏΠ°Ρ , ΡΠ²ΡΠ·ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΈ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Π°Ρ .
- ΠΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΠΏΠΎΡΡΠ°Π²ΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ DRBD (Distributed Replicated Block Device) ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° /dev/raw (Π΄Π»Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π°Π³ O_DIRECT).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru