Resolution:

FreeBSD vs Linux?

Vi ställer de populära operativsystemen FreeBSD UNIX® mot Ubuntu Linux™ i en jämförelse. Båda är bland de mest populära serveroperativsystemen sedan många år. Vilket passar dig bäst?

FreeBSD är en av de mest populära UNIX-liknande operativsystemen som sedan länge haft en välförtjänt plats bland de operativsystem som är mest populära för en lång rad olika applikationer inom bland annat server.

Värt att nämna är att Mac OS X är en relativt nära släkting med FreeBSD och drar nytta av flera fördelar det robusta operativsystemet bygger på.

 

Ubuntu Linux, som är den version av Linux vi valt att jämföra denna gång (det finns tusentals olika sorters Linux på marknaden, de flesta helt kostnadsfria men mer om detta senare) och det finns flera anledningar till detta.

Dels är även Ubuntu, precis som FreeBSD, ett operativsystem som många använd att utgå ifrån för andra produkter tack vare att även Ubuntu Linux under väldigt många år bevisat sig vara robust och väl fungerande, inte minst när det handlar om säkerhetsuppdateringar - något som är bland det mest viktiga idag för en server eftersom servern hela tiden står exponerad ut mot Internet och okänt många hot.

Android är en av många applikationer som utgått från Ubuntu vilket även detta visar hur mycket man vågar lita på Ubuntu Linux.

 

Både FreeBSD och Ubuntu har nyligen kommit ut i nya versioner med stöd för det allra senaste och båda lovar långsiktighet beträffande uppdateringar, ett löfte som det således inte finns någon som helst anledning att misstro.

Vi ställer båda mot varandra och hoppas kunna återkomma med flera liknande jämförelser inom kort för dig som har svårt att välja os för långsiktiga satsningar.

 

Så nu till matchen, vilken plattform passar er bäst inför ert nästa val av server?

freeBSD logo  ubuntu logo

 

 

1. Säkerhet

Såväl FreeBSD som Ubuntu är relativt säkra redan från början och går att anpassa på många sätt för den som har behov av olika säkerhetstillämpningar.

 

Vi börjar med att kika på Ubuntu som procentuellt sett används mer än FreeBSD ute på nätet, därmed inte sagt att det är bättre.

Ubuntu är en sorts Linux baserad på Debians system och använder således Debians pakethanterare. Till skillnad från exempelvis CentOS, som använder Red Hats system med RPM och yum för att hantera program, så använder Ubuntu dpkg och apt-get (samt aptitude och en del relaterade mjukvaror som du kostnadsfritt använder för att hantera de tusentals olika mjukvaror som du kostnadsfritt har tillgång att installera och uppdatera).

APT som pakethanterare är för de flesta serveradministratörer ett mycket välkänt och väl fungerande sätt att hantera program och du har full kontroll och kan exempelvis enkelt via ssh sköta uppdateringar även utan att belasta systemet och samtidigt använda så lite bandbredd så du med lätthet kan göra även komplicerade uppdateringar via en 4G-länk från sommarstugan eller badstranden i sommar om så skulle krävas.

Säkerhetsuppdateringar släpps snabbt och du kan i princip omedelbart täppa till säkerhetsbrister eller uppdatera mjukvaror som buggfixats eller uppdaterats. I regel fungerar det väldigt enkelt och det finns god långsiktighet tack vare Ubuntus LTS-releaser (se tex tidigare artikel om Ubuntu 16.04 som släpptes tidigare i våras).

 

I BSD-världen är det andra bullar som gäller. Användare som inte är vana vid UNIX och FreeBSD kanske finner en *liten* inlärningstrappa i form av att man måste sätta sig in i (ännu) ett nytt sätt att hantera mjukvaror. I Unix-världen och kanske särskilt FreeBSD är det dock väldigt enkelt;

Du har i princip tre val att ta ställning till och i grund och botten uppdateras inte allt automatiskt som i många populära Linux-system utan du kan kanske ännu mer individuellt anpassa system.

Självfallet kan du även i UNIX ha flera olika versioner av mjukvaror installerade paralellt men det är kanske ännu lite enklare för många i FreeBSD faktiskt!

