Linux Kernel tso tawm 5.1

Tom qab ob lub hlis ntawm txoj kev loj hlob, Linus Torvalds tswvcuab kernel tso tawm Linux 5.1. Ntawm cov kev hloov pauv tseem ceeb tshaj plaws: lub interface tshiab rau asynchronous I / O io_uring, muaj peev xwm siv NVDIMM li RAM, kev txhawb nqa rau kev sib koom virtual nco hauv Nouveau, kev txhawb nqa scalable saib xyuas cov ntaub ntawv loj heev ntawm fanotify, muaj peev xwm los teeb tsa Zstd compression theem hauv Btrfs, tus tshiab cpuidle TEO handler, kev siv lub kaw lus hu los daws qhov teeb meem 2038, muaj peev xwm khau raj los ntawm cov cuab yeej-mapper yam tsis muaj initramfs, SafeSetID LSM module, txhawb kev sib xyaw ua ke nyob.

ntsiab kev tsim kho tshiab:

  • Disk subsystem, I / O thiab cov ntaub ntawv systems
    • Siv lub interface tshiab rau asynchronous I/O - io_ kev, uas yog qhov tseem ceeb rau nws txoj kev txhawb nqa rau I / O kev xaiv tsa thiab muaj peev xwm ua haujlwm nrog lossis tsis muaj kev cuam tshuam. Cia peb nco qab tias yav dhau los tau thov asynchronous I / O mechanism "aio" tsis txhawb buffered I / O, tsuas yog tuaj yeem ua haujlwm hauv O_DIRECT hom (tsis muaj buffering thiab hla lub cache), muaj teeb meem nrog kev xauv vim tos rau metadata muaj, thiab nthuav tawm cov nqi nyiaj siv ua haujlwm loj vim yog luam cov ntaub ntawv hauv nco.

      Hauv API
      io_uring developers sim tshem tawm cov shortcomings ntawm lub qub aio interface. Los ntawm tsim ntau io_uring yog ze heev rau SPDK thiab tseem ceeb ua ntej libaio thaum ua haujlwm nrog kev xaiv tsa tau qhib. Lub tsev qiv ntawv tau npaj rau kev siv io_uring hauv cov ntawv thov kawg khiav hauv cov neeg siv qhov chaw liburing, uas muab lub moj khaum theem siab tshaj lub kernel interface;

    • Nyob rau hauv qhov xwm txheej taug qab mechanism hauv FS fanotify() ntxiv kev txhawb nqa rau kev taug qab superblock thiab cov qauv hloov pauv cov xwm txheej ncaj ncees (cov xwm txheej ntawm kev tsim, tshem tawm thiab txav cov npe). Cov yam ntxwv nthuav tawm pab daws cov teeb meem scalability uas tshwm sim thaum tsim cov kev hloov pauv rov qab hauv cov ntaub ntawv loj heev uas siv cov txheej txheem inotify (cov kev hloov pauv tsis tau yav tas los tsuas yog taug qab los ntawm kev tsis lees paub, tab sis
      kev ua tau zoo nyob rau hauv tej yam kev mob ntawm recursive taug qab ntawm loj nested directory tshuav ntau xav tau). Tam sim no xws li kev saib xyuas tuaj yeem ua tau zoo los ntawm fanotify;

    • Ntawm Btrfs file system ntxiv lub peev xwm los kho cov qib compression rau zstd algorithm, uas tuaj yeem suav tau tias yog qhov kev pom zoo ntawm qhov nrawm tab sis tsis muaj txiaj ntsig lz4 thiab qeeb tab sis zoo compression xz. Los ntawm kev ua piv txwv nrog yuav ua li cas nws tau yav tas los teeb tsa qib compression thaum siv zlib, kev txhawb nqa rau "-o compress = zstd: qib" mount xaiv tau ntxiv rau zstd. Thaum lub sij hawm sim, qhov tsawg kawg nkaus thawj theem muab cov ntaub ntawv compression los ntawm 2.658 lub sij hawm nrog compression ceev ntawm 438.47 MB ​​/ s, decompression ceev ntawm 910.51 MB / s thiab nco noj ntawm 780 MB, thiab lub siab tshaj plaws qib 15 muab 3.126 lub sij hawm, tab sis nrog ib tug compression ceev ntawm 37.30 MB / s. unpacking 878.84 MB / s thiab nco noj 2547 MB;
    • Ntxiv muaj peev xwm khau raj los ntawm cov ntaub ntawv kaw lus nyob rau ntawm lub cuab yeej-mapper, tsis tas siv initramfs. Pib nrog cov ntsiav tam sim no tso tawm, cov cuab yeej-mapper tuaj yeem siv ncaj qha rau hauv cov txheej txheem khau raj, piv txwv li, raws li kev faib tawm nrog cov ntaub ntawv hauv paus. Qhov muab faib yog configured siv lub khau raj parameter "dm-mod.create". Device-mapper modules tso cai rau kev thauj khoom suav nrog: "crypt", "delay", "linear", "snapshot-origin" thiab "verity";
    • Tus chij F2FS_NOCOW_FL tau ntxiv rau F2FS cov ntaub ntawv kaw lus taw qhia rau Flash drives, uas tso cai rau koj los lov tes taw hom ntawv-rau-sau rau cov ntaub ntawv muab;
    • Cov ntaub ntawv kaw lus raug tshem tawm ntawm kernel Exofs, uas yog qhov txawv ntawm ext2, yoog rau kev ua haujlwm nrog OSD (Object-based Storage Device) cov khoom khaws cia. Kev them nyiaj yug rau SCSI raws tu qauv rau cov khoom siv khaws cia no kuj raug tshem tawm;
  • Virtualization thiab Kev Ruaj Ntseg
    • Ntxiv PR_SPEC_DISABLE_NOEXEC kev xaiv rau prctl() los tswj kev ua tiav ntawm cov lus qhia rau cov txheej txheem xaiv. Ib qho kev xaiv tshiab tso cai rau koj xaiv lov tes taw speculative tua rau cov txheej txheem uas tuaj yeem raug tawm tsam los ntawm Spectre nres. Lub xauv yuav kav mus txog rau thaum thawj hu rau exec();
    • Siv LSM module SafeSetID, uas tso cai rau cov kev pabcuam hauv kev ruaj ntseg tswj cov neeg siv yam tsis muaj kev tsim cai (CAP_SETUID) thiab tsis tau txais cov cai hauv paus. Cov cai tswjfwm raug muab los ntawm kev txhais cov cai hauv kev ruaj ntseg raws li daim ntawv teev npe dawb ntawm kev khi siv tau (hauv daim ntawv "UID1: UID2");
    • Ntxiv cov kev hloov qis qis uas xav tau rau kev thauj khoom raws li kev ruaj ntseg modules (LSMs). Qhia qhov "lsm" kernel khau raj xaiv los tswj cov modules uas tau thauj khoom thiab nyob rau hauv qhov kev txiav txim;
    • Kev them nyiaj yug rau cov ntaub ntawv namespaces tau ntxiv rau qhov kev tshuaj xyuas subsystem;
    • Nthuav Lub peev xwm ntawm GCC plugin structleak, uas tso cai rau koj los thaiv cov peev xwm xau ntawm cov ntsiab lus nco.
  • Network subsystem
    • Rau qhov (sockets). ua raws kev xaiv tshiab "SO_BINDTOIFINDEX" zoo ib yam li
      "SO_BINDTODEVICE", tab sis noj raws li kev sib cav tus lej ntsuas ntawm lub network interface tsis yog lub npe interface;

    • Lub mac80211 pawg tau ntxiv lub peev xwm los muab ntau yam BSSIDs (MAC chaw nyob) rau ib lub cuab yeej. Raws li ib feem ntawm txoj haujlwm los txhim kho WiFi kev ua tau zoo, mac80211 pawg tau ntxiv airtime accounting thiab muaj peev xwm xa tawm airtime ntawm ntau lub chaw nres tsheb (thaum ua haujlwm hauv hom nkag mus, faib sijhawm tsawg dua kis mus rau qeeb wireless chaw nres tsheb, es tsis txhob faib sijhawm sib npaug ntawm txhua tus. chaw nres tsheb);
    • Ntxiv mechanism "devlink kev noj qab haus huv", uas muab cov ntawv ceeb toom thaum muaj teeb meem tshwm sim nrog lub network interface;
  • Kev pabcuam nco thiab system
    • Ua tiav ruaj ntseg teeb liab xa tawm uas tso cai rau PID rov siv dua. Piv txwv li, thaum hu ua tua yav dhau los, qhov xwm txheej tuaj yeem tshwm sim qhov twg, tam sim ntawd tom qab xa lub teeb liab, lub hom phiaj PID tuaj yeem raug tso tawm vim yog txheej txheem txiav thiab tuav los ntawm lwm cov txheej txheem, thiab cov teeb liab yuav xaus mus rau lwm tus txheej txheem. Txhawm rau tshem tawm cov xwm txheej zoo li no, lub kaw lus tshiab hu rau pidfd_send_signal tau ntxiv, uas siv cov ntaub ntawv piav qhia los ntawm /proc/pid los xyuas kom meej cov txheej txheem ruaj khov. Txawm hais tias PID tau rov qab siv dua thaum lub sijhawm ua haujlwm hu, cov ntaub ntawv piav qhia yuav tsis hloov thiab tuaj yeem siv tau zoo los xa cov teeb liab rau cov txheej txheem;
    • Ntxiv muaj peev xwm siv cov cuab yeej nco tsis tu ncua (piv txwv li-nco, piv txwv NVDIMMs) raws li RAM. Txog tam sim no, cov ntsiav tau txhawb nqa xws li cov khoom siv khaws cia, tab sis tam sim no lawv tuaj yeem siv los ua RAM ntxiv. Qhov tshwj xeeb yog siv los teb rau qhov kev xav tau ntawm cov neeg siv uas txaus siab tso nrog kev ua haujlwm lag luam thiab xav siv haiv neeg Linux kernel nco kev tswj hwm API es tsis txhob siv cov neeg siv qhov chaw cim xeeb faib cov tshuab khiav saum mmap rau dax cov ntaub ntawv;
    • Ntxiv CPU tshiab tsis siv neeg tuav (cpuidle, txiav txim siab thaum twg CPU tuaj yeem muab tso rau hauv kev txuag hluav taws xob sib sib zog nqus; qhov sib sib zog nqus hom, qhov nyiaj txuag ntau dua, tab sis kuj yuav siv sij hawm ntev dua los tawm ntawm hom) - TEO (Timer Txheej Txheem Oriented Governor ). Txog rau tam sim no, ob tus neeg ua haujlwm cpuidle tau thov - "menu" thiab "ladder", sib txawv hauv heuristics. Tus "menu" handler tau paub txog cov teeb meem nrog kev txiav txim siab heuristic, kom tshem tawm qhov uas nws tau txiav txim siab los npaj tus neeg tuav haujlwm tshiab. TEO yog positioned raws li ib tug lwm txoj rau lub "cov ntawv qhia zaub mov" handler, tso cai rau kev ua tau zoo dua thaum tuav tib theem ntawm lub hwj chim noj.
      Koj tuaj yeem qhib tus neeg tuav ntaub ntawv tshiab siv lub khau raj "cpuidle.governor=teo";

    • Ua ib feem ntawm kev ua haujlwm kom tshem tawm teeb meem ntawm 2038, tshwm sim los ntawm kev dhau ntawm 32-ntsis time_t hom, suav nrog kev hu xov tooj uas muaj 32-ntsis sij hawm suav rau 64-ntsis architectures. Raws li qhov tshwm sim, 64-ntsis time_t qauv tam sim no tuaj yeem siv rau txhua qhov qauv tsim. Cov kev hloov pauv zoo sib xws kuj tau ua tiav hauv lub network subsystem rau kev xaiv timestamp network sockets;
    • Nyob rau hauv lub kub patching system rau cov tub ntxhais (nyob patching) ntxiv "Atomic Replace" feature rau atomically siv cov kev hloov pauv rau ib qho haujlwm. Qhov tshwj xeeb no tso cai rau koj faib cov ntsiab lus thaj ua rau thaj uas npog ntau qhov kev hloov pauv ib zaug, tsis yog cov txheej txheem ntawm kev thov ib ntus ntawm cov thaj ua rau thaj nyob hauv ib qho kev txiav txim nruj, uas yog qhov nyuaj heev rau kev tswj xyuas. Whereas yav dhau los txhua qhov kev hloov pauv tom ntej yuav tsum tau ua raws li lub xeev ntawm kev ua haujlwm tom qab qhov kev hloov pauv kawg, tam sim no muaj peev xwm nthuav tawm ntau qhov kev hloov pauv khi rau ib lub xeev pib ib zaug (piv txwv li, cov neeg saib xyuas tuaj yeem tuav tau ib qho kev sib koom ua ke nrog rau lub hauv paus kernel hloov. ntawm cov saw ntawm thaj ua rau thaj uas nyob ntawm ib leeg);
    • Tshaj tawm deprecated txhawb rau a.out executable cov ntaub ntawv hom thiab
      tshem tawm code rau tsim cov ntaub ntawv tseem ceeb hauv a.out hom, uas yog nyob rau hauv lub xeev tso tseg. Cov hom ntawv a.out tsis tau siv rau ntawm Linux systems tau ntev, thiab tiam ntawm a.out cov ntaub ntawv tau ntev lawm tsis tau txais kev txhawb nqa los ntawm cov cuab yeej niaj hnub hauv kev teeb tsa Linux. Tsis tas li ntawd, lub loader rau a.out cov ntaub ntawv tuaj yeem siv tag nrho hauv cov neeg siv qhov chaw;

    • Lub peev xwm los txheeb xyuas thiab tshem tawm cov lej tsis siv tau ntxiv rau BPF qhov kev txheeb xyuas cov txheej txheem. Lub kernel tseem suav nrog thaj ua rau thaj nrog kev txhawb nqa spinlock rau BPF subsystem, muab cov peev txheej ntxiv rau kev tswj hwm kev ua tiav ntawm BPF cov kev pabcuam;
  • Khoom siv
    • Hauv Nouveau tsav tsheb ntxiv kev txhawb nqa rau heterogeneous nco kev tswj, tso cai rau CPU thiab GPU kom nkag mus rau cov chaw nco synchronized. Kev sib koom virtual nco system (SVM, sib koom virtual nco) yog siv los ntawm HMM (Heterogeneous memory management) subsystem, uas tso cai rau kev siv cov khoom siv nrog lawv tus kheej lub cim xeeb tswj (MMU, chav tswj kev nco), uas tuaj yeem nkag mus. lub ntsiab nco. Tshwj xeeb, siv HMM, koj tuaj yeem npaj qhov chaw nyob sib koom ntawm GPU thiab CPU, uas GPU tuaj yeem nkag mus rau lub cim xeeb tseem ceeb ntawm cov txheej txheem. SVM kev txhawb nqa tam sim no tsuas yog qhib rau Pascal tsev neeg GPUs, txawm hais tias kev txhawb nqa yog muab rau Volta thiab Turing GPUs ib yam nkaus. Tsis tas li ntawd, hauv Nouveau ntxiv ioctl tshiab los tswj kev tsiv teb tsaws ntawm cov txheej txheem nco chaw rau GPU nco;
    • Hauv Intel DRM tsav tsheb rau GPU Skylake thiab tom qab (gen9+) suav nrog Los ntawm lub neej ntawd, hom fastboot tshem tawm yam tsis tsim nyog hloov pauv thaum khau raj. Ntxiv tshiab ntaus ntawv cim raws li Coffelake thiab Ice Lake microarchitectures. Rau Coffelake chips ntxiv GVT txhawb nqa (GPU virtualization). Rau virtual GPUs ua raws Kev them nyiaj yug VFIO EDID. Rau LCD vaj huam sib luag MIPI / DSI ntxiv kev txhawb nqa rau ACPI / PMIC cov ntsiab lus. Ua tiav hom TV tshiab 1080p30/50/60 TV;
    • Ntxiv kev txhawb nqa rau Vega10/20 BACO GPU rau tus tsav tsheb amdgpu. Siv Vega 10/20 kev tswj fais fab thiab Vega 10 lub rooj txias txias. Ntxiv cov khoom siv PCI tshiab rau Picasso GPUs. Ntxiv interface rau kev tswj cov sij hawm dependencies kom tsis txhob deadlocks;
    • Ntxiv DRM/KMS tsav tsheb rau kev tshuaj ntsuam accelerators ARM Komeda (Mali D71);
    • Ntxiv kev txhawb nqa rau Toppoly TPG110, Sitronix ST7701, PDA 91-00156-A0, LeMaker BL035-RGB-002 3.5 thiab Kingdisplay kd097d04 screen panels;
    • Ntxiv kev txhawb nqa rau Rockchip RK3328, Cirrus Logic CS4341 thiab CS35L36, MediaTek MT6358, Qualcomm WCD9335 thiab Ingenic JZ4725B audio codecs, nrog rau Mediatek MT8183 audio platform;
    • Ntxiv kev txhawb nqa rau NAND controllers Flash STMicroelectronics FMC2, Amlogic Meson;
    • Ntxiv accelerator txhawb rau Habana AI hardware systems;
    • Ntxiv kev txhawb nqa rau NXP ENETC gigabit Ethernet controllers thiab MediaTek MT7603E (PCIe) thiab MT76x8 wireless interfaces.

Tib lub sijhawm, Latin American Free Software Foundation tsim
kev xaiv kernel dawb kiag li 5.1 - Linux-libre 5.1-gnu, tshem tawm cov firmware thiab cov ntsiab lus tsav tsheb uas muaj cov khoom tsis pub dawb lossis cov lej code, qhov kev txwv uas txwv los ntawm cov chaw tsim khoom. Hauv kev tso tawm tshiab, blob loading yog neeg xiam nyob rau hauv mt7603 thiab goya tsav tsheb. Hloov kho blob tu code hauv cov tsav tsheb thiab subsystems wilc1000, iwlwifi, soc-acpi-intel, brcmfmac, mwifiex, btmrvl, btmtk thiab touchscreen_dmi. Blob ntxuav hauv lantiq xrx200 firmware loader tau raug tso tseg vim nws tshem tawm ntawm lub ntsiav.

Tau qhov twg los: opennet.ru

Ntxiv ib saib