Rád bych se podělil o zkušenosti ohledně použití FreeBSD. Cca před čtrnácti dny jsem narazil na solidně rozjeté vlákno ohledně *BSD systémů, když jsem viděl některé poznámky směrem k BSD tak jsem se mu rozhodl dát šanci. I opustil jsem svoje hýčkané Gentoo a nainstaloval FreeBSD. Podotýkám, že jsem nejdříve systém rozchodil na svém netbooku Asus EEE 1000H (aby nevznikly dohady, tak veškerá kompilace probíhala na Core-i5 2500K, na tom Atomu bych se načekal). Poznatky z chodu:
- rychlejší než původní Gentoo s menšími paměťovými nároky
- mnohem lépe (až nesrovnatelně) fungující power management a ACPI
- systém není příliš rozdílný, jen je potřeba se znovu naučit číst manuálové stránky, jelikož ve FreeBSD obsahují skutečně užitečné informace (narozdíl od linuxu, kdy od příkazu man vždy očekávám, že mi nic neřekne).
- ovladač drátového ethernetu Atheros L1E funguje podivně, dlouho vůbec neproběhne autonegotiation, po chvíli práce přestane fungovat úplně. Naproti tomu WiFi Intel 4965AGN naprosto bez zaváhání a oproti Linuxu funguje ukázkově jak z učebnice. Na EEE stejně na drátovém ethernetu nejedu, takže to nevadí.
Na EEE jsem použil verzi 8.2-RELEASE-p3 (čistá instalace 8.2-RELEASE a freebsd-update). Jelikož mě to zaujalo, řekl jsem si, že to zkusím na vývojové mašině, co používám na embedded hardware. Požadavek je, abych rozchodil překladač GCC pro ARM, rozjel JTAG kabely pro ARM, rozchodil toolset pro Xilinx a JTAG kabely pro Xilinx. Abych si nezrušil vývojovou mašinu pod rukama, použil jsem druhý identický hardware (deska GA-965P-DS4, Intel Core2Duo E6400, 4GB RAM). Instalace proběhla bez problémů, na 8.2-RELEASE-p3 však nefungovala v Xorg grafická karta ATi (nechápu že nám to do počítačů furt kupujou když chceme nVidii kvůli funkčnosti binárních ovladačů). CVSup na 8-STABLE problém vyřešil, ATi se rozjela v pořádku. Je vidět že ovladače i verze Xorg jsou trvale work-in-progress. Jinak jel HW v pořádku, všechno chodilo bez nejmenších problémů. Překladač pro ARM i OCD jsem rozhodil jen za pomocí portů, Xilinx Design Suite však bylo oříškem. Pomohlo až přejít na 9.0-RC1 a tím pádem na RELENG_9. Pak se mi podařilo veškerý software rozchodit včetně programovacího kabelu přes libusb.
V tuhle chvíli jsem si říkal, OK, všechno funguje, mám tu to samé co na vývojovém Gentoo, není problém to překlopit na identickou mašinu co stojí vedle. ALE, stalo se něco neočekávaného. Na desce je integrovaná síťová karta Marvell Yukon, hlásící se jako msk0. Na té druhé identické desce, na kterou jsem systém překlopil, se však msk0 chová tak, že skončí s "watchdog timeout" a "missed Tx interrupt". Tohle chování, kdy přestane jít síť, vyústí až v kompletní zatuhnutí systému nebo General Protection Fault. Je neuvěřitelné, že dvě identické desky, ještě prakticky ze stejné série, se stejným BIOSem, jedna funguje, a jedna ne. Podotýkám, že jinak deska na LiNUXu i Windows jede včetně síťové karty. Zkoušel jsem všechno možné, zakázat MSI, zkusit rady podle googlu. Nic nepomohlo, jediné co pomohlo bylo hodit do PCI slotu síťovku Realtek 8139 a toho Yukona zakázat. Tím se prokázalo, že to je onou síťovkou, jelikož od té doby všechno fungovalo a neprojevila se sebemenší nestabilita.
Protože mi to nedalo, zkusil jsem na jiném HDD na té desce s chybně fungujícím Marvellem postupně 8.2-RELEASE, 8.2-RELEASE-p3, RELENG_8 a RELENG_9. Všechny verze vykazovaly značnou nestabilitu ústící v General Protection Fault do pěti minut uptime pokud bylo komunikováno po síti. Nevím čím to je, ale v počítači jsem nechal Relateka, Marvella vypnul a dal tam zpátky HDD s 9.0-RC1. Na něm funguji týden, mám ty samé nástroje jako v Gentoo, ale systém je subjektivně rychlejší. Co funguje, to funguje dobře. V mém případě funguje všechno kromě prokletého Marvella.
Pro FreeBSD tedy skutečně platí - pro LiNUX vybírej HW pečlivě, ale pro FreeBSD ještě daleko pečlivěji. Doporučuji dát *BSD systémům obecně šanci, jsou tam vidět skutečně kořeny staré několik desítek let, na nichž stavěl i LiNUX. Ne nadarmo se říká, že kdyby byl rozumně k dispozici 386/BSD, Linus by se nikdy nezabýval vývojem vlastního kernelu. Gentoo hodně čerpá ze systému portů FreeBSD, přechod není vůbec bolestivý. Rozhodně doporučuji dát *BSD šanci. (Ještě poznámka na okraj - trochu nechápu snahu Gentoo/BSD, kdy se snaží naroubovat userland Gentoo nad BSD kernel - FreeBSD má toto vyřešeno dostatečně důmyslně, Gentoo určitě kopírovalo svůj portage z FreeBSD. Pak tu snahu nechápu - okopírovali portage, aby pak zpětně roubovali na BSD ?)