1.1. Att installera från källkod.

1.2. Att installera en färdigkompilerad binär anpassad för din arkitektur men som kanske är mindre optimerad än om du kompilerar från källkod.

1.3. Att installera tredjepartsmjukvaror.

 

Att säkerhetsuppdatera, eller att tex gå direkt från en mindre release till en större release gör man enkelt med ett separat program.

 

1.1. Att installera från källkod går att göra på två sätt, antingen hämtar du källkod manuellt eller - vilket de flesta föredrar - så använder du ports-trädet som det kallas. Varje release av FreeBSD har ett eget ports-träd som följer med och "lever" (dvs du kan uppdatera det) med din release.

Detta innebär i praktiken att om du tex väljer FreeBSD 9.3 (en äldre men i skrivande stund supporterad release av FreeBSD) så kan du säkerhetsuppdatera systemet på ett sätt medan du kan välja att hantera mjukvaror separat via portsträdet. Mjukvarorna som uppdateras och installeras via ports-funktionerna följer med 9.3 och du vet att "allt kommer passa ihop". Du kanske inte alltid har tillgång till exempelvis den allra purfärskaste versionen av en mjukvara som säg Apache men du vet att den version du har är robust, säker och kommer fungera.

Så länge din release fortfarande får uppdateringar är du med andra ord säker på att kunna få hämta buggfixar och annat (eller låta oss sköta detta automatiskt åt er om ni har er serverhostingtjänst hos oss).

Det går dessutom att uppdatera från en release till en annan. Använder du tex 9.3 kan du välja att gå till 10.x osv. I samband med detta kan du även uppdatera alla mjukvaror. Det låter krångligare än det är och att hantera ports är i praktiktikten precis lika enkelt som i Ubuntu. Bara annorlunda.

 

1.2. Binärer kan installeras via pakethanteraren pkg. Principen är ungefär densamma som för apt och du kan hämta olika versioner med olika beroenden på tex underliggande bibliotek men det är kanske enklast att hantera avancerade installationer via ports. Pkg ger dock en blixtsnabb möjlighet att tanka hem och installera en lång rad olika mjukvaror som är färdigkomplierade, dvs startsträckan är kanske något kortare om du har en maskin i produktion och snabbt behöver installera en viss mjukvara.

 

1.3. Tredjepartsprogram, faktiskt även stöd för ett antal linux-program och virtualisering går att hantera separat. Vi går inte in på detta manuellt här men det finns massvis av mjukvaror som exempelvis inte ingår i ports-trädet men som går att ladda hem och komplilera manuellt.

 

Ställer man FreeBSD mot Ubuntu när det handlar om att installera säkra program, uppdatera och buggfixa program så är det med andra ord oavgjort. Båda är lika bra, säkra och enkla att hantera. Båda har dessutom en historik av att på ett bra och säkert sätt hantera uppdateringar och uppdateringar finns att hämta snabbt.

 

Exempelvis de många säkerhetsbrister som upptäckts i SSL på sista tiden har rättats snabbt i båda operativsystem, på pakethanteringsfronten är säkerheten med andra ord mycket väl godkänd. Enkelheten är en stor fördel för dig som serveradministratör. Jämfört med exempelvis Windows Server är det stora fördelar.

 

Brandväggar går att installera i båda systemen. FreeBSD föredrar PF, en av världens bästa och enklaste sätt att hantera paketfiltrering. Ubuntu erbjuder bland annat IP Tables, en annan mycket beprövad mjukvara för paketfiltrering. Såväl Ubuntu som FreeBSD är grunden i flera olika system som använder växling, routing och filtrering av paket i exempelvis kommersiella brandväggar så det finns inget att anmärka på här.

 

Är du novis på brandväggar måste du ta hänsyn till tiden det kan ta att sätta dig in i hur brandväggsregler manipuleras och det finns integrerade manualer i såväl Ubuntu som FreeBSD. Det är enkelt att hitta hjälp på nätet. Oavgjort även här.

 

Säkerhet inuti systemen är även den oavgjort. Båda systemen är efter installation säkra och du har inga osäkra onödiga portar som går att hacka eller avlyssna enkelt (vilket exempelvis finns i operativsystem som Windows) så här är båda systemen mycket väl lämpade för server.

 

