vapauta , käyttöjärjestelmä, jossa on hybridiydin, vuonna 2003 tavoitteenaan tarjota vaihtoehtoinen kehityshaara FreeBSD 4.x:lle. DragonFly BSD:n ominaisuuksiin kuuluu sen hajautettu versioitu tiedostojärjestelmä. , tuki "virtuaalisten" järjestelmäytimien lataamiselle käyttäjäprosesseina, kyky tallentaa tiedostojärjestelmän tietoja ja metatietoja välimuistiin SSD-asemille, kontekstitietoiset symboliset linkit, kyky jäädyttää prosessit säilyttäen samalla niiden tilan levyllä, hybridi-ydin, joka käyttää kevyitä säikeitä (LWKT).
Pääasiallinen , lisätty DragonFlyBSD 5.6:ssa:
- Virtuaalimuistin hallintajärjestelmää on modernisoitu. Monet virtuaalimuistiin ja PMAP:iin liittyvät alijärjestelmät on kirjoitettu uudelleen.
Koodia on avattu monissa kohdin, mukaan lukien m_page_wakeup-, vm_hold- ja vm_unhold-funktiot. Suorittimen välimuistin tehokkuutta on parannettu vähentämällä virtuaalikoneiden objektien siirtoa suorittimen ytimien välillä ja vähentämällä jaettujen muistialueiden sivuvirheiden käsittelyn yleiskuluja. Muistin sivun allokointialgoritmia on parannettu. Viiveet vm_page_alloc()-funktiossa on poistettu. vm_page_hash*()-rajapinta on lisätty, mikä mahdollistaa lukitsemattomat valinnat.Tämän seurauksena oli mahdollista huomatavasti . Esimerkiksi
Buildkernel-testissä ytimen puolen suoritusaika lyheni 40 %. Kaistanleveys kasvoi 7 % Haswell-suorittimia käytettäessä ja 14 % Xeon-suorittimia käytettäessä. SELF-EXEC S/DI -testissä suorituskyky parani Haswellilla 23 % ja Xeonilla 18 % edelliseen julkaisuun verrattuna. Testissä
SELF-EXEC S/SH:ssa vastaavasti 28 % ja 71 %, SELF-EXEC D/DI:ssä - 23 % ja 242 % (parantuneen monisäikeisyyden ansiosta), SELF-EXEC D/SH:ssa 24 % ja 234 %, FAULTZF:ssä 17 % ja 14 %, DOCOMP:ssa 22 % ja 42 %,
NATIVEKERNEL-lajikkeessa 5.1 % ja 8.1 %; - AMD-näytönohjainten DRM-ajuria ja TTM-videomuistinhallintaa on päivitetty merkittävästi. Tuki uusille Ryzen APU -suorittimille on lisätty. UEFI-framebuffer-tukea on parannettu. Radeon/ttm:n suorituskykyyn negatiivisesti vaikuttanut lukkiutumisongelma on poistettu. Käynnistysviiveasetusta on muokattu, jotta vältetään ristiriidat i915-ajurin ja X-palvelimen välillä. DRM_IOCTL_GET_PCIINFO-kutsu on lisätty mesa/libdrm-tuen parantamiseksi. Lukuisia virheitä ja puutteita on korjattu.
- HAMMER2-tiedostojärjestelmän synkronointikoodi on kirjoitettu uudelleen, mikä parantaa merkittävästi tiedostojärjestelmän suorituskykyä. Myös peräkkäisen kirjoituksensa suorituskykyä on parannettu.
Kaatumistenkestävyyden parantamiseksi on lisätty riippuvuuksien seuranta, joka estää hakemistojen/tiedostojen jakautumisen luonti-, uudelleennimeämis- tai poistotoimintojen aikana. Tilannevedosten käsittelyä on uudistettu viiveen vähentämiseksi ja tilannevedosten yhtenäisyyden varmistamiseksi. Samanaikaisten kirjoitusten ja välimuistin tyhjennysten käsittelyä on parannettu. umount-operaatiota on parannettu. Eheysrikkomus (CRC) -virheilmoituksista on tehty informatiivisempia.HAMMER2:ta suositellaan oletusarvoiseksi juuritiedostojärjestelmäksi. Klusteritukea ei ole vielä saatavilla. HAMMER2-tiedostojärjestelmän ominaisuuksiin kuuluvat erillinen tilannevedosten liittäminen, kirjoitettavat tilannevedokset, hakemistotason kiintiöt, inkrementaalinen peilaus, tuki erilaisille tiedonpakkausalgoritmeille ja usean pääkoneen peilaus tiedon jakamisella useille isännille.
- Lisätty alustava tuki FUSE-alijärjestelmälle tiedostojärjestelmien luomiseen käyttäjätilassa;
- PF-pakettisuodattimen parannettu suorituskyky moniydinjärjestelmissä;
- SMAP (Supervisor Mode Access Prevention) ja SMEP (Supervisor Mode Execution Prevention) -suojausmekanismien tuki on käytössä, kun suoritin tukee sitä. SMAP estää pääsyn käyttäjätilan tietoihin kernel-tasolla suoritettavasta etuoikeutetusta koodista. SMEP estää siirtymisen kernel-tilasta käyttäjätason koodin suorittamiseen, mikä auttaa estämään monien kernel-haavoittuvuuksien hyödyntämisen (komentotulkkikoodia ei suoriteta, koska se sijaitsee käyttäjätilassa).
- Lisätty estokoodi MDS (Microarchitectural Data Sampling) -luokka Intel-prosessoreissa. Tämä ominaisuus vaatii päivitetyn mikrokoodin. Suojaus on oletusarvoisesti poistettu käytöstä ja se voidaan ottaa käyttöön käyttämällä komentoa 'sysctl machdep.mds_mitigation=MD_CLEAR'. Tämän ominaisuuden käyttöönotto aiheuttaa 250 ns:n lisäviiveen vaihdettaessa kontekstia käyttäjätilan ja ydintilan välillä.
- Ydin käännetään oletuksena retpoline-suojauksella Spectre-hyökkäyksiä vastaan.
- Monet perusjärjestelmän apuohjelmat on muunnettu käyttämään LibreSSL:ää;
- Kolmannen osapuolen komponenttien päivitetyt versiot, mukaan lukien xz 5.2.4,
libarchive 3.3.3, libressl 2.9.1, openssh 8.0, ldns 1.7.0,
libedit 24.3.2019. evdev, makefs, ministat ja libfetch porttattiin FreeBSD:stä.
dd. Kutsut funktioille reallocarray(), timing_safe*(), freezero(), dup3(), recallocarray(), aligned_alloc() ja explicit_bzero() on siirretty OpenBSD:stä libc:hen. Oletusarvoisesti kääntämiseen käytetään gcc-8-kääntäjää gcc-5:n sijaan.
Lähde: opennet.ru
