DragonFly BSD to otwarty system operacyjny BSD zaprojektowany jako logiczna kontynuacja serii OS FreeBSD-4.x. Jest bardzo podobny do innych dystrybucji opartych na BSD, takich jak FreeBSD, NetBSD czy OpenBSD. Jest to widelcem na drodze, że tak powiem, dając podstawy BSD szansę na rozwój w zupełnie nowym kierunku od tego, który został zrobiony w serii FreeBSD-5. Ponadto zawiera unikalny zestaw funkcji, które odróżniają go od innych podobnych systemów.
HAMMER jest główną atrakcją
HAMMER jest główną atrakcją DragonFly & rsquo, nowoczesnego systemu plików o wysokiej wydajności, który oferuje funkcje historycznego dostępu i wbudowane lustrzane odbicie. Jądro jest również jednym z powodów, dla których DragonFly jest lepszą dystrybucją BSD.
Oferuje dwa różne programy planujące dla jądra
Jądro DragonFly zawiera dwa różne programy planujące, jeden planujący wszystkie wykonywalne elementy (wątek Jądra wagi lekkiej) i inny, który wybiera pojedynczy wątek użytkownika na raz dla każdego procesora i usuwa wątki użytkownika (User Thread Scheduler). Dodatkowo, jądro zawiera złożony alokator pamięci jądra złożony z obiektowego przydziału pamięci i podstawowego malloc jądra o nazwie kmalloc (), systemu plików urządzenia DragonFly (DEVFS), wirtualnego jądra (VKERNEL), asynchronizacji RFS NFS V3 i struktura harmonogramu we / wy dysku twardego (zeskanowane).
Funkcje, wiele funkcji
Wśród innych interesujących funkcji, możemy wymienić NULL Filesystem Layer (NULLFS), która obsługuje niepowiązane z pętlą dowolne punkty montowania, TMPFS (Temporary Filesystem VFS), przezroczyste szyfrowanie dysków, zarządzane wsparcie SSD (Solid Storage Device), wariant (kontekst wrażliwe), dowiązania symboliczne, DNTPD (DragonFly Network Time Daemon) i DMA (DragonFly Mail Agent). Ponadto użytkownicy będą mogli w dowolnym momencie kontrolować lub zawieszać procesy na dysku. Dystrybucja zapewnia silne sterowniki AHCI, stabilne nazwy urządzeń, a także dobrze ugruntowane szyfrowanie i zarządzanie wolumenami.
Dolna linia
Ogólnie DragonFly okazuje się nowoczesnym, przyjaznym dla użytkownika i bardzo łatwym w obsłudze systemem operacyjnym typu UNIX. Może być używany codziennie jako system biurkowy lub jako potężny serwer BSD.
Co nowego w tej wersji:
- DragonFly w wersji 5.2.1 został wydany z łagodzeniem Meltdown / Spectre, wieloma ulepszeniami HAMMER2, ipfw i przyspieszonym wideo oraz poprawką (w aktualizacji 5.2.1) dla CVE-2018-8897.
Co nowego w wersji:
- Christian Groessler (1):
- telnetd: wydrukuj informacje systemowe (system operacyjny i architekturę) przed monitem logowania.
- Matthew Dillon (7):
- hammer2 - Napraw dziel przez 0 wyścigu
- jądro - selektywne MFC jądra umtx działa od mistrza
- jądro - zaktualizuj dokumentację umtx
- libc i pthreads - Napraw problemy atfork za pomocą nmalloc, update dmalloc
- hammer2 - Naprawiono wyścig o zmianę nazwy
- hammer2 - zoptymalizuj hammer2_pfs_memory_wakeup ()
- hammer2 - Napraw nieskończone brudne łańcuchy z powodu zmiany nazwy
- Sascha Wildner (5):
- hammer2.8: Napraw błąd.
- Powiedz "hammer2" zamiast "hammer" w różnych miejscach.
- mtree: Napraw właściciela dla kilku katalogów w / usr / share.
- libc / nls: Użyj bieżących ustawień narodowych (ustawionych według wątków).
- libarchive: Cofnij zatwierdzenie, które nie miało zostać przekazane.
Co nowego w wersji 4.8.1:
- Kernel:
- Kod pamięci podręcznej bufora refaktora do usuwania dynamicznych rezerwacji KVA. Zamiast tego wszystkie wartości KVA są rezerwowane podczas rozruchu. Oszczędza nam niepotrzebnych IPI i umożliwia znaczne uproszczenie kodu pamięci podręcznej bufora.
- Dodaj vfs.repurpose_enable (w teście, domyślnie wyłączone). Ta funkcja może być włączona w celu znacznego zmniejszenia obciążenia zarządzania IPI i VM na komputerze, który wykonuje ogromne ilości operacji wejścia / wyjścia pliku, na przykład z dysku SSD NVMe, z pominięciem normalnego mechanizmu odzyskiwania strony maszyny wirtualnej. Po włączeniu funkcja uruchamia się tylko w przypadku dużych obciążeń we / wy. Działa poprzez ponowne wykorzystanie stron VM stanowiących bufor na miejscu (jeśli jest to możliwe), aby nie trzeba było wstawiać / otwierać stron w KVA bufora. Normalny recykling stron VM (który w przeciwnym razie byłby przytłoczony przez obciążenie we / wy) również został ominięty.
- Zmień sposób przetwarzania IPIQ, w szczególności utwórz niezależny mechanizm wektora przerwań dla unieważnień stron, które ignorują (będą działać), nawet jeśli sekcja krytyczna zostanie zatrzymana. Wdrożenie machdep.optimized_invltlb (domyślnie wyłączone, w trakcie testu), dzięki czemu unika się wysyłania IPI związanych z unieważnieniem tlb do bezczynnego cpus.
- Naprawiaj liczne wyścigi, które mogą wystąpić w ekstremalnych obciążeniach. Większość przypadków użycia nigdy by ich nie wyzwoliła, ale czasami pojawiały się nasze pudełka kompilacji. Na przykład, był wyścig dwóch instrukcji, w którym procesor bitowy na pmap zostałby wyczyszczony (dla dwóch instrukcji) i spowodowałby IPI TLB występujący w tym samym czasie na innym procesorze w tym samym pmap, aby nie zorientować się, że cpu używało pmap . Poprawka polega na wyłączeniu optymalizacji ponownego ładowania CR3 dla przypadku przełącznika LWP-> LWP (ten sam proces).
- Napraw błąd HAMMER, który może skutkować nieprawidłowym raportowaniem błędu DATA CRC.
- Napraw podwójny zapis wywołany sposobem, w jaki HAMMER używa funkcji cluster_write (). To znacznie poprawia wydajność zapisu w grze HAMMER.
- Liczne inne poprawki i poprawki HAMMER również zostały wprowadzone.
- Napraw silną blokadę, która może wystąpić w getpbuf * () z powodu błędnej interpretacji zwracanej wartości op atomowej.
- Napraw przerwanie stosu, które może wystąpić w oknie 10-instrukcji, potencjalnie (ale nie można go znaleźć w środowisku naturalnym) uruchamiającym stos jądra.
- Ogranicz IPI związany z pmap o połowę w przypadku niektórych operacji buforowania i buforowania, nie zadając sobie trudu unieważnienia TLB, a po stronie odwrotnej zawsze unieważnia TLB przy wprowadzaniu nowego PTE, nawet jeśli wcześniejsza treść była nieprawidłowa. Poprawia to wydajność, a także ułatwia debugowanie, usuwając problematyczną optymalizację.
- Naprawiono wiele trudnych wyścigów SMP, w szczególności związanych z robieniem równoczesnych stanowisk z różnych punktów montowania, które mogą być uruchamiane przez masową kompilację. Napraw także wyścig mountctl vs umount.
- Zmniejsz liczbę atomowych operacji na ścieżce przełącznika.
- Napraw rasę / panikę namecache, które mogą wystąpić w ekstremalnych obciążeniach w połączeniu z dużą aktywnością mount / umount.
- Ogranicz pobieranie próbne% rip do katalogu głównego.
- Napraw problem getpid () w vfork () po wątku. W szczególności równoczesne vfork () w wątkowym programie może spowodować zwrócenie błędnego PID przez getpid () w potomku przed exec.
- Napraw rzadki wyścig o ściganie / objaśnienie, gdy licznik objaśnień zostanie wywołany przed zakończeniem konfiguracji tsleep ().
- Wyczyść namecache wiadomości na konsoli. W szczególności należy podać prawidłowy czas, jaki upłynął, oraz wartość td_comm wątku.
- Dalsze ograniczanie testowania pamięci i zerowanie początkowego rozruchu w celu skrócenia czasu rozruchu w systemach z dużą ilością pamięci RAM.
- Całkowicie usuń bezczynny kod zerowania stron. Zerowanie strony na współczesnym procesorze graficznym na żądanie jest lepsze z wielu powodów i w rzeczywistości może być szybsze w połączeniu z danymi dostępowymi dla klientów na stronie, ze względu na efekty pamięci podręcznej. Usuń PG_ZERO, ponieważ nie jest już potrzebny. Usunięcie PG_ZERO powoduje również, że jądro staje się bardziej debuggable poprzez usunięcie innego możliwego źródła zanieczyszczenia krzyżowego.
- Refaktor i zakończ implementowanie lokalizacji procesora dla przydziałów pamięci jądra. Połącz ze świadomością NUMA. Działa to w przypadku struktur danych jądra zlokalizowanych na procesorze lub krótkotrwałych danych jądra. Te dwa elementy są połączone w naszą abstrakcję PQ_L2_SIZE, która kiedyś była kodem kolorowania strony VM. Ten kod obsługuje teraz także lokalizację procesora i świadomość NUMA.
- Naprawiono wiele problemów z vkernelem i znacznie poprawiono wydajność vkernela.
- Zaktualizuj kern.proc.pathname, sysctl używany przez programy, aby znaleźć ścieżkę uruchomionego programu. Ten sysctl został pierwotnie zaimplementowany, zanim zgromadziliśmy wystarczającą ilość danych, aby zwrócić pełną, właściwą ścieżkę.
- Synchronizuj ACPICA z Intelem (jest to zwykłe wydarzenie).
- Napraw blok ABI memcpy (). Zestaw nie zwrócił oryginalnego argumentu (dst). Nie naprawia żadnych znanych problemów, ale zamyka lukę, gdy GCC czasami decyduje się na wywołanie memcpy podczas generowania kodu.
- Wiele zatwierdzeń do czyszczenia -O2 ostrzeżeń i błędów. Jądro jest teraz skompilowane domyślnie -O2.
- Dodaj obejście dla niewłaściwego uzysku w ścieżce ACPI (zwany również błędnym kodem ACPI).
- Napraw wyścig STOP / CONT, który może zostać wywołany przez oczekujący sygnał o niewłaściwej porze.
- Gwintowane poprawki coredump i naprawianie blokady związane z tym samym, gdy wiele wątków tego samego procesu seg-fault w tym samym czasie.
- Naprawienie zakleszczenia CAM / VM, które może wystąpić z powodu błędu w uiomove_nofault (). Może to spowodować "nieokreślony bufor oczekiwania" podczas intensywnego stronicowania / wymiany.
- Dodaj kod do wykrywania utraconych IPI i radzenia sobie z nimi. Dotyczy to głównie vkerneli, w których niektóre wirtualne hosty mogą utracić IPI. Prawdziwe procesory nie powinny tracić IPI.
- Różne poprawki do clock_gettime ().
- Usuń więcej śladów MPLOCK. Wszystkie krytyczne ścieżki już dawno zostały usunięte z tej blokady, ale nadal jest kilka niekrytycznych miejsc, które go używają.
- Przerób kod niszczenia procesów o małej pamięci i napraw kilka wyścigów, które mogą uniemożliwić działanie tej funkcji.
- Naprawienie blokady systemu za pomocą VMM i skorygowanie kodu VMX.
- Naprawianie zakleszczenia, gdy numvnodes osiąga maxvnodes, co może wystąpić przy dużych obciążeniach. Napraw mniejszy wyciek pamięci jądra, gdy "df" lub synchronizacja systemu plików wyskakuje z umount. Zmniejsz również obliczenia maxvnodes skromnie. Na przykład maszyna z 8 GB pamięci ustawi teraz maxvnodes na 478483 zamiast 598103.
- Napraw rzadką panikę, która może zostać wywołana przez vm_object_page_remove (), gdy user_yield () zostanie nieprawidłowo wywołana podczas trzymania blokady spinlock, a następnie decyduje się na desaturację.
- Zmniejsz rozmiar niektórych dynamicznie przydzielanych struktur jądra. W szczególności, przydział tablic o nadmiernych rozmiarach i-węzłów jest teraz mniejszy. Dotyczy głównie UFS (którego DragonFlyBSD nie używa zbyt wiele).
- Dodaj obejście problemu z błędem AMD 793.
- Naprawić zakleszczenie, które może wystąpić w skumulowanym klastrze _ * () wywołania we / wy.
- Napraw błąd, który powodowałby zakleszczenie modułu rekursywnego.
- Napraw głupi błąd w kodzie sillyrename NFS (po stronie serwera NFS), który może spowodować, że kod sillyrename serwera NFS nigdy nie usunie pliku o przemyślanej nazwie. Jak głupio!
- Lepsza praca z konfiguracjami o wysokiej wartości ncpu + o małej pamięci.
- Udostępnianie spinów typu refactor w celu zmniejszenia liczby wirowań, które mogą wystąpić, gdy wiele procesorów uzyskuje wspólną blokadę spinów w tym samym czasie.
- Dokonaj przeglądu operacji Netschebeta, aby jeszcze bardziej zmniejszyć rywalizację o SMP. Poprawia to równoczesną, nie powodującą konfliktów, jednoskładnikową wydajność co najmniej 25x w systemach z wieloma rdzeniami i znacząco redukuje operacje ref i unref vnode i mount.
- Dokonaj przeglądu wielu innych struktur jądra, aby poprawić lokalizację pamięci podręcznej i zmniejszyć liczbę linków w pamięci podręcznej.
- Napraw błąd w kodzie zmiany nazwy pliku SMBFS.
- Zaimplementuj RLIMIT_RSS, ogranicznik RSS dla każdego procesu, który wymusi lokalne stronicowanie na podstawie procesu. Ta funkcja może być używana, aby jeden proces nie zamienił reszty maszyny w twardą obudowę.
- Zwiększ maksymalną obsługiwaną przestrzeń wymiany. Maksymalna jest teraz ograniczona głównie przez RAM i będzie w dziesiątkach terabajtów (jeśli masz wystarczająco dużo pamięci RAM dla wspierających struktur zarządzania). Zwiększ także KVM kernela z 128G do 511G.
- Wdrażaj dynamiczne usuwanie pmap (domyślnie wyłączone). To kieruje kod pmap, aby usunąć strony tabeli pośredniej i PD z PMAP w locie. Może to być przydatne, jeśli pamięć jest ważna, ale pamiętaj, że jeśli jest włączona, spowolni wykonywanie programów, które alokują i zwalniają pamięć z dużą szybkością.
- Refactor, jak działają "ładne" poziomy użytkownika, dzięki czemu wybrane fajne wartości są bardziej znaczące niż kiedyś.
- Dodaj wysokiej jakości natywny sterownik NVME do DragonFly, napisany przez Matta Dillona. Sterownik ten będzie używał wektorów MSI-X i wszystkich dostępnych kolejek obsługiwanych przez urządzenie, lokalizacji per-cpu bez blokowania lub minimalnego blokowania (w większości przypadków nie ma konfliktów SMP) i jest zdolny do nienormalnego IOPS i przepustowości.
- Grafika:
- Stabilizuje Broadwella i Skylake, doprowadza nas do DRM w systemie Linux 4.6.
- Zaimplementuj interfejs Linux i2c API, aby ułatwić portowanie.
- Napraw kilka starych błędów, włącznie z odwróceniem kolejności blokad, które mogą zablokować odtwarzanie wideo (i resztę X).
- Napraw błąd priorytetu wątku drn jądra, który pozwala procesom użytkownika mieć wyższy priorytet niż wątek pomocnika drm. To naprawia większość tymczasowych przestojów wideo zgłaszanych w przeglądarkach.
- Obsługa bufora ramki EFI przechodzącego w DRM, poprawa przełączania VT syscons i naprawienie powiązanego zakleszczenia. Niech jądro spróbuje przełączyć się z powrotem do konsoli VT od X, gdy pojawi się panika.
- Sieci:
- Wiele usprawnień we wszystkich dziedzinach.
- iwm - Naprawia problem spowodowany przez odwróconą logikę. Liczne inne ulepszenia, które znacznie poprawiają wydajność.
- wlan - Dodano obsługę asynchronicznego skanowania bg i innych funkcji.
- Inne sterowniki:
- nvme - Dodano do domyślnej kompilacji jądra oraz poprawek i ulepszeń wydajności.
- mmcsd - Dodano znaczącą obsługę eMMC do DragonFly.
- ahci - Niektóre poprawki zgodności i dodatkowe dziwactwa dodane do obsługi uszkodzonych chipsetów, w szczególności mnożników portów. Zaimplementuj także FBS (FIS-Based-Switching), jeśli jest obsługiwany przez chipset.
- Dodano obsługę Trackpoint i Elantech.
- Userland:
- systat enhanced to collapse wielu przerwań należących do tego samego sterownika, ponieważ często jest ich zbyt wiele, aby je teraz wyświetlić.
- systat -vm 1 został znacznie ulepszony i przebudowany, aby zgłaszać więcej użytecznych informacji i rozpakowywać pola, aby się do siebie nie dopuścić. I dodaj "nvme" do dopasowania urządzenia blokowego. Dostosuj również rozszerzone wyświetlanie vmstats i zmień, jak zgłaszane są ozfod i nzfod.
- Odwzorowano wyjście "vmstat 1". Wszystkie pola wpadały na siebie ze względu na wysoką wydajność nowoczesnej maszyny, co 30 lat temu było znane.
- Zmień sygnalizację mount / mountd, aby zredukować niepotrzebne skany i polecenia listli montowania z operacji mount_null i mount_tmpfs. Tylko naprawdę ma znaczenie przy dużym jednoczesnym korzystaniu z mount / umount, ale większość kompilacji faktycznie tworzy taką sytuację.
- Naprawiono liczne wycieki fork / exec * (), które libc może wywołać, ponieważ nie używają O_CLOEXEC w sposób atomowy. Dodaj różne funkcje O_CLOEXEC do funkcji takich jak popen () i mk * stemp * () (dodaj mkostemp () i mkostemps ()). Napraw wyciek deskryptora pliku w popen () podczas pracy w środowisku gwintowanym.
- Bądź milszy od pthreads w vfork (), nadając nowemu podprocesowi lwp ten sam TID, co ten, który wywołał vfork (). Pozwala to na wykonywanie funkcji pomocniczych pthread w pliku potomnym podczas vfork bez impozycji pthreadów.
- Wiele poprawek kompatybilności z nagłówkami w celu ulepszenia zbiorczych kompilacji dportów.
- Kilka importów OpenSSL dla poprawek bezpieczeństwa.
- Ponownie zsynchronizuj OpenSSH, aby łatwiej było go zachować.
- Rozdziel flagi jądra C, używając kompilacji jądra, użyj KCFLAGS zamiast CFLAGS.
- Usuń całkowicie liczne stare sterowniki ISA z drzewa. Ponieważ DragonFlyBSD jest teraz tylko w wersji 64-bitowej, możemy zacząć usuwać stare sterowniki, które nie istnieją na 64-bitowych platformach.
- Przedstaw WORLD_CFLAGS i WORLD_CCOPTLEVEL, domyślnie -O. Ułatwia to kompilowanie świata -O2 lub cokolwiek (np. WORLD_CCOPTLEVEL = 2). Jednak zniechęcamy do korzystania z 3 lub więcej. Poprawne wartości to 0, 1, 2, 3, s, g i "szybko".
- Dostosuj formatowanie STAT dla ps, aby było bardziej czytelne i aby usunąć starodawne flagi, które nie są już stosowane i po prostu stwórz bałagan.
- Napraw wyrównanie malloc () dla małych alokacji. Minimalne wyrównanie wynosi teraz 16 dla alokacji w zakresie 16-128 bajtów zamiast 8. Zauważ, że alokacja mocy 2 zawsze była naturalnie wyrównana, ale niektóre programy używają wielokrotności (np.) 16, jak "48", i przyjąć 16-bajtowe wyrównanie.
- Fortele refaktoryzowane, dodane.
- powerd - dodaj zarządzanie oparte na temperaturze do zasilania dzięki nowej opcji -H lotemp: hightemp. Ta funkcja jest niezwykle przydatna w laptopach o słabym chłodzeniu i które BIOSy celowo dławią w zbyt wysokiej temperaturze. Powerd teraz również wykrywa zmiany stanu zasilania (które mogą zmienić listę dostępnych częstotliwości) i prawidłowo zmienia usługę, gdy nastąpi zmiana stanu zasilania.
- Mnóstwo poprawek i poprawek libthread_xu / pthreads w celu poprawy zgodności z formatem dport.
- Dodaj funkcje kopiowania przy zapisie do vkernelu. Na przykład, pozwala wielu plikom VKernela używać pojedynczego obrazu dysku, posiadając każdą jedną modyfikację COW wewnętrznie do RAM.
- / usr / src / secure rewired, konflikty usunięte z libmd, libcrypt.
- W systemie podstawowym zaktualizowano różne narzędzia:
- Kompilator zaktualizowany do wersji GCC 5.4.1.
- Teraz mamy złoty linker z LTO.
- binutils 2.25
- mniej 481.
- OpenSSL / LibRESSL całkowicie przebudowany. Baza używa teraz libressl.
- Wiele aktualizacji stref czasowych.
- Status młota:
- Różne ulepszenia. Jedną z rzeczy, która nie dotarła do wydania, była wersja testowa do użycia szybszego algorytmu CRC z innym wielomianem. Ta praca zostanie MFC'd do -release po zakończeniu testów. Jednak użytkownicy nie powinni się o to martwić, ponieważ najpoważniejsza poprawka wydajności IS w wydaniu (poprawka do kodu cluster_write () dla zapisu systemu plików).
- Status Hammer2:
- Rozwój jest kontynuowany, ale nie ma jeszcze słowa w pierwszym wydaniu.
- Status dzwonka:
- Dodano podstawową strukturę do używania klanga jako alternatywnego podstawowego kompilatora w DragonFly, aby zastąpić gcc 4.7. To jeszcze nie jest kompletne. Clang można oczywiście dodać jako pakiet.
- Status 64-bitowy:
- Zauważ, że DragonFly to system operacyjny tylko w wersji 64-bitowej od wersji 4.6 i nie będzie działać na 32-bitowym sprzęcie.
- Obsługa AMD Ryzen jest dostępna w tej wersji, a dalsze prace zostaną wprowadzone, gdy pojawią się nowe zmiany w Ryzen. Istnieje kilka problemów związanych z topologią raportowaną przez procesor, które zostaną naprawione i MFC'd. Występują pewne problemy ze stabilnością, które obecnie czekają na aktualizację mikrokodu AMD w celu rozwiązania / ponownego testowania. Użytkownicy Ryzen mogą być pewni, że jesteśmy na szczycie!
Co nowego w wersji 4.8.0:
- Kernel:
- Kod pamięci podręcznej bufora refaktora do usuwania dynamicznych rezerwacji KVA. Zamiast tego wszystkie wartości KVA są rezerwowane podczas rozruchu. Oszczędza nam niepotrzebnych IPI i umożliwia znaczne uproszczenie kodu pamięci podręcznej bufora.
- Dodaj vfs.repurpose_enable (w teście, domyślnie wyłączone). Ta funkcja może być włączona w celu znacznego zmniejszenia obciążenia zarządzania IPI i VM na komputerze, który wykonuje ogromne ilości operacji wejścia / wyjścia pliku, na przykład z dysku SSD NVMe, z pominięciem normalnego mechanizmu odzyskiwania strony maszyny wirtualnej. Po włączeniu funkcja uruchamia się tylko w przypadku dużych obciążeń we / wy. Działa poprzez ponowne wykorzystanie stron VM stanowiących bufor na miejscu (jeśli jest to możliwe), aby nie trzeba było wstawiać / otwierać stron w KVA bufora. Normalny recykling stron VM (który w przeciwnym razie byłby przytłoczony przez obciążenie we / wy) również został ominięty.
- Zmień sposób przetwarzania IPIQ, w szczególności utwórz niezależny mechanizm wektora przerwań dla unieważnień stron, które ignorują (będą działać), nawet jeśli sekcja krytyczna zostanie zatrzymana. Implementuj machdep.optimized_invltlb (domyślnie wyłączone, w trakcie testu), dzięki czemu unika się wysyłania IPI związanych z unieważnianiem tlb do bezczynnego cpus.
- Naprawiaj liczne wyścigi, które mogą wystąpić w ekstremalnych obciążeniach. Większość przypadków użycia nigdy by ich nie wyzwoliła, ale czasami pojawiały się nasze pudełka kompilacji. Na przykład, był wyścig dwóch instrukcji, w którym procesor bitowy na pmap zostałby wyczyszczony (dla dwóch instrukcji) i spowodowałby IPI TLB występujący w tym samym czasie na innym procesorze w tym samym pmap, aby nie zorientować się, że cpu używało pmap . Poprawka polega na wyłączeniu optymalizacji ponownego ładowania CR3 dla przypadku przełącznika LWP-> LWP (ten sam proces).
- Napraw błąd HAMMER, który może skutkować nieprawidłowym raportowaniem błędu DATA CRC.
- Napraw podwójny zapis wywołany sposobem, w jaki HAMMER używa funkcji cluster_write (). To znacznie poprawia wydajność zapisu w grze HAMMER.
- Liczne inne poprawki i poprawki HAMMER również zostały wprowadzone.
- Napraw silną blokadę, która może wystąpić w getpbuf * () z powodu błędnej interpretacji zwracanej wartości op atomowej.
- Napraw przerwanie stosu, które może wystąpić w oknie 10-instrukcji, potencjalnie (ale nie można go znaleźć w środowisku naturalnym) uruchamiającym stos jądra.
- Ogranicz IPI związany z pmap o połowę w przypadku niektórych operacji buforowania i buforowania, nie zadając sobie trudu unieważnienia TLB, a po stronie odwrotnej zawsze unieważnia TLB przy wprowadzaniu nowego PTE, nawet jeśli wcześniejsza treść była nieprawidłowa. Poprawia to wydajność, a także ułatwia debugowanie, usuwając problematyczną optymalizację.
- Naprawiono wiele trudnych wyścigów SMP, w szczególności związanych z robieniem równoczesnych stanowisk z różnych punktów montowania, które mogą być uruchamiane przez masową kompilację. Napraw także wyścig mountctl vs umount.
- Zmniejsz liczbę atomowych operacji na ścieżce przełącznika.
- Napraw rasę / panikę namecache, które mogą wystąpić w ekstremalnych obciążeniach w połączeniu z dużą aktywnością mount / umount.
- Ogranicz pobieranie próbne% rip do katalogu głównego.
- Napraw problem getpid () w vfork () po wątku. W szczególności równoczesne vfork () w wątkowym programie może spowodować zwrócenie błędnego PID przez getpid () w potomku przed exec.
- Napraw rzadki wyścig o ściganie / objaśnienie, gdy licznik objaśnień zostanie wywołany przed zakończeniem konfiguracji tsleep ().
- Wyczyść namecache wiadomości na konsoli. W szczególności należy podać prawidłowy czas, jaki upłynął, oraz wartość td_comm wątku.
- Dalsze ograniczanie testowania pamięci i zerowanie początkowego rozruchu w celu skrócenia czasu rozruchu w systemach z dużą ilością pamięci RAM.
- Całkowicie usuń bezczynny kod zerowania stron. Zerowanie strony na współczesnym procesorze graficznym na żądanie jest lepsze z wielu powodów i w rzeczywistości może być szybsze w połączeniu z danymi dostępowymi dla klientów na stronie, ze względu na efekty pamięci podręcznej. Usuń PG_ZERO, ponieważ nie jest już potrzebny. Usunięcie PG_ZERO powoduje również, że jądro staje się bardziej debuggable poprzez usunięcie innego możliwego źródła zanieczyszczenia krzyżowego.
- Refaktor i zakończ implementowanie lokalizacji procesora dla przydziałów pamięci jądra. Połącz ze świadomością NUMA. Działa to w przypadku struktur danych jądra zlokalizowanych na procesorze lub krótkotrwałych danych jądra. Te dwa elementy są połączone w naszą abstrakcję PQ_L2_SIZE, która kiedyś była kodem kolorowania strony VM. Ten kod obsługuje teraz także lokalizację procesora i świadomość NUMA.
- Naprawiono wiele problemów z vkernelem i znacznie poprawiono wydajność vkernela.
- Zaktualizuj kern.proc.pathname, sysctl używany przez programy, aby znaleźć ścieżkę uruchomionego programu. Ten sysctl został pierwotnie zaimplementowany, zanim zgromadziliśmy wystarczającą ilość danych, aby zwrócić pełną, właściwą ścieżkę.
- Synchronizuj ACPICA z Intelem (jest to zwykłe wydarzenie).
- Napraw blok ABI memcpy (). Zestaw nie zwrócił oryginalnego argumentu (dst). Nie naprawia żadnych znanych problemów, ale zamyka lukę, gdy GCC czasami decyduje się na wywołanie memcpy podczas generowania kodu.
- Wiele zatwierdzeń do czyszczenia -O2 ostrzeżeń i błędów. Jądro jest teraz skompilowane domyślnie -O2.
- Dodaj obejście dla niewłaściwego uzysku w ścieżce ACPI (zwany również błędnym kodem ACPI).
- Napraw wyścig STOP / CONT, który może zostać wywołany przez oczekujący sygnał o niewłaściwej porze.
- Gwintowane poprawki coredump i naprawianie blokady związane z tym samym, gdy wiele wątków tego samego procesu seg-fault w tym samym czasie.
- Naprawienie zakleszczenia CAM / VM, które może wystąpić z powodu błędu w uiomove_nofault (). Może to spowodować "nieokreślony bufor oczekiwania" podczas intensywnego stronicowania / wymiany.
- Dodaj kod do wykrywania utraconych IPI i radzenia sobie z nimi. Dotyczy to głównie vkerneli, w których niektóre wirtualne hosty mogą utracić IPI. Prawdziwe procesory nie powinny tracić IPI.
- Różne poprawki do clock_gettime ().
- Usuń więcej śladów MPLOCK. Wszystkie krytyczne ścieżki już dawno zostały usunięte z tej blokady, ale nadal jest kilka niekrytycznych miejsc, które go używają.
- Przerób kod niszczenia procesów o małej pamięci i napraw kilka wyścigów, które mogą uniemożliwić działanie tej funkcji.
- Naprawienie blokady systemu za pomocą VMM i skorygowanie kodu VMX.
- Naprawianie zakleszczenia, gdy numvnodes osiąga maxvnodes, co może wystąpić przy dużych obciążeniach. Napraw mniejszy wyciek pamięci jądra, gdy "df" lub synchronizacja systemu plików wyskakuje z umount. Zmniejsz również obliczenia maxvnodes skromnie. Na przykład maszyna z 8 GB pamięci ustawi teraz maxvnodes na 478483 zamiast 598103.
- Napraw rzadką panikę, która może zostać wywołana przez vm_object_page_remove (), gdy user_yield () zostanie nieprawidłowo wywołana podczas trzymania blokady spinlock, a następnie decyduje się na desaturację.
- Zmniejsz rozmiar niektórych dynamicznie przydzielanych struktur jądra. W szczególności, przydział tablic o nadmiernych rozmiarach i-węzłów jest teraz mniejszy. Dotyczy głównie UFS (którego DragonFlyBSD nie używa zbyt wiele).
- Dodaj obejście problemu z błędem AMD 793.
- Naprawić zakleszczenie, które może wystąpić w skumulowanym klastrze _ * () wywołania we / wy.
- Napraw błąd, który powodowałby zakleszczenie modułu rekursywnego.
- Napraw głupi błąd w kodzie sillyrename NFS (po stronie serwera NFS), który może spowodować, że kod sillyrename serwera NFS nigdy nie usunie pliku o przemyślanej nazwie. Jak głupio!
- Lepsza praca z konfiguracjami o wysokiej wartości ncpu + o małej pamięci.
- Udostępnianie spinów typu refactor w celu zmniejszenia liczby wirowań, które mogą wystąpić, gdy wiele procesorów uzyskuje wspólną blokadę spinów w tym samym czasie.
- Dokonaj przeglądu operacji Netschebeta, aby jeszcze bardziej zmniejszyć rywalizację o SMP. Poprawia to równoczesną, nie powodującą konfliktów, jednoskładnikową wydajność co najmniej 25x w systemach z wieloma rdzeniami i znacząco redukuje operacje ref i unref vnode i mount.
- Dokonaj przeglądu wielu innych struktur jądra, aby poprawić lokalizację pamięci podręcznej i zmniejszyć liczbę linków w pamięci podręcznej.
- Napraw błąd w kodzie zmiany nazwy pliku SMBFS.
- Zaimplementuj RLIMIT_RSS, ogranicznik RSS dla każdego procesu, który wymusi lokalne stronicowanie na podstawie procesu. Ta funkcja może być używana, aby jeden proces nie zamienił reszty maszyny w twardą obudowę.
- Zwiększ maksymalną obsługiwaną przestrzeń wymiany. Maksymalna jest teraz ograniczona głównie przez RAM i będzie w dziesiątkach terabajtów (jeśli masz wystarczająco dużo pamięci RAM dla wspierających struktur zarządzania). Zwiększ także KVM kernela z 128G do 511G.
- Wdrażaj dynamiczne usuwanie pmap (domyślnie wyłączone). To kieruje kod pmap, aby usunąć strony tabeli pośredniej i PD z PMAP w locie. Może to być przydatne, jeśli pamięć jest ważna, ale pamiętaj, że jeśli jest włączona, spowolni wykonywanie programów, które alokują i zwalniają pamięć z dużą szybkością.
- Refactor, jak działają "ładne" poziomy użytkownika, dzięki czemu wybrane fajne wartości są bardziej znaczące niż kiedyś.
- Dodaj wysokiej jakości natywny sterownik NVME do DragonFly, napisany przez Matta Dillona. Sterownik ten będzie używał wektorów MSI-X i wszystkich dostępnych kolejek obsługiwanych przez urządzenie, lokalizacji per-cpu bez blokowania lub minimalnego blokowania (w większości przypadków nie ma konfliktów SMP) i jest zdolny do nienormalnego IOPS i przepustowości.
- Grafika:
- Stabilizuje Broadwella i Skylake, doprowadza nas do DRM w systemie Linux 4.6.
- Zaimplementuj interfejs Linux i2c API, aby ułatwić portowanie.
- Napraw kilka starych błędów, włącznie z odwróceniem kolejności blokad, które mogą zablokować odtwarzanie wideo (i resztę X).
- Napraw błąd priorytetu wątku drn jądra, który pozwala procesom użytkownika mieć wyższy priorytet niż wątek pomocnika drm. To naprawia większość tymczasowych przestojów wideo zgłaszanych w przeglądarkach.
- Obsługa bufora ramki EFI przechodzącego w DRM, poprawa przełączania VT syscons i naprawienie powiązanego zakleszczenia. Niech jądro spróbuje przełączyć się z powrotem do konsoli VT od X, gdy pojawi się panika.
- Sieci:
- Wiele usprawnień we wszystkich dziedzinach.
- iwm - Naprawia problem spowodowany przez odwróconą logikę. Liczne inne ulepszenia, które znacznie poprawiają wydajność.
- wlan - Dodano obsługę asynchronicznego skanowania bg i innych funkcji.
- Inne sterowniki:
- nvme - Dodano do domyślnej kompilacji jądra oraz poprawek i ulepszeń wydajności.
- mmcsd - Dodano znaczącą obsługę eMMC do DragonFly.
- ahci - Niektóre poprawki zgodności i dodatkowe dziwactwa dodane do obsługi uszkodzonych chipsetów, w szczególności mnożników portów. Zaimplementuj także FBS (FIS-Based-Switching), jeśli jest obsługiwany przez chipset.
- Dodano obsługę Trackpoint i Elantech.
- Userland:
- systat enhanced to collapse wielu przerwań należących do tego samego sterownika, ponieważ często jest ich zbyt wiele, aby je teraz wyświetlić.
- systat -vm 1 został znacznie ulepszony i przebudowany, aby zgłaszać więcej użytecznych informacji i rozpakowywać pola, aby się do siebie nie dopuścić. I dodaj "nvme" do dopasowania urządzenia blokowego. Dostosuj również rozszerzone wyświetlanie vmstats i zmień, jak zgłaszane są ozfod i nzfod.
- Odwzorowano wyjście "vmstat 1". Wszystkie pola wpadały na siebie ze względu na wysoką wydajność nowoczesnej maszyny, co 30 lat temu było znane.
- Zmień sygnalizację mount / mountd, aby zredukować niepotrzebne skany i polecenia listli montowania z operacji mount_null i mount_tmpfs. Tylko naprawdę ma znaczenie przy dużym jednoczesnym korzystaniu z mount / umount, ale większość kompilacji faktycznie tworzy taką sytuację.
- Naprawiono liczne wycieki fork / exec * (), które libc może wywołać, ponieważ nie używają O_CLOEXEC w sposób atomowy. Dodaj różne funkcje O_CLOEXEC do funkcji takich jak popen () i mk * stemp * () (dodaj mkostemp () i mkostemps ()). Napraw wyciek deskryptora pliku w popen () podczas pracy w środowisku gwintowanym.
- Bądź milszy od pthreads w vfork (), nadając nowemu podprocesowi lwp ten sam TID, co ten, który wywołał vfork (). Pozwala to na wykonywanie funkcji pomocniczych pthread w pliku potomnym podczas vfork bez impozycji pthreadów.
- Wiele poprawek kompatybilności z nagłówkami w celu ulepszenia zbiorczych kompilacji dportów.
- Kilka importów OpenSSL dla poprawek bezpieczeństwa.
- Ponownie zsynchronizuj OpenSSH, aby łatwiej było go zachować.
- Rozdziel flagi jądra C, używając kompilacji jądra, użyj KCFLAGS zamiast CFLAGS.
- Usuń całkowicie liczne stare sterowniki ISA z drzewa. Ponieważ DragonFlyBSD jest teraz tylko w wersji 64-bitowej, możemy zacząć usuwać stare sterowniki, które nie istnieją na 64-bitowych platformach.
- Przedstaw WORLD_CFLAGS i WORLD_CCOPTLEVEL, domyślnie -O. Ułatwia to kompilowanie świata -O2 lub cokolwiek (np. WORLD_CCOPTLEVEL = 2). Jednak zniechęcamy do korzystania z 3 lub więcej. Poprawne wartości to 0, 1, 2, 3, s, g i "szybko".
- Dostosuj formatowanie STAT dla ps, aby było bardziej czytelne i aby usunąć starodawne flagi, które nie są już stosowane i po prostu stwórz bałagan.
- Napraw wyrównanie malloc () dla małych alokacji. Minimalne wyrównanie wynosi teraz 16 dla alokacji w zakresie 16-128 bajtów zamiast 8. Zauważ, że alokacja mocy 2 zawsze była naturalnie wyrównana, ale niektóre programy używają wielokrotności (np.) 16, jak "48", i przyjąć 16-bajtowe wyrównanie.
- Fortele refaktoryzowane, dodane.
- powerd - dodaj zarządzanie oparte na temperaturze do zasilania dzięki nowej opcji -H lotemp: hightemp. Ta funkcja jest niezwykle przydatna w laptopach o słabym chłodzeniu i które BIOSy celowo dławią w zbyt wysokiej temperaturze. Powerd teraz również wykrywa zmiany stanu zasilania (które mogą zmienić listę dostępnych częstotliwości) i prawidłowo zmienia usługę, gdy nastąpi zmiana stanu zasilania.
- Mnóstwo poprawek i poprawek libthread_xu / pthreads w celu poprawy zgodności z formatem dport.
- Dodaj funkcje kopiowania przy zapisie do vkernelu. Na przykład, pozwala wielu plikom VKernela używać pojedynczego obrazu dysku, posiadając każdą jedną modyfikację COW wewnętrznie do RAM.
- / usr / src / secure rewired, konflikty usunięte z libmd, libcrypt.
- W systemie podstawowym zaktualizowano różne narzędzia:
- Kompilator zaktualizowany do wersji GCC 5.4.1.
- Teraz mamy złoty linker z LTO.
- binutils 2.25
- mniej 481.
- OpenSSL / LibRESSL całkowicie przebudowany. Baza używa teraz libressl.
- Wiele aktualizacji stref czasowych.
- Status młota:
- Różne ulepszenia. Jedną z rzeczy, która nie dotarła do wydania, była wersja testowa do użycia szybszego algorytmu CRC z innym wielomianem. Ta praca zostanie MFC'd do -release po zakończeniu testów. Jednak użytkownicy nie powinni się o to martwić, ponieważ najpoważniejsza poprawka wydajności IS w wydaniu (poprawka do kodu cluster_write () dla zapisu systemu plików).
- Status Hammer2:
- Rozwój jest kontynuowany, ale nie ma jeszcze słowa w pierwszym wydaniu.
- Status dzwonka:
- Dodano podstawową strukturę do używania klanga jako alternatywnego podstawowego kompilatora w DragonFly, aby zastąpić gcc 4.7. To jeszcze nie jest kompletne. Clang można oczywiście dodać jako pakiet.
- Status 64-bitowy:
- Zauważ, że DragonFly to system operacyjny tylko w wersji 64-bitowej od wersji 4.6 i nie będzie działać na 32-bitowym sprzęcie.
- Obsługa AMD Ryzen jest dostępna w tej wersji, a dalsze prace zostaną wprowadzone, gdy pojawią się nowe zmiany w Ryzen. Istnieje kilka problemów związanych z topologią raportowaną przez procesor, które zostaną naprawione i MFC'd. Występują pewne problemy ze stabilnością, które obecnie czekają na aktualizację mikrokodu AMD w celu rozwiązania / ponownego testowania. Użytkownicy Ryzen mogą być pewni, że jesteśmy na szczycie!
Co nowego w wersji 4.6.0:
- mmcsd (4): Naprawiono literówkę w argumentach disk_create (). Umożliwia dostęp do> karty SD / MMC.
- Dodaj unzip (1). Jeśli nie możesz ich pokonać, dołącz do em
- Przywróć zdolność do budowania świata wersji Release 4.4
- buildworld - Zezwól na budowanie na master
- etc / rc.d - korekty bezdyskowe
- jądro - Dodaj obsługę kingsue do NFS (napraw problemy z firefox w / nfs)
- Zaimportuj OpenSSL 1.0.1.
- Lokalne dostosowania dla OpenSSL 1.0.1.
- Baza danych strefy synchronizacji z tzdata2016b z ftp://ftp.iana.org/tz/releases
- zic (8) / zdump (8): Nie ostrzegaj o skrótach takich jak "-05".
- zic (8): Usuń "rejestr", który wkradł się do ostatniego zatwierdzenia.
- kernel / acpi_timer: Dodaj brakującą wartość cpu_enable_intr () po teście timera.
- em.4: Wspomnij o obsłudze i219.
- ig_hal / em / emx: Dodaj obsługę I219 (Skylake)
- sys / vfs / hammer: Napraw błąd w usuwaniu nagłówka woluminu
- sbin / hammer: nie uzyskuj dostępu powyżej 16 KB bufora przestrzeni użytkownika HAMMER
- sbin / hammer: dodaj zaciemnioną opcję, aby uderzyć w show
- sys / vfs / hammer: Tymczasowa poprawka dla paniki jądra na volume-del
Co nowego w wersji 4.4.3 / 4.6.0 RC2:
- mmcsd (4): Naprawiono literówkę w argumentach disk_create (). Umożliwia dostęp do> karty SD / MMC.
- Dodaj unzip (1). Jeśli nie możesz ich pokonać, dołącz do em
- Przywróć zdolność do budowania świata wersji Release 4.4
- buildworld - Zezwól na budowanie na master
- etc / rc.d - korekty bezdyskowe
- jądro - Dodaj obsługę kingsue do NFS (napraw problemy z firefox w / nfs)
- Zaimportuj OpenSSL 1.0.1.
- Lokalne dostosowania dla OpenSSL 1.0.1.
- Baza danych strefy synchronizacji z tzdata2016b z ftp://ftp.iana.org/tz/releases
- zic (8) / zdump (8): Nie ostrzegaj o skrótach takich jak "-05".
- zic (8): Usuń "rejestr", który wkradł się do ostatniego zatwierdzenia.
- kernel / acpi_timer: Dodaj brakującą wartość cpu_enable_intr () po teście timera.
- em.4: Wspomnij o obsłudze i219.
- ig_hal / em / emx: Dodaj obsługę I219 (Skylake)
- sys / vfs / hammer: Napraw błąd w usuwaniu nagłówka woluminu
- sbin / hammer: nie uzyskuj dostępu powyżej 16 KB bufora przestrzeni użytkownika HAMMER
- sbin / hammer: dodaj zaciemnioną opcję, aby uderzyć w show
- sys / vfs / hammer: Tymczasowa poprawka dla paniki jądra na volume-del
Co nowego w wersji 4.4.3:
- mmcsd (4): Naprawiono literówkę w argumentach disk_create (). Umożliwia dostęp do> karty SD / MMC.
- Dodaj unzip (1). Jeśli nie możesz ich pokonać, dołącz do em
- Przywróć zdolność do budowania świata wersji Release 4.4
- buildworld - Zezwól na budowanie na master
- etc / rc.d - korekty bezdyskowe
- jądro - Dodaj obsługę kingsue do NFS (napraw problemy z firefox w / nfs)
- Zaimportuj OpenSSL 1.0.1.
- Lokalne dostosowania dla OpenSSL 1.0.1.
- Baza danych strefy synchronizacji z tzdata2016b z ftp://ftp.iana.org/tz/releases
- zic (8) / zdump (8): Nie ostrzegaj o skrótach takich jak "-05".
- zic (8): Usuń "rejestr", który wkradł się do ostatniego zatwierdzenia.
- kernel / acpi_timer: Dodaj brakującą wartość cpu_enable_intr () po teście timera.
- em.4: Wspomnij o obsłudze i219.
- ig_hal / em / emx: Dodaj obsługę I219 (Skylake)
- sys / vfs / hammer: Napraw błąd w usuwaniu nagłówka woluminu
- sbin / hammer: nie uzyskuj dostępu powyżej 16 KB bufora przestrzeni użytkownika HAMMER
- sbin / hammer: dodaj zaciemnioną opcję, aby uderzyć w show
- sys / vfs / hammer: Tymczasowa poprawka dla paniki jądra na volume-del
Co nowego w wersji 4.4.2:
- virtio_blk: Użyj contigmalloc / contigfree dla przydziałów vtblk_request.
- drm / radeon: Potrzebujemy fizycznego adresu strony fikcyjnej, a nie wirtualnej
- if_iwm: Zastosuj pewne zmiany z OpenBSD, if_iwm.c rev 1.39 - & gt; 1,42
- if_iwm: Po prostu przechowuj wskaźnik oprogramowania układowego, taki jak if_iwn.
- if_iwm: Usuń komentarze odnoszące się do plików źródłowych Linux iwlwifi.
- if_iwm: Napraw użycie IEEE80211_ADDR_COPY ().
- if_iwm: Napraw kod konfiguracji sterowania prędkością transmisji.
- etc / rc.d: Zaktualizuj rtsold
- i915 - Dodaj opóźnienie po dołączeniu, aby uniknąć wyścigi konsoli / X
- kernel - Zmniejsz opóźnienie lwp_signotify ()
- devfs - Napraw panikę na dodatkowych montowaniach devfs, gdy zasady są obecne
- ssh - Usuwanie nieudokumentowanej obsługi roamingu CVE-2016-0777 CVE-2016-0778
- jądro - Dodaj dziwactwa dla xhci (usb)
- hammer - usuń debugowanie kprintf
- libc / stdtime: Napraw dwa przypadki, w których wskaźnik NULL mógł być wolny () "d.
- kernel / vga: Usuń błędny lwkt_reltoken (). W tym momencie nie jest to już brane pod uwagę.
- libc / nls: Sync str {błąd, sygnał} () wiadomości.
- w (1): inet_addr () zwraca INADDR_NONE po niepowodzeniu.
- ee (1): Napraw niezainicjowaną zmienną.
- kernel: Napraw system sysctl kern.dumpdev.
- Importuj OpenSSL 1.0.1r.
- Lokalne dostosowania dla OpenSSL 1.0.1r.
- gcc50 / libconv_supc: cp-demangle.c potrzebuje HAVE_CONFIG_H.
- Baza danych strefy synchronizacji z tzdata2016a z ftp://ftp.iana.org/tz/releases
- dokonaj aktualizacji: dodaj przestarzałą strefę czasową.
- igb: Napraw ustawienia DMACR
- ifconfig: Napraw usuwanie adresu inet6
Co nowego w wersji 4.4.1:
- Kernel:
- Poprawione ustawienia oszczędzania energii przez procesor
- Zredukowany przydział plików / darmowa rywalizacja
- Ogranicz rywalizację kqueue
- Wdrożono wywołanie systemowe lwp_setname (2)
- Naprawiono obsługę operacji dsp (4) bez blokowania
- Dodaj sterownik aperf (4), aby wyświetlić efektywną częstotliwość procesora
- Liczne poprawki i poprawki HAMMERA
- Synchronizuj ACPICA z 20151124
- Zwykle kończy się usuwanie bitów i386 (32-bitowych)
- Dostosuj stertę rozruchową do obsługi większych obrazów MD
- Czyszczenie kończy się po martwym kodzie jądra (pozostaje link syslink, itp.)
- został usunięty (błędy w działaniu i nie działa dobrze z dyskami SSD)
- Przekoduj algorytmy pagerów dla pkill o niskiej i niedoborem pamięci
- Grafika:
- drm / i915 i drm / radeon dopasowują teraz jądro Linux 3.18
- i915 wspiera ValleyView / Baytrail i Cherryview Atom SOCs
- Procesory graficzne Broadwell są teraz w pełni przyspieszane
- Prace przygotowawcze do obsługi Skylake
- Konsola systemowa domyślnie obsługuje grafikę DRM; wirtualne terminale nie pokazują już tylko czarnego ekranu po uruchomieniu Xorg i załadowaniu jednego z modułów jądra km.
- Lepsze zarządzanie energią. Panel Self Refresh dostępny na sprzęcie i915
- Czujniki temperatury są teraz obsługiwane przez sprzęt Radeon
- Sieci:
- Obsługa Realtek 8168H w re (4)
- iwm (4) dodano sterownik
- Zaktualizowano rtadvd, dodano rtadvctl
- Asynchroniczne połączenia UDP, do obsługi znacznie większego obciążenia
- Nowe większe okno startowe TCP dla połączeń o dużym opóźnieniu
- Wartości jądra nmbcluster są regulowane na żywo, dla dużego ruchu Sieci:
- Stabilizuj gniazdo domeny UNIX
- Nowy kod GC do przekazywania fd przez gniazda domeny unix
- Różne synchronizacje IPv6 z FreeBSD
- Lepsza wydajność gniazda (2) dla TCP i UDP
- Ulepszono wybór lokalnego portu TCP (2)
- Dodano polecenie systemowe accept (4)
- Dodano obsługę flag SOCK_CLOEXEC i SOCK_NONBLOCK (2) i accept4 (2)
- Ustaw opcje kontroli przepływu HW dla ifconfig
- Dodaj tunables, aby umożliwić ustawianie iosize NFSROOT i ustawienia readahead
- Przynieś rozwinięty ipfw z FreeBSD (zwanego ipfw3 w DFly)
- Inne sterowniki:
- Obsługa MIDI została odświeżona
- Wiele poprawek dla programatora urządzeń
- dm-delay i dm-flakey zostały dodane do urządzenia mapującego urządzenia
- Modemy USB działają lepiej (lub przynajmniej nie wpadają w panikę w jądro)
- Poprawiony dostęp do funkcji i statusu ram ECC
- zaktualizowano aktualizację z FreeBSD (tuż przed usunięciem podzielonego urządzenia)
- Userland:
- biblioteka regex została zamieniona na wielobajtową i ogólnie o wiele bardziej wydajną bibliotekę regex TRE. Pasuje do OSX w funkcjach. (DF jest pierwszym BSD, który przechodzi do TRE po MacOS)
- libm zastąpione wersją OpenBSD (jest to praca zespołowa w toku)
- libc posiada teraz wersję symboliczną, która umożliwia uruchamianie plików binarnych utworzonych w wersji 4.4 w DragonFly przez wiele lat.
- Kompletny przegląd i aktualizacja ustawień regionalnych, w tym implementacja sortowania.
- malloc.h usunięty (DragonFly jest pierwszym BSD do usunięcia tego nagłówka)
- gcc50 libstdc ++ zostało zmodyfikowane, aby umożliwić pełne wykorzystanie funkcji C99 na clang
- W wyniku aktualizacji ustawień regionalnych wynik formatu ls (1) i formatu -T zmienił się, gdy używane są nazwane ustawienia regionalne. Warto zauważyć, że długie miesiące formatowania są zawsze skracane w języku angielskim (przy użyciu definicji POSIX gwarantowanych w ten sposób, że są zarówno szybkie, jak i o szerokości trzech liter), a informacja o roku, godzinie i drugiej jest zawsze wyświetlana. W ustawieniach regionalnych C / POSIX nie ma zmiany w wynikach ls (1) innych niż obsługa przyszłych znaczników czasowych, aby dopasować się do standardowych wymagań POSIX.
- Jeśli używany jest moduł WPA Supplicant from base, podczas rozruchu wystąpi 10-sekundowe opóźnienie, ponieważ wyświetlany jest komunikat, który zdecydowanie zaleca użycie wersji programu DPorts (security / wpa_supplicant).
- Improved powerd (8)
- Lepsze wyjście z góry (1) i ps (1) dla wątków LWP i wątków jądra
- Naprawiono obsługę pthread_set_name_np (3)
- Portowany tcpdrop (8)
- Dodanie wielu nowych ustawień, w tym sześciu arabskich ustawień regionalnych (Zjednoczone Emiraty Arabskie, Arabia Saudyjska, Egipt, Jordania, Maroko, Katar), dodatkowych ustawień regionalnych w Hiszpanii (Meksyk, Argentyna, Kostaryka), dodatkowych lokalizacji w języku angielskim (Filipiny, Singapur, Hongkong) , poprawione norweskie lokalizacje (tylko nb i nn), rozszerzony szwedzki (Finlandia), Sami (Finlandia, Norwegia), serbski przedstawiony obecnie zarówno w cyrylicy jak i w łacinie. ("locale -a" zawiera kompletną listę.)
- rtadvc zaimportowano z FreeBSD
- W systemie podstawowym zaktualizowano różne narzędzia:
- nvi2 zaktualizowano do wersji 2.1.3
- Dodano libexecinfo (zsynchronizowane z FreeBSD)
- iconv zsynchronizowany z FreeBSD
- openssl został zaktualizowany do wersji 1.0.1q
- xz zaktualizowano do wersji 5.2.2
- Aktualizacja biblioteki libedit do wersji 2015-03-25
- binutils zaktualizowano do wersji 2.25.1
- grep zaktualizowany do wersji 2.22
- tcsh zaktualizowano do wersji 6.19.00
- libdialog zaktualizowano do wersji 1.2-20150920
- (tn) ftp zaktualizowano do '10 OCT 2015 '
- gcc zaktualizowano do wersji 5.2
- acpica zaktualizowana do 20150717
- sort (1), który pochodził z NetBSD, został zastąpiony przez wersję FreeBSD
- localedef (1), wewnętrzne narzędzie pochodzące z Illumos
- cldr2def, wewnętrzne narzędzie z początkiem opuszczonego projektu FreeBSD, ale rozszerzone dla DF
- Usunięto z systemu podstawowego:
- hostapd (najnowsza wersja dostępna przez dports: net / hostapd)
- mklocale (zastąpione przez localedef)
- colldef (zastąpiony przez localedef)
- Ulepszenia HAMMER:
- Wiele, wiele poprawek i poprawek do Hammer1, dzięki Tomohiro Kusumi
- Inne ulepszenia:
- DPorts liczyć na około 22.800 portów. Wiele wcześniej złamanych portów zostało naprawionych przez zwykłych użytkowników dzięki wkładom oferowanym przez mechanizm żądania wyciągania GitHub. (Dzięki!)
- Sześć "oficjalnych" zestawów tapety DragonFly jest dostępnych w motywach x11 / dragonfly-wallpapers (pkg install dragonfly-wallpapers). Są one automatycznie instalowane i wstępnie wybrane dla użytkowników KDE i automatycznie instalowane dla użytkowników XFCE4, ale tapety nadal są wybierane ręcznie na tym pulpicie (przynajmniej na razie). Są instalowane na share / wallpapers, które są połączone symbolami share / backgrounds / dragonfly.
Sterowniki
Komentarze nie znaleziono