Toetatakse vanade ARM protsessorite toetamise lÔpetamist Linuxi tuumas

Arnd Bergmann, kes vastutab SUSE'is tuumapakettide eest, avaldas Linuxi tuuma arendajate postitusloendis plaani eemaldada tuumast ja GCC pÔhinevast koostamise tööriistast kood vanade ARM CPUde ja nende ABI, kÀskude kogude ja tuuma vÔimaluste toetamiseks. Plaan on praegu RFC staadiumis, st avatud aruteluks kogukonnaga. Kui plaan heaks kiidetakse, on soovitatav alustada vanade ARM protsessorite eemaldamist Linuxi tuumas versioonis 6.12, mille vÀljalaskmist oodatakse detsembris. Esimene kandidaat eemaldamiseks on ARMv4 (ilma ARMv4T eemaldamata), iWMMXt, BE32 ja OABI.

Vanade ARM CPUde toetamise lĂ”petamine tuumas hĂ”lmab ka nende toe lĂ”petamist GCC-s — osa eemaldamiseks esitatud CPUdest ei ole enam uutes GCC harudes toetatud, ja mĂ”nda plaanitakse eemaldada tulevastes vĂ€ljaannetes, mis lihtsustab kompilaatori vĂ€rskendamist ja uute vĂ”imaluste rakendamist. Arhitektuuri toe eemaldamine GCC-st nĂ”uab ka selle toe eemaldamist tuumas, kui GCC minimaalne toetatav versioon tĂ”useb (praegu on tuuma koostamiseks vajalik minimaalne GCC versioon 5.1).

Arhitektuurid, kiibid ja laiendused, mille eemaldamine kÀrgist on plaanis:

  • ARMv3 — tugi on GCC 9-s juba lĂ”petatud.
  • ARMv4 — kasutatakse veel levinud StrongARM ja FA526 protsessorite jaoks, samas kui uusimad neist kiipidest on vĂ€lja antud umbes 20 aastat tagasi. ARMv4 toetamine lĂ”petati Debian 5.0-s. Esiteks soovitatakse lĂ”petada ARMv4 toetus GCC-s ja mĂ”ne aasta jooksul ka kĂ€rgis.
  • ARMv4T — levinud on 6 SoC perekonda ARM720T, ARM920T ja ARM922T tuumadega, mis on rohkem levinud kui ARMv4 pĂ”hised SoC-d. ARMv4T toetus lĂ”petati Debian 9.0-s. KĂ€rgis on plaanis ARMv4T toetus lĂ”petada mitte varem kui ARMv5 toetamine.
  • ARMv5 — kasutatakse umbes 1/3 kĂ”igist toetatud platvormidest kĂ€rgis, kuid enamus nendest platvormidest on eluiga lĂ”ppemas. Debian jĂ€tkab ARMv5 toetamist, kuid FPU ja atomaarsete operatsioonide puudumise tĂ”ttu on toetuse sĂ€ilitamine jĂ€rjest raskem ja tĂ”enĂ€oliselt lĂ€heb Debian ARMv5 port varsti mittesooduslikuks.
  • Esimesed ARMv6 pĂ”lvkonnad — kasutatakse sellistes SoC-des nagu ARM1136r0p (NXP i.MX31) ja OMAP24xx (Nokia N8xx), kuid nende toetamine nĂ”uab SMP kernide jaoks hĂ€kkimist.
  • ARMv6K — kasutatakse ARM1176 (Raspberry Pi 1, AST2500) ja ARM1136r1. Tuumas ei ole mingeid takistusi toe lĂ”petamiseks, kuid jaotustes on raskusi, kuna need ei vasta armv7-a+vfpv3-d16 tĂŒĂŒbi kogumile.
  • ARMv7-M — kasutatakse Cortex-M3/M4/M7 mikrokontrollerites, mis jÀÀvad viimasteks tuumadeks ilma mĂ€lujuhtimisseadmestikuta (MMU), mis on tuumas toetatud. Töö MMU-deta sĂŒsteemide tuumade kallal lĂ”petati 2017. aastal, pĂ€rast seda, kui sarnastele kiipidele suunati tĂ€helepanu RTOS-ide, nagu Zephyr, arendusele. ARMv7-M toe eemaldamine on planeeritud 2027. aastaks, kĂŒmme aastat pĂ€rast arenduse lĂ”petamist, vaatamata GCC pidevale toele.
  • iWMMXt — tuumas on juba lĂ”petatud ARMv7 PJ4 (MMP2, Berlin) protsessori tugi, pĂ€rast mida ei ole enam ĂŒhtegi olemasolevat sĂŒsteemi, mis kasutaks seda kĂ€su kogumit. iWMMXt toe lĂ”petamine on juba toimunud Clangis ja GCC-s on see ette nĂ€htud eemaldamiseks.
  • BE32 (big endian ARMv5) — kasutatakse vaid ĂŒhes SoC Intel IXP4xx. Vanades Debian versioonides toetas ainult little-endian reĆŸiimi, kuid draiverites on jĂ€tkuvalt lahendamata probleeme. BE32 toe eemaldamine GCC-st ja tuumast on soovitatud, kuna draiverites ei ole keegi aastaid mingeid probleeme proovinud lahendada.
  • BE8 (big-endian ARMv7) — paljuski draiveritel esinevad probleemid, seetĂ”ttu on testimine peatatud ja ei ole teavet jÀÀnud seadmete kohta. BE8 reĆŸiim vĂ”ib pakkuda huvi kasutaja ruumi komponentide testimiseks big-endian sĂŒsteemides, seega plaanitakse toetada BE8 tuumas ja GCC-s vĂ€hemalt paar aastat, kuni see hakkab probleeme tekitama.

