Bár a FreeBSD 15 stable már hivatalosan is megjelent, a MidnightBSD továbbra sem kíván azonnal váltani az újabb kiadásokra. A projekt következetesen a FreeBSD 13-as ágra épít, és ezen az úton halad tovább a most megjelent MidnightBSD 4.0 kiadással is. Ez az irány nem véletlen, hanem tudatos választás eredménye. A fejlesztők abból indultak ki, hogy a rendszernek hosszú távon is kiszámíthatónak kell maradnia. Nem az számított, hogy minden újdonság azonnal bekerüljön, hanem az, hogy egy olyan BSD kerüljön a felhasználóhoz, amelyre nyugodtan lehet építeni, és amely asztali használat mellett sem okoz kellemetlen meglepetéseket. Az új kiadás ezért sok elemet átemelt a FreeBSD 13.x vonalból, miközben számos külső összetevőt is frissítettek. A cél végig az volt, hogy a rendszer egésze összeszedettebben és megbízhatóbban működjön, még akkor is, ha ez néhány régebbi csomagnál kompatibilitási gondokat eredményezett.
Tartalomjegyzék

Az mport fejlődése és a rendszer alapjainak tisztítása
A MidnightBSD központi eleme továbbra is az mport csomagkezelő, amely jelentős fejlesztéseken esett át az új verzióban, javított terminálos megjelenéssel és megbízhatóbb ellenőrzési mechanizmussal, de több korábbi összeomlást okozó hiba is megszűnt. A csomagkezelési logika átgondoltabb lett, mely főleg a függőség kezelés és az ellenőrzési folyamatok terén érződik.
Az elavult vagy nehezen karbantartható komponenseket eltávolították a base rendszerből, az indítási folyamatok illetve a szolgáltatáskezelés pedig modernebbé vált.
Kernel, biztonság és skálázhatóság
A MidnightBSD 4.0 egyik legnagyobb technikai változása a rendszer legmélyebb rétegét érinti. A kernel most már támogatja a W^X elv alkalmazását a felhasználói folyamatoknál, vagyis azt, hogy egy memóriaterület egyszerre ne lehessen írható és futtatható. Ez érezhetően szűkíti egyes támadások mozgásterét. A funkció egyelőre nem aktív alapból, de azok számára, akik tudatosan szigorítanák a biztonsági beállításokat, már rendelkezésre áll.
A kernel emellett megkapta a Safe Memory Reclamation támogatást is, amely főleg sokmagos rendszereken javítja a skálázhatóságot és a teljesítményt.
A 4.0 verziótól a ZFS fájlrendszer meghajtó kódbázisát már az OpenZFS projekt biztosítja, ami egységesebb fejlesztési irányt, gyors és hatékony hibajavításokat tesz lehetővé. A Hálózati alrendszer és az NFS korszerűbbé vált, a kriptográfiai keretrendszer fejlesztései pedig garantálják a rendszer biztonsági színvonalának fenntartását.
Hardvertámogatás és virtualizáció
A MidnightBSD 4.0 verzióban alapértelmezetté vált egy új USB HID meghajtó, amely korszerű felépítésének köszönhetően jobban kezeli a beviteli perifériákat. Bővült az Intel és a Realtek hardverek támogatottsága, mely főleg az újabb WiFi kátyák és a processzorok területén mutatkozik meg. Több már elavultnak számító meghajtóprogram került eltávolításra, melynek köszönhetően a rendszer kódja letisztultabb és átláthatóbb lett.
A virtualizáció területén a bhyve hypervizor jelentős fejlődésen ment keresztül, javult a stabilitás, bővült az emulált eszközök köre, illetve a rendszer képes nagyobb számú virtuális processzor kezelni egyetlen vendégen belül.
Frissítés MidnightBSD 4.0-ra
Kezdő lépésként ellenőrizzük, hogy a git csomag telepítve van-e a rendszeren. Amennyiben nincs, telepítsük az mport segítségével.
$ mport install gitA következő lépés a MidnightBSD forráskódjának letöltése a hivatalos GitHub tárolóból, a stable/4.0 ágról. Ez a művelet abból indul ki, hogy a /usr/src könyvtár még nem tartalmaz forrásfát.
$ git clone -b stable/4.0 https://github.com/MidnightBSD/src.gitA forráskód letöltése után a rendszer és a kernel lefordítása következik. A párhuzamos fordítás mértéke a -j kapcsolóval szabályozható, amelyet a rendelkezésre álló processzormagok számához érdemes igazítani.
$ cd /usr/src
make -j4 clean buildworld buildkernelA fordítás befejezése után szükséges a konfigurációs állományok előkészítése. Ehhez a rendszeradminisztrátor választhat az etcupdate vagy a mergemaster eszközök közül.
$ etcupdate -pvagy
$ mergemaster -pEzt követően telepíthető az új kernel, majd a rendszer újraindítása következik.
$ make installkernel$ rebootA sikeres újraindítást követően a userspace, frissítése következik, melyhez lépjünk be a /usr/src könyvtárba, majd telepítsük az új base rendszert.
$ cd /usr/src
make installworldA telepítés után újra szükséges a konfigurációs fájlok összehangolása, ismét az etcupdate vagy a mergemaster egyikével.
$ etcupdate -iUvagy
$ mergemaster -iUAmikor az alap rendszer frissítése befejeződött, a telepített csomagok frissítése következik az mport csomagkezelővel. Elsőként az index frissítése szükséges.
$ mport indexEzután az ideiglenes fájlok eltávolítása következik.
$ mport cleanVégül a csomagok frissítése futtatható.
$ mport upgradeA frissítés lezárásaként érdemes eltávolítani a már nem használt régi könyvtárakat és programokat az alap rendszerből.
$ cd /usr/src
make check-old
make delete-old
make delete-old-libs
make installworldEzzel a folyamat lezárul, a rendszer MidnightBSD 4.0 állapotra frissül, miközben a konfigurációk és a telepített csomagok is összhangba kerülnek az új kiadással.
