15. Juli 2024

Assembler: Boot til 64-bit

Hej blog, i dag kommer du lige til at fungere som bogmærke, for jeg har fundet en virkelig god guide, som beskriver, hvordan man sætter computeren op til boote fra 16-bit real mode til 64-bit, det kan blive interessant senere ;)

Setting up an x86 CPU in 64-bit mode

Jeg kan i øvrigt varmt anbefale at hoppe ind på Hackaday, hvis du vil dykke ned i nerdy-stuff, hver dag - du skal jo også have en pause fra mainstream-nyhedsstrømmen.

13. Juli 2024

Lav en minimal Linux distro med BuildRoot

BuildRoot er et værktøj, der hjælper dig med at lave minimale Linux-distroer. Det bliver mest kædet sammen med single-board computere såsom Raspberry Pi, men der er også et build target til x86-64.

Nir Lichtman viser her, hvordan man lynhurtigt laver en Linux-distro, som du kan bygge videre på. Det er noget mindre tidskrævende end at terpe Linux From Scratch. En af de mest præcise “lige-til-stålet”-videoer, jeg har set.

Link

Nir Lichtman: Making Minimal Linux Distro with Buildroot

12. Juli 2024

Apt og Ubuntus metapackages

Nogle gange skal man grave lidt dybt for at finde guld. Selv som Ubuntu-bruger gennem mange år finder jeg nye ting.

I dag opdagede jeg, at tilstedeværelsen af Ubuntus metapackages - altså en pakke, der installerer andre pakker - er sat i system.

Det er ufatteligt sjældent, at guiderne rundt omkring på nettet nævner eksistensen af metapackages specifikt, så jeg ville lige skrive om det, hvis du ikke har set det nævnt før.

Vil du f.eks installere den nuværende udgave af XFCE skrivebordsmiljøet behøver du ikke angive samtlige “underpakker” selv. Metapakken vil installere alle de krævede tillægspakker, du behøver, for at have et kørende system.

Har du allerede nogle af pakkerne, skipper apt den del af overførslen:

sudo apt install xfce4

vil installere XFCE + afledte pakker.

Vil du gerne lige se, hvad en metapakke indeholder, kan du tjekke indholdet af pakker med:

apt show xfce4

Kigger du derefter under “Depends” i det output apt spytter ud på skærmen, ser du, hvad metapakken vil installere:

libxfce4ui-utils (>= 4.16), thunar (>= 4.16), xfce4-appfinder (>= 4.16.0), xfce4-panel (>= 4.16.0), xfce4-pulseaudio-plugin, xfce4-session (>= 4.16.0), xfce4-settings (>= 4.16.0), xfconf (>= 4.16.0), xfdesktop4 (>= 4.16.0), xfwm4 (>= 4.16.0)

Metapakken vil her sammen med XFCE installere filhåndteringsprogrammet Thunar. Det er forskelligt, hvordan metapakkerne er bygget op. Indholdet afhænger helt af, hvad personen, der vedligeholder metapakken har valgt, der skal inkluderes.

I Ubuntu-wiki’en nedenunder kan du se, hvilke metapackages, der eksisterer, og hvordan du selv laver dine egne.

Links

Ubuntus wikiside om metapackages

11. Juli 2024

Installation via scripts i terminalen

På Linux er det ret normalt at installere programmer via terminalen.
F.eks kan man hente Zed-editoren til Linux og MacOS sådan:

curl https://zed.dev/install.sh | sh

Curl-kommandoen henter et installationsscript og sender outputtet til shellfortolkeren. Det er der som regel ingen problemer i. For 99,99% er ordentlige mennesker, som laver programmer og scripts, der gør livet nemmere for alle.

Men så er der lige indimellem, hvor man finder en sti til en scriptstump på et forum. Der skal man lige være lidt mere på vagt. Vedkommende kunne - i princippet - køre nogle trælse ting på din maskine (begrænset til din $HOME-folder, medmindre du har givet sudo-adgang undervejs).