Linuxi tuuma eemaldamiseks ettepanekud:

  • param_struct struktuur, mida kasutatakse enne ATAGS (ARM Tag-Area) — kuulutati vananenuks juba 2001. aastal, kuid kasutatakse endiselt RiscPC ja Footbridge platvormide koodis.
  • ATAGS struktuuri pĂ”hjal olevate failide parameter (kasutati konfiguratsiooniteabe edastamiseks Device Tree'ni) — tuumas on 29 faili, mis on seotud 10 SoC platvormiga, mis kasutavad ATAGS.
  • OABI (vanha ABI, ARM-arkkitehtuurille) — kĂ€ytetÀÀn lĂ€hes kaikkialla nykyÀÀn EABI:tĂ€ (Embedded ABI). OABI aiheuttaa monia virheitĂ€, koska laiteohjainten kehittĂ€jĂ€t ovat lopettaneet huomioimasta siihen liittyviĂ€ piirteitĂ€. OABI:n tuki kĂ€yttĂ€jĂ€tilan komponenttien rakentamisessa pÀÀttyi GCC 4.8:ssĂ€, mutta ytimen osalta on jĂ€tetty lippu "-mabi=apcs-gnu". Suositellaan, ettĂ€ OABI jĂ€tetÀÀn toistaiseksi kĂ€yttöön, mutta sen lisÀÀmistĂ€ pitĂ€isi vaikeuttaa vahingossa.
  • OABI-yhteensopivuustila (OABI_COMPAT) — mahdollistaa OABI:lle rakennetut suoritettavat tiedostot EABI-ytimessĂ€. Ohjaimissa syntyy erillisiĂ€ ongelmia yhteensopimattomuuden vuoksi ioctl:n kanssa, mutta tĂ€mĂ€n tilan yllĂ€pidon vaivannĂ€kö on selvĂ€sti pienempi kuin OABI-ytimien yllĂ€pidossa. StrongARM-tuen sĂ€ilyttĂ€miseksi on jĂ€rkevÀÀ sĂ€ilyttÀÀ tuki OABI:lle tai OABI_COMPAT:lle.
  • NWFPE (No Floating Point Emulator, liukulukuemulaattori) — poistamiseen tarkoitetut patchit ehdotettiin jo 11 vuotta sitten, mutta NWFPE:tĂ€ tarvitaan joidenkin OABI:lle rakennetun kĂ€yttĂ€jĂ€tilan komponenttien toimintaan, joten NWFPE:n tuki suositellaan sĂ€ilytettĂ€vĂ€ksi niin kauan kuin OABI:n tai OABI_COMPAT:n tuki ytimessĂ€ on olemassa.
  • Highmem (kasutatakse mĂ€lu haldamiseks alates 1 GB) — enamik ARM-sĂŒsteeme suudab töötada ilma highmem'i lubamiseta vĂ”i saab kasutada CONFIG_VMSPLIT_2GB, et pÀÀseda juurde esimesele 2GB fĂŒĂŒsilisest mĂ€lust. TĂ€iendavad tööd tehakse 4 GB RAM-i ligipÀÀsu korraldamiseks LPAE (Cortex-A7 / A15) sĂŒsteemides, pĂ€rast mida vĂ”ib highmem'i tugi eemaldada.
  • Sparsemem — vajalik sĂŒsteemidele, kus on vajalik highmem.

Eemaldamiseks soovitatud platvormid:

  • RiscPC — kĂ”ige vanem toetatud platvorm. Ei toetata GCC-s alates 9.x harudest, kuna ARMv3 toe eemaldamine. JĂ€tkab sĂ€ilitaja tuuma töö testimist sellel platvormil, kuid nĂ€ib, et reaalseid kasutajaid pole, seega vĂ”ib tugi lĂ”petada, kui sĂ€ilitaja huvi kaob.
  • SA1100, Footbridge — vananenud platvormid, mis jÀÀvad alles pigem nostalgiast. Peaaegu kĂ”ik nende platvormide kirjeldusfailid on 6.3 tuumas eemaldatud, jÀÀb vaid toetus seadmetele ipaq h3600, assabet, netwinder ja ebsa285. Eemaldamise kĂŒsimus sĂ”ltub sĂ€ilitaja kavatsustest.
  • Gemini, Moxart — kasutavad ARMv4 pĂ”hist CPU-d. Need kiibid on toodetud enam kui 20 aastat tagasi, kuid nende tugi ei vaja tĂ€iendavaid hooldustoiminguid, seega pole mĂ”tet neid enne StrongARM platvormi kustutamist eemaldada.
  • PXA platvormi toetavad failid on praegu mahajĂ€etud ja on kasutusest vĂ€ljas, kui huvi nende vastu tagasi ei tule, plaanitakse need 2025. aasta alguses eemaldada.
  • OMAP1 — jÀÀb ARMv4T/ARMv5 pĂ”hise platvormina, millel puudub Device Tree toetus, ja pole mĂ€rgata mingeid liikumisi Device Tree kasutusele vĂ”tmise suunas, kuid samas on platvormil endiselt kasutajaid.
  • Nspire, AT91RM9200, CLPS711X, EP93xx, iMX1 — kasutavad ARMv4T pĂ”hist CPU-d. Platvormide kirjelduste ĂŒleviimist Device Tree-le tehakse tööd, kuid nende toetamine on mĂ”ttekas ainult seni, kuni ARMv5 tuge hoitakse.
  • OMAP24xx — ainus ARMv6 pĂ”hine platvorm, millel on aktiivseid kasutajaid. Toe sĂ€ilitamine sĂ”ltub arm1136r0 CPU toe jĂ€tkumisest.
  • iMX31 — puuduvad andmed aktiivsete kasutajate kohta, kuid pole mĂ”tet enne OMAP2 eemaldamist neid varem kustutada.
  • S3C64xx (Cragganmore) — ainus platvorm, mis ei toeta Device Tree, ja on ehitatud ARMv6K baasil. Platvormi kasutatakse endiselt helikoodikite testimiseks, seetĂ”ttu on eemaldamine edasi lĂŒkatud, kuni testimine viiakse teisele plaadile.
  • Orion5x, mv78xx0 — eemaldamise kĂŒsimust plaanitakse arutada jĂ€rgmisel aastal.
  • iMX35, WM8750, AST2500, BCM2835 — on hĂ€sti toetatud ja neil on aktiivsed kasutajad, seetĂ”ttu ei ole nende eemaldamine praegu plaanis.
  • stm32f4/f7/h7 — mikroprotsessorid ilma MMU-ta, nende toetamine tuumas jĂ€tkub ja aktiivseid kasutajaid on palju. Eemaldamise kĂŒsimust plaanitakse arutada 2026. aastal.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster