FreeBSD: Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med 'FreeBSD är ett gratis Unix-liknande operativsystem med öppen källkod som härstammar från Berkeley Software Distribution (BSD), som var baserat på Research Unix. Den första versionen av FreeBSD släpptes 1993. 2005 var FreeBSD det populäraste BSD-operativsystemet med öppen källkod och stod för mer än tre fjärdedelar av alla installerade och tillåtet licensierade BSD-system. FreeBSD har likheter med Linux, med två stora skillnader i omfattning och licensier...') |
Admin (diskussion | bidrag) |
||
Rad 20: | Rad 20: | ||
Idag används FreeBSD av många IT-företag som IBM, Nokia, Juniper Networks och NetApp för att bygga sina produkter.[16][17] Vissa delar av Apples Mac OS X-operativsystem är baserade på FreeBSD.[18] Både operativsystemet PlayStation 3 och Nintendo Switch lånar också vissa komponenter från FreeBSD, medan PlayStation 4-operativsystemet härrör från FreeBSD 9.Netflix,WhatsApp, och FlightAware är också exempel på stora, framgångsrika och starkt nätverksorienterade företag som kör FreeBSD. | Idag används FreeBSD av många IT-företag som IBM, Nokia, Juniper Networks och NetApp för att bygga sina produkter.[16][17] Vissa delar av Apples Mac OS X-operativsystem är baserade på FreeBSD.[18] Både operativsystemet PlayStation 3 och Nintendo Switch lånar också vissa komponenter från FreeBSD, medan PlayStation 4-operativsystemet härrör från FreeBSD 9.Netflix,WhatsApp, och FlightAware är också exempel på stora, framgångsrika och starkt nätverksorienterade företag som kör FreeBSD. | ||
==== Rättegång ==== | |||
386BSD och FreeBSD härleddes båda från BSD-utgåvor. I januari 1992 började Berkeley Software Design Inc. (BSDi) släppa BSD/386, senare kallat BSD/OS, ett operativsystem liknande FreeBSD och baserat på 4.3BSD Net/2. AT&T lämnade in en stämningsansökan mot BSDi och påstådd distribution av AT&T-källkod i strid med licensavtal. Rättegången avgjordes utanför domstol och de exakta villkoren avslöjades inte alla. Den enda som blev offentlig var att BSDi skulle migrera sin källbas till de nyare 4.4BSD-Lite2-källorna. Även om de inte var inblandade i rättstvisterna, föreslogs det för FreeBSD att de också skulle flytta till 4.4BSD-Lite2. FreeBSD 2.0, som släpptes i november 1994, var den första versionen av FreeBSD utan någon kod från AT&T. | |||
== Funktioner == | |||
=== Användningsfall === | |||
FreeBSD innehåller en betydande samling serverrelaterad programvara i bassystemet och portsamlingen, vilket gör att FreeBSD kan konfigureras och användas som bland annat e-postserver, webbserver, brandvägg, FTP-server, DNS-server och en router. | |||
FreeBSD kan installeras på en vanlig stationär eller bärbar dator. X Window System är inte installerat som standard, men är tillgängligt i FreeBSD-portsamlingen. Wayland (visningsserverprotokoll) är också tillgängligt för FreeBSD (stöds inofficiellt). Ett antal skrivbordsmiljöer som GNOME, KDE och Xfce, såväl som lätta fönsterhanterare som Openbox, Fluxbox, dwm och bspwm, är också tillgängliga för FreeBSD. Från och med FreeBSD 12 är stöd för en modern grafikstack tillgängligt via drm-kmod. Ett stort antal trådlösa adaptrar stöds. | |||
FreeBSD släpper installationsbilder för plattformar som stöds. Sedan FreeBSD 13 har fokus legat på x86-64 och aarch64-plattformar som har Tier 1-stöd. x86-32 är en Tier 1-plattform i FreeBSD 12 men är en Tier 2-plattform i FreeBSD 13. 32-bitars ARM-processorer som använder armv6 eller armv7 har också Tier 2-stöd. 64-bitarsversioner av PowerPC och RISC-V stöds också. Intresset för RISC-V-arkitekturen har ökat. MIPS-arkitekturporten har markerats för utfasning och det finns ingen bild för någon version som stöds för närvarande. FreeBSD 12 stöder SPARC men det finns ingen bild för FreeBSD 13. | |||
==== Nätverk ==== | |||
FreeBSD:s TCP/IP-stack är baserad på 4.2BSD-implementeringen av TCP/IP som i hög grad bidrog till det breda antagandet av dessa protokoll.[30] FreeBSD stöder även IPv6, SCTP, IPSec och trådlöst nätverk (Wi-Fi). IPv6- och IPSec-stackarna togs från KAME-projektet.Före version 11.0 stödde FreeBSD IPX- och AppleTalk-protokoll, men de anses vara gamla och har nu tagits bort. | |||
Från och med FreeBSD 5.4 importerades stöd för Common Address Redundancy Protocol (CARP) från OpenBSD-projektet. CARP tillåter flera noder att dela en uppsättning IP-adresser, så om en av noderna går ner kan andra noder fortfarande betjäna förfrågningarna | |||
==== Lagring ==== | |||
FreeBSD har flera unika funktioner relaterade till lagring. Mjuka uppdateringar kan skydda konsistensen hos UFS-filsystemet (används i stor utsträckning på BSD:erna) i händelse av en systemkraschMed ögonblicksbilder av filsystemet kan en bild av ett UFS-filsystem på ett ögonblick skapas effektivt. Ögonblicksbilder tillåter tillförlitlig säkerhetskopiering av ett levande filsystem. GEOM är ett modulärt ramverk som tillhandahåller RAID (nivåerna 0, 1, 3 för närvarande), full diskkryptering, journalföring, sammanlänkning, cachning och tillgång till nätverksstödd lagring. GEOM tillåter byggande av komplexa lagringslösningar som kombinerar ("kedja") dessa mekanismer. FreeBSD tillhandahåller två ramverk för datakryptering: GBDE och Geli. Både GBDE och Geli fungerar på disknivå. GBDE skrevs av Poul-Henning Kamp och distribueras under BSD-licensen med två klausuler. Geli är ett alternativ till GBDE som skrevs av Pawel Jakub Dawidek och dök upp först i FreeBSD 6.0. | |||
Från 7.0 och framåt stöder FreeBSD filsystemet ZFS. ZFS var tidigare ett filsystem med öppen källkod som först utvecklades av Sun Microsystems, men när Oracle förvärvade Sun blev ZFS en egenutvecklad produkt. Emellertid håller FreeBSD-projektet fortfarande på att utveckla och förbättra sin ZFS-implementering via OpenZFS-projektet. | |||
==== Säkerhet ==== | |||
FreeBSD tillhandahåller flera säkerhetsrelaterade funktioner, inklusive åtkomstkontrollistor (ACL), säkerhetshändelsegranskning, utökade filsystemattribut, obligatoriska åtkomstkontroller (MAC)[43] och finkorniga funktioner.[44] Dessa säkerhetsförbättringar utvecklades av TrustedBSD-projektet. Projektet grundades av Robert Watson med målet att implementera koncept från Common Criteria for Information Technology Security Evaluation och Orange Book. Detta projekt pågår[tidsram?] och många av dess tillägg har integrerats i FreeBSD.[45] Projektet stöds av en mängd olika organisationer, inklusive 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 och andra.[46] | |||
Projektet har också överfört NSA:s FLASK/TE-implementering från SELinux till FreeBSD. Annat arbete inkluderar utvecklingen av OpenBSM, en öppen källkodsimplementering av Suns Basic Security Module (BSM) API och revisionsloggfilformat, som stöder ett omfattande säkerhetsrevisionssystem. Detta skickades som en del av FreeBSD 6.2. Annat infrastrukturarbete i FreeBSD som utförts som en del av TrustedBSD-projektet har inkluderat GEOM och OpenPAM. | |||
De flesta komponenterna i TrustedBSD-projektet viks så småningom in i huvudkällorna för FreeBSD. Dessutom hittar många funktioner, när de väl har mognat, in i andra operativsystem. Till exempel har OpenPAM antagits av NetBSD.Dessutom har TrustedBSD MAC Framework antagits av Apple för macOS. | |||
FreeBSD levereras med tre olika brandväggspaket: IPFW, pf och IPFilter. IPFW är FreeBSD:s inbyggda brandvägg. pf togs från OpenBSD och IPFilter portades till FreeBSD av Darren Reed. | |||
Taget från OpenBSD, OpenSSH-programmet inkluderades i standardinstallationen. OpenSSH är en gratis implementering av SSH-protokollet och är en ersättning för telnet. Till skillnad från telnet, krypterar OpenSSH all information (inklusive användarnamn och lösenord). | |||
I november 2012 meddelade FreeBSD Security Team att hackare fick obehörig åtkomst på två av projektets servrar. Dessa servrar stängdes av omedelbart. Mer forskning visade att den första obehöriga åtkomsten av hackare inträffade den 19 september. Tydligen fick hackare tillgång till dessa servrar genom att stjäla SSH-nycklar från en av utvecklarna, inte genom att utnyttja en bugg i själva operativsystemet. Dessa två hackade servrar var en del av den infrastruktur som användes för att bygga programvarupaket från tredje part. FreeBSD Security Team kontrollerade integriteten för de binära paketen och meddelade att inga obehöriga ändringar gjordes i de binära paketen, men uppgav att de inte kunde garantera integriteten för paket som laddades ner mellan 19 september och 11 november | |||
==== Programvara från tredje part ==== | |||
Ytterligare information: FreeBSD-portar | |||
FreeBSD har ett programvarulager med över 30 000 applikationer som är utvecklade av tredje part. Exempel inkluderar: fönstersystem, webbläsare, e-postklienter, kontorssviter och så vidare. I allmänhet utvecklar inte projektet självt denna programvara, bara ramverket för att tillåta dessa program att installeras, vilket är känt som Ports-samlingen. Applikationer kan antingen kompileras från källkod ("portar"), förutsatt att deras licensvillkor tillåter detta, eller laddas ner som förkompilerade binärer ("paket").Ports-kollektionen stöder de nuvarande och stabila grenarna av FreeBSD. Äldre versioner stöds inte och kanske fungerar eller kanske inte fungerar korrekt med en uppdaterad Ports-samling. | |||
Portar använder Makefiles för att automatiskt hämta den önskade applikationens källkod, antingen från ett lokalt eller fjärrlager, packa upp det på systemet, applicera patchar på det och kompilera det.Beroende på storleken på källkoden kan kompileringen ta lång tid, men det ger användaren mer kontroll över processen och dess resultat. De flesta portar har också paketmotsvarigheter (d.v.s. förkompilerade binärer), vilket ger användaren ett val. Även om denna metod är snabbare, har användaren färre anpassningsalternativ. | |||
FreeBSD version 10.0 introducerade pakethanteraren pkg som en ersättning för de tidigare använda paketverktygen.Det är funktionellt likt apt och yum i Linux-distributioner. Det möjliggör installation, uppgradering och borttagning av både portar och paket. Förutom pkg kan PackageKit också användas för att komma åt Ports-samlingen. | |||
==== Fängelser ==== | |||
Först introducerades i FreeBSD version 4, är jails en säkerhetsmekanism och en implementering av virtualisering på operativsystemnivå som gör det möjligt för användaren att köra flera instanser av ett gästoperativsystem ovanpå en FreeBSD-värd. Det är en förbättrad version av den traditionella chroot-mekanismen. En process som körs inom ett sådant fängelse kan inte komma åt resurserna utanför det. Varje fängelse har sitt eget värdnamn och IP-adress. Det är möjligt att köra flera jails samtidigt, men kärnan delas mellan dem alla. Därför kan endast programvara som stöds av FreeBSD-kärnan köras i ett fängelse. | |||
==== Virtualisering ==== | |||
bhyve, en ny virtualiseringslösning, introducerades i FreeBSD 10.0. bhyve tillåter en användare att köra ett antal gästoperativsystem (FreeBSD, OpenBSD, Linux och Microsoft Windows) samtidigt. Andra operativsystem som Illumos planeras. bhyve skrevs av Neel Natu och Peter Grehan och tillkännagavs vid 2011 BSDCan-konferensen för första gången. Huvudskillnaden mellan bhyve och FreeBSD jails är att jails är en virtualisering på operativsystemnivå och därför begränsade till endast FreeBSD-gäster; men bhyve är en typ 2 hypervisor och är inte begränsad till endast FreeBSD-gäster. Som jämförelse är bhyve en liknande teknik som KVM medan fängelser är närmare LXC-behållare eller Solaris-zoner. Amazon EC2 AMI-instanser stöds också via amazon-ssm-agent | |||
Sedan FreeBSD 11.0 har det funnits stöd för att köras som Dom0-privilegierad domän för Xen typ 1-hypervisorn.[75] Stöd för att köra som DomU (gäst) har varit tillgängligt sedan FreeBSD 8.0. | |||
VirtualBox (utan Extension Pack med sluten källkod) och QEMU är tillgängliga på FreeBSD. | |||
==== OS-kompatibilitetsskikt ==== | |||
De flesta program som körs på Linux kan köras på FreeBSD med hjälp av ett valfritt inbyggt kompatibilitetslager. Därför kan de flesta Linux-binärfiler köras på FreeBSD, inklusive vissa proprietära applikationer som endast distribueras i binär form. Detta kompatibilitetslager är inte en emulering; Linuxs systemanropsgränssnitt är implementerat i FreeBSD:s kärna och följaktligen behandlas Linux körbara bilder och delade bibliotek på samma sätt som FreeBSD:s ursprungliga körbara bilder och delade bibliotek. Dessutom tillhandahåller FreeBSD kompatibilitetslager för flera andra Unix-liknande operativsystem, förutom Linux, såsom BSD/OS och SVR4, men det är vanligare att användare kompilerar dessa program direkt på FreeBSD. | |||
Ingen märkbar prestandastraff jämfört med inhemska FreeBSD-program har noterats när Linux-binärer körs, och i vissa fall kan dessa till och med fungera smidigare än på Linux.Lagret är dock inte helt sömlöst, och vissa Linux-binärfiler är oanvändbara eller endast delvis användbara på FreeBSD. Det finns stöd för systemanrop upp till version 2.6.18, tillgängligt sedan FreeBSD 7.0. Från och med release 10.3 kan FreeBSD köra 64-bitars Linux-binärfiler. | |||
FreeBSD har implementerat ett antal Microsoft Windows-native NDIS-kärngränssnitt för att tillåta FreeBSD att köra (annars) nätverksdrivrutiner för endast Windows. | |||
Vinkompatibilitetslagret, som tillåter körning av många Windows-applikationer, särskilt spel, utan en (licensierad) kopia av Microsoft Windows, är tillgängligt för FreeBSD. | |||
==== Kärna ==== | |||
FreeBSD:s kärna ger stöd för vissa viktiga uppgifter som hantering av processer, kommunikation, uppstart och filsystem. FreeBSD har en monolitisk kärna[83] med en modulär design. Olika delar av kärnan, såsom drivrutiner, är designade som moduler. Användaren kan ladda och ladda ur dessa moduler när som helst.[84] ULE är standardschemaläggaren i FreeBSD sedan version 7.1, den stöder SMP och SMT.[85] FreeBSD-kärnan har också ett skalbart gränssnitt för händelsemeddelanden, som heter kqueue. Det har porterats till andra BSD-derivat som OpenBSD och NetBSD.[86] Kärntrådning introducerades i FreeBSD 5.0, med en M:N-gängningsmodell. Denna modell fungerar bra i teorin,[87][88] men den är svår att implementera och få operativsystem stödjer den. Även om FreeBSD:s implementering av denna modell fungerade, fungerade den inte bra, så från version 7.0 och framåt började FreeBSD använda en 1:1-trådningsmodell, kallad libthr. | |||
==== Nerladdning ==== | |||
https://www.freebsd.org/where/ |
Nuvarande version från 15 december 2022 kl. 07.44
FreeBSD är ett gratis Unix-liknande operativsystem med öppen källkod som härstammar från Berkeley Software Distribution (BSD), som var baserat på Research Unix. Den första versionen av FreeBSD släpptes 1993. 2005 var FreeBSD det populäraste BSD-operativsystemet med öppen källkod och stod för mer än tre fjärdedelar av alla installerade och tillåtet licensierade BSD-system.
FreeBSD har likheter med Linux, med två stora skillnader i omfattning och licensiering: FreeBSD upprätthåller ett komplett system, det vill säga projektet levererar en kärna, drivrutiner, användarlandverktyg och dokumentation, i motsats till att Linux bara levererar en kärna och drivrutiner och förlitar sig på på tredje part för systemprogramvara;FreeBSD-källkoden släpps i allmänhet under en tillåtande BSD-licens, i motsats till copyleft GPL som används av Linux.
FreeBSD-projektet inkluderar ett säkerhetsteam som övervakar all mjukvara som levereras i basdistributionen. Ett brett utbud av ytterligare tredjepartsapplikationer kan installeras från binära paket med hjälp av pakethanteringssystemet pkg eller från källkod via FreeBSD-portar,[6] eller genom att manuellt kompilera källkod.
Mycket av FreeBSDs kodbas har blivit en integrerad del av andra operativsystem som Darwin (basen för macOS, iOS, iPadOS, watchOS och tvOS), TrueNAS (ett NAS/SAN-operativsystem med öppen källkod) och systemmjukvaran för spelkonsolerna PlayStation 3 och PlayStation 4. De andra BSD-systemen (OpenBSD, NetBSD och DragonFly BSD) innehåller också en stor mängd FreeBSD-kod, och vice versa.
Bakgrund
1974 förvärvade professor Bob Fabry vid University of California, Berkeley, en Unix-källlicens från AT&T. Med stöd av finansiering från DARPA började Computer Systems Research Group att modifiera och förbättra AT&T Research Unix. De kallade denna modifierade version "Berkeley Unix" eller "Berkeley Software Distribution" (BSD), och implementerade funktioner som TCP/IP, virtuellt minne och Berkeley Fast File System. BSD-projektet grundades 1976 av Bill Joy. Men eftersom BSD innehöll kod från AT&T Unix, måste alla mottagare först skaffa en licens från AT&T för att kunna använda BSD.[10]
I juni 1989 släpptes "Networking Release 1" eller helt enkelt Net-1 – den första offentliga versionen av BSD. Efter att ha släppt Net-1 föreslog Keith Bostic, en utvecklare av BSD, att ersätta all AT&T-kod med fritt omdistribuerbar kod under den ursprungliga BSD-licensen. Arbetet med att ersätta AT&T-koden började och efter 18 månader byttes mycket av AT&T-koden ut. Men sex filer som innehåller AT&T-kod fanns kvar i kärnan. BSD-utvecklarna bestämde sig för att släppa "Networking Release 2" (Net-2) utan dessa sex filer. Net-2 släpptes 1991
Födelse av FreeBSD
År 1992, flera månader efter lanseringen av Net-2, skrev William och Lynne Jolitz ersättningar för de sex AT&T-filerna, porterade BSD till Intel 80386-baserade mikroprocessorer och kallade deras nya operativsystem 386BSD. De släppte 386BSD via en anonym FTP-server.[10] Utvecklingsflödet för 386BSD var långsamt, och efter en period av försummelse beslutade en grupp 386BSD-användare att förgrena sig på egen hand så att de kunde hålla operativsystemet uppdaterat. Den 19 juni 1993 valdes namnet FreeBSD för projektet.
Den första versionen av FreeBSD släpptes i november 1993.
I början av projektets start gick ett företag vid namn Walnut Creek CDROM, på förslag från de två FreeBSD-utvecklarna, med på att släppa operativsystemet på CD-ROM. Utöver det anställde företaget Jordan Hubbard och David Greenman, drev FreeBSD på sina servrar, sponsrade FreeBSD-konferenser och publicerade FreeBSD-relaterade böcker, inklusive The Complete FreeBSD av Greg Lehey. År 1997 var FreeBSD Walnut Creeks "mest framgångsrika produkt". Företaget bytte senare namn till The FreeBSD Mall och senare iXsystems.
Idag används FreeBSD av många IT-företag som IBM, Nokia, Juniper Networks och NetApp för att bygga sina produkter.[16][17] Vissa delar av Apples Mac OS X-operativsystem är baserade på FreeBSD.[18] Både operativsystemet PlayStation 3 och Nintendo Switch lånar också vissa komponenter från FreeBSD, medan PlayStation 4-operativsystemet härrör från FreeBSD 9.Netflix,WhatsApp, och FlightAware är också exempel på stora, framgångsrika och starkt nätverksorienterade företag som kör FreeBSD.
Rättegång
386BSD och FreeBSD härleddes båda från BSD-utgåvor. I januari 1992 började Berkeley Software Design Inc. (BSDi) släppa BSD/386, senare kallat BSD/OS, ett operativsystem liknande FreeBSD och baserat på 4.3BSD Net/2. AT&T lämnade in en stämningsansökan mot BSDi och påstådd distribution av AT&T-källkod i strid med licensavtal. Rättegången avgjordes utanför domstol och de exakta villkoren avslöjades inte alla. Den enda som blev offentlig var att BSDi skulle migrera sin källbas till de nyare 4.4BSD-Lite2-källorna. Även om de inte var inblandade i rättstvisterna, föreslogs det för FreeBSD att de också skulle flytta till 4.4BSD-Lite2. FreeBSD 2.0, som släpptes i november 1994, var den första versionen av FreeBSD utan någon kod från AT&T.
Funktioner
Användningsfall
FreeBSD innehåller en betydande samling serverrelaterad programvara i bassystemet och portsamlingen, vilket gör att FreeBSD kan konfigureras och användas som bland annat e-postserver, webbserver, brandvägg, FTP-server, DNS-server och en router.
FreeBSD kan installeras på en vanlig stationär eller bärbar dator. X Window System är inte installerat som standard, men är tillgängligt i FreeBSD-portsamlingen. Wayland (visningsserverprotokoll) är också tillgängligt för FreeBSD (stöds inofficiellt). Ett antal skrivbordsmiljöer som GNOME, KDE och Xfce, såväl som lätta fönsterhanterare som Openbox, Fluxbox, dwm och bspwm, är också tillgängliga för FreeBSD. Från och med FreeBSD 12 är stöd för en modern grafikstack tillgängligt via drm-kmod. Ett stort antal trådlösa adaptrar stöds.
FreeBSD släpper installationsbilder för plattformar som stöds. Sedan FreeBSD 13 har fokus legat på x86-64 och aarch64-plattformar som har Tier 1-stöd. x86-32 är en Tier 1-plattform i FreeBSD 12 men är en Tier 2-plattform i FreeBSD 13. 32-bitars ARM-processorer som använder armv6 eller armv7 har också Tier 2-stöd. 64-bitarsversioner av PowerPC och RISC-V stöds också. Intresset för RISC-V-arkitekturen har ökat. MIPS-arkitekturporten har markerats för utfasning och det finns ingen bild för någon version som stöds för närvarande. FreeBSD 12 stöder SPARC men det finns ingen bild för FreeBSD 13.
Nätverk
FreeBSD:s TCP/IP-stack är baserad på 4.2BSD-implementeringen av TCP/IP som i hög grad bidrog till det breda antagandet av dessa protokoll.[30] FreeBSD stöder även IPv6, SCTP, IPSec och trådlöst nätverk (Wi-Fi). IPv6- och IPSec-stackarna togs från KAME-projektet.Före version 11.0 stödde FreeBSD IPX- och AppleTalk-protokoll, men de anses vara gamla och har nu tagits bort.
Från och med FreeBSD 5.4 importerades stöd för Common Address Redundancy Protocol (CARP) från OpenBSD-projektet. CARP tillåter flera noder att dela en uppsättning IP-adresser, så om en av noderna går ner kan andra noder fortfarande betjäna förfrågningarna
Lagring
FreeBSD har flera unika funktioner relaterade till lagring. Mjuka uppdateringar kan skydda konsistensen hos UFS-filsystemet (används i stor utsträckning på BSD:erna) i händelse av en systemkraschMed ögonblicksbilder av filsystemet kan en bild av ett UFS-filsystem på ett ögonblick skapas effektivt. Ögonblicksbilder tillåter tillförlitlig säkerhetskopiering av ett levande filsystem. GEOM är ett modulärt ramverk som tillhandahåller RAID (nivåerna 0, 1, 3 för närvarande), full diskkryptering, journalföring, sammanlänkning, cachning och tillgång till nätverksstödd lagring. GEOM tillåter byggande av komplexa lagringslösningar som kombinerar ("kedja") dessa mekanismer. FreeBSD tillhandahåller två ramverk för datakryptering: GBDE och Geli. Både GBDE och Geli fungerar på disknivå. GBDE skrevs av Poul-Henning Kamp och distribueras under BSD-licensen med två klausuler. Geli är ett alternativ till GBDE som skrevs av Pawel Jakub Dawidek och dök upp först i FreeBSD 6.0.
Från 7.0 och framåt stöder FreeBSD filsystemet ZFS. ZFS var tidigare ett filsystem med öppen källkod som först utvecklades av Sun Microsystems, men när Oracle förvärvade Sun blev ZFS en egenutvecklad produkt. Emellertid håller FreeBSD-projektet fortfarande på att utveckla och förbättra sin ZFS-implementering via OpenZFS-projektet.
Säkerhet
FreeBSD tillhandahåller flera säkerhetsrelaterade funktioner, inklusive åtkomstkontrollistor (ACL), säkerhetshändelsegranskning, utökade filsystemattribut, obligatoriska åtkomstkontroller (MAC)[43] och finkorniga funktioner.[44] Dessa säkerhetsförbättringar utvecklades av TrustedBSD-projektet. Projektet grundades av Robert Watson med målet att implementera koncept från Common Criteria for Information Technology Security Evaluation och Orange Book. Detta projekt pågår[tidsram?] och många av dess tillägg har integrerats i FreeBSD.[45] Projektet stöds av en mängd olika organisationer, inklusive 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 och andra.[46]
Projektet har också överfört NSA:s FLASK/TE-implementering från SELinux till FreeBSD. Annat arbete inkluderar utvecklingen av OpenBSM, en öppen källkodsimplementering av Suns Basic Security Module (BSM) API och revisionsloggfilformat, som stöder ett omfattande säkerhetsrevisionssystem. Detta skickades som en del av FreeBSD 6.2. Annat infrastrukturarbete i FreeBSD som utförts som en del av TrustedBSD-projektet har inkluderat GEOM och OpenPAM.
De flesta komponenterna i TrustedBSD-projektet viks så småningom in i huvudkällorna för FreeBSD. Dessutom hittar många funktioner, när de väl har mognat, in i andra operativsystem. Till exempel har OpenPAM antagits av NetBSD.Dessutom har TrustedBSD MAC Framework antagits av Apple för macOS.
FreeBSD levereras med tre olika brandväggspaket: IPFW, pf och IPFilter. IPFW är FreeBSD:s inbyggda brandvägg. pf togs från OpenBSD och IPFilter portades till FreeBSD av Darren Reed.
Taget från OpenBSD, OpenSSH-programmet inkluderades i standardinstallationen. OpenSSH är en gratis implementering av SSH-protokollet och är en ersättning för telnet. Till skillnad från telnet, krypterar OpenSSH all information (inklusive användarnamn och lösenord).
I november 2012 meddelade FreeBSD Security Team att hackare fick obehörig åtkomst på två av projektets servrar. Dessa servrar stängdes av omedelbart. Mer forskning visade att den första obehöriga åtkomsten av hackare inträffade den 19 september. Tydligen fick hackare tillgång till dessa servrar genom att stjäla SSH-nycklar från en av utvecklarna, inte genom att utnyttja en bugg i själva operativsystemet. Dessa två hackade servrar var en del av den infrastruktur som användes för att bygga programvarupaket från tredje part. FreeBSD Security Team kontrollerade integriteten för de binära paketen och meddelade att inga obehöriga ändringar gjordes i de binära paketen, men uppgav att de inte kunde garantera integriteten för paket som laddades ner mellan 19 september och 11 november
Programvara från tredje part
Ytterligare information: FreeBSD-portar
FreeBSD har ett programvarulager med över 30 000 applikationer som är utvecklade av tredje part. Exempel inkluderar: fönstersystem, webbläsare, e-postklienter, kontorssviter och så vidare. I allmänhet utvecklar inte projektet självt denna programvara, bara ramverket för att tillåta dessa program att installeras, vilket är känt som Ports-samlingen. Applikationer kan antingen kompileras från källkod ("portar"), förutsatt att deras licensvillkor tillåter detta, eller laddas ner som förkompilerade binärer ("paket").Ports-kollektionen stöder de nuvarande och stabila grenarna av FreeBSD. Äldre versioner stöds inte och kanske fungerar eller kanske inte fungerar korrekt med en uppdaterad Ports-samling.
Portar använder Makefiles för att automatiskt hämta den önskade applikationens källkod, antingen från ett lokalt eller fjärrlager, packa upp det på systemet, applicera patchar på det och kompilera det.Beroende på storleken på källkoden kan kompileringen ta lång tid, men det ger användaren mer kontroll över processen och dess resultat. De flesta portar har också paketmotsvarigheter (d.v.s. förkompilerade binärer), vilket ger användaren ett val. Även om denna metod är snabbare, har användaren färre anpassningsalternativ.
FreeBSD version 10.0 introducerade pakethanteraren pkg som en ersättning för de tidigare använda paketverktygen.Det är funktionellt likt apt och yum i Linux-distributioner. Det möjliggör installation, uppgradering och borttagning av både portar och paket. Förutom pkg kan PackageKit också användas för att komma åt Ports-samlingen.
Fängelser
Först introducerades i FreeBSD version 4, är jails en säkerhetsmekanism och en implementering av virtualisering på operativsystemnivå som gör det möjligt för användaren att köra flera instanser av ett gästoperativsystem ovanpå en FreeBSD-värd. Det är en förbättrad version av den traditionella chroot-mekanismen. En process som körs inom ett sådant fängelse kan inte komma åt resurserna utanför det. Varje fängelse har sitt eget värdnamn och IP-adress. Det är möjligt att köra flera jails samtidigt, men kärnan delas mellan dem alla. Därför kan endast programvara som stöds av FreeBSD-kärnan köras i ett fängelse.
Virtualisering
bhyve, en ny virtualiseringslösning, introducerades i FreeBSD 10.0. bhyve tillåter en användare att köra ett antal gästoperativsystem (FreeBSD, OpenBSD, Linux och Microsoft Windows) samtidigt. Andra operativsystem som Illumos planeras. bhyve skrevs av Neel Natu och Peter Grehan och tillkännagavs vid 2011 BSDCan-konferensen för första gången. Huvudskillnaden mellan bhyve och FreeBSD jails är att jails är en virtualisering på operativsystemnivå och därför begränsade till endast FreeBSD-gäster; men bhyve är en typ 2 hypervisor och är inte begränsad till endast FreeBSD-gäster. Som jämförelse är bhyve en liknande teknik som KVM medan fängelser är närmare LXC-behållare eller Solaris-zoner. Amazon EC2 AMI-instanser stöds också via amazon-ssm-agent
Sedan FreeBSD 11.0 har det funnits stöd för att köras som Dom0-privilegierad domän för Xen typ 1-hypervisorn.[75] Stöd för att köra som DomU (gäst) har varit tillgängligt sedan FreeBSD 8.0.
VirtualBox (utan Extension Pack med sluten källkod) och QEMU är tillgängliga på FreeBSD.
OS-kompatibilitetsskikt
De flesta program som körs på Linux kan köras på FreeBSD med hjälp av ett valfritt inbyggt kompatibilitetslager. Därför kan de flesta Linux-binärfiler köras på FreeBSD, inklusive vissa proprietära applikationer som endast distribueras i binär form. Detta kompatibilitetslager är inte en emulering; Linuxs systemanropsgränssnitt är implementerat i FreeBSD:s kärna och följaktligen behandlas Linux körbara bilder och delade bibliotek på samma sätt som FreeBSD:s ursprungliga körbara bilder och delade bibliotek. Dessutom tillhandahåller FreeBSD kompatibilitetslager för flera andra Unix-liknande operativsystem, förutom Linux, såsom BSD/OS och SVR4, men det är vanligare att användare kompilerar dessa program direkt på FreeBSD.
Ingen märkbar prestandastraff jämfört med inhemska FreeBSD-program har noterats när Linux-binärer körs, och i vissa fall kan dessa till och med fungera smidigare än på Linux.Lagret är dock inte helt sömlöst, och vissa Linux-binärfiler är oanvändbara eller endast delvis användbara på FreeBSD. Det finns stöd för systemanrop upp till version 2.6.18, tillgängligt sedan FreeBSD 7.0. Från och med release 10.3 kan FreeBSD köra 64-bitars Linux-binärfiler.
FreeBSD har implementerat ett antal Microsoft Windows-native NDIS-kärngränssnitt för att tillåta FreeBSD att köra (annars) nätverksdrivrutiner för endast Windows.
Vinkompatibilitetslagret, som tillåter körning av många Windows-applikationer, särskilt spel, utan en (licensierad) kopia av Microsoft Windows, är tillgängligt för FreeBSD.
Kärna
FreeBSD:s kärna ger stöd för vissa viktiga uppgifter som hantering av processer, kommunikation, uppstart och filsystem. FreeBSD har en monolitisk kärna[83] med en modulär design. Olika delar av kärnan, såsom drivrutiner, är designade som moduler. Användaren kan ladda och ladda ur dessa moduler när som helst.[84] ULE är standardschemaläggaren i FreeBSD sedan version 7.1, den stöder SMP och SMT.[85] FreeBSD-kärnan har också ett skalbart gränssnitt för händelsemeddelanden, som heter kqueue. Det har porterats till andra BSD-derivat som OpenBSD och NetBSD.[86] Kärntrådning introducerades i FreeBSD 5.0, med en M:N-gängningsmodell. Denna modell fungerar bra i teorin,[87][88] men den är svår att implementera och få operativsystem stödjer den. Även om FreeBSD:s implementering av denna modell fungerade, fungerade den inte bra, så från version 7.0 och framåt började FreeBSD använda en 1:1-trådningsmodell, kallad libthr.