FreeBSD det ultimative styresystem

 

FreeBSD Boot Menu

 

FreeBSD 13.1 bootloader

 

Udvikler FreeBSD projektet
OS familie Unix-lignende (Net/2/386BSD,
senere 4.4BSD-Lite)
Status Aktuel
Kildemodel Open source
Første udgivelse 1. november 1993, 28 år siden
Seneste udgivelse 13.1 16 May 2022
12.3 7 December 2021
Versionskontrol git.freebsd.org
Markedsføringsmål Servere, Arbejdsstation,
indlejrede systemer,
netværk firewalls
Pakkehåndtering pkg
Platforme x86-64, AArch64, ARM32, IA-32,
PowerPC, RISC-V
Kerne type Monolitisk med,
dynamisk indlæsbare moduler
Userland BSD
Standard
brugergrænsefladee
Unix shell
Licens FreeBSD Licens,
FreeBSD dokumentation licens
Officiel hjemmeside freebsd.org

FreeBSD er et UNIX-lignende, avanceret operativsystem, der kan installeres på servere, stationære computere, samt bærbare computere og indlejrede platforme. Den første version af FreeBSD blev udgivet i 1993, og i dag er det det mest udbredte open-source BSD-operativsystem

FreeBSD er den direkte efterkommer af BSD UNIX, og det er Free Open Source software som er licenseret under en todelt BSD-licens. Du kan se mere om licensen her.

FreeBSD 13.1-udgivelse er tilgængelig for arkitekturerne amd64, i386, powerpc, powerpc64, powerpc64le, armv6, armv7, aarch64 og riscv64.

FreeBSD-installationen kræver mindst 2-4 GB RAM og 8 GB harddiskplads. Du kan dog have brug for mere hukommelse og diskplads for at køre grafiske skrivebordsmiljøer.

FreeBSD har fokus på hastighed, stabilitet, og sikkerhed. Det udvikles og vedligeholdes af et stort fællesskab lige siden dets første udgivelse 1 November 1993.

FreeBSD et komplet operativsystem i modsætning til Linux som kun består af en kerne, hvorefter der tilføjes Programmer og værktøjer m.v. som er lavet af andre, som så samles til en Linux distribution. med en kerne, drivere, dokumentation, værktøjer og programmer. Derimod er FreeBSD et komplet operativsystem med en kerne, drivere, dokumentation, værktøjer og programmer.. FreeBSD har over 33.000 programpakker og og er skabt og distribueret af hundredvis af udviklere og tusindvis af bidragydere.

Grundsystem

Selve FreeBSD består af et antal afgrænsede dele:

Grundlæggende unix brugerprogrammer, herunder:

Nogle grundlæggende internetservere, herunder:

Disse programmer gør at en FreeBSD-maskine uden tredjepartsprogrammer typisk kan varetage de mest grundlæggende roller som en netværksserver. Dette kan være roller som ftp-server, DNS-server eller mail-relæ for en internetudbyder.

Brugergrænseflade

Grundsystemet indeholder kun en tekstbaseret brugergrænseflade, men grafiske miljøer kan installeres. X.org understøtter FreeBSD og det samme gør mange skrivebordsmiljøer som, f.eks. Gnome, KDE, MATE og XFCE.

Angående Window manager er der f.eks. fluxbox, i3 og jwm. En liste over dem alle kan ses her.

 

Historie

Hovedartikel: FreeBSD versionshistorik

Baggrund

I 1974 erhvervede professor Bob Fabry fra University of California, Berkeley, en Unix-kildelicens fra AT&T. Støttet af finansiering fra DARPA begyndte Computer Systems Research Group at ændre og forbedre AT&T Research Unix. De kaldte denne modificerede version "Berkeley Unix" eller "Berkeley Software Distribution" (BSD), og implementerede funktioner som TCP/IP, virtuel hukommelse og Berkeley Fast File System. BSD projektet blev grundlagt i 1976 af Bill Joy. Men da BSD indeholdt kode fra AT&T Unix, skulle alle modtagere først have en licens fra AT&T for at kunne bruge BSD.

