28. Maj 2024

Problemerne med Linux

Affødt af en god diskussion på Fediverset (jeg poster på Mastodon), så vil jeg prøve at addressere nogle af problemerne med Linux, som jeg ser det fra min stol. Mit forrige indlæg bar præg af, at jeg er helt tosset med måden, Linux og andre Open Source-systemer udvikles på. Der er selvfølgelig områder, der kan og skal forbedres. Og i modsætning til IT-giganternes operativsystemer, så kan man faktisk gøre noget ved det selv.

Jeg forestiller mig her, at jeg har nogen som helst chance for at påvirke udviklingen i mit hjørne af verden. Det har jeg måske, lidt, for jeg kunne godt tænke mig at skabe min egen Linux-distribution, når jeg har søsat mine andre projekter - så et godt stykke ude i fremtiden.

Jeg kunne godt tænke mig at se, hvor langt man kan komme, hvis man tænker brugervenlighed ind som hovedfokus, og ikke kun fokuserer på de tekniske fremskridt. Jeg synes f.eks, de fleste brugerflader har mest værdi, når man lykkedes med gemme de tunge ting væk, og gøre dem forståelige for folk, der ikke er teknisk anlagte. Det er en ting, f.eks Apple excellerer i.

Nå, i gang med det lidt kedelige - du må ikke tro, at jeg nyder at finde dårligdomme, men omvendt, så er det også interessant at identificere de steder, der halter.

Distributionerne skyder med spredehagl

Linux’ absolutte styrke ligger i dens fleksibilitet. Og alligevel ser man på Distrowatch en masse distributioner, der ligner hinanden. Folk kan jo gøre som de vil, det er det, frihed implicit betyder. Men jeg mener, at det vil være gavnligt, hvis der kom flere behovsbestemte Linux-distributioner. Lidt ligesom Ubuntu Studio og Lakka forsøger at gøre. Ubuntu Studio er en Ubuntu-distribution målrettet kreative mennesker, mens Lakka målretter sig til retrokonsol-folket.

Nogle mennesker spænderer 95% af deres dag på internettet - så behøver de ikke helt styresystem, hvor de måske ender med at bruge en ganske lille del af den samlede funktionalitet. Derfor kunne de spare diskpladsen og nøjes med en “skal”, hvor der bootes direkte ind i en browser. Se f.eks hvor hurtigt TinyCoreLinux booter, fordi den kan eksistere i en ramdisk. 12MB + evt. størrelsen på en browser. Hvad skal man så med en systempartition på flere gigabytes?

Skitsering af en behovsbestemt installation

Når du “adopterer” et nyt styresystem, så skal du først til at lære det at kende, og finde ud af hvilke programmer, der eksisterer. Jeg foreslår istedet, at man vender bøtten, og laver en installationen behovsbestemt. Det ville så kræve, at installationens dialog tog sig nogenlunde sådan ud:

Installationsprogram: “Hej, hvordan ønsker du at bruge din Linux?”
Person klikker: “Jeg er musiker”
Installationsprogram: Ok, her er nogle valg, der måske kunne interessere”
Skærm: “Ardour”, “LMMS”, “Jacks”, “Bitwig Studio” (Bitwig er kommerciel, men et godt alternativ til Ableton Live, hvis du vil køre Linux)

En spilentusiast ville måske få “Proton”, “Steam”, “Lutris” osv.

I dag får du en mængde standardprogrammer, som teamet bag OS’et håber du vil bruge, men som egentlig ender som fyld. Der er naturligvis programmer, man ikke kan komme uden om, men oplevelsen af et skræddersyet system ville være større. Du vil naturligvis stadig have Software Center eller Discover til at installere yderligere programmer med.

Fælles økosystem, og så alligevel ikke

Open Source-miljøet er meget projekt-inddelt, og projekterne arbejder ikke nødvendigvis sammen på tværs hele tiden. Derfor kan det godt tage tid, før integrationer mellem to programmer finder sted. GNOME og KDE-projekterne har lavet deres egne økosystemer indenfor Linux-fællesskabet, hvor de vedligeholder nogle bestemte typer software. Det tror jeg er den helt rigtige vej at gå, hvis man vil lave problemfri integration.

Her er et eksempel med cURL, hvor de venter på, at OpenSSL-projektet skal løse nogle ting, for at et nyt HTTP/3-library kan tages i brug. cURL og OpenSSL bruges også på Windows og MacOS.

Linux only software

