Linux From Scratch oversatt til Norsk

Linux From Scratch oversatt til Norsk

Copyright © 2023 Linux From Scratch oversatt til Norsk

Hva er MLFS (Multilib-LFS)?

Multilib-LFS er en variant av LFS boken. Denne varianten bygger et system som kan kjøre 32-bit binærfiler.

Det høres trivielt ut, men det er det ikke. Nå til dags er nesten alle CPU-er i datamaskinene våre 64-bit, og de fleste av dem er Intel kompatible. Dette har skjedd før, for mange år siden, da 16-bit CPU-er (8086) var vanlige og nye 32-bit CPU-er kom opp (80386). Felles for alle disse CPU-ene er at de er i stand til å utføre maskininstruksjoner fra tidligere arkitekturer, noe som betyr at en 32-bit CPU kan utføre 16-bit instruksjoner, en 64-bit CPU kan utføre 32-bit instruksjoner, og så videre. Problemet er at det binære formatet som disse instruksjonene lagres i er forskjellig.

Siden denne CPU arkitekturen har eksistert i flere tiår nå, finnes det også mye programvare skrevet for den. Dessverre er noe av denne programvaren bare tilgjengelig i en forhåndskompilert binærfil, og ingen kildekode er lenger tilgjengelig. Dette kan skyldes flere forskjellige årsaker, for eksempel at kildekoden har gått tapt eller aldri blitt publisert på grunn av lisensproblemer, eller fordi skaperen ikke ønsket å gi ut kildekoden. I disse tilfellene er imidlertid binærfilen fortsatt tilgjengelig.

Siden formatet til 64-bits og 32-bits binærfiler er forskjellig, kan ikke disse gamle programmene kjøres på moderne systemer. Det er her multilib systemene kommer inn i bildet, og dermed Multilib-LFS. Multilib systemer sørger for miljøet slik at 32-bits binærfiler også kan kjøres på et 64-bits operativsystem. Dette må støttes i kjernen, men det må også være flere andre kjernebiblioteker tilgjengelige i 32-bits versjoner.

Men det er ikke alt. Det finnes en annen arkitektur som ligger noe mellom 32- og 64-biters. Den kalles x32. Det vil si at binærfilene opererer med hele instruksjonssettet til en 64-biters CPU, men adresseområdet er begrenset til 32-biters (~4 GB). Å kjøre slike binærfiler krever enten et system som er bygget eksplisitt for x32 eller et multilib system som er i stand til å kjøre disse binærfilene.

Multilib-LFS boken er basert på den faktiske LFS boken, men har noen utvidelser i instruksjonene. I de fleste tilfeller er disse utvidelsene repetisjoner av byggeinstruksjonene, men bare i en annen modus (m32 og/eller mx32).

Hvorfor skulle jeg ønske meg et MLFS system?

Vanligvis er det ikke nødvendig å kjøre et multilib system. Men det kan være omstendigheter der du trenger et:

Annen programvare krever multilib

For virtualisering (her VirtualBox) er m32 multilib nevnt som en forutsetning. Når du vil installere VirtualBox på et LFS system som din VM-vert, trenger du bare fire ekstra ikke-BLFS pakker. Hvis du vil gjenoppbygge 64-biters og 32-biters gjestetillegg, kreves et multilib operativsystem for å bygge dem.

Les på nett

Det finnes tre versjoner av Multilib-LFS på nett for sysv:

og tre versjoner for systemd Disse bøkene opprettes når LFS-Norsk main grenen er slått sammen med multilib grenen. Denne sammenslåingen gjøres for øyeblikket manuelt, og derfor kan den være noen dager forsinket.

Begrensninger

  • MLFS er vanskelig å teste med mindre det finnes gamle binærfiler tilgjengelig. Når en slik binærfil er kjørbar, betyr det dessverre ikke at noen andre av disse binærfilene også vil kjøre. Det kan være BLFS bibliotekpakker som kreves som avhengigheter i det bestemte multilib miljøet. Verken MLFS eller BLFS dekker det for øyeblikket (det finnes ingen MBLFS), men MLFS bør gi brukeren en idé om hvordan man bygger multilib versjoner av biblioteker.
  • MLFS er tilgjengelig for sysv og systemd som vanlig (REV=sysv eller REV=systemd som parameter til make kommandoen. Se Nedlasting). Merk at systemd varianten for øyeblikket vedlikeholdes på en «beste gjetning» basis. Det betyr at de systemd relaterte instruksjonene ikke er testet. Hvis du oppdager feil i instruksjonene, gi meg beskjed.

Takk til

  • William Feely som startet et lignende prosjekt for et tiår siden
  • DJ Lucas, Xi Ruoyao, Douglas R. Reno og mange flere