2. Långsiktighet.

Version 10.3 av FreeBSD UNIX beräknas vara supporterad, dvs uppdateringar släpps, fram till 30 April 2018. Det kommer sannolikt vara enkelt att uppgradera de allra flesta installationer till en ny version även innan dess.

Ubuntu 16.04 LTS planerar Canonical som gör Ubuntu att erbjuda uppdateringar för fram till April 2021. Det är inte klart i nuläget om det är enkelt att uppgradera till 18.04 efter dess. Det var tidigare enkelt att uppdatera från 10.04 till 12.04 för de allra flesta serverinstallationer. Vid uppgradering från 12.04 till 14.04 var det problem för vissa RAID-kontrollers och liknande.

LTS står för Long Time Support och är Ubuntus sätt att benämna releaser som de erbjuder uppdateringar för under mycket lång tid.

Båda operativsystemen har en mycket bra historia med tanke på att följa sina egna löften och släpper uppdateringar hela tiden, snabbt och utan att problem uppstår.

Det brukar aldrig uppstå större problem med mjukvarukonflikter, konfiguration och liknande när man uppdaterar mjukvaror och därför bör man kunna gissa att det kommer fortsätta ungefär likadant framöver för de båda tillverkarna.

 

Många blev oroade över att Debian projektet tidigare blev av med en viktig nyckelperson i utvecklingen och att detta skulle kunna påverka hur mjukvaror släpps för Debian, som är grunden för Ubuntu Linux. Men detta har ej visat sig vara ett stort problem i praktiken. Såväl Debian som Ubuntu har fungerat bra och exempelvis har uppdateringar för SSL släppts snabbt det senaste året. SSL har drabbats av ett stort antal allvarliga säkerhetshål som därmed har kunna täppas till snabbt för Ubuntu och FreeBSD.

Även här skulle vi därför vilja säga att det är oavgjort.

Som vi gick igenom tidigare fungerar systemen på totalt olika sätt men i praktiken är det egentligen varken bättre eller sämre i det ena systemet, bara annorlunda. Resultat, som att kunna installera en mjukvara utan problem, är lika bra i båda systemen.

 

3. TCP-egenskaper

Något som är viktigt i serversystem med hög belastning är hur plattformen som ligger som grund för exempelvis webbservermjukvaror presterar. Här är det stora skillnaden mellan Ubuntu och FreeBSD.

TCP är en teknik som används i de flesta webbtjänster, därför är det viktigt. Exempelvis webbservrar skickar data via HTTP och använder TCP. UDP, som kan vara snabbare under vissa omständigheter används sällan eller väldigt lite i de flesta tekniker som används för webbtjänster.

 

Tilläggas bör innan vi går in på detaljer att:

3.1. De flesta UNIX- och Linux-baserade system går att anpassa, tex kan man optimera mjukvaror för att förbättra prestanda.

3.2. De standard program som ofta installeras, särskilt som färdigkomplierade generiska program är ej optimerade och man kan även med konfigurationsändringar skruva till prestanda och förbättra.

 

 

Med denna lilla reservation kan man säga att rent generellt kan ett Linux-baserat system upplevas som mycket robust och med snabb respons vid låg belastning upp till medelhög för att därefter bli gradvis långsamt och inte sällan vid hög belastning bli långsamt. Först vid extrem belastning slutar systemet helt att svara för att åter fortsätta göra så gott det går när belastning gått ned. Vi har sett system med extrem belastning närmare 100 gånger maximal belastning och det slutar sällan fungera men det kan bli segt som sirap vid en extrem belastning för att sedan komma igång och fungera bra när hela den kö med jobb som ligger på vänt att bearbetas har gåtts igenom.

Detta är exempelvis jämfört med andra system som Windows ett bra beteende eftersom man kan överbelasta system. Genom att tänka till lite när man driftsätter en lösning som tex ett lastbalanserat kluster kan man således enkelt dimensionera system så att trafik fördelas optimalt och alltid fungerar mycket bra, även vid extrem belastning. Det är även detta som gjort linux till förstahandsvalet för de flesta servrar på Internet sedan mycket länge samt även ett populärt val för virtualisering.

