ARM SoC koda uzturētājs Arnd Bergmann 8. septembrī nosūtīja kodola izstrādātājiem 13 ielāpus, kas no Linux izņem novecojušo 32 bitu ARM platformu atbalstu. Kopā pazūd aptuveni 55 000 rindu koda un ierīču koka failu. Šie ielāpi neko nelabo un neko nepievieno. Tie dzēš.
Saraksts nevienu nepārsteidz. Linux 7.3 šīs platformas jau pasludināja par novecojušām. Tagad ir uzrakstīts arī kods, kas tās aizvāc. Atklāts palicis viens jautājums: kurā laidienā dzēšana notiks.
Kas pazūd no koka
Phoronix uzskaita ielāpu sērijā nosauktos mērķus:
- SA1100 un Footbridge, abi no StrongARM laikmeta;
- RiscPC, Acorn darbstacija;
- Marvell Orion, Dove un MV78xx0, kas savulaik dzina mājas NAS kastes un spraudņu datorus;
- OMAP24xx un i.MX31, kas būvēti uz ARM1136r0 kodola;
- i.MX varianti bez atmiņas pārvaldības vienības;
- Cortex-M mikrokontrolleri: LPC18xx, STM32 F4, F7 un H7, AT91 SAMV7;
- Versatile MPS2 un LSI Axxia;
- vecie PXA plašu faili, kas nekad nepārgāja uz ierīču koku.
LSI Axxia bija tīkla iekārtu procesoru saime. Versatile MPS2 ir ARM pašas izstrādes plate. Lielākā daļa šī saraksta aparatūras nāk no laika starp 1994. un 2008. gadu. Kodolā tā palika inerces dēļ. Aktīva uzturētāja lielākajai daļai nav jau gadiem.
Modernās 32 bitu ARM plates dzēšana neskar. ARMv7 mikroshēmas ar ierīču koku, piemēram, TI AM335x vai Allwinner saimes procesori, paliek kodolā, kur bijuši. Ielāpi ķeras tikai pie koda, kuru neviens nav pārcēlis uz ierīču koku vai kurš prasa procesora kodolu, ko GCC vairs neapkalpo.
Kāpēc vecais kods traucē
Pirms ierīču koka ieviešanas katrai platei kodolā bija savs C fails ar aparatūras aprakstu. Tos sauc par plašu failiem. Tāds fails apraksta procesoru, atmiņas kartējumu, pārtraukumu numurus un katru pieslēgto mikroshēmu. Citai platei to izmantot nevar. Ierīču koks šo pašu informāciju pārcēla uz atsevišķu datu failu, kuru kodolam padod ielādētājs, tāpēc viens kodola būvējums sāka darboties uz desmitiem dažādu plašu.
Linux 7.3 laikā plašu failu bija palikuši 28. No tiem 22 tika pasludināti par novecojušiem, tostarp Intel un Marvell mikroshēmām rakstītie. Līdzi izkrita Cortex-M3, M4 un M7 kodoli, ARM1136r0 kodols un 25 mašīnas, kas uz šiem kodoliem būvētas. Starp tām ir Nokia N800 un N810 planšetes, kā apkopo TechVeda.
Katra šāda platforma ARM kodā prasa savu izņēmumu. ARM1136r0 vajag aparatūras kļūdu apiešanu. Cortex-M vajag būvējumu bez atmiņas pārvaldības vienības, kas ir mantojums no uClinux laikiem un kodolā uztur atsevišķu atmiņas kartēšanas ceļu. Vecajām platēm vajag iniciālizācijas ceļu, kas iztiek bez ierīču koka. Katrs no tiem ir Kconfig kombinācija, ko izstrādātājam jāpatur prātā un CI jāsakompilē.
Kad platformas pazūd, pazūd arī izņēmumi. Pēc tam izmetami kļūst simtiem draiveru, kurus lieto tikai šīs platformas. Reālais dzēsto rindu skaits nākamajos ciklos tāpēc būs krietni lielāks par 55 000.
Grafiks sākās pirms diviem gadiem
Pirmo atteikšanās grafiku Bergmann publicēja 2024. gada 31. jūlijā. LWN to aprakstīja kā uzaicinājumu iebilst. Izstrādātājs uzskaitīja izmetamo aparatūru un aicināja pieteikties tos, kam tā vēl strādā.
StrongARM mašīnas, tostarp RiscPC, kodolā palikušas galvenokārt nostalģijas dēļ. Tā Bergmann to formulēja 2024. gada vasarā, kad publicēja pirmo sarakstu.
Otrs iemesls ir rīkkopa. GCC pakāpeniski atmet vecākos ARM variantus. Ja kodols paceļ minimālo atbalstīto GCC versiju, arhitektūras atbalsts, ko kompilators vairs nesaprot, jāizņem līdzi. Toreizējā priekšlikumā pirmie kandidāti bija ARMv4 bez ARMv4T, iWMMXt paplašinājums, ARMv5 lielā gala kodols un vecā OABI izsaukumu saskarne. Pēdējo EABI nomainīja jau 2000. gadu vidū, taču kodolā tā turējās vēl divdesmit gadus.
Divus gadus saraksts stāvēja bez kustības. Šogad tas sakustējās. Vispirms deprekācija 7.3, tagad dzēšanas kods.
7.4 vai 7.5
Tehniski ielāpi varētu ienākt jau Linux 7.4. Bergmann tomēr sliecas uz 7.5. Tas tur atkarības starp ielāpiem vienkāršas. Dzēšana arī paliek aiz pašreizējā LTS cikla, tāpēc pēdējiem lietotājiem ir vēl viens laidiens, kurā aizstāvēt savu aparatūru.
Praktiskā mala šeit ir rūpnieciskās iekārtas. i.MX31 un OMAP24xx joprojām griežas ražotnēs, medicīnas tehnikā un tirdzniecības automātos. Daļa no tām vēl saņem programmatūras atjauninājumus. Šādam ražotājam ir divi ceļi. Pirmais ir pieteikties linux-arm-kernel sarakstā un parādīt, ka platforma tiek lietota. Otrais ir izvēlēties pēdējo kodola versiju, uz kuras iekārta paliks. Tālāk drošības ielāpi jāuztur pašu spēkiem.
Trešā varianta nav. Kad kods reiz ir izmests, atpakaļ to neviens neieliks bez uzturētāja, kas parakstās par tā kopšanu.
Kas paliek
Seši plašu faili 7.3 sarakstā izdzīvoja: TI OMAP1 un Samsung S3C64xx. Tiem ir zināmi lietotāji.
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.