Det her er potentielt en varm kartoffel. Men jeg mener, der mangler software, som kan få folk til at overveje at bruge Linux. Windows er altdominerende, fordi du kan få alt dertil. MacOS fungerer bedst i et Apple-økosystem, men nyder også godt af god integration med IoT-devices såsom Philips Hue osv. Linux favoriserer ikke noget bestemt, men desktop-udgaven af Linuxsystemer fejler ift. at tiltrække andre end os supernørder, fordi der mangler software med bred appel, så også mormor kan være med. Når der laves grafiske frontends, mangler der indimellem lige et lag glassur. Der mangler lige, at koderne hiver fat i nogle brugerflade-eksperter og får nogle fif.

Skal man gøre f.eks det grafiske miljø nysgerrigt, så skal man stille med noget, der fungerer lige så godt som Adobes grafiske pakke, og her har Adobe nogle års forspring. Vi har nu i mange år håbet, at der kommer en fuld-blods grafisk programpakke til Linux, der kan det hele, med dyb integration og samme strømlinede interface som Adobes. Du kan nå langt med GIMP, Inkscape, Krita, Davinci Resolve, Blender og Scribus. De er fede programmer, men de bærer stadig præg af, at de er udviklet af forskellige teams, og mangler bestemte funktionaliteter, der kan få folk til at overveje et skifte.

Jeg tror ikke, at de professionelle grafikere kommer, medmindre en mastodont som Adobe vælger at smide det hele Creative-pakken ovenpå en platformsuafhængig WASM-runtime. Måske sker det - de tester i hvert fald Photoshop i en browser, og så fjerner man jo al balladen med at skulle bygge til forskellige systemer.

Men…

Måske er det ved tiden, at vi ser på, om man kan udvikle et alternativ, der repekterer folks ønske om ikke at knytte sig til en abonnementsordning, som er Adobes cashcow. Det er lidt en skrøne, at folk der bruger Linux ikke vil betale for software - det, man ønsker er, at have friheden til at vælge, hvad man vil købe, og så at have lov til at rode med koderne, så man kan lave nye fede integrationer uden at blive banket i hovedet med et patent. Det kommer til at tage tid - lang tid - at udvikle en grafisk suite. Men der mangler et tilbud til dem, der vil have det hele i en pakke. Skal jeg være lidt polemisk, så kunne vi jo nærmest have nået at udvikle noget på det tid, vi har gået og sukket efter en løsning ;-)

Dårlig onboarding

Det her går igen i samtlige styresystemer der findes. Man tager simpelthen brugeren for lidt i hånden, når de sidder med deres systemer post-install. Mange af grundkoncepterne er de samme for en bruger med erfaring, men for en utrænet bruger, så er man nødt til at holde dem i hånden: Hvordan opretter jeg forbindelse til netværket? Hvordan kommer jeg på internettet? Hvordan sender jeg en email? Hvad er mine muligheder for support? Udsigten til at hænge i et forum er ikke sjov, så der skal udvikles nogle bedre hjælpefunktioner.

Upstream ejerskab

En af de problemområder, jeg synes, xz-infiltrationssagen belyste var, at Linux’ fødekæde er svag i forhold til, at distributionerne ikke tager ejerskab over de pakker, de hiver ind i distributionerne udefra. Man stoler lidt for meget på, at projekterne downstream selv løser deres problemer. Men hvert projekt har sine egne metoder at håndtere kriser på. Nogle arbejder metodisk med code reviews, andre gør ikke. I en verden som nogle mennesker desværre insisterer på at kaste ud i tumult, så er man nødt til at tjekke alle leder og kanter.

Linux er gået fra at være et fællesskabsbaseret hobbyprojekt til at være noget, som rigtig, rigtig mange mennesker og virksomheder baserer deres hverdag på. Det er alle steder, på servere, i mobiltelefoner til mindre embeddede devices. Derfor må pengestærke Linux-baserede virksomheder træde til, og hjælpe hobbykoderne økonomisk, så de ikke brænder ud, enten ved at øge deres sponsorater eller evt. ansætte dem. Det kniber det med, mens virksomhederne gerne vil nyde godt af arbejdet.

Nu kører jeg selv Ubuntu, og følger primært nyhederne derfra, og Ubuntu nåede heldigvis ikke at blive ramt af bagdøren, men det var der andre der gjorde - de distroer, som integrerer nye pakker hurtigere. Pakken med den inficerede xz-komponent var nået over i Ubuntu “proposed”-repo’et, og skulle ind i 24.04LTS, da bagdøren blev opdaget og fjernet. Det får mig til at tænke på, om tingene er blevet for komplekse, og om tingene sker for hurtigt. Man behøver ikke nødvendigvis at inkludere en opdateret minorversion af en pakke, medmindre der er en graverende bug.

Jeg er klar over, at “ejerskab” betyder at man så skal overvåge ændringer i adskillige tusinde pakker, og at det vil være en umulig opgave for en community-Linux uden automatisering. Men der er nogle dele af et styresystem, der vigtigere at holde opdateret end andre.