DragonFly BSD

Screenshot Software:
DragonFly BSD
Szczegóły programowe:
Wersja: 5.2.2 Aktualizowane
Filmu: 22 Jun 18
Wywoływacz: The DragonFly Team
Licencja: Wolny
Popularność: 50

Rating: 5.0/5 (Total Votes: 1)

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:

  • Sterowniki
  • 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.

Podobne oprogramowanie

Komentarze do DragonFly BSD

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!