Jämfört med många andra system presterar Ubuntu bättre. Särskilt som server och tack vare att man helt kan välja bort grafiska gränssnitt behöver man inte belasta systemet alls med saker som fönsterhanterare (även FreeBSD har denna fördel). Faktum är att exempelvis Windows virtualiserat ovanpå Linux ger bättre prestanda även i Windows-plattformen jämfört med så kallad bare metall (dvs Windows installerat direkt på hårdvaran, inte virtualiserat ovanpå Linux) under vissa omständigheter!

 

Jämfört med FreeBSD så visar dock tester att just vid extrem TCP-trafik så har UNIX-förfadern ibland vissa fördelar. Även FreeBSD är kvickt och du får god respons vid låg belastning dock i många olika driftsituationer står en FreeBSD pall för ganska mycket mer innan det börjar bli långsamt - för det börjar naturligtvis bli långsamt även när ett FreeBSD-system är totalt överbelastat.

Av denna anledning är FreeBSD ett populärt val att basera vissa mjukvaror i exempelvis nätverksswitchar och liknande applikationer. Här bör den som tänkt sig ett långsiktigt system kanske ställa sig frågan hur man vill jobba med exempelvis fördelning av trafik på olika system - kanske kan FreeBSD lämpa sig bättre i vissa driftsituationer för just er webbbaserade applikation.

 

 

Värt att tillägga är även att exempelvis webbaserade applikationer ofta kan få ett rejält prestandalyft, förbättrad sökmotoroptimering och driftsäkerhet om man placerar ett CDN framför dem.

 

Kikar ni på att enbart öppna en server kanske det dock kan vara värt att fundera kring TCP-egenskaperna.

 

4. Mjukvarustöd

I vissa avseenden anser många att Ubuntu kan ha vissa fördelar gentemot FreeBSD om man jämfört alla de mjukvaror du får tillgång till direkt via de mjukvarubibliotek du har i portsträdet på FreeBSD och tillgång till via apt-get i Ubuntu. De allra senaste versionerna är i regel tillgängliga i den version som är aktuellast, dvs just nu 16.04 men har du idag ett 14.04-system så får du exempelvis inte tillgång till de senaste versionerna utan att installera dem manuellt eller uppgradera.

Detta gäller även hårdvarustöd. Även om FreeBSD har mycket gott hårdvarustöd och det finns drivrutiner till exempelvis många vanliga RAID-kontrollers och liknande så har Ubuntu ett litet övertag. De senaste tio åren eller så har Linux blivit oerhört plug and play där FreeBSD fortfarande är ett litet steg efter. Detta innebär dock i praktiken sällan något större problem. Visst, du kan installera Linux på i princip vilken brödrost eller netbook som helst men för serversystem där tillverkarna i regel alltid skickar in sin hårdvara till någon som får göra en drivrutin om de ej själva ordnar det så är det nästan alltid så att FreeBSD och de andra stora BSD:erna (OpenBSD och NetBSD) har ett ok eller bra stöd för vanlig hårdvara som diskkontrollers mm men ibland kan lite mer avancerade funktioner som tex att kommunicera med UPS och liknande ligga lite efter utvecklingen på Linux.

Eftersom Linux är det dominerande serveroperativsystemet sedan mycket lång tid på hela Internet så är vissa tillverkare kanske benägna att släppa en version för Linux av sin egen slutna mjukvara för en specifik funktion eller ett kontrollerkort i en server. Måste du använda tillverkarens egen mjukvara så kanske den inte finns till FreeBSD eller så kanske den inte finns för just version 10.3 eller du kanske måste kompilera kod själv i värsta fall.

I praktiken är detta dock ett ovanligt problem att stöta på.

Att alltid ha som vana att testköra system innan de sätts i produktion är ett enkelt sätt att undvika den här typen av problem.

 

5. Kompetens och erfarenhet hos personal

