De fundamentale forskjellene er vel ganske enkle:
BSD er resultatet av UNIX hackere sitt arbeid med å porte UNIX til PC arkitektur.
Linux er PC hackernes forsøk på å skrive UNIX for PC.
FreeBSD er ett operativsystem, Linux er en UNIX lignende kjerne.
De fleste userland verktøyene er de samme, du finner også stort sett de samme shellene.
Personlig syntes jeg FreeBSD sin oppbygging er veldig logisk og ryddig. Ports systemet gir en masse fordeler i forhold til dependencies (progammer avhengig av andre programmer) i forhold til linux. Når man oppgraderer noe i ports så vil instalasjonen ta hensyn til at tilleggs-programmer som trengs blir oppdatert. I linux vil man ofte få dependency problemer fordet at compilereing av kildekode ikke nødvendivis oppdaterer dependecies. Problemet er veldig ofte synlig med såkalte libs. Libs eller libaries er ofte felles komponenter som ssl- ,crypto-, compiler-libs osv.
Det er også ofte slik at BSD brukere/hackers forstår veldig mye av Linux verden, mens Linux hackers ofte ikke forstår like mye av BSD verden. Nøyaktig hvorfor dette er sånn vet jeg ikke, men jeg tror det har en del med at BSD brukere generellt forstår mer av logikken bak en del ting i UNIX.
Definisjonen "Hacker" er som noen av kommentarene her viser, ofte missforstått. En hacker er en person som har eller forsøker å tilegne seg inngående kjennskap/forståelse for ett system, I de fleste tilfeller snakker man om en som har programmerings kunnskap og dermed forstår hvordan man manipulerer systemet til å gjøre ting som det ikke nødvendigvis gjør "out of the box". Det kan være snakk om feks. tuning slik at systemet yter mye mer enn det originale designet. Alle definisjoner som innbrudd og datamissbruk er i utgangspunktet cracking. Begge uttrykk har ofte en underdefinisjon, whitehats/blackhats som forteller om vedkommende har gode eller onde hensikter.
http://en.wikipedia.org/wiki/White_hat
http://en.wikipedia.org/wiki/Black_hat
http://en.wikipedia.org/wiki/Hacker