NetBSD
Utvecklare | NetBSD Foundation |
---|---|
OS-familjen | Unix ( BSD ) |
Arbetstillstånd | Nuvarande |
Källmodell | Öppen källa |
Initial release | 19 april 1993 |
Senaste släppningen | 9.3 / 4 augusti 2022 |
Senaste förhandsvisningen | 9.99.x / Dagliga byggnader |
Förvar | |
Pakethanterare | pkgsrc |
Plattformar | Alpha , ARM , x86 ( x86-32 och x86-64 ), PA-RISC , 68k , MIPS , PowerPC , SH3 , SPARC , RISC-V , VAX |
Typ av kärna | Monolitisk med dynamiskt laddningsbara moduler , rumpkärna |
Användarland | BSD |
Standardanvändargränssnitt _ |
Unix-skal |
Licens | 2-klausul BSD-licens |
Officiell hemsida |
NetBSD är ett gratis Unix- operativsystem med öppen källkod baserat på Berkeley Software Distribution (BSD). Det var den första BSD-avkomlingen med öppen källkod som officiellt släpptes efter att 386BSD splittrades . Den fortsätter att utvecklas aktivt och är tillgänglig för många plattformar, inklusive servrar, stationära datorer, handhållna enheter och inbyggda system .
NetBSD-projektet fokuserar på kodtydlighet, noggrann design och portabilitet över många datorarkitekturer . Dess källkod är allmänt tillgänglig och tillåten licensierad .
Historia
NetBSD härleddes ursprungligen från 4.3BSD-Reno-utgåvan av Berkeley Software Distribution från Computer Systems Research Group vid University of California, Berkeley , via deras Net/2- källkodsversion och 386BSD - projektet. NetBSD-projektet började som ett resultat av frustration inom 386BSD-utvecklargemenskapen över takten och riktningen för operativsystemets utveckling. De fyra grundarna av NetBSD-projektet, Chris Demetriou, Theo de Raadt , Adam Glass och Charles Hannum, ansåg att en mer öppen utvecklingsmodell skulle gynna projektet: en centrerad på bärbar, ren, korrekt kod. De syftade till att producera ett enhetligt, multi-plattform, produktionskvalitet, BSD-baserat operativsystem. Namnet "NetBSD" valdes baserat på betydelsen och tillväxten av nätverk som Internet vid den tiden, och den distribuerade, samarbetande karaktären av dess utveckling.
NetBSD-källkodsförrådet etablerades den 21 mars 1993 och den första officiella utgåvan, NetBSD 0.8, gjordes den 19 april 1993. Denna härleddes från 386BSD 0.1 plus version 0.2.2 inofficiella patchkit, med flera program från Net/2 release saknas från 386BSD återintegrerad, och olika andra förbättringar. Den första multiplattformsutgåvan, NetBSD 1.0, gjordes i oktober 1994, och eftersom den uppdaterades med 4.4BSD-Lite-källor var den fri från all lagligt belastad 4.3BSD Net/2-kod. Även 1994, av omtvistade skäl, togs en av grundarna, Theo de Raadt, bort från projektet. Han grundade senare ett nytt projekt, OpenBSD , från en splittrad version av NetBSD 1.0 nära slutet av 1995. 1998 introducerade NetBSD 1.3 samlingen pkgsrc -paket.
Fram till 2004 gjordes NetBSD 1.x-utgåvor med ungefär årliga intervall, med mindre "patch"-släpp däremellan. Från release 2.0 och framåt använder NetBSD semantisk versionshantering och varje större NetBSD-utgåva motsvarar ett ökat huvudversionsnummer, dvs de större utgåvorna efter 2.0 är 3.0, 4.0 och så vidare. De tidigare mindre utgåvorna är nu uppdelade i två kategorier: xy "stabila" underhållsutgåvor och xyz -utgåvor som endast innehåller säkerhet och kritiska korrigeringar.
Funktioner
Bärbarhet
Som projektets motto ( "Naturligtvis körs NetBSD" ) antyder, har NetBSD porterats till ett stort antal 32- och 64-bitars arkitekturer . Dessa sträcker sig från VAX minidatorer till Pocket PC PDA :er . Från och med 2019 stöder NetBSD 59 hårdvaruplattformar (över 16 olika instruktionsuppsättningar ). Kärnan och användarlandet för dessa plattformar är alla byggda från ett centralt enhetligt källkodsträd som hanteras av CVS . För närvarande, till skillnad från andra kärnor som μClinux , kräver NetBSD-kärnan närvaron av en MMU i en given målarkitektur.
NetBSD:s portabilitet underlättas av användningen av hårdvaruabstraktionslagergränssnitt för hårdvaruåtkomst på låg nivå, såsom bussingång /utgång eller DMA . Med hjälp av detta bärbarhetslager drivrutiner delas upp i "maskinoberoende" och "maskinberoende" komponenter. Detta gör en enskild drivrutin lätt att använda på flera plattformar genom att dölja detaljer om hårdvaruåtkomst, och minskar arbetet med att porta den till ett nytt system.
Detta tillåter en viss enhetsdrivrutin för ett PCI- kort att fungera utan ändringar, oavsett om det är i en PCI-plats på en IA-32 , Alpha , PowerPC , SPARC eller annan arkitektur med en PCI-buss. Dessutom kan en enda drivrutin för en specifik enhet fungera via flera olika bussar, som ISA , PCI eller PC Card .
Detta plattformsoberoende underlättar utvecklingen av inbyggda system , särskilt sedan NetBSD 1.6, när hela verktygskedjan av kompilatorer , assemblerare , länkare och andra verktyg stödjer korskompilering fullt ut .
År 2005, som en demonstration av NetBSD:s portabilitet och lämplighet för inbyggda applikationer, designade och demonstrerade Technologic Systems, en leverantör av hårdvara för inbyggda system, en NetBSD-driven köksbrödrost .
Kommersiella portar till inbäddade plattformar, inklusive AMD Geode LX800, Freescale PowerQUICC- processorer, Marvell Orion, AMCC 405 -familjen PowerPC-processorer, Intel XScale IOP- och IXP-serien, var tillgängliga från och stöddes av Wasabi Systems.
Bärbar byggram
NetBSD korskompileringsramverket (även känt som "build.sh") låter en utvecklare bygga ett komplett NetBSD-system för en arkitektur från ett kraftfullare system med olika arkitekturer (korskompilering), inklusive på ett annat operativsystem ( ramverket stöder de flesta POSIX- kompatibla system). Flera inbäddade system som använder NetBSD har inte krävt någon ytterligare mjukvaruutveckling förutom verktygskedja och målåtervärd.
Samlingen av pkgsrc-paket
NetBSD har pkgsrc (förkortning för "paketkälla"), ett ramverk för att bygga och hantera tredjeparts programvarupaket . Pkgsrc-samlingen består av mer än 20 000 paket från och med oktober 2019. Att bygga och installera paket som KDE , GNOME , Apache HTTP-servern eller Perl utförs genom att använda ett system med makefiler . Detta kan automatiskt hämta källkoden, packa upp, korrigera, konfigurera, bygga och installera paketet så att det kan tas bort igen senare. Ett alternativ till att kompilera från källkod är att använda ett förkompilerat binärt paket. I båda fallen kommer eventuella förutsättningar/beroenden att installeras automatiskt av paketsystemet, utan behov av manuellt ingripande.
pkgsrc stöder inte bara NetBSD, utan också flera andra BSD-varianter som FreeBSD och Darwin / Mac OS X och andra Unix-liknande operativsystem som Linux , Solaris , IRIX och andra, såväl som Interix . pkgsrc antogs tidigare som det officiella pakethanteringssystemet för DragonFly BSD .
Symmetrisk multiprocessing
NetBSD har stött SMP sedan NetBSD 2.0 släpptes 2004, som initialt implementerades med hjälp av jättelåsmetoden . Under utvecklingscykeln av NetBSD 5-utgåvan gjordes ett stort arbete för att förbättra SMP-stödet; de flesta av kärnsubsystemen modifierades för att använda den finkorniga låsmetoden. Nya synkroniseringsprimitiver implementerades och schemaläggningsaktiveringar ersattes med en 1:1-gängningsmodell i februari 2007. En skalbar M2-trådschemaläggare implementerades, även om den gamla 4.4BSD-schemaläggaren fortfarande är standard men modifierades för att skala med SMP. Trådade mjukvaruavbrott implementerades för att förbättra synkroniseringen. Det virtuella minnessystemet , minnesallokatorn och fällhanteringen gjordes MP-säkra. Filsystemets ramverk, inklusive VFS och större filsystem, modifierades för att vara MP-säkra. Sedan april 2008 är de enda delsystemen som körs med ett jättelås nätverksprotokollen och de flesta drivrutiner .
säkerhet
NetBSD tillhandahåller olika funktioner inom säkerhetsområdet. Kernel Authorization-ramverket (eller Kauth) är ett undersystem som hanterar alla auktoriseringsförfrågningar inuti kärnan och används som systemomfattande säkerhetspolicy. Det tillåter externa moduler att plugga in auktoriseringsprocessen. NetBSD innehåller också funktioner för att begränsa utnyttjandet, ASLR , KASLR, restricted mprotect() och Segvguard från PaX -projektet och GCC Stack Smashing Protection (SSP, eller även känd som ProPolice, aktiverad som standard sedan NetBSD 6.0) kompilatortillägg. Verified Executables (eller Veriexec) är ett undersystem för filintegritet i kärnan i NetBSD. Det låter användaren ställa in digitala fingeravtryck (hash) för filer och vidta ett antal olika åtgärder om filerna inte matchar deras fingeravtryck. Till exempel kan man tillåta Perl att köra endast skript som matchar deras fingeravtryck. Den kryptografiska enhetsdrivrutinen (CGD) tillåter användning av diskar eller partitioner (inklusive CD- och DVD-skivor) för krypterad lagring.
Virtualisering
Xen virtuell maskinmonitor har stöds i NetBSD sedan release 3.0 . Användningen av Xen kräver en speciell uppstartsmiljö före kärnan som laddar en Xen-specialiserad kärna som "värd OS" (Dom0). Valfritt antal "gäst-OS" (DomU) virtualiserade datorer, med eller utan specifikt Xen/DomU-stöd, kan köras parallellt med lämpliga hårdvaruresurser.
Behovet av en tredjepartshanterare, som GRUB, eliminerades med NetBSD 5:s Xen-kompatibla starthanterare. NetBSD 6 som en Dom0 har benchmarkats jämförbart med Linux, med bättre prestanda än Linux i vissa tester.
Från och med NetBSD 9.0 tillhandahålls accelererad virtualisering genom den inbyggda hypervisorn NVMM (NetBSD Virtual Machine Monitor). Den tillhandahåller ett virtualiserings-API, libnvmm
, som kan utnyttjas av emulatorer som QEMU . En unik egenskap hos NVMM är att kärnan aldrig kommer åt gäst-VM-minnet, utan bara skapar det. Intels Hardware Accelerated Execution Manager (HAXM) tillhandahåller en alternativ lösning för acceleration i QEMU endast för Intel-processorer, liknande Linuxs KVM .
NetBSD 5.0 introducerade rump kernel , en arkitektur för att köra drivrutiner i användarutrymmet genom att emulera anrop till kernel-space. Denna anykernel-arkitektur tillåter att lägga till stöd för NetBSD-drivrutiner till andra kärnarkitekturer, allt från exokernelar till monolitiska kärnor .
Lagring
NetBSD innehåller många företagsfunktioner som iSCSI , ett journalfilsystem , logisk volymhantering och ZFS -filsystemet.
Bio (4) -gränssnittet för leverantörs-agnostisk RAID- volymhantering genom bioctl har varit tillgängligt i NetBSD sedan 2007.
WAPBL - journalsystemet, en förlängning av BSD FFS-filsystemet, bidrog med Wasabi Systems 2008.
NetBSD Logical Volume Manager är baserad på en BSD-omimplementering av en enhetsmapper-drivrutin och en port för Linux Logical Volume Manager- verktygen. Den skrevs mest under Google Summer of Code 2008.
ZFS- filsystemet utvecklat av Sun Microsystems importerades till NetBSD-bassystemet 2009.
CHFS Flash-minnesfilsystem importerades till NetBSD i november 2011. CHFS är ett filsystem utvecklat vid Institutionen för programvaruteknik, University of Szeged , Ungern , och är det första Flash-specifika filsystemet med öppen källkod skrivet för NetBSD.
Kompatibilitet med andra operativsystem
På källkodsnivå är NetBSD nästan helt kompatibel med POSIX .1 (IEEE 1003.1-1990) standarden och mestadels kompatibel med POSIX.2 (IEEE 1003.2-1992).
NetBSD tillhandahåller binär kompatibilitet på systemanropsnivå på lämpliga processorarkitekturer med sina tidigare utgåvor, men också med flera andra UNIX -härledda och UNIX-liknande operativsystem, inklusive Linux och andra 4.3BSD-derivator som SunOS 4. Detta tillåter NetBSD-användare att kör många applikationer som endast distribueras i binär form för andra operativsystem, vanligtvis utan betydande prestandaförlust.
En mängd olika "främmande" diskfilsystemsformat stöds också i NetBSD, inklusive ZFS , FAT , NTFS , Linux ext2fs , Apple HFS och OS X UFS , RISC OS FileCore/ADFS, AmigaOS Fast File System , IRIX EFS , Version 7 Unix File System och många fler genom PUFFS .
Kernel scripting
Kernel-space-skript med programmeringsspråket Lua lades till i NetBSD 7.0. Lua-språket (dvs dess tolk- och standardbibliotek) portades initialt till NetBSD-kärnan under Google Summer of Code 2010 och har genomgått flera förbättringar sedan dess. Det finns två huvudsakliga skillnader mellan användaren och kärnutrymmet Lua: kärnan Lua stöder inte flyttal ; som sådan är endast Lua-heltal tillgängliga. Det har inte heller fullt stöd för användarutrymmesbibliotek som är beroende av operativsystemet (t.ex. io och os ).
Sensorer
NetBSD har haft ett inbyggt ramverk för hårdvaruövervakning sedan 1999/2000, och 2003 fungerade det som inspirationen bakom OpenBSD :s ramverk sysctl hw.sensors när vissa NetBSD-drivrutiner portades till OpenBSD.
Från och med mars 2019 hade NetBSD nära 85 drivrutiner som exporterade data via API:et för envsys-ramverket. Sedan 2007 års revision har serialisering av data mellan kärnan och användarlandet gjorts genom XML- egenskapslistor med hjälp av NetBSD:s proplib(3) .
Används
NetBSD:s rena design, höga prestanda, skalbarhet och stöd för många arkitekturer har lett till att den används i inbäddade enheter och servrar, särskilt i nätverksapplikationer.
Ett kommersiellt realtidsoperativsystem, QNX , använder en nätverksstack baserad på NetBSD-kod, och tillhandahåller olika drivrutiner porterade från NetBSD.
Dell Force10 använder NetBSD som det underliggande operativsystemet som driver FTOS (Force10 Operating System), som används i switchar/routrar med hög skalbarhet. Force10 gav också en donation till NetBSD Foundation 2007 för att hjälpa ytterligare forskning och det öppna utvecklingssamhället.
Wasabi Systems tillhandahåller en kommersiell Wasabi Certified BSD-produkt baserad på NetBSD med egna företagsfunktioner och tillägg, som är fokuserade på inbäddade, server- och lagringsapplikationer.
NetBSD användes i NASA: s SAMS-II-projekt för att mäta mikrogravitationsmiljön på den internationella rymdstationen och för undersökningar av TCP för användning i satellitnätverk .
2004 använde SUNET NetBSD för att sätta Internet2 landhastighetsrekord. NetBSD valdes "på grund av TCP-kodens skalbarhet".
NetBSD används också i Apples AirPort Extreme- och Time Capsule- produkter, istället för deras eget OS X (vars de flesta användarlandkoder på Unix-nivå härrör från FreeBSD-kod men en del härrör från NetBSD-kod).
Operativsystemet för T-Mobile Sidekick LX 2009 smartphone är baserat på NetBSD.
Operativsystemet Minix använder mestadels ett NetBSD-användarland samt dess pkgsrc- paketinfrastruktur sedan version 3.2.
Delar av macOS togs ursprungligen från NetBSD, till exempel vissa kommandoradsverktyg för användarutrymme.
Licensiering
Hela NetBSD-kärnan och det mesta av kärnanvändarlandets källkod släpps under villkoren i BSD-licensen (varianter med två, tre och fyra satser). Detta tillåter i princip alla att använda, modifiera, omdistribuera eller sälja det som de vill, så länge de inte tar bort copyrightmeddelandet och licenstexten (varianterna med fyra klausuler inkluderar även villkor som rör reklammaterial). Således är utvecklingen av produkter baserade på NetBSD möjlig utan att behöva göra ändringar i källkoden offentlig. Däremot GPL , som inte gäller NetBSD, att ändringar av källkoden för en produkt måste släppas till produktmottagaren när produkter som härrör från dessa ändringar släpps.
Den 20 juni 2008 tillkännagav NetBSD Foundation en övergång till BSD-licensen med två klausuler, med hänvisning till oro för UCB:s stöd för klausul 3 och branschtillämplighet av klausul 4.
NetBSD inkluderar också GNU- utvecklingsverktygen och andra paket, som täcks av GPL och andra licenser för öppen källkod. Som med andra BSD- projekt, separerar NetBSD de i sitt baskällträd för att göra det lättare att ta bort kod som är under mer restriktiva licenser. När det gäller paket kan de installerade programvarulicenserna kontrolleras genom att modifiera listan över tillåtna licenser i pkgsrc-konfigurationsfilen ( mk.conf
).
Släpps
Följande tabell listar stora NetBSD-utgåvor och deras anmärkningsvärda funktioner i omvänd kronologisk ordning. Mindre versioner och korrigeringar ingår inte.
Legend: | Gammal version, ej underhållen | Äldre version, fortfarande underhållen | Aktuell stabil version | Senaste förhandsversionen |
---|
Stora releaser | Utgivningsdatum | Anmärkningsvärda funktioner och förändringar |
---|---|---|
9.0 | 14 februari 2020 |
|
8.0 | 17 juli 2018 |
|
7.0 | 8 oktober 2015 |
|
6.0 | 17 oktober 2012 |
|
5.0 | 29 april 2009 |
|
4.0 | 19 december 2007 |
|
3.0 | 23 december 2005 |
|
2.0 | 9 december 2004 | |
1.6 | 14 september 2002 |
|
1.5 | 6 december 2000 |
|
1.4 | 12 maj 1999 |
|
1.3 | 9 mars 1998 | |
1.2 | 4 oktober 1996 | |
1.1 | 26 november 1995 | |
1.0 | 26 oktober 1994 |
|
0.9 | 20 augusti 1993 |
|
0.8 | 20 april 1993 |
|
Logotyp
NetBSD "flagga"-logotypen, designad av Grant Bissett, introducerades 2004 och är en abstraktion av deras äldre logotyp, designad av Shawn Mueller 1994. Muellers version baserades på det berömda fotografiet från andra världskriget Raising the Flag på Iwo Jima .
NetBSD Foundation
NetBSD Foundation är den juridiska enhet som äger de immateriella rättigheterna och varumärkena som är associerade med NetBSD, och den 22 januari 2004 blev den en 501(c)3 skattebefriad ideell organisation. Medlemmarna i stiftelsen är utvecklare som har tillgång till CVS commit. NetBSD Foundation har en styrelse, vald av medlemmarnas röster för två år.
Värdskap
Värd för projektet tillhandahålls i första hand av Columbia University , och Western Washington University, som frontas av ett CDN från Fastly . Speglar för projektet sprids över hela världen och tillhandahålls av frivilliga och anhängare till projektet.
Se även
- Negus, Christopher; Caen, Francois (april 2008). BSD UNIX Toolbox: 1000+ kommandon för FreeBSD, OpenBSD och NetBSD ( första upplagan). Wiley . sid. 309. ISBN 978-0-470-38725-2 .
- Lavigne, Dru (24 maj 2004). BSD Hacks (första upplagan). O'Reilly Media . sid. 448. ISBN 0-596-00679-9 .