I juni 1989 blev "Networking Release 1" eller blot Net-1 - den første offentlige version af BSD - udgivet. Efter at have frigivet Net-1, foreslog Keith Bostic, en udvikler af BSD, at erstatte al AT&T-kode med frit videredistribuerbar kode under den originale BSD-licens. Arbejdet med at erstatte AT&T-koden begyndte, og efter 18 måneder blev meget af AT&T-koden udskiftet. Imidlertid forblev seks filer indeholdende AT&T-kode i kernen. BSD udviklerne besluttede at frigive "Networking Release 2" (Net-2) uden disse seks filer. Net-2 blev udgivet i 1991.

Fødsel af FreeBSD

I 1992, flere måneder efter udgivelsen af Net-2, skrev William og Lynne Jolitz erstatninger for de seks AT&T-filer, porterede BSD til Intel 80386-baserede mikroprocessorer og kaldte deres nye operativsystem 386BSD. De udgav 386BSD via en anonym FTP-server. Udviklingen af 386BSD var langsom, og efter en periode med forsømmelse besluttede en gruppe 386BSD-brugere at arbejde videre på egen hånd, så de kunne holde operativsystemet opdateret. Den 19. juni 1993 blev navnet FreeBSD valgt til projektet. Den første version af FreeBSD blev udgivet i november 1993.

I de tidlige dage af projektets start indvilligede et firma ved navn Walnut Creek CDROM, efter forslag fra to FreeBSD-udviklere, i at frigive operativsystemet på CD-ROM. Udover det, ansatte de Jordan Hubbard og David Greenman, til at kørt FreeBSD på deres servere. De sponsorerede FreeBSD-konferencer og udgav FreeBSD-relaterede bøger, inklusive The Complete FreeBSD af Greg Lehey. I 1997 var FreeBSD Walnut Creeks "mest succesrige produkt". Virksomheden omdøbte senere sig selv til FreeBSD Mall og senere iXsystems.

I dag bruges FreeBSD af mange it-virksomheder såsom IBM, Nokia, Juniper Networks og NetApp til at bygge deres produkter. Visse dele af Apples Mac OS X-operativsystem er baseret på FreeBSD.Både PlayStation 3 og Nintendo Switch-operativsystemet låner også visse komponenter fra FreeBSD, mens det operative system til PlayStation 4) er afledt af FreeBSD 9. Netflix, WhatsApp og FlightAware er også eksempler på store, succesrige og stærkt netværksorienterede virksomheder, som kører FreeBSD.

Funktioner

Grundlæggende

Prompt

FreeBSD indeholder en betydelig samling af serverrelateret software i basissystemet og ports, hvilket tillader FreeBSD at blive konfigureret og brugt som en mailserver, webserver, firewall, FTP-server,
DNS-server og en router.

FreeBSD kan installeres på en almindelig desktop eller en bærbar computer. X Window System er ikke installeret som standard, men skal installeres for at få,det grafiske miljø op at køre. En række skrivebordsmiljøer såsom GNOME, KDE og Xfce, såvel som Window Managers, så som Openbox, Fluxbox, dwm og bspwm, kan installeres. Fra FreeBSD 12 er der understøttelse af en moderne grafikkort tilgængelig via drm-kmod. Et stort antal trådløse adaptere understøttes også.

FreeBSD frigiver installation aftryk til flere understøttede platforme. Siden FreeBSD 13 har der været fokus på x86-64 og aarch64 platforme, som har Tier 1 support. x86-32 er en Tier 1-platform i FreeBSD 12, men er en Tier 2-platform i FreeBSD 13. 32-bit ARM-processorer, der bruger armv6 eller armv7, der er også Tier 2-understøttelse. til 64 bit versioner af PowerPC og RISC-V.

Interessen for RISC-V-arkitekturen har været stigende. MIPS-arkitekturporten er blevet markeret til udfasning, og der er intet aftryk for nogen aktuelt understøttet version. FreeBSD 12 understøtter SPARC, men der er intet aftryk til FreeBSD 13.