De personer som ska sköta drift och förvaltning samt arbeta i ett serversystem måste naturligtvis ha rätt kunskaper för att kunna utföra arbetet. Med vår support som back office kommer ni visserligen väldigt långt och behöver faktiskt inte ens  en enda gång logga in direkt i servern om ni inte vill men särskilt om ni tänkt utföra sysslor själva i servern som konfiguration och uppdateringar så är det viktigt att ta hänsyn till kompetens och preferens. Kanske är det så att ni har god Linuxkännedom bland era webmasters och systemadministratörer men de saknar nästan helt UNIX-kunskaper? Då bör valet vara naturligt att välja Linunx.

Att enbart utgå från vissa fördelar i en plattform kan vara farligt eftersom systemen hela tiden måste hållas säkra - det räcker inte med lite småkunskaper utan den som har huvudansvaret för att exempelvis sköta installationer och uppdateringar i systemet bör ha god till mycket goda kunskaper kring det system som valts. Är ni för obekväma med FreeBSD men ser vissa fördelar jämfört med Linux kanske det ändå är värt att välja Linux för att undvika tidskrävande problem i framtiden.

Det är i regel enkelt att lägga till ett till system vid hög belastning, testa att blanda UNIX och Linux eller att fördela trafik mellan två eller fler Linux-system osv. Det är iregel enkelt att förebygga problem om man bara sätter sig ned och tänker till kring teknik, funktion och handhavandefel som kan uppstå.

Ett utförligt test innan serverlösningen sätts i produktion med andra ord.

Valet kring plattform som passar er personal (eller den inhyrda konsulttjänst som tex ett supportavtal som ni valt) bör såklart vägas in och anlitar ni vår personal kan vi hjälpa till med alla olika system.

 

En kurs i Linux systemadministration eller UNIX systemadministration hos oss på compartment kan även förstärka eventuella kunskapsluckor.

 

6. Externa lagringstjänster

Att ha exempelvis backup utanför den egna servern är alltid viktigt och hur man kan ansluta lagringsfunktioner bör vägas in. Hur vill ni jobba med exempelvis automatiserad schemalagd backup av viktiga filer? Ännu viktigare: hur vill ni arbeta med återställning från backup? Får det ta lång tid att reparera en skadad RAID-array med begränsad funktionalitet eller försämrad prestanda men det ska gå blixtsnabbt att återskapa exempelvis en databas från en säkerhetskopia.

 

7. Virtualisering

Ska ni använda egen virtualisering i er server, antingen som en Dedikerad Server eller Co-location så kan det vara bra att göra en ordentlig behovsanalys först.

Linux, som sedan länge varit förstahandsvalet för de allra flesta virtualiseringskluster, är i många fall den plattform som brukar rekommenderas när en värddator ska ha egna virtuella gäster eller virtuella maskiner som det även kallas, dvs så kallade virtuella servrar. Men, som många systemadministratörer känner till så erbjuder även FreeBSD och andra UNIX ett par alternativ som kan vara bra att undersöka. Kanske är det enklare att ha en mer mainstream Linux-baserad lösning för många.

Jails är ett exempel på hur man kan "låsa in" olika virtuella instanser i UNIX och detta är en populär metod för att hantera virtuella gäster. Kommer du från Linuxvärlden är det dock bra att ha i bakhuvudet att det fungerar annorlunda i Unix.

Att ha Windows, Linux eller olika UNIX-baserade system som gäster bår såklart bra oavsett underliggande teknisk plattform och det går att virtualisera linux på windows precis lika bra som tvärt om men lite beroende på hur ni vill arbeta med virtualisering kan det påverka ert val av operativsystem. KVM är en teknik som går att använda på vissa plattformar medan XEN är en mer begränsad teknik till exempel. Använder ni tredjepartsmjukvaror som tex VMWARE krävs att det går att installera värdmjukvaran på den plattform ni tänkt använda.

Använder ni enbart ett fåtal vps:er under det första året är det kanske allra enklast att beställa dessa virtuella servrar separat och lägga dem helt utanför den egna fysiska servern.

 

Rent generellt kan man nog oftast säga att Linux är att föredra för värdsystemet och har ni exempelvis ett behov av ett fåtal FreeBSD-servrar kan dessa troligtvis enklare virtualiseras på en Linuxserver än tvärtom, särskilt om ni inte har lång vana av att jobba med administration i virtualiseringsmiljöer.

