Kør Linux-programmer på BSD-styresystem

Applikationer skrevet til Linux kan også køres på BSD-styresystemerne. Vi viser, hvordan det kan gøres med FreeBSD.

Fra Linux til BSD

Styresystemet Linux er det mest populære blandt Unix-styresystemerne, som kan fås gratis eller ganske billigt. Der findes dog en stribe andre gratis styresystemer som FreeBSD, NetBSD og OpenBSD. Disse styresystemer har tekniske fordele overfor Linux på områder som for eksempel netværk, stabilitet, sikkerhed, og hvor mange platforme der understøttes.

Linux-miljøet er til gengæld klart førende i det antal applikationer, der findes. Der er for eksempel kontorpakken StarOffice fra Sun, Corels WordPerfect, Oracles database og spillet Quake. Linux's programsnitflade (API) er blevet standard for dem, der udvikler brugerprogrammer til disse Unix-systemer. Spørgsmålet er derfor: Hvordan kan brugere af BSD køre de applikationer, som oprindelig er skrevet til Linux?

Vi beskriver her, hvordan du kan tage et Linux-program og køre det på en FreeBSD maskine.

Der er mange teknikker til, hvordan et brugerprogram kan overføres fra et styresystem til et andet. Har man kildeteksten til rådighed, kan man oversætte programmet til det nye styresystem med en compilere til dette system. På den måde oversætter man det oprindelige program til en ny BSD-version.

I modsætning til den metode beskriver Jeffrey Carl i en artikel på Boardwatch Magazine, hvordan man kører programmerne binært på FreeBSD. Det vil sige, at Linux-applikationerne installeres og køres direkte, uden der udføres nogen form for oversættelser, emulering eller konverteringer af programmet. Der anvendes den oprindelige binære kode, som er den fødte programkode i processorens sprog.

Alle tre styresystemer, FreeBSD, NetBSD og Open BSD, har muligheder for at køre binære Linux-programmer, i det mindste på Intels x86 processorer. I sin artikel: Running Linux programs on FreeBSD, beskriver Jeffrey Carl hvordan man gør under FreeBSD. Vedrørende OpenBSD og NetBSD henviser han til deres web-steder.

Carl anbefaler BSD-miljøet at acceptere Linux's programsnitflade, der kaldes Application Binary Interface, ABI. Tredjeparts udviklere af applikationer kan basere sig på denne snitflade, og dermed levere software til både Linux og BSD-miljøerne.

FreeBSD Loader

Filsystem og loader

FreeBSD giver Linux binær kompatibilitet ved at skabe et "skygge" Linux filsystem med de relevante programmer og biblioteker. Derefter routes Linux programmernes kald til dette filsystem. Linux-programfiler kan gemmes på et filsystem som FreeBSD UFS eller Linux ext2.

FreeBSD bruger en program loader, der læser applikationsprogrammet, og som arbejder med ABI. Loaderen genkender Linux-programmet og sætter en pointer, der fanger og henviser alle systemfunktionskald til Linux-systemkald. Der er tre ting, som skal anvendes til at få BSD til at køre Linux-programmer. Der skal anvendes en såkaldt Kernel LoaDable, som kaldes linux.ko. Det er en Linux-kerne, som indlæses i FreeBSD.

Dernæst skal der installeres de nødvendige Linux biblioteker og programmer. Carl angiver, hvilke moduler der er tale om. Hvis der er brug for et større antal applikationer, er der flere biblioteker som skal tages med. Red Hat's Package Manager applikation til deres rpm-format findes i FreebSD-version, så du her kan bruge rpm formatet, der bruges til at pakke Linux-programmer med.

Endelig skal de binære filer fra Linux navngives. De kan være i det nyere Linux ELF format (Executable and Linking Format) eller det ældre a.out format. Det gøres med kommandoen brandelf.