Netværk

FreeBSD's TCP/IP-stack er baseret på 4.2BSD implementeringen af TCP/IP, som i høj grad bidrog til den udbredte anvendelse af disse protokoller. FreeBSD understøtter også IPv6, SCTP, IPSec og trådløst netværk (Wi-Fi). IPv6- og IPSec-stakkene blev taget fra KAME projektet. Før version 11.0 understøttede FreeBSD også IPX og Apple Talk protokoller, men de anses for at være gamle og er nu udfaset.

Fra og med FreeBSD 5.4 blev der understøttelse for Common Address Redundancy Protocol (CARP) importeret fra OpenBSD projektet. CARP tillader flere noder ved at dele et sæt IP-adresser, så hvis en af noderne går ned, kan andre noder stadig betjene anmodningerne

Lagring

FreeBSD har flere unikke funktioner relateret til lagring. Soft opdateringer kan beskytte konsistensen af UFS filsystemet (udbredt på BSD'erne) i tilfælde af et systemnedbrud. Vil Filsystem-øjebliksbilleder tillade et billede af et UFS filsystem på et øjeblik at blive effektivt oprettet.

Snapshots tillader pålidelig backup af et live filsystem. GEOM er en modulær ramme, der giver RAID (niveauer 0, 1, 3 i øjebliks), fuld diskkryptering, journalføring, sammenkædning, caching og adgang til netværksunderstøttet lager. GEOM tillader opbygning af komplekse lagringsløsninger ved at kombinere ("kæde") disse mekanismer. FreeBSD giver to rammer til datakryptering: GBDE og Geli. Både GBDE og Geli fungerer på diskniveau. GBDE er skrevet af Poul Henning Kamp og distribueres under BSD-licensen med to klausuler. Geli er et alternativ til GBDE, der blev skrevet af Pawel Jakub Dawidek og dukkede først op i FreeBSD 6.0.

Fra 7.0 og frem understøtter FreeBSD ZFS filsystemet. ZFS var tidligere et open-source filsystem, som først blev udviklet af Sun Microsystems, men da Oracle købte Sun, blev ZFS et proprietært produkt. FreeBSD projektet udvikler og forbedrer dog stadig sin ZFS-implementering via OpenZFS projektet.

Sikkerhed

FreeBSD leverer adskillige sikkerhedsrelaterede funktioner, herunder adgangskontrollister (ACL'er), revision af sikkerhedshændelser, udvidede filsystemattributter, obligatoriske adgangskontroller (MAC) og finkornede funktioner. Disse sikkerhedsforbedringer blev udviklet af TrustedBSD projektet. Projektet blev grundlagt af Robert Watson med det formål at implementere koncepter fra Common Criteria for Information Technology Security Evaluation og Orange Book. Dette projekt er i gang, og mange af dets udvidelser er blevet integreret i FreeBSD. Projektet er støttet af en række forskellige organisationer, herunder DARPA, NSA, Network Associates Laboratories, Safeport Network Services, University of Pennsylvania, Yahoo!, McAfee Research, SPARTA, Apple Computer, nCircle Network Security, Google, University of Cambridge Computer Laboratory og mange andre som kan ses her.

Projektet har også overført NSA's FLASK/TE implementering fra SELinux til FreeBSD. Andet arbejde omfatter udviklingen af OpenBSM, en open source-implementering af Suns Basic Security Module (BSM) API og revisionslogfilformat, som understøtter et omfattende sikkerhedsrevisionssystem. Dette blev frigivet som en del af FreeBSD 6.2. Andet infrastrukturarbejde i FreeBSD udført som en del af TrustedBSD-projektet har inkluderet GEOM og OpenPAM.

De fleste komponenter i TrustedBSD projektet er blevet implenmeteret ind i hovedkilderne til FreeBSD. Derudover finder mange funktioner, når de er færdigmodnede, vej til andre operativsystemer. For eksempel er OpenPAM blevet adopteret af NetBSD. Desuden er TrustedBSD MAC Framework blevet adopteret af Apple til macOS.

FreeBSD leveres med tre forskellige firewallpakker: IPFW, pf og IPFilter. IPFW er FreeBSDs foretrukne firewall. pf blev taget fra OpenBSD og IPFilter blev overført til FreeBSD af Darren Reed.

Hentet fra OpenBSD er OpenSSH programmet inkluderet i standardinstallationen. OpenSSH er en gratis implementering af SSH protokollen og er en erstatning for telnet. I modsætning til telnet, krypterer OpenSSH al information (inklusive brugernavne og adgangskoder).

Tredjeparts software

Yderligere information:FreeBSD-ports

FreeBSD har et softwarelager med over 36.000 programmer, der er udviklet af tredjeparter. Eksempler inkluderer: vinduessystemer, webbrowsere, e-mail klienter, kontorpakker og så videre. Generelt udvikler projektet ikke selv denne software, kun rammerne for at tillade disse programmer at blive installeret, hvilket er kendt som Ports. Programmerne kan enten kompileres fra Kildekode ("ports"), forudsat at deres licensbetingelser tillader dette, eller downloades som prækompilerede binære filer ("pakker"). Ports understøtter de nuværende og stabile grene af FreeBSD. Ældre udgivelser understøttes ikke og fungerer muligvis ikke korrekt med en opdateret Ports.

Ports bruger Makefiles til automatisk at hente den ønskede applikations kildekode, enten fra et lokalt eller fjernlager, pakke det ud på systemet, anvende patches til det og kompilere det. Afhængigt af kildekodens størrelse kan kompilering tage lang tid, men det giver brugeren mere kontrol over processen og dens resultat. De fleste ports har også pakkemodparter (dvs. prækompilerede binære filer), hvilket giver brugeren et valg. Selvom denne metode er hurtigere, har brugeren færre tilpasningsmuligheder.

FreeBSD version 10.0 introducerede pakke håndteringen pkg som en erstatning for de tidligere brugte pakke håndtering. Det giver mulighed for installation, opgradering og fjernelse af både ports og pakker. Udover pkg kan PackageKit også bruges til at få adgang til Ports.

Jails

Hovedartikel: FreeBSD Jail

Jails blev først introduceret i FreeBSD version 4 en sikkerhedsmekanisme og en implementering af virtualisering på operativsystemniveau, der gør det muligt for brugeren at køre flere forekomster af et gæsteoperativsystem oven på en FreeBSD-vært. Det er en forbedret version af den traditionelle chroot mekanisme. En proces, der kører i et sådant jail, er ikke i stand til at få adgang til ressourcerne uden for det. Hvert jail har sit eget værtsnavn og IP adresse. Det er muligt at køre flere jails på samme tid, men kernen er delt mellem dem alle. Derfor kan kun software understøttet af FreeBSD kernen køres i et jail.

Virtualisering

Hovedartikel: bhyve

bhyve, en ny virtualiseringsløsning, som blev introduceret i FreeBSD 10.0. bhyve tillader en bruger at køre et antal gæsteoperativsystemer (FreeBSD, OpenBSD, Linux og Microsoft Windows samtidigt. Andre styresystemer såsom Illumos er planlagt. bhyve blev skrevet af Neel Natu og Peter Grehan og blev annonceret på BSDCan konferencen i 2011 for første gang. Hovedforskellen mellem bhyve og FreeBSD jails er, at jails er en virtualisering på operativsystemniveau og derfor begrænset til kun FreeBSD gæste systemer; men bhyve er en type 2 hypervisor og er ikke begrænset til kun FreeBSD-gæster. Til sammenligning er bhyve en teknologi, der ligner KVM, hvorimod er jail tættere på LXC containere eller Solaris zoner. Amazon EC2 AMI understøttes også via amazon-ssm-agent.

Siden FreeBSD 11.0 har der været understøttelse for at køre det som Dom0 privilegerede domæne for Xen type 1 hypervisoren. Support til at køre som DomU (gæst) har været tilgængelig siden FreeBSD 8.0.

VirtualBox (uden Extension Pack med lukket kildekode) og QEMU er tilgængelige på FreeBSD.

Kerne

FreeBSD's kerne giver support til nogle væsentlige opgaver såsom administration af processer, kommunikation, opstart og filsystemer. FreeBSD har en monolitisk kerne med et modulært design. Forskellige dele af kernen, såsom drivere, er designet som moduler. Brugeren kan indlæse og aflæse disse moduler til enhver tid. ULE er standardplanlæggeren i FreeBSD siden version 7.1, den understøtter SMP og SMT. FreeBSD kernen har også en skalerbar hændelsesmeddelelsesgrænseflade, kaldet kqueue. Det er blevet overført til andre BSD derivater såsom OpenBSD og NetBSD. Kernel threading blev introduceret i FreeBSD 5.0 ved at bruge en M:N threading model. Denne model fungerer godt i teorien, men den er svær at implementere og få operativsystemer understøtter den. Selvom FreeBSD's implementering af denne model fungerede, fungerede den ikke godt, så fra version 7.0 og fremefter begyndte FreeBSD at bruge en 1:1-trådingsmodel, kaldet libthr.

Udvikling

Styringsstruktur

Hovedartikel: FreeBSD Core Team

FreeBSD projektet drives af 95 udviklere (Core Team), som har adgang til hoved kildekode arkiverne og kan udvikle, fejlsøge eller forbedre enhver del af systemet. De fleste af udviklerne er frivillige, men få udviklere betales af nogle virksomheder. Der er flere slags udvalg, herunder kildebehandlere (base operativsystem), doc bidragsydere (dokumentations- og webstedsforfattere) og ports. Udover det er der (tredjepartsapplikationer portering og infrastruktur). Hvert andet år vælger FreeBSD udvalgene 9 medlemmer til FreeBSD Core Team, som er ansvarlig for den overordnede projektretning, fastsættelse og håndhævelse af projektregler og godkendelse af nye udvalg eller tildeling af adgang til kildekode arkiverne. En række ansvarsområder er officielt tildelt andre udviklingsteams af FreeBSD Core Team, for eksempel er ansvaret for at administrere tilgangen til Ports Management Team.

Ud over udviklere har FreeBSD tusindvis af "bidragydere". Bidragydere er også frivillige uden for FreeBSD-projektet, som indsender patches til overvejelse, da de ikke har direkte adgang til FreeBSD's kildekode arkiv. Udvalgene evaluerer derefter bidragydernes bidrag og beslutter, hvad de skal acceptere og afvise. En bidragyder, der indsender patches af høj kvalitet, bliver ofte bedt om at blive medlem af fællesskabet.

Versioner FreeBSD

FreeBSD udviklere opretholder to grene af samtidig udvikling. CURRENT grenen repræsenterer altid "bleeding edge" af FreeBSD udvikling. STABEL gren af FreeBSD oprettes for hvert større versionsnummer, hvorfra RELEASE udgives ca. en gang hver 4.-6. måned. Hvis en funktion er tilstrækkelig stabil og moden, vil den sandsynligvis blive backporteret (MFC eller Merge fra CURRENT som er et FreeBSD-udviklerslang) til STABLE grenen.

Fundament

Hjemmeside: FreeBSD Foundation

FreeBSD udvikling er delvist støttet af FreeBSD Foundation. Fonden er en non-profit organisation, der modtager donationer for at finansiere FreeBSD udvikling. Sådan finansiering er blevet brugt til at sponsorere udviklere til specifikke aktiviteter, købe hardware og netværksinfrastruktur, give rejsestipendier til udvikler topmøder og yde juridisk støtte til FreeBSD projektet.

Versionshistorik

FreeBSD 1 blev Udgivet 1 november 1993. Alle versionerne kan ses her.

Se også

  1. Berkeley Software Distribution
  2. Sammenligning af BSD operativsystemer
  3. Sammenligning af operativsystem kerner
  4. Sammenligning af operativsystemer
  5. Computer Systems Research Group