Värt att nämna är också att vi har en särskild tjänst skräddarsydd för just virtualisering; Private Cloud.

 

Här kan du läsa mer om serverhosting.

 

8. Avbrott och underhåll

Kommer er tjänst vara känslig för avbrott som tex underhållsarbeten vid uppgradering av serverns hårdvara eller mjukvaror så kan man ofta kringå detta med funktioner som lastbalansering, CDN och att lägga till en annan frontend som tex en VPS för att avlasta och styra om trafik till. Vissa funktioner kanske ändå blir så kallade risker för single point of failures i er fysiska server om ni bara har en server eller om tjänster som tex databaser endast körs i huvudservern och då blir det viktigt att minimera avbrott.

Övervakning som SirV kan med fördel användas för att hantera och upptäcka om tjänster ej fungerar som planerat så att åtgärd snabbt kan utföras.

Ubuntu Linux är här ett bra alternativ. Vid standardinstallation av FreeBSD tar nämligen uppstart något längre tid - detta kan dock justeras men gör man inte det är uppstartstiden något längre (helt i onödan egentligen). Har man dock ett kluster med tex en Linux och en FreeBSD där den ena servern absolut kan vavra en separat VPS för att hålla kostnaderna nere så kan man låta systemen starta om vid olika tillfällen och låta lastbalanserare automatiskt styra om trafik från det system som för tillfället ej är nåbart och till den andra servern för att när båda systemen åter är i drift kunna starta om det andra systemet och låta det första ta all drift.

Läs mer här om hur lastbalansering fungerar.

 

Både FreeBSD och Ubuntu Linux startar dock väldigt snabbt jämfört med exempelvis Windows Server och andra populära serveroperativsystem så är er känslighet för avbrott inte jättelåg kanske detta är en avgörande faktor.

 

9. Grafiska miljöer och fönsterhanterare

Är ni vana vid fönsterhanterare som XFCE4 (eller Mac OS X) så passar såväl Ubuntu som FreeBSD bra och båda operativsystemen erbjuder ett stort antal olika fönsterhanterare och grafiska miljöer. Ubuntu har dock fler och kanske de allra flesta mest användarvänliga. Har ni inget emot att använda exempelvis Window Maker eller liknande klassiska fönsterhanterare så är detta inget avgörande men är vissa grafiska funktioner ett krav för någon applikation ni behöver använda så kan Ubuntu vara att föredra. Det är troligtvis mer plug and play i Ubuntu och har ni inte vana av att hantera beroenden mellan olika program och grafiska funktioner kan det vara enklare att välja Ubuntu om detta känns mer familjärt för er.

Därmed inte sagt att såväl Java som Python och allehanda olika andra språk och funktioner går aldeles utmärkt att använda i FreeBSD sedan mycket lång tid. Det är inte för inte som Mac OS X är baserat på BSD UNIX - det är en mycket robust grund att bygga på och har du inte provat exempelvis XFCE4 kommer du snabbt inse vad Apple har gjort och varför.

Det är enkelt. Är det nya erfarenheter får man såklart räkna med viss inlärningskurva men det finns som sagt såväl manualer som hjälp att få på nätet utöver support via supportavtal och liknande.

 

 

Slutsats

I vissa fall kan Ubuntu vara det system som passar bäst, särskilt om ni inte har UNIX-vana sedan tidigare och inte vill lägga tid på att lära upp personal i nya system och rutiner. Arbetsinsatsen och svårighet att utföra vanliga uppdrag som tex systemadministration skiljer sig inte, ej heller säkerhet eller tillgång till funktioner. I vissa fall kan prestandan i FreeBSD vara bättre och för virtualisering "vann" eventuellt Ubuntu - lite beroende på hur er kravspec ser ut naturligtvis men för många är det i dagsläget fördelaktigt att virtualisera UNIX på Linux istället för tvärtom.

Vi tycker ändå att du som kommit så här långt ska fundera om det inte är värt att våga välja FreeBSD och det är exempelvis enkelt att öppna en VPS med FreeBSD och bekanta sig med systemet i en månad eller så innan ni gör det slutliga valet för den dedikerade servern.


Nyheter