Når navnet i ELF filerne af FreeBSD-systemet læses som "Linux", da bliver pointere til systemfunktionskald omdirigeret til de steder, hvor de kaldte Linux services befinder sig. Derudover søger FreeBSD efter de programmer og filer, som applikationen skal bruge, først i stien: /combat/linux/Original-path. Dette medfører, at et Linux-program kan kalde FreeBSD programmer.

Videre

Problemer

Problemerne med at køre Linux-applikationer på FreeBSD adskiller sig ikke for problemerne ved at køre dem på Linux-styresystemerne. Spørgsmålet er her, hvilke biblioteker der kræves af applikationerne, samt at få dem downloadet og installeret korrekt. For BSD brugerne er den nemmeste metode til at gennemskue installationen den simple, at de finder en Linux-maskine, hvor programmet kører, og derefter lister de nødvendige biblioteker med kommandoen ldd. Alternativt må informationerne søges på programudviklernes web-sider.

Carl nævner desuden, at der kan være problemer med programmer, der bruger Linux /proc filsystem, fordi det fungerer anderledes end FreeBSD's /proc system. Ligesom der kan være problemer, hvis applikationen bruger Linux-specifik assembler kode.

Carl henviser til håndbogen om FreeBSD som forklarer, hvordan FreeBSD kører Linux-programmer. Afsnittet findes på web-adressen: http://www.freebsd.org/handbook/linuxemu.html

Læses lige nu

    Annonce

    Annonceindlæg fra Cognizant

    Agentic AI kræver mere end teknologi

    De fleste virksomheder har efterhånden bevist, at AI virker. Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.

    Navnenyt fra it-Danmark

    Softwarevirksomheden Idura, som udvikler løsninger til digital identifikation og autentifikation, har pr. 1. september 2026 ansat Alfredo Paladino, 32 år,  som Account Manager for det danske marked. Han skal især beskæftige sig med salg af Iduras MitID- og signaturløsninger i Danmark. Han kommer fra en stilling som Head of Business Development hos Goodwings. Han er uddannet kandidat i e-business. Han har tidligere beskæftiget sig med at opbygge Goodwings' kommercielle funktion og lede et internationalt BDR-team på 12 personer. Nyt job

    Alfredo Paladino

    Softwarevirksomheden Idura, som udvikler løsninger til digital identifikation og autentifikation,

    Norriq Danmark A/S har pr. 1. juni 2026 ansat Ida Laursen som Junior Consultant. Hun skal især beskæftige sig med at understøtte vores konsulenter med praktiske og analytiske opgaver på diverse kundeprojekter. Hun kommer fra en stilling som Webassistent hos PWT Group A/S. Hun er uddannet bachelor i International Virksomhedskommunikation og er i gang med en kandidat i IT-ledelse. Hun har tidligere beskæftiget sig med kommunikation og webindhold. Nyt job

    Ida Laursen

    Norriq Danmark A/S

    IFS Danmark A/S har pr. 1. september 2026 ansat Gustav Olsen som Business Development Representative. Gustav skal især beskæftige sig med forretningsudvikling & identificering af muligheder med fokus på AI, automatisering og optimering af forretningsprocesser. Gustav kommer fra en stilling som Business Development Specialist hos SAP Danmark A/S. Gustav er uddannet Cand.merc Sales Management. Gustav har tidligere beskæftiget sig med forretningsudvikling og salgsstrategi inden for ERP-teknologi. Nyt job

    Gustav Olsen

    IFS Danmark A/S

    EG Danmark A/S har pr. 17. august 2026 ansat Michael Banegas Madsen, 32 år,  som Senior Account Executive. Han skal især beskæftige sig med Ansvar for nysalg og vækst af eksisterende kunder, samt opbygning af kunderelationer på tværs af Jylland og Fyn. Han kommer fra en stilling som Senior Talent Attraction Specialist hos Danske Commodities A/S. Han er uddannet Kandidat i Corporate Communication fra Aarhus BSS. Han har tidligere beskæftiget sig med 6 års erfaring med rekruttering af tech-profiler i bl.a. Danske Commodities. Nyt job

    Michael Banegas Madsen

    EG Danmark A/S