Serbestberdana kernel Linux 5.1

Piştî du mehan pêşveçûnê, Linus Torvalds danasîn berdana kernel Linux 5.1. Di nav guhertinên herî berbiçav de: navgînek nû ji bo io_uring I/O asynchronous, şiyana karanîna NVDIMM wekî RAM, piştgirî ji bo bîranîna virtual ya hevpar li Nouveau, piştgirî ji bo çavdêriya berbelavkirî ya pergalên pelan ên pir mezin bi navgîniya fanotify, şiyana mîhengkirina komkirina Zstd. astên di Btrfs de, hilberek nû ya cpuidle TEO, pêkanîna bangên pergalê ji bo çareserkirina pirsgirêka 2038, şiyana bootkirina ji cîhazên cîhaz-mapper bêyî initramfs, modula SafeSetID LSM, piştgirî ji bo pêlên zindî yên hevbeş.

sereke nûbûnên:

  • Disk Subsystem, I/O û Pergalên Pelê
    • Ji bo I/O asynchronous navbeynek nû bicîh kir - io_uring, ya ku ji ber piştgiriya xwe ya ji bo dengdana I/O û jêhatîbûna xebata bi tampon an bênavber girîng e. Werin em bînin bîra xwe ku mekanîzmaya I/O ya asînkron a ku berê hatibû pêşniyar kirin "aio" piştgirî nedikir I/O ya tamponkirî, tenê dikaribû di moda O_DIRECT de bixebite (bêyî tampon û derbaskirina cache), ji ber ku li benda hebûna metadata ye, pirsgirêkên girtinê hebûn, û ji ber kopîkirina daneyan di bîranînê de lêçûnên zêde yên mezin nîşan dan.

      Di nav API-ê de
      Pêşdebirên io_uring hewl dan ku kêmasiyên navbeynkariya aio ya kevn ji holê rakin. Ji birêvebirinî io_uring pir nêzîk e SPDK û dema ku bi çalakkirina anketê re dixebite bi girîngî li pêş lîbayo ye. Pirtûkxaneyek ji bo karanîna io_uring di serîlêdanên dawîn ên ku di cîhê bikarhêner de dixebitin hatine amadekirin liburing, ku çarçoveyek asta bilind li ser navgîniya kernel peyda dike;

    • Di mekanîzmaya şopandina bûyerê de di FS fanotify() zêde kirin piştgirî ji bo şopandina rewşên guherîna superblock û strukturê dirent (bûyerên çêkirin, jêbirin û barkirina pelrêçan). Taybetmendiyên pêşkêşkirî dibin alîkar ku pirsgirêkên pîvandinê yên ku dema ku di pergalên pelan ên pir mezin de bi karanîna mekanîzmaya inotify-ê veguheztina vegerê diafirînin çêdibin (guhertinên rasterast berê tenê bi inotify ve dihatin şopandin, lê
      performansa di şert û mercên şopandina vegerî ya pelrêçên hêlînên mezin de pir tişt hiştiye). Naha çavdêriya weha dikare bi fanotify bi bandor were kirin;

    • Li ser pergala pelê Btrfs zêde kirin şiyana xweşkirina asta berhevkirinê ya ji bo algorîtmaya zstd, ku dikare wekî lihevkirinek çêtirîn di navbera lz4-a bilez lê bêbandor û berhevkirina hêdî lê baş xz de were hesibandin. Li gorî ku çawa berê mimkun bû ku dema zlib bikar bînin asta kompresyonê were danîn, piştgirî ji bo vebijarka mount "-o compress=zstd:level" ji bo zstd hate zêdekirin. Di dema ceribandinê de, asta yekem a herî kêm 2.658 carî bi leza berhevkirinê 438.47 MB/s, leza dekompresyonê 910.51 MB / s û xerckirina bîranînê 780 MB, û asta herî zêde 15 3.126 carî peyda kir, lê bi tevlihevkirinê. leza 37.30 MB/s vekêşana 878.84 MB/s û vexwarina bîrê 2547 MB;
    • Zêde kirin şiyana bootkirina ji pergala pelan a ku li ser cîhaza-mapper-ê ye, bêyî karanîna initramfs. Bi serbestberdana kernelê ya heyî dest pê dike, amûrên cîhaz-mapper dikarin rasterast di dema pêvajoya bootkirinê de werin bikar anîn, mînakî, wekî dabeşek bi pergala pelê root re. Dabeş bi karanîna pîvana bootê "dm-mod.create" tê mîheng kirin. Modulên cîhaz-nexşeya ku ji bo barkirinê têne destûr kirin ev in: "crypt", "dereng", "xêz", "snapshot-origin" û "rastî";
    • Ala F2FS_NOCOW_FL li pergala pelan a F2FS ya ku ber bi ajokarên Flash-ê ve girêdayî ye hate zêdekirin, ku dihêle hûn ji bo pelek diyar moda kopî-li-nivîsandinê neçalak bikin;
    • Pergala pelê ji kernelê hate rakirin Exofs, ku guhertoyek ext2 ye, ku ji bo xebitandina bi depoyên tiştan OSD (Cîhaza hilanînê-based Object) ve hatî adaptekirin. Piştgiriya protokola SCSI ya ji bo amûrên hilanînê yên weha jî hate rakirin;
  • Virtualization û Ewlekariya
    • Vebijarka PR_SPEC_DISABLE_NOEXEC li prctl() hat zêdekirin da ku pêkanîna spekulatîf a rêwerzan ji bo pêvajoya hilbijartî kontrol bike. Vebijêrkek nû dihêle hûn bi bijartî darvekirina spekulatîf ji bo pêvajoyên ku potansiyel dikarin ji hêla êrîşek Specter ve werin êrîş kirin neçalak bikin. Girtî heta banga yekem a exec ();
    • Modula LSM-ê pêk anîn SafeSetID, ku destûrê dide karûbarên pergalê ku bêyî zêdekirina îmtiyazan (CAP_SETUID) û bêyî bidestxistina îmtiyazên root, bi ewlehî bikarhêneran birêve bibin. îmtiyaz bi diyarkirina qaîdeyên di ewlehiyên de li ser bingeha navnîşek spî ya girêdanên derbasdar (bi forma "UID1:UID2") têne destnîşankirin;
    • Guhertinên nizm ên ku ji bo barkirina modulên ewlehiyê (LSM) li ser bingeha stackê hewce ne zêde kirin. Vebijarka bootê ya kernel "lsm" destnîşan kir ku kontrol bike ka kîjan modul têne barkirin û bi çi rêzê;
    • Piştgiriya ji bo navên pelan li jêrpergala kontrolê hate zêdekirin;
    • Berfireh kirin kapasîteyên structleak pêveka GCC, ku destûrê dide te ku tu rijandina potansiyel a naverokên bîranînê asteng bike.
  • Subsystem Network
    • Ji bo soketan pêkanîn vebijarka nû "SO_BINDTOIFINDEX" mîna
      "SO_BINDTODEVICE", lê li şûna navê navberê, wekî arguman jimareya pêwendiya torê digire;

    • Stacka mac80211 şiyana veqetandina gelek BSSID (navnîşanên MAC) li yek cîhazê zêde kiriye. Wekî beşek ji projeyek ji bo xweşbînkirina performansa WiFi, stacka mac80211 hesabkirina dema hewayê û şiyana belavkirina hewayê di nav gelek stasyonan de zêde kiriye (dema ku di moda xala gihîştinê de dixebitin, wextê veguheztinê kêmtir ji qereqolên bêtêl hêdî re vediqetînin, li şûna ku dem bi rengek wekhev di nav hemîyan de belav bikin. stasyon);
    • Mekanîzmaya zêde "devlink tenduristiyê", ku gava pirsgirêk di navgîniya torê de çêdibin agahdariyan peyda dike;
  • Xizmetên bîr û pergalê
    • Pêk anîn radestkirina sînyala ewledar ku destûrê dide ji nû ve karanîna PID-ê. Mînakî, dema ku berê gazî kuştinê tê kirin, dibe ku rewşek derkeve holê ku, tavilê piştî şandina îşaretekê, PID-a armanc dikare ji ber bidawîbûna pêvajoyê were azad kirin û ji hêla pêvajoyek din ve were dagir kirin, û îşaret bi pêvajoyek din re derbas bibe. Ji bo rakirina rewşên weha, pergala nû ya gazî pidfd_send_signal hate zêdekirin, ku ravekerên pelan ji /proc/pid bikar tîne da ku girêdana pêvajoyek domdar misoger bike. Tewra ku PID di dema pêvajoya bangewaziya pergalê de ji nû ve were bikar anîn, ravekera pelê dê neyê guheztin û dikare bi ewlehî were bikar anîn da ku îşaretek ji pêvajoyê re bişîne;
    • Zêde kirin şiyana karanîna amûrên bîranîna daîmî (mînak, bîranîna domdar NVDIMM) wekî RAM. Heya nuha, kernel amûrên wekî amûrên hilanînê piştgirî dikir, lê naha ew dikarin wekî RAM-a zêde jî werin bikar anîn. Taybetmendî di bersivdana daxwazên bikarhênerên ku dilxwaz in ku derengiya performansê ragirin û dixwazin API-ya rêveberiya bîranîna kernel Linux-ya xwemalî bikar bînin li şûna ku pergalên veqetandina bîranîna cîhê bikarhêner-a heyî ku li ser mmap-ê ji bo dax-ê dixebitin bikar bînin, tête bicîh kirin. dosî;
    • Rêvebirek nû ya bêkar a CPU-yê lê zêde kir (cpuidle, biryar dide kengê CPU dikare bikeve nav modên hilanîna hêzê ya kûr; moda kûrtir, teserûf jî ew qas mezin dibe, lê di heman demê de derketina ji modê dirêjtir jî digire) - TEO (Guvernor Oriented Timer Events ). Heya nuha, du rêveberên cpuidle-ê hatine pêşniyar kirin - "menu" û "nerdike", ku di heurîstîkê de cihêreng in. Rêvebirê "menu" di girtina biryarên heurîstîkî de pirsgirêkên naskirî ye, ji bo rakirina van pirsgirêkan biryar da ku hilberek nû amade bike. TEO wekî alternatîfek ji hilbera "menu" re tête cîh kirin, ku di heman demê de heman astê xerckirina hêzê diparêze performansa bilindtir dihêle.
      Hûn dikarin bi karanîna pîvana bootê "cpuidle.governor=teo" rêvekera nû çalak bikin;

    • Di çarçoveya xebatên ji holê rakirinê de ye pirsgirêkên 2038, ku ji ber zêdebûnek ji celebê time_t 32-bit pêk tê, bangên pergalê vedihewîne ku ji bo mîmarên 32-bit jimarvanên dema 64-bit pêşkêşî dike. Wekî encamek, avahiya 64-bit time_t naha dikare li ser hemî mîmarî were bikar anîn. Guhertinên bi vî rengî di binpergala torê de ji bo vebijarkan jî hatine bicîh kirin timestamp soketên torê;
    • Di nav pergala paçkirina germ de ji bo bingehîn (patchkirina zindî) zêde kirin Taybetmendiya "Atomic Replace" ji bo pêkanîna atomî rêzek guhertinan li fonksiyonek yekane. Ev taybetmendî dihêle hûn li şûna pêvajoya serîlêdana qonax-qonaxa paçên zindî bi rêzek hişk, ku domandina wê pir dijwar e, paçên kurtayî yên ku bi yekcarî çend guhertinan vedihewînin belav bikin. Digel ku berê diviyabû ku her guhertinek paşîn li ser bingeha rewşa fonksiyonê ya piştî guheztina paşîn were çêkirin, naha gengaz e ku meriv bi yekcarî çend guhertinên ku bi yek rewşa destpêkê ve girêdayî ne were belav kirin (ango, parêzvan dikarin li şûna wê yek pêçek hevgirtî li gorî kernel bingehîn biparêzin. zincîreka paçikên ku bi hev ve girêdayî ne);
    • Hat ragihandin piştgiriya ji bo a.out pelê îcrakar format û
      jêbirin koda ji bo hilberandina pelên bingehîn di formata a.out de, ku di rewşek berdayî de ye. Forma a.out ev demek dirêj e ku li ser pergalên Linux-ê nehatiye bikar anîn, û hilberîna pelên a.out ji mêj ve ji hêla amûrên nûjen ve di veavakirinên Linux-ê yên xwerû de nayê piştgirî kirin. Wekî din, barkera pelên a.out dikare bi tevahî di cîhê bikarhêner de were bicîh kirin;

    • Kapasîteya naskirin û rakirina koda nekarandî li mekanîzmaya verastkirina bernameya BPF hate zêdekirin. Kernel ji bo binepergala BPF-ê bi piştgiriya spinlock-ê jî pêçan vedihewîne, ji bo birêvebirina pêkanîna paralel a bernameyên BPF-ê kapasîteyên din peyda dike;
  • Amûr
    • Di ajokerê Nouveau de zêde kirin piştgirî ji bo rêveberiya bîranîna heterojen, ku dihêle CPU û GPU bigihîjin deverên bîranîna hevdemkirî yên hevpar. Pergala bîranîna virtual ya hevbeş (SVM, bîranîna virtual ya hevpar) li ser bingeha binepergala HMM (Rêveberiya bîranîna Heterogeneous) tête bicîh kirin, ku destûrê dide karanîna amûrên bi yekîneyên rêveberiya bîranîna xwe (MMU, yekîneya rêveberiya bîranînê), ku dikarin bigihîjin. bîra sereke. Bi taybetî, bi karanîna HMM, hûn dikarin cîhek navnîşek hevpar a di navbera GPU û CPU de organîze bikin, ku tê de GPU dikare bigihîje bîranîna sereke ya pêvajoyê. Piştgiriya SVM niha tenê ji bo GPU-yên malbata Pascal ve hatî çalak kirin, her çend piştgirî ji bo GPU-yên Volta û Turing jî tê peyda kirin. Wekî din, li Nouveau zêde kirin ioctl nû ji bo kontrolkirina koçberiya deverên bîranîna pêvajoyê berbi bîra GPU;
    • Di ajokera Intel DRM-ê de ji bo GPU Skylake û paşê (gen9+) tê de Bi xwerû, moda fastboot di dema bootkirinê de guhertinên moda nepêwist ji holê radike. Zêde kirin новые Nasnameyên cîhazê li ser bingeha mîkroarchitekturên Coffelake û Gola Ice. Ji bo çîpên Coffelake zêde kirin Piştgiriya GVT (virtualîzasyona GPU). Ji bo GPU-yên virtual pêkanîn Piştgiriya VFIO EDID. Ji bo panelên LCD MIPI / DSI zêde kirin piştgiriya ji bo hêmanên ACPI / PMIC. Pêk anîn modên TV-ya nû 1080p30/50/60 TV;
    • Piştgiriya Vega10/20 BACO GPU ji ajokera amdgpu re zêde kir. Rêvebiriya hêzê ya Vega 10/20 û tabloyên kontrolkirina sarkerê Vega 10 pêk anîn. Ji bo GPU-yên Picasso nasnameyên cîhaza PCI-ya nû zêde kirin. Zêde kirin navbeynkar ji bo birêvebirina girêdanên plansazkirî da ku ji xitimandinê dûr bikevin;
    • Zêde kirin Ajokarê DRM / KMS ji bo lezkerên ekranê ARM Komeda (Mali D71);
    • Piştgiriya Toppoly TPG110, Sitronix ST7701, PDA 91-00156-A0, LeMaker BL035-RGB-002 3.5 û panelên ekranê Kingdisplay kd097d04;
    • Piştgiriya Rockchip RK3328, Cirrus Logic CS4341 û CS35L36, MediaTek MT6358, Qualcomm WCD9335 û Ingenic JZ4725B kodekên deng, û her weha platforma dengî ya Mediatek MT8183 zêde kir;
    • Piştgiriya ji bo kontrolkerên NAND-ê Flash STMicroelectronics FMC2, Amlogic Meson zêde kir;
    • Piştgiriya bilezker ji bo pergalên hardware Habana AI zêde kir;
    • Piştgiriya ji bo NXP ENETC-kontrolkerên Ethernet gigabit û MediaTek MT7603E (PCIe) û MT76x8 pêvekên bêtêl zêde kirin.

Di heman demê de, Weqfa Nermalava Azad a Amerîkaya Latîn ava kirin
dibe kernel bi tevahî belaş 5.1 - Linux-libre 5.1-gnu, ji hêmanên firmware û ajokerê yên ku hêmanên ne-azad an beşên kodê hene, ku çarçoweya wan ji hêla çêker ve sînorkirî ye, paqij kirin. Di serbestberdana nû de, barkirina blob di ajokarên mt7603 û goya de neçalak e. Koda paqijkirina blobê di ajokar û bine pergalên wilc1000, iwlwifi, soc-acpi-intel, brcmfmac, mwifiex, btmrvl, btmtk û touchscreen_dmi de nûve kirin. Paqijkirina Blob di barkera firmware ya lantiq xrx200 de ji ber rakirina wê ji kernelê hate sekinandin.

Source: opennet.ru

Add a comment