For alle tilfældes skyld vil jeg istedet anbefale dig at pipe outputtet til less først, og så skimme scriptet igennem, inden du kører installationen. Det tager måske et par sekunder/minutter ekstra, men du kan sove bedre om natten ;)

Sådan her:

curl https://zed.dev/install.sh | less

(afslut med q)

Zed-editoren er i øvrigt ude nu til Linux, MacOS og Windows.

10. Juli 2024

Affinity Photo, Designer og Publisher på Linux

Serif, som står bag de fede programmer Affinity Photo, Designer og Publisher kører her sommeren 2024 en temmelig vild kampagne med nedsatte priser, oven i hatten får man 6 mdr. til at evaluere softwaren, når man starter en prøveversion. En af de fede detaljer ved Affinity er - udover at være en temmelig potent alternativ til Adobe - er at softwarepakken ikke kræver abonnement, som det er tilfældet med Adobes programmer. Lidt vildt, at det er en feature, men sådan er det i en verden, der er lullet godt og grundigt ind i en serviceøkonomi, der ser abonnementer som den hellige gral. Jeg forstår godt, hvorfor virksomhederne elsker abonnementer og cloud-løsninger, og det er bestemt derfor, jeg har et ambivalent forhold til det.

Din adgang til software og dine data skal ikke afhænge af din betalingsevne. Derfor er frit og åben software en nødvendig modvægt.

Jeg er vild med Affinity funktionsmæssigt, men også fordi de tilbyder et produkt, hvor prisen til at overskue. I et anfald af kækhed skrev jeg så til Serifs support, om der var planer om en Linux-version. Jeg fik et forventet nej-svar, desværre og den venlige support pegede mig hen med denne ophedede diskussion på Serifs forum:

https://forum.affini … s#comment-2094%C2%A0

Diskussionen er den samme, som har kørt i årtier på forskellige andre fora. Læser man mellem linierne på Serifs nej-svar, så er Linux på desktopsiden ikke en rentabel forretning. Det vil jeg give dem ret i, men desktop-delen af Linux bliver heller ikke rentabel for virksomheder, før de tør satse på, at der findes et marked. Og der er for få virksomheder, der tør satse på nicherne.

Nuvel, de er oppe imod gratis - og mange menneskers behov kan måske dækkes af f.eks GIMP, Scribus, Krita og Inkscape (jeg kalder dem samlet GSKI herefter). Men jeg tror på, at folk gerne vil betale for software med et fornuftigt prisskilt. Vi kan hurtigt blive enige om, at det bedste og mest ideelle er, at have adgang til kildekoden via en ikke-restriktiv licens, men Linux mangler et tilbud til dem, der ønsker “en samlet pakke” med professionel support bag. Så må man acceptere at proprietær software eksisterer.

Personligt har jeg ikke noget imod, at Linux-distributioner tilbyder proprietær software i deres indbyggede softwarecenters, så længe der også findes åbne alternativer. Det handler om frit valg, og så mener jeg at folk bliver mest tilfredse med Linux-platformen som helhed, hvis de kan sammensætte deres softwareudvalg, som de ønsker, uden at de nødvendigvis behøver havne i en ideologisk kamp om, hvordan verden ideelt set burde se ud. Den kamp kan i sig selv være ensrettet og begrænsende, særligt hvis vi begynder at pådutte dem idealer, som de ikke forstår eller ønsker at være en del af. De fleste forstår først værdien af åben kode og åbne standarder, når de møder et problem i deres hverdag (manglende understøttelse af filformater, ringe samspil mellem programmer mv.).

If you build it, they will come

Problemet med Linux-desktop’ens lave adoptionsrate er ret meget samme diskussion som hønen og ægget. Softwarefirmaerne bag proprietær software vil ikke understøtte Linux som platform, hvis der ingen brugere er. Og brugerne kommer ikke, hvis ikke der er et bredt/bredere softwareudvalg. Så det bør vi prøve at skabe. Valve gjorde det med SteamDeck’en - og de gjorde det med Steam før det. Der var ikke mange, der troede på digital distribution af spil, indtil Steam for alvor fik vind i sejlene.

Det er et glimrende eksempel på, at man nogle gange skal man gøre ting af idealistiske grunde, hvis man vil ændre fremtiden - du kan ikke altid forvente et positivt afkast med det samme, og du kan bestemt heller ikke regne med, at andre forstår dine idéer i starten. Selv de erfarne “løver” i “Løvens Hule” på DR1 tager fejl indimellem. Der er intet facit.

Diversitet i softwareudvalget

Det er fint at pege folk i retning af GSKI. Jeg har stor respekt for det arbejde, projekterne laver, uden dem ville jeg ikke ane, at der var åbne alternativer til f.eks Adobe. Men vi må som FOSS-fællesskab også imødekomme, at nogle har andre behov, som GSKI ikke dækker af forskellige årsager. Der skal derfor være alternativer - og det er der også, men de er ikke altid på omgangshøjde funktionalitetsmæssigt og derfor nævnes de sjældent fremfor GSKI.

Jeg har ikke prøvet at smide Affinity igennem WINE/Proton/Crossover. Jeg tror ærlig talt heller ikke, at folk gider fedte med det. Det skal køre første gang, uden sære bugs og besværligheder, ellers hopper folk tilbage på Windows/MacOS.

En tanke, der vedvarende rumsterer i mit baghoved er, at forke f.eks Krita og se om det kan lade sig gøre, over år, at bygge noget, der minder om Affinity PhotoDesigner/Publisher og Adobe Photoshop/InDesign/Illustrator.

Serifs Affinity bruger “Persona”-idéen til at skifte mellem forskellige “modes”, og det synes jeg er godt tænkt, fordi det fjerner de visuelle elementer og menuer, der ikke er brug for, når du f.eks arbejder med eksport af dit projekt. De vender tilbage, når du så igen vælger “Pixel”-persona indstillingen.

Krita i sig selv er robust, har den mest moderne, velpolerede GUI og bygger på mange års erfaring. Måske kan man bruge det som base, og implementere nogle af de manglende features ovenpå? Jeg er ikke sikker på, at Krita-projektet ønsker at være en alt-omsluttende grafisk pakke, så det nemmeste vil være at forke projektet. så vi slipper for at skulle genopfinde de mest grundlæggende funktioner. Jeg har kigget igennem Kritas kode, og selv med 20+ år på bagen, så er projektet forbavsende velstruktureret. Koden er GPLv3-licenseret, og benytter QT-frameworket, så licensen på afledt kode skal være kompatibel.

Sur mand?

Dette er skrevet efter, jeg skrev de ovenstående afsnit: Jeg har læst mit eget blogindlæg her og moret mig lidt over strukturen og tonen. Starter med en nyhed om Affinity, og ender i en “rant”.

Men jeg er ikke sur - bare ærgerlig over at se, at Linux igen bliver forbigået. Nu har vi ventet på en samlet, professionel grafisk pakke på Linux i årevis. Jeg satte lidt min lid til Serif, som udfordren til mægtige Adobe. Fremtidens udfald kan man ikke gisne om, og Serif er som bekendt blevet opkøbt af Canva. Men det lader ikke til, i hvert fald for nu, at vi får de forhold, vi ønsker. Skal vi ændre fremtiden, så må vi derfor selv trække i arbejdstøjet…

Så det prøver vi: Skriv til mig, hvis du har idéer til, hvordan vi kommer videre: simon (at) simonjustesen (dot) dk. Hvis noget materialiserer sig til et konkret FOSS-projekt, så laver jeg naturligvis en dedikeret projektside, når vi har en prototype. Det er let nok at få idéer - det er noget andet at udføre dem. Jeg brugte en del af aftenen på at se RoboNuggies gennemgang af døde BSD-operativsystemer, og det er et godt eksempel på, at idéer opstår ofte i en slags øjeblikseufori, det kræver dedikation at fastholde interessen på et projekt i årevis. Men, hvis man ikke afprøver nogle ting, så finder man heller ikke ud af, om idéen (og euforien) holder ved.