DragonFly BSD

소프트웨어 스크린 샷:
DragonFly BSD
소프트웨어 정보:
버전: 5.2.2 업데이트
업로드 날짜: 22 Jun 18
개발자: The DragonFly Team
라이센스: 무료
인기: 50

Rating: 5.0/5 (Total Votes: 1)

FreeBSD BSD는 FreeBSD-4.x OS 시리즈의 논리적 연속체로 설계된 오픈 소스 BSD 운영 체제입니다. FreeBSD, NetBSD 또는 OpenBSD와 같은 다른 BSD 기반 배포판과 매우 비슷합니다. BSD 기반에 FreeBSD-5 시리즈에서 가져온 것과 완전히 다른 방향으로 성장할 수있는 기회를 제공하는 것은 포크 경로입니다. 그 외에 다른 유사한 OS와 구별되는 독특한 기능 세트가 포함되어 있습니다.


함 머는 주요 매력입니다.

해머 (HAMMER)는 역사적인 액세스 기능과 내장 된 미러링 기능을 갖춘 현대적인 고성능 파일 시스템 인 DragonFly의 주요 매력입니다. 커널은 FreeBSD가 더 나은 BSD 배포판 인 이유 중 하나이기도합니다.

커널에 두 가지 다른 스케줄러 제공

FreeBSD 커널에는 실행 가능한 모든 엔티티 (경량 커널 스레드)를 스케줄링하는 스케줄러와 각 프로세서마다 한 번에 단일 사용자 스레드를 선택하고 사용자 스레드 (사용자 스레드 스케줄러)를 추상화하는 스케줄러가 있습니다. 또한 커널은 객체 지향 메모리 할당 자와 kmalloc (), DragonFly 장치 파일 시스템 (DEVFS), 가상 커널 (VKERNEL), NFS V3 RPC 비동기라고 불리는 기본 커널 malloc으로 구성된 복잡한 커널 메모리 할당자를 특징으로합니다. 디스크 I / O 스케줄러 프레임 워크 (dsched).


기능, 많은 기능

다른 흥미로운 기능들 중에는 루핑되지 않는 임의의 마운트 포인트, TMPFS (임시 파일 시스템 VFS), 투명 디스크 암호화, 관리 SSD (솔리드 저장 장치) 지원, 변형 (컨텍스트 DNTPD (FreeBSD Network Time Daemon) 및 DMA (FreeBSD Mail Agent)를 사용합니다. 또한 사용자는 언제든지 디스크에 대한 프로세스를 체크 포인트하거나 일시 중단 할 수 있습니다. 배포판은 강력한 AHCI 드라이버, 안정적인 장치 이름, 잘 접지 된 암호화 및 볼륨 관리 기능을 제공합니다.

결론

전반적으로, DragonFly는 현대적이고 사용자에게 친숙하며 접근하기 쉬운 유닉스 계열 운영체제임을 입증합니다. 데스크탑 시스템이나 강력한 BSD 서버로 매일 사용할 수 있습니다.

이 릴리스의 새로운 기능 :

DragonFly 버전 5.2.1이 릴리스되었습니다. Meltdown / Spectre 완화, HAMMER2, ipfw 및 가속 비디오에 대한 많은 개선 사항과 CVE-2018-8897에 대한 5.2.1 업데이트 수정 사항.

버전의 새로운 기능 :

Christian Groessler (1) :
telnetd : 로그인 프롬프트 전에 시스템 정보 (OS 및 아키텍처)를 인쇄하십시오.
매튜 딜런 (7) :
hammer2 - 0 경주로 나누기 고정
커널 - 마스터에서 커널 umtx 작업의 선택적 MFC
kernel - umtx 문서 업데이트
libc 및 pthreads - nmalloc으로 atfork 문제 수정, dmalloc 업데이트
hammer2 - 이름 바꾸기 경주 수정
hammer2 - 최적화 hammer2_pfs_memory_wakeup ()
hammer2 - 이름 변경으로 인해 무기한 더티 체인 수정
Sascha Wildner (5) :
hammer2.8 : 오타를 수정했습니다.
여러 곳에서 '해머'대신 '해머 2'라고 말하십시오.
mtree : / usr / share에있는 여러 디렉토리의 소유자를 수정합니다.
libc / nls : 현재 로켈을 사용합니다 (스레드별로 설정).
libarchive : 푸시 할 의도가없는 커밋을 되돌립니다.

버전 4.8.1의 새로운 기능 :

커널 :
버퍼 캐시 코드를 리 팩터하여 동적 KVA 예약을 제거합니다. 대신 모든 KVA는 부팅시 예약됩니다. 불필요한 IPI로부터 우리를 보호하고 버퍼 캐시 코드를 크게 단순화합니다.
vfs.repurpose_enable을 추가하십시오 (테스트 중, 기본적으로 비활성화 됨). 이 기능을 사용하면 일반적인 VM 페이지 재생 메커니즘을 우회하여 엄청난 양의 파일 I / O (예 : NVMe SSD)를 실행하는 시스템의 IPI 및 VM 관리로드를 크게 줄일 수 있습니다. 이 기능을 사용하면 높은 I / O 부하에서만 트리거됩니다. 버퍼의 KVA에있는 페이지를 kremove / kenter 할 필요가 없도록 (가능한 경우) 버퍼 내부의 VM 페이지를 용도 변경하여 작동합니다. 정상적인 VM 페이지 재활용 (그렇지 않으면 I / O로드에 의해 압도 될 것입니다)은 바이 패스됩니다.
IPIQ가 처리되는 방식을 변경하십시오. 특히 중요한 섹션이 보유되어 있어도 무시 (작동) 할 페이지 무효화를위한 독립적 인 Xinterrupt 벡터 메커니즘을 작성하십시오. tlb 무효화 IPI를 유휴 CPU로 보내는 것을 피하는 machdep.optimized_invltlb (테스트 중에는 기본적으로 비활성화 됨)를 구현하십시오.

극단적 인 부하에서 발생할 수있는 수많은 인종을 수정하십시오. 대부분의 유스 케이스는 이들을 트리거하지 않지만 빌드 상자는 가끔 발생합니다. 예를 들어, pmap에 대한 cpu 비트가 지워지고 (두 명령어에 대한) 두 명령어 경주가 있었고 동일한 pmap에 대해 다른 cpu에서 동시에 TLB IPI가 발생하여 cpu가 pmap을 사용하고 있음을 알지 못하게되었습니다 . 해결 방법은 LWP-> LWP (동일한 프로세스) 스위치 케이스에 대해 CR3 다시로드 최적화를 비활성화하는 것입니다.
HAMMER 버그를 수정하여 DATA CRC 오류가 부적절하게보고 될 수 있습니다.
HAMMER가 cluster_write ()를 사용하는 방식으로 트리거되는 이중 쓰기 문제를 수정했습니다. 이것은 HAMMER의 쓰기 성능을 크게 향상시킵니다.
수많은 다른 함머 (HAMMER) 청소 및 수정 작업도 진행되었습니다.
원자 연산의 반환 값을 잘못 해석하여 getpbuf * ()에서 발생할 수있는 하드 잠금을 수정합니다.
커널 스택을 실행하는 잠재적 인 (그러나 야생에서는 발견되지 않음) 10 개의 명령 창에서 발생할 수있는 스태킹 인터럽트를 수정합니다.TLB를 무효화하지 않고 특정 버퍼 캐시 작업에 대해 pmap 관련 IPI를 반으로 줄이고, 이전 내용이 유효하지 않은 경우에도 새 PTE를 입력 할 때 항상 TLB를 무효로합니다. 이렇게하면 성능이 향상되고 문제가있는 최적화를 제거하여 디버깅을 쉽게 할 수 있습니다.
대량 빌드가 트리거 할 수있는 여러 마운트 지점을 동시에 umount하는 것과 관련된 여러 가지 어려운 SMP 레이스를 수정하십시오. 또한 mountctl 대 마운트 레이스를 수정하십시오.
스위치 경로에서 원자 작업 수를 줄입니다.
많은 마운트 / umount 작업과 결합 된 극단적 인로드에서 발생할 수있는 namecache 경합 / 패닉을 수정합니다.
% 추출 샘플링을 루트로 제한하십시오.
스레드가있을 때 vfork ()에서 getpid () 문제를 수정했습니다. 특히, 스레드 된 프로그램의 동시 vfork ()로 인해 잘못된 PID가 exec 이전의 자식에서 getpid ()에 의해 반환 될 수 있습니다.
tsleep ()이 완전히 완료되기 전에 콜 아웃 타이머가 시작될 때 드물던 tsleep / callout 레이스를 수정하십시오.
콘솔에서 namecache stall 메시지를 정리하십시오. 특히 적절한 경과 시간과 관련된 스레드의 td_comm을보고하십시오.다량의 RAM이있는 시스템에서 부팅 시간을 향상시키기 위해 메모리 테스트 및 초기 부팅 오류를 줄입니다.
유휴 페이지 - 제로 코드를 완전히 제거하십시오. 요청시 현대 CPU에서 페이지를 비우는 것은 여러 가지 이유로 더 좋으며 캐시 효과로 인해 페이지의 데이터에 액세스하는 소비자와 결합 할 때 실제로 더 빠를 수 있습니다. PG_ZERO는 더 이상 필요하지 않으므로 제거하십시오. 또한 PG_ZERO를 제거하면 교차 오염의 또 다른 원인을 제거하여 커널을 디버그 할 수 있습니다.
커널 메모리 할당을 위해 CPU 지역화를 리팩토링하고 구현을 마칩니다. NUMA 인식과 결합하십시오. 이는 cpu-localized 또는 short-lived 커널 데이터 구조에서 작동합니다. 이 둘은 VM 페이지 채색 코드였던 PQ_L2_SIZE 추상화에서 함께 결합됩니다. 이 코드는 이제 CPU 현지화 및 NUMA 인식을 처리합니다.
많은 vkernel 문제를 해결하고 vkernel 성능을 크게 향상시킵니다.
실행중인 프로그램의 경로를 찾기 위해 프로그램에서 사용하는 sysctl 인 kern.proc.pathname을 업데이트하십시오. 이 sysctl은 원래 충분한 경로를 반환하기에 충분한 데이터를 저장하기 전에 구현되었습니다.
Intel의 ACPICA를 동기화하십시오 (일반적인 경우입니다).memcpy () 어셈블리 ABI를 수정하십시오. 어셈블리가 원본 (dst) 인수를 반환하지 않았습니다. 알려진 문제는 수정하지 않지만 GCC가 코드 생성 중에 memcpy를 호출하기로 결정할 때 구멍을 막습니다.
-O2 경고 및 오류를 정리하는 커밋이 많습니다. 이제 커널은 기본적으로 -O2로 컴파일됩니다.
ACPI 경로 (일명 버그가있는 ACPI 코드)에서 부적절한 출력량에 대한 대안을 추가하십시오.
잘못된 시간에 보류 신호에 의해 트리거 될 수있는 STOP / CONT 레이스를 수정하십시오.
쓰레 디드 코어 덤프는 동일한 프로세스의 여러 쓰레드가 동시에 오류를 일으킬 때 이와 관련된 잠금을 수정하고 수정합니다.
uiomove_nofault ()의 버그로 인해 발생할 수있는 CAM / VM 교착 상태를 수정했습니다. 이는 무거운 페이징 / 스와핑 중에 '무기한 대기 버퍼'를 유발할 수 있습니다.
손실 된 IPI를 감지하고 처리하는 코드를 추가하십시오. 이것은 주로 가상 호스트가 IPI를 잃을 수있는 vkernels에 대한 것입니다. 실제 CPU는 IPI를 잃지 않는다고 가정합니다.
clock_gettime ()에 대한 다양한 수정.
MPLOCK의 흔적을 더 제거하십시오. 모든 중요한 경로는이 잠금에서 오랫동안 벗어 났지만, 아직 사용하지 않는 몇 가지 중요하지 않은 위치가 남아 있습니다.메모리 부족 프로세스가 코드를 다시 작성하고 기능이 작동하지 않을 수있는 수많은 레이스를 수정하십시오.
VMM으로 시스템 잠김을 수정하고 VMX 코드를 리팩터링하십시오.
numvnode가 maxvnodes에 도달 할 때 교착 상태를 수정합니다.로드가 많은 경우에 발생할 수 있습니다. 또한 'df'또는 파일 시스템 동기화 레이스가 umount 일 때 사소한 커널 메모리 누수를 수정하십시오. 또한 maxvnodes 계산을 적당한 수준으로 줄이십시오. 예를 들어, 8GB 램이있는 시스템은 maxvnodes를 598103 대신 478483으로 설정합니다.
스핀 락을 가지고있는 동안 user_yield ()가 부적절하게 호출 될 때 vm_object_page_remove ()에 의해 트리거 될 수있는 드문 패닉을 수정 한 다음, 내림차순으로 결정합니다.
동적으로 할당 된 일부 커널 구조의 크기를 줄입니다. 특히 지나치게 큰 크기의 inode 해시 테이블 할당이 이제는 더 적습니다. 주로 UFS에 영향을줍니다 (DragonFlyBSD는 그다지 사용하지 않습니다).
AMD erratum 793에 대한 대안을 추가하십시오.
스택 된 클러스터 _ * () I / O 호출에서 발생할 수있는 교착 상태를 수정합니다.
재귀 적 모듈 로딩이 교착 상태가 될 수있는 버그 수정.
NFS 서버의 sillyrename 코드가 바뀐 이름을 가진 파일을 절대로 제거하지 못하게하는 NFS sillyrename 코드 (서버 측 NFS)의 어리석은 버그를 수정합니다. 얼마나 어리석은!높은 ncpu + 낮은 메모리 구성을 수용하는 더 나은 일을하십시오.
공유 된 스핀 록을 리팩토링하여 여러 개의 CPU가 동시에 공유 스핀 록을 획득 할 때 발생할 수있는 스핀의 양을 줄입니다.
이름 캐시 작업을 정밀 검사하여 SMP 경합을 더욱 줄입니다. 따라서 많은 코어가있는 시스템에서 비 충돌하는 단일 구성 요소 성능이 최소 25 배 향상되고 vnode 및 탑재 구조 ref 및 참조 해제 작업이 크게 줄어 듭니다.
캐시 지역을 개선하고 캐시 라인 바운싱을 줄이기 위해 수많은 다른 커널 구조를 분해합니다.
SMBFS의 파일 이름 바꾸기 코드의 버그를 수정했습니다.
프로세스별로 RSS를 제한하는 RLIMIT_RSS를 구현하면 프로세스별로 현지화 된 페이징을 강제 실행합니다. 이 기능은 한 프로세스가 나머지 컴퓨터를 하드 케이스로 돌리는 것을 방지하는 데 사용할 수 있습니다.
지원되는 최대 스왑 공간을 늘리십시오. 현재 최대 값은 주로 RAM에 의해 제한되며 수십 TB (지원 관리 구조에 충분한 RAM이있는 경우)로 유지됩니다. 또한 커널의 KVM을 128G에서 511G로 늘리십시오.동적 pmap 삭제를 구현합니다 (기본적으로 비활성화 됨). 이렇게하면 pmap에서 중간 페이지 테이블 페이지와 PD를 즉시 삭제할 수 있습니다. 메모리가 중요한 경우 유용 할 수 있지만 사용하도록 설정하면 높은 속도로 메모리를 할당하고 할당을 해제하는 프로그램의 실행 속도가 느려집니다.
사용자가 '좋은'레벨을 작동시키는 방법을 리팩토링하여 선택한 좋은 값을 이전보다 훨씬 중요하게 만듭니다.
Matt Dillon이 작성한 고성능 네이티브 NVME 드라이버를 DragonFly에 추가하십시오. 이 드라이버는 MSI-X 벡터 및 장치가 지원하는 사용 가능한 모든 큐, 잠금 또는 최소 잠금 (대부분의 경우 SMP 충돌 없음)을 사용하여 CPU 당 로컬 리 제이션을 사용하며 미숙 한 IOPS 및 처리량을 제공합니다.
제도법:
Broadwell과 Skylake를 안정화시키고 Linux 4.6에 해당하는 DRM을 제공합니다.
포팅을 쉽게하기 위해 Linux i2c API를 구현하십시오.
비디오 재생 (및 나머지 X)을 멈출 수있는 잠금 순서 반전을 포함하여 몇 가지 오래된 버그를 수정합니다.
사용자 프로세스가 drm 도우미 스레드보다 우선 순위가 높은 커널 drm 스레드 우선 순위 실수를 수정했습니다. 이렇게하면 브라우저에서보고되는 대부분의 임시 비디오 정지가 수정됩니다.DRM으로 전달되는 EFI 프레임 버퍼 처리, syscons VT 전환 개선 및 관련 교착 상태 수정 또한 패닉이 발생할 때 커널이 X에서 콘솔 VT로 다시 전환하려고 시도하도록하십시오.
네트워킹 :
많은 개선이 전면적으로 이루어졌습니다.
iwm - 논리 반전으로 인한 문제 수정. 성능을 크게 향상시키는 여러 가지 개선 사항.
wlan - 비동기 bg 스캔 및 기타 기능이 추가되었습니다.
다른 드라이버 :
nvme - 기본 커널 빌드에 추가되었으며, 수정 및 성능 향상이 추가되었습니다.
mmcsd - 중요한 eMMC 지원이 DragonFly에 추가되었습니다.
ahci - 깨진 칩셋, 특히 포트 멀티 플라이어를 지원하기 위해 몇 가지 호환성 조정 및 더 많은 단점이 추가되었습니다. 칩셋에서 지원할 경우 FBS (FIS 기반 스위칭)도 구현하십시오.
Trackpoint 및 Elantech 지원이 추가되었습니다.
사용자 국가 :
systat는 동일한 드라이버에 속하는 여러 개의 인터럽트를 축소하도록 향상되었습니다.systat -vm 1은보다 유용한 정보를보고하고 필드를 압축하여 서로 충돌하지 않도록 크게 향상되고 개정되었습니다. 그리고 블록 장치 매치에 'nvme'를 추가하십시오. 또한 확장 된 vmstats 디스플레이를 조정하고 ozfod 및 nzfod가보고되는 방식을 변경하십시오.
'vmstat 1'출력이 리팩토링되었습니다. 30 년 전에 존재했던 현대 기계의 높은 성능으로 인해 모든 분야가 서로 마주하고있었습니다.
mount / mountd 신호를 변경하여 mount_null 및 mount_tmpfs 작업에서 불필요한 마운트 목록 검색 및 명령을 줄입니다. mount / umount를 많이 사용하는 경우에만 중요하지만 대량 빌드는 실제로 그러한 상황을 만듭니다.
O_CLOEXEC을 원자 적 방식으로 사용하지 않아서 libc가 트리거 할 수있는 수많은 fork / exec * () 누수를 수정했습니다. popen () 및 mk * stemp * () (mkostemp () 및 mkostemps () 추가)와 같은 함수에 다양한 O_CLOEXEC 기능을 추가하십시오. 스레드 된 환경에서 실행될 때 popen ()에서 파일 설명자 누수를 수정합니다.
새로운 하위 프로세스의 lwp에 vfork ()를 호출 한 TID와 동일한 TID를 지정하여 vfork ()의 ​​pthreads에 더 좋게하십시오. 이렇게하면 pthread를 함축하지 않고 vfork 중에 pthread 지원 함수를 자식에서 실행할 수 있습니다.dports 대량 빌드를 개선하기 위해 헤더에 대한 많은 호환성 수정.
보안 수정을위한 몇 가지 OpenSSL 가져 오기.
다시 열 수 있도록 OpenSSH를 재 동기화하십시오.
커널 빌드가 CFLAGS 대신 KCFLAGS를 사용하도록함으로써 커널 C 플래그를 분리하십시오.
나무에서 수 많은 오래된 ISA 드라이버를 완전히 제거하십시오. DragonFlyBSD는 이제 64 비트 전용이므로 64 비트 플랫폼에는없는 오래된 드라이버를 제거 할 수 있습니다.
WORLD_CFLAGS 및 WORLD_CCOPTLEVEL을 도입하고, 기본값은 -O입니다. 이렇게하면 세계 어느 곳에서나 (예 : WORLD_CCOPTLEVEL = 2) 세상을 쉽게 컴파일 할 수 있습니다. 그러나, 우리는 3 이상의 사용을 권장하지 않습니다. 유효한 값은 0, 1, 2, 3, s, g 및 '빠름'입니다.
ps에 대한 STATUS 형식을 조정하여 더 읽기 쉽도록하고 더 이상 적용 할 수없는 고대 플래그를 제거하고 혼란을 일으키십시오.
작은 할당을 위해 malloc () 정렬을 수정하십시오. 최소 정렬은 이제 16 대신에 16-128 바이트 범위에서 8 대신에 할당입니다. 2의 배수는 항상 자연스럽게 정렬되지만 일부 프로그램에서는 '48'과 같이 16의 배수 (예 : 16)를 사용합니다. 16 바이트 정렬 가정
Fortunes가 리팩토링되었습니다.powerd - 새로운 -H lotemp : hightemp 옵션을 사용하여 powerd에 대한 온도 기반 관리를 추가합니다. 이 기능은 열악한 냉각 환경에서 랩톱을 사용할 때 매우 유용합니다. BIOS가 고온에서 의도적으로 스로틀을하는 경우에 유용합니다. 또한 Powerd는 전원 상태 변경 (사용 가능한 주파수 목록 변경 가능)을 감지하고 전원 상태가 변경 될 때 서비스를 적절히 전환합니다.
dports 호환성을 향상시키기위한 libthread_xu / pthreads 수정 및 조정이 많이 있습니다.
vkernel에 copy-on-write 기능을 추가하십시오. 예를 들어, 여러 vkernel이 RAM에 내부적으로 각각 COW 수정을가함으로써 단일 디스크 이미지를 사용할 수있게합니다.
/ usr / src / secure rewired, libmd, libcrypt에서 충돌이 제거되었습니다.
기본 시스템에서 다양한 도구가 업그레이드되었습니다.
컴파일러가 GCC 5.4.1로 업데이트되었습니다.
우리는 이제 LTO와 금색 링커를 가지고 있습니다.
binutils 2.25
적은 481.
OpenSSL / LibRESSL이 완전히 개선되었습니다. Base는 이제 libressl을 사용합니다.
여러 시간대 업데이트.
해머 상태 :

기타 개선. 릴리스로 만들지 않은 한 가지 점은 다른 다항식으로 더 빠른 CRC 알고리즘을 사용하는 버전 충돌이었습니다. 이 작업은 테스트가 완료되면 MFC에서 릴리스 될 예정입니다. 그러나 사용자는 릴리스에서 가장 심각한 성능 수정 사항 (파일 시스템 쓰기를위한 cluster_write () 코드에 대한 수정 사항)이므로 너무 걱정하지 않아야합니다.
해머 2 상태 :
개발은 계속되지만 첫 번째 릴리스에는 아직 단어가 없습니다.
Clang 상태 :
gcc 4.7을 대체하기 위해, DragonFly에서 clang을 대체 기본 컴파일러로 사용하기위한 시작 프레임 워크가 추가되었습니다. 아직 완료되지 않았습니다. 물론 Clang은 패키지로 추가 될 수 있습니다.
64 비트 상태 :
DragonFly는 4.6에서 64 비트 전용 운영 체제이며 32 비트 하드웨어에서는 실행되지 않습니다.
AMD Ryzen의 지원이 릴리스되어 새로운 Ryzen 개발이 진행됨에 따라 추가 작업이 도입 될 것입니다. 고정되고 MFC 된 일부 CPU보고 토폴로지 문제가 있습니다. 해결 / 재검사를 위해 현재 AMD 마이크로 코드 업데이트를 기다리고있는 안정성 문제가 있습니다. Ryzen 사용자는 우리가 그 위에 머무르고 있다는 것을 확신 할 수 있습니다!

버전 4.8.0의 새로운 기능 :

핵심:
버퍼 캐시 코드를 리 팩터하여 동적 KVA 예약을 제거합니다. 대신 모든 KVA는 부팅시 예약됩니다. 불필요한 IPI로부터 우리를 보호하고 버퍼 캐시 코드를 크게 단순화합니다.
vfs.repurpose_enable을 추가하십시오 (테스트 중, 기본적으로 비활성화 됨). 이 기능을 사용하면 일반적인 VM 페이지 재생 메커니즘을 우회하여 엄청난 양의 파일 I / O (예 : NVMe SSD)를 실행하는 시스템의 IPI 및 VM 관리로드를 크게 줄일 수 있습니다. 이 기능을 사용하면 높은 I / O 부하에서만 트리거됩니다. 버퍼의 KVA에있는 페이지를 kremove / kenter 할 필요가 없도록 (가능한 경우) 버퍼 내부의 VM 페이지를 용도 변경하여 작동합니다. 정상적인 VM 페이지 재활용 (그렇지 않으면 I / O로드에 의해 압도 될 것입니다)은 바이 패스됩니다.
IPIQ가 처리되는 방식을 변경하십시오. 특히 중요한 섹션이 보유되어 있어도 무시 (작동) 할 페이지 무효화를위한 독립적 인 Xinterrupt 벡터 메커니즘을 작성하십시오. 유휴 CPU로 tlb 무효 IPI를 보내지 않도록하는 machdep.optimized_invltlb (테스트 중에는 기본적으로 비활성화 됨)를 구현하십시오.극단적 인 부하에서 발생할 수있는 수많은 인종을 수정하십시오. 대부분의 유스 케이스는 이들을 트리거하지 않지만 빌드 상자는 가끔 발생합니다. 예를 들어, pmap에 대한 cpu 비트가 지워지고 (두 명령어에 대한) 두 명령어 경주가 있었고 동일한 pmap에 대해 다른 cpu에서 동시에 TLB IPI가 발생하여 cpu가 pmap을 사용하고 있음을 알지 못하게되었습니다 . 해결 방법은 LWP-> LWP (동일한 프로세스) 스위치 케이스에 대해 CR3 다시로드 최적화를 비활성화하는 것입니다.
HAMMER 버그를 수정하여 DATA CRC 오류가 부적절하게보고 될 수 있습니다.
HAMMER가 cluster_write ()를 사용하는 방식으로 트리거되는 이중 쓰기 문제를 수정했습니다. 이것은 HAMMER의 쓰기 성능을 크게 향상시킵니다.
수많은 다른 함머 (HAMMER) 청소 및 수정 작업도 진행되었습니다.
원자 연산의 반환 값을 잘못 해석하여 getpbuf * ()에서 발생할 수있는 하드 잠금을 수정합니다.
커널 스택을 실행하는 잠재적 인 (그러나 야생에서는 발견되지 않음) 10 개의 명령 창에서 발생할 수있는 스태킹 인터럽트를 수정합니다.TLB를 무효화하지 않고 특정 버퍼 캐시 작업에 대해 pmap 관련 IPI를 반으로 줄이고, 이전 내용이 유효하지 않은 경우에도 새 PTE를 입력 할 때 항상 TLB를 무효로합니다. 이렇게하면 성능이 향상되고 문제가있는 최적화를 제거하여 디버깅을 쉽게 할 수 있습니다.
대량 빌드가 트리거 할 수있는 여러 마운트 지점을 동시에 umount하는 것과 관련된 여러 가지 어려운 SMP 레이스를 수정하십시오. 또한 mountctl 대 마운트 레이스를 수정하십시오.
스위치 경로에서 원자 작업 수를 줄입니다.
많은 마운트 / umount 작업과 결합 된 극단적 인로드에서 발생할 수있는 namecache 경합 / 패닉을 수정합니다.
% 추출 샘플링을 루트로 제한하십시오.
스레드가있을 때 vfork ()에서 getpid () 문제를 수정했습니다. 특히, 스레드 된 프로그램의 동시 vfork ()로 인해 잘못된 PID가 exec 이전의 자식에서 getpid ()에 의해 반환 될 수 있습니다.
tsleep ()이 완전히 완료되기 전에 콜 아웃 타이머가 시작될 때 드물던 tsleep / callout 레이스를 수정하십시오.
콘솔에서 namecache stall 메시지를 정리하십시오. 특히 적절한 경과 시간과 관련된 스레드의 td_comm을보고하십시오.다량의 RAM이있는 시스템에서 부팅 시간을 향상시키기 위해 메모리 테스트 및 초기 부팅 오류를 줄입니다.
유휴 페이지 - 제로 코드를 완전히 제거하십시오. 요청시 현대 CPU에서 페이지를 비우는 것은 여러 가지 이유로 더 좋으며 캐시 효과로 인해 페이지의 데이터에 액세스하는 소비자와 결합 할 때 실제로 더 빠를 수 있습니다. PG_ZERO는 더 이상 필요하지 않으므로 제거하십시오. 또한 PG_ZERO를 제거하면 교차 오염의 또 다른 원인을 제거하여 커널을 디버그 할 수 있습니다.
커널 메모리 할당을 위해 CPU 지역화를 리팩토링하고 구현을 마칩니다. NUMA 인식과 결합하십시오. 이는 cpu-localized 또는 short-lived 커널 데이터 구조에서 작동합니다. 이 둘은 VM 페이지 채색 코드였던 PQ_L2_SIZE 추상화에서 함께 결합됩니다. 이 코드는 이제 CPU 현지화 및 NUMA 인식을 처리합니다.
많은 vkernel 문제를 해결하고 vkernel 성능을 크게 향상시킵니다.
실행중인 프로그램의 경로를 찾기 위해 프로그램에서 사용하는 sysctl 인 kern.proc.pathname을 업데이트하십시오. 이 sysctl은 원래 충분한 경로를 반환하기에 충분한 데이터를 저장하기 전에 구현되었습니다.
Intel의 ACPICA를 동기화하십시오 (일반적인 경우입니다).memcpy () 어셈블리 ABI를 수정하십시오. 어셈블리가 원본 (dst) 인수를 반환하지 않았습니다. 알려진 문제는 수정하지 않지만 GCC가 코드 생성 중에 memcpy를 호출하기로 결정할 때 구멍을 막습니다.
-O2 경고 및 오류를 정리하는 커밋이 많습니다. 이제 커널은 기본적으로 -O2로 컴파일됩니다.
ACPI 경로 (일명 버그가있는 ACPI 코드)에서 부적절한 출력량에 대한 대안을 추가하십시오.
잘못된 시간에 보류 신호에 의해 트리거 될 수있는 STOP / CONT 레이스를 수정하십시오.
쓰레 디드 코어 덤프는 동일한 프로세스의 여러 쓰레드가 동시에 오류를 일으킬 때 이와 관련된 잠금을 수정하고 수정합니다.
uiomove_nofault ()의 버그로 인해 발생할 수있는 CAM / VM 교착 상태를 수정했습니다. 이는 무거운 페이징 / 스와핑 중에 '무기한 대기 버퍼'를 유발할 수 있습니다.
손실 된 IPI를 감지하고 처리하는 코드를 추가하십시오. 이것은 주로 가상 호스트가 IPI를 잃을 수있는 vkernels에 대한 것입니다. 실제 CPU는 IPI를 잃지 않는다고 가정합니다.
clock_gettime ()에 대한 다양한 수정.
MPLOCK의 흔적을 더 제거하십시오. 모든 중요한 경로는이 잠금에서 오랫동안 벗어 났지만, 아직 사용하지 않는 몇 가지 중요하지 않은 위치가 남아 있습니다.메모리 부족 프로세스가 코드를 다시 작성하고 기능이 작동하지 않을 수있는 수많은 레이스를 수정하십시오.
VMM으로 시스템 잠김을 수정하고 VMX 코드를 리팩터링하십시오.
numvnode가 maxvnodes에 도달 할 때 교착 상태를 수정합니다.로드가 많은 경우에 발생할 수 있습니다. 또한 'df'또는 파일 시스템 동기화 레이스가 umount 일 때 사소한 커널 메모리 누수를 수정하십시오. 또한 maxvnodes 계산을 적당한 수준으로 줄이십시오. 예를 들어, 8GB 램이있는 시스템은 maxvnodes를 598103 대신 478483으로 설정합니다.
스핀 락을 가지고있는 동안 user_yield ()가 부적절하게 호출 될 때 vm_object_page_remove ()에 의해 트리거 될 수있는 드문 패닉을 수정 한 다음, 내림차순으로 결정합니다.
동적으로 할당 된 일부 커널 구조의 크기를 줄입니다. 특히 지나치게 큰 크기의 inode 해시 테이블 할당이 이제는 더 적습니다. 주로 UFS에 영향을줍니다 (DragonFlyBSD는 그다지 사용하지 않습니다).
AMD erratum 793에 대한 대안을 추가하십시오.
스택 된 클러스터 _ * () I / O 호출에서 발생할 수있는 교착 상태를 수정합니다.
재귀 적 모듈 로딩이 교착 상태가 될 수있는 버그 수정.
NFS 서버의 sillyrename 코드가 바뀐 이름을 가진 파일을 절대로 제거하지 못하게하는 NFS sillyrename 코드 (서버 측 NFS)의 어리석은 버그를 수정합니다. 얼마나 어리석은!높은 ncpu + 낮은 메모리 구성을 수용하는 더 나은 일을하십시오.
공유 된 스핀 록을 리팩토링하여 여러 개의 CPU가 동시에 공유 스핀 록을 획득 할 때 발생할 수있는 스핀의 양을 줄입니다.
이름 캐시 작업을 정밀 검사하여 SMP 경합을 더욱 줄입니다. 따라서 많은 코어가있는 시스템에서 비 충돌하는 단일 구성 요소 성능이 최소 25 배 향상되고 vnode 및 탑재 구조 ref 및 참조 해제 작업이 크게 줄어 듭니다.
캐시 지역을 개선하고 캐시 라인 바운싱을 줄이기 위해 수많은 다른 커널 구조를 분해합니다.
SMBFS의 파일 이름 바꾸기 코드의 버그를 수정했습니다.
프로세스별로 RSS를 제한하는 RLIMIT_RSS를 구현하면 프로세스별로 현지화 된 페이징을 강제 실행합니다. 이 기능은 한 프로세스가 나머지 컴퓨터를 하드 케이스로 돌리는 것을 방지하는 데 사용할 수 있습니다.
지원되는 최대 스왑 공간을 늘리십시오. 현재 최대 값은 주로 RAM에 의해 제한되며 수십 TB (지원 관리 구조에 충분한 RAM이있는 경우)로 유지됩니다. 또한 커널의 KVM을 128G에서 511G로 늘리십시오.동적 pmap 삭제를 구현합니다 (기본적으로 비활성화 됨). 이렇게하면 pmap에서 중간 페이지 테이블 페이지와 PD를 즉시 삭제할 수 있습니다. 메모리가 중요한 경우 유용 할 수 있지만 사용하도록 설정하면 높은 속도로 메모리를 할당하고 할당을 해제하는 프로그램의 실행 속도가 느려집니다.
사용자가 '좋은'레벨을 작동시키는 방법을 리팩토링하여 선택한 좋은 값을 이전보다 훨씬 중요하게 만듭니다.
Matt Dillon이 작성한 고성능 네이티브 NVME 드라이버를 DragonFly에 추가하십시오. 이 드라이버는 MSI-X 벡터 및 장치가 지원하는 사용 가능한 모든 큐, 잠금 또는 최소 잠금 (대부분의 경우 SMP 충돌 없음)을 사용하여 CPU 당 로컬 리 제이션을 사용하며 미숙 한 IOPS 및 처리량을 제공합니다.
제도법:
Broadwell과 Skylake를 안정화시키고 Linux 4.6에 해당하는 DRM을 제공합니다.
포팅을 쉽게하기 위해 Linux i2c API를 구현하십시오.
비디오 재생 (및 나머지 X)을 멈출 수있는 잠금 순서 반전을 포함하여 몇 가지 오래된 버그를 수정합니다.
사용자 프로세스가 drm 도우미 스레드보다 우선 순위가 높은 커널 drm 스레드 우선 순위 실수를 수정했습니다. 이렇게하면 브라우저에서보고되는 대부분의 임시 비디오 정지가 수정됩니다.DRM으로 전달되는 EFI 프레임 버퍼 처리, syscons VT 전환 개선 및 관련 교착 상태 수정 또한 패닉이 발생할 때 커널이 X에서 콘솔 VT로 다시 전환하려고 시도하도록하십시오.
네트워킹 :
많은 개선이 전면적으로 이루어졌습니다.
iwm - 논리 반전으로 인한 문제 수정. 성능을 크게 향상시키는 여러 가지 개선 사항.
wlan - 비동기 bg 스캔 및 기타 기능이 추가되었습니다.
다른 드라이버 :
nvme - 기본 커널 빌드에 추가되었으며, 수정 및 성능 향상이 추가되었습니다.
mmcsd - 중요한 eMMC 지원이 DragonFly에 추가되었습니다.
ahci - 깨진 칩셋, 특히 포트 멀티 플라이어를 지원하기 위해 몇 가지 호환성 조정 및 더 많은 단점이 추가되었습니다. 칩셋에서 지원할 경우 FBS (FIS 기반 스위칭)도 구현하십시오.
Trackpoint 및 Elantech 지원이 추가되었습니다.
사용자 국가 :
systat는 동일한 드라이버에 속하는 여러 개의 인터럽트를 축소하도록 향상되었습니다.systat -vm 1은보다 유용한 정보를보고하고 필드를 압축하여 서로 충돌하지 않도록 크게 향상되고 개정되었습니다. 그리고 블록 장치 매치에 'nvme'를 추가하십시오. 또한 확장 된 vmstats 디스플레이를 조정하고 ozfod 및 nzfod가보고되는 방식을 변경하십시오.
'vmstat 1'출력이 리팩토링되었습니다. 30 년 전에 존재했던 현대 기계의 높은 성능으로 인해 모든 분야가 서로 마주하고있었습니다.
mount / mountd 신호를 변경하여 mount_null 및 mount_tmpfs 작업에서 불필요한 마운트 목록 검색 및 명령을 줄입니다. mount / umount를 많이 사용하는 경우에만 중요하지만 대량 빌드는 실제로 그러한 상황을 만듭니다.
O_CLOEXEC을 원자 적 방식으로 사용하지 않아서 libc가 트리거 할 수있는 수많은 fork / exec * () 누수를 수정했습니다. popen () 및 mk * stemp * () (mkostemp () 및 mkostemps () 추가)와 같은 함수에 다양한 O_CLOEXEC 기능을 추가하십시오. 스레드 된 환경에서 실행될 때 popen ()에서 파일 설명자 누수를 수정합니다.
새로운 하위 프로세스의 lwp에 vfork ()를 호출 한 TID와 동일한 TID를 지정하여 vfork ()의 ​​pthreads에 더 좋게하십시오. 이렇게하면 pthread를 함축하지 않고 vfork 중에 pthread 지원 함수를 자식에서 실행할 수 있습니다.dports 대량 빌드를 개선하기 위해 헤더에 대한 많은 호환성 수정.
보안 수정을위한 몇 가지 OpenSSL 가져 오기.
다시 열 수 있도록 OpenSSH를 재 동기화하십시오.
커널 빌드가 CFLAGS 대신 KCFLAGS를 사용하도록함으로써 커널 C 플래그를 분리하십시오.
나무에서 수 많은 오래된 ISA 드라이버를 완전히 제거하십시오. DragonFlyBSD는 이제 64 비트 전용이므로 64 비트 플랫폼에는없는 오래된 드라이버를 제거 할 수 있습니다.
WORLD_CFLAGS 및 WORLD_CCOPTLEVEL을 도입하고, 기본값은 -O입니다. 이렇게하면 세계 어느 곳에서나 (예 : WORLD_CCOPTLEVEL = 2) 세상을 쉽게 컴파일 할 수 있습니다. 그러나, 우리는 3 이상의 사용을 권장하지 않습니다. 유효한 값은 0, 1, 2, 3, s, g 및 '빠름'입니다.
ps에 대한 STATUS 형식을 조정하여 더 읽기 쉽도록하고 더 이상 적용 할 수없는 고대 플래그를 제거하고 혼란을 일으키십시오.
작은 할당을 위해 malloc () 정렬을 수정하십시오. 최소 정렬은 이제 16 대신에 16-128 바이트 범위에서 8 대신에 할당입니다. 2의 배수는 항상 자연스럽게 정렬되지만 일부 프로그램에서는 '48'과 같이 16의 배수 (예 : 16)를 사용합니다. 16 바이트 정렬 가정
Fortunes가 리팩토링되었습니다.powerd - 새로운 -H lotemp : hightemp 옵션을 사용하여 powerd에 대한 온도 기반 관리를 추가합니다. 이 기능은 열악한 냉각 환경에서 랩톱을 사용할 때 매우 유용합니다. BIOS가 고온에서 의도적으로 스로틀을하는 경우에 유용합니다. 또한 Powerd는 전원 상태 변경 (사용 가능한 주파수 목록 변경 가능)을 감지하고 전원 상태가 변경 될 때 서비스를 적절히 전환합니다.
dports 호환성을 향상시키기위한 libthread_xu / pthreads 수정 및 조정이 많이 있습니다.
vkernel에 copy-on-write 기능을 추가하십시오. 예를 들어, 여러 vkernel이 RAM에 내부적으로 각각 COW 수정을가함으로써 단일 디스크 이미지를 사용할 수있게합니다.
/ usr / src / secure rewired, libmd, libcrypt에서 충돌이 제거되었습니다.
기본 시스템에서 다양한 도구가 업그레이드되었습니다.
컴파일러가 GCC 5.4.1로 업데이트되었습니다.
우리는 이제 LTO와 금색 링커를 가지고 있습니다.
binutils 2.25
적은 481.
OpenSSL / LibRESSL이 완전히 개선되었습니다. Base는 이제 libressl을 사용합니다.
여러 시간대 업데이트.
해머 상태 :

기타 개선. 릴리스로 만들지 않은 한 가지 점은 다른 다항식으로 더 빠른 CRC 알고리즘을 사용하는 버전 충돌이었습니다. 이 작업은 테스트가 완료되면 MFC에서 릴리스 될 예정입니다. 그러나 사용자는 릴리스에서 가장 심각한 성능 수정 사항 (파일 시스템 쓰기를위한 cluster_write () 코드에 대한 수정 사항)이므로 너무 걱정하지 않아야합니다.
해머 2 상태 :
개발은 계속되지만 첫 번째 릴리스에는 아직 단어가 없습니다.
Clang 상태 :
gcc 4.7을 대체하기 위해, DragonFly에서 clang을 대체 기본 컴파일러로 사용하기위한 시작 프레임 워크가 추가되었습니다. 아직 완료되지 않았습니다. 물론 Clang은 패키지로 추가 될 수 있습니다.
64 비트 상태 :
DragonFly는 4.6에서 64 비트 전용 운영 체제이며 32 비트 하드웨어에서는 실행되지 않습니다.
AMD Ryzen의 지원이 릴리스되어 새로운 Ryzen 개발이 진행됨에 따라 추가 작업이 도입 될 것입니다. 고정되고 MFC 된 일부 CPU보고 토폴로지 문제가 있습니다. 해결 / 재검사를 위해 현재 AMD 마이크로 코드 업데이트를 기다리고있는 안정성 문제가 있습니다. Ryzen 사용자는 우리가 그 위에 머무르고 있다는 것을 확신 할 수 있습니다!

버전 4.6.0의 새로운 기능 :


mmcsd (4) : disk_create () 인수에 오타가 수정되었습니다. & gt; 1 SD- / MMC- 카드에 액세스 할 수 있습니다.
unzip (1)을 추가하십시오. 네가 이길 수 없다면 그들과 합류하라.
마스터 월드에서 릴리스 4.4을 빌드 할 수있는 복원 기능
buildworld - 마스터에 빌드 된 빌드를 허용합니다.
etc / rc.d - 디스크없는 조정
kernel - NFS에 kqueue 지원 추가 (파이어 폭스 문제 w / nfs 수정)
OpenSSL 1.0.1을 가져옵니다.
OpenSSL 1.0.1의 로컬 조정.
ftp://ftp.iana.org/tz/releases에서 zoneinfo 데이터베이스를 tzdata2016b와 동기화하십시오.
zic (8) / zdump (8) : '-05'와 같은 약어에 대해서는 경고하지 마십시오.
zic (8) : 마지막 커밋에서 들어온 '레지스터'를 제거합니다.
kernel / acpi_timer : 타이머 테스트 후에 누락 된 cpu_enable_intr ()을 추가하십시오.
em.4 : i219 지원에 대해 언급합니다.
ig_hal / em / emx : I219 (Skylake) 지원 추가
sys / vfs / hammer : 볼륨 헤더 지우기 버그 수정
sbin / hammer : HAMMER 사용자 공간 버퍼의 16KB를 초과하여 액세스하지 마십시오.
sbin / hammer : 망치 쇼에 obfuscate 옵션 추가
sys / vfs / hammer : 볼륨 - 델에서 커널 패닉에 대한 임시 수정

버전 4.4.3 / 4.6.0 RC2의 새로운 기능 :


mmcsd (4) : disk_create () 인수에 오타가 수정되었습니다. & gt; 1 SD- / MMC- 카드에 액세스 할 수 있습니다.
unzip (1)을 추가하십시오. 네가 이길 수 없다면 그들과 합류하라.
마스터 월드에서 릴리스 4.4을 빌드 할 수있는 복원 기능
buildworld - 마스터에 빌드 된 빌드를 허용합니다.
etc / rc.d - 디스크없는 조정
kernel - NFS에 kqueue 지원 추가 (파이어 폭스 문제 w / nfs 수정)
OpenSSL 1.0.1을 가져옵니다.
OpenSSL 1.0.1의 로컬 조정.
ftp://ftp.iana.org/tz/releases에서 zoneinfo 데이터베이스를 tzdata2016b와 동기화하십시오.
zic (8) / zdump (8) : '-05'와 같은 약어에 대해서는 경고하지 마십시오.
zic (8) : 마지막 커밋에서 들어온 '레지스터'를 제거합니다.
kernel / acpi_timer : 타이머 테스트 후에 누락 된 cpu_enable_intr ()을 추가하십시오.
em.4 : i219 지원에 대해 언급합니다.
ig_hal / em / emx : I219 (Skylake) 지원 추가
sys / vfs / hammer : 볼륨 헤더 지우기 버그 수정
sbin / hammer : HAMMER 사용자 공간 버퍼의 16KB를 초과하여 액세스하지 마십시오.
sbin / hammer : 망치 쇼에 obfuscate 옵션 추가
sys / vfs / hammer : 볼륨 - 델에서 커널 패닉에 대한 임시 수정

버전 4.4.3의 새로운 기능 :


mmcsd (4) : disk_create () 인수에 오타가 수정되었습니다. & gt; 1 SD- / MMC- 카드에 액세스 할 수 있습니다.
unzip (1)을 추가하십시오. 네가 이길 수 없다면 그들과 합류하라.
마스터 월드에서 릴리스 4.4을 빌드 할 수있는 복원 기능
buildworld - 마스터에 빌드 된 빌드를 허용합니다.
etc / rc.d - 디스크없는 조정
kernel - NFS에 kqueue 지원 추가 (파이어 폭스 문제 w / nfs 수정)
OpenSSL 1.0.1을 가져옵니다.
OpenSSL 1.0.1의 로컬 조정.
ftp://ftp.iana.org/tz/releases에서 zoneinfo 데이터베이스를 tzdata2016b와 동기화하십시오.
zic (8) / zdump (8) : '-05'와 같은 약어에 대해서는 경고하지 마십시오.
zic (8) : 마지막 커밋에서 들어온 '레지스터'를 제거합니다.
kernel / acpi_timer : 타이머 테스트 후에 누락 된 cpu_enable_intr ()을 추가하십시오.
em.4 : i219 지원에 대해 언급합니다.
ig_hal / em / emx : I219 (Skylake) 지원 추가
sys / vfs / hammer : 볼륨 헤더 지우기 버그 수정
sbin / hammer : HAMMER 사용자 공간 버퍼의 16KB를 초과하여 액세스하지 마십시오.
sbin / hammer : 망치 쇼에 obfuscate 옵션 추가
sys / vfs / hammer : 볼륨 - 델에서 커널 패닉에 대한 임시 수정

버전 4.4.2의 새로운 기능 :

virtio_blk : vtblk_request 할당을 위해 contigmalloc / contigfree를 사용하십시오.
drm / radeon : 가상 페이지가 아닌 더미 페이지의 실제 주소가 필요합니다.
if_iwm : OpenBSD에서 몇 가지 변경 사항을 적용합니다. if_iwm.c rev 1.39 - & gt; 1.42
if_iwm : if_iwn처럼 struct 펌웨어 포인터를 저장하십시오.
if_iwm : Linux iwlwifi 소스 파일 이름을 언급하는 주석을 제거하십시오.
if_iwm : IEEE80211_ADDR_COPY () 사용을 수정합니다.
if_iwm : 속도 제어 설정 코드를 수정하십시오.
etc / rc.d : 업데이트 rtsold
i915 - 콘솔 / X 레이스를 피하기 위해 추가 후 지연 추가
커널 - lwp_signotify () 대기 시간 줄이기
devfs - 규칙이있을 때 추가 devfs 마운트에 대한 패닉 수정
ssh - 문서화되지 않은 로밍 지원을 제거합니다. CVE-2016-0777 CVE-2016-0778
커널 - xhci (usb)에 단점 추가
hammer - 디버깅 kprintf 제거
libc / stdtime : NULL 포인터가 free ()가 될 수있는 두 가지 경우를 수정합니다.
kernel / vga : 잘못된 lwkt_reltoken ()을 제거하십시오. 이 시점에서 촬영되지 않습니다.
libc / nls :와 함께 str {error, signal} () 메시지를 동기화합니다.
w (1) : inet_addr ()은 실패시 INADDR_NONE을 반환합니다.
ee (1) : 초기화되지 않은 변수를 수정합니다.

커널 : kern.dumpdev sysctl을 수정하십시오.
OpenSSL 1.0.1r 가져 오기.
OpenSSL 1.0.1r의 로컬 조정.
gcc50 / libconv_supc : cp-demangle.c에는 HAVE_CONFIG_H가 필요합니다.
ftp://ftp.iana.org/tz/releases에서 zoneinfo 데이터베이스를 tzdata2016a와 동기화하십시오.
업그레이드하기 : 쓸모없는 시간대를 추가하십시오.
igb : DMACR 설정 수정
ifconfig : inet6 주소 삭제 수정

버전 4.4.1의 새로운 기능 :

핵심:
향상된 CPU 절전 설정
감소 된 파일 할당 / 자유 경쟁
큐큐 (kqueue) 경합을 줄입니다.
구현 된 lwp_setname (2) 시스템 호출
고정 dsp (4) 비 블로킹 작동 지원
유효 CPU 주파수를 표시하는 aperf (4) 드라이버 추가
HAMMER에 대한 수많은 정리 및 수정
ACPICA와 20151124 동기화
대부분 i386 (32 비트) 비트 제거 완료
더 큰 MD 이미지를 다루기 위해 부트 로더 힙 조정
죽은 커널 코드에 대한 정리 통과 (syslink가 남아 있음 등)
dsched가 제거되었습니다 (버그로 인한 문제 및 SSD와 잘 작동하지 않음)
메모리 부족 및 메모리 부족에 대한 호출기 알고리즘 레코딩
제도법:
drm / i915 및 drm / radeon 드라이버가 이제 Linux 커널 3.18과 일치합니다.
i915는 ValleyView / Baytrail 및 Cherryview Atom SOC를 지원합니다.
Broadwell GPU가 이제 완전히 가속화되었습니다.
Skylake 지원을위한 준비 작업
시스템 콘솔은 기본적으로 drm 그래픽을 지원합니다. Xorg가 시작되고 kms 커널 모듈 중 하나가로드되면 가상 터미널은 더 이상 검은 색 화면을 표시하지 않습니다.
향상된 전원 관리. i915 하드웨어에서 사용할 수있는 패널 자동 새로 고침온도 센서가 이제 Radeon 하드웨어에서 지원됩니다.
네트워킹 :
re (4)의 Realtek 8168H 지원
iwm (4) 드라이버가 추가되었습니다.
rtadvd 업데이트 됨, rtadvctl 추가됨
비동기 UDP 연결, 훨씬 더 많은 부하 처리
대기 시간이 긴 새로운 연결을위한 새로운 더 큰 TCP 시작 창
극단적 인 트래픽의 경우 커널 nmbcluster 값이 실시간으로 조절 가능 네트워킹 :
안정된 UNIX 도메인 소켓
유닉스 도메인 소켓을 통한 fd-passing을위한 새로운 GC 코드
FreeBSD와 기타 IPv6 동기화
TCP 및 UDP에 대한 소켓 (2) 성능 향상
개선 된 TCP connect (2) 로컬 포트 ​​선택
accept (4) 시스템 호출 추가됨
SOCK_CLOEXEC 및 SOCK_NONBLOCK socket (2) 및 accept4 (2) 플래그에 대한 지원이 추가되었습니다.
ifconfig에서 사용 가능한 HW 흐름 제어 기능 만들기
NFSROOT iosize 및 readahead를 설정할 수있는 튜너 블을 추가하십시오.
FreeBSD에서 확장 된 ipfw 가져 오기 (DFly에서 ipfw3라고 함)
다른 드라이버 :
MIDI 지원이 읽혀졌습니다.
장치 매퍼에 대한 많은 버그 수정
dm-delay 및 dm-flakey가 장치 매퍼에 추가되었습니다.
USB 모뎀이 더 잘 작동합니다 (또는 최소한 커널을 패닉시키지 마십시오)RAM ECC 기능 및 상태에 대한 향상된 액세스
FreeBSD에서 업데이트 된 wlan (분할 장치 제거 직전까지)
사용자 국가 :
regex 라이브러리는 멀티 바이트 및 대체로 훨씬 더 많은 기능을 갖춘 TRE regex 라이브러리로 대체되었습니다. 기능면에서 OSX와 일치합니다. (DF는 MacOS 이후 TRE로 이동하는 최초의 BSD 임)
libm이 OpenBSD 버전으로 바뀌 었습니다 (이것은 진행중인 공동 작업입니다)
libc에는 Release 4.4에서 생성 된 바이너리가 앞으로 수년간 FreeBSD에서 실행될 수있게 해주는 심볼 버전 관리 기능이 추가되었습니다.
데이터 정렬 구현을 포함하여 로케일의 전반적인 점검 및 업데이트
malloc.h removed (FreeBSD는이 헤더를 제거한 최초의 BSD 임)
gcc50 libstdc ++가 clang에서 C99 함수를 완전히 사용하도록 수정되었습니다.로케일 업데이트 결과로 명명 된 로켈이 사용 중일 때 ls (1) 긴 형식 및 -T 형식의 출력이 변경되었습니다. 특히, 긴 형식의 월은 항상 영어로 축약되며 (따라서 POSIX 정의를 사용하여 빠르며 3 자로 보장됨) 연도, 시간 및 초 정보는 항상 표시됩니다. C / POSIX 로켈에서는 ls (1) 출력에 변경 사항이 없으므로 POSIX 표준 요구 사항과 일치하도록 향후 타임 스탬프 처리가 수정되었습니다.
base의 WPA Supplicant를 사용하는 경우 부팅 할 때 메시지가 표시되므로 10 초의 지연이 발생하므로 대신 DPorts 버전 (security / wpa_supplicant)을 대신 사용하는 것이 좋습니다.
향상된 powerd (8)
LWP 및 커널 스레드의 향상된 top (1) 및 ps (1) 출력
pthread_set_name_np (3)에 대한 지원이 수정되었습니다.
포팅 된 tcpdrop (8)아랍 에미리트, 사우디 아라비아, 이집트, 요르단, 모로코, 카타르), 추가 스페인어 로켈 (멕시코, 아르헨티나, 코스타리카), 추가 영어 로켈 (필리핀, 싱가포르, 홍콩) 등 6 개의 아랍어 로케일을 추가했으며 노르웨이 (스웨덴어 (핀란드), 사미 (핀란드, 노르웨이), 세르비아어는 현재 키릴 어와 라틴어 형식으로 제공됩니다. ( 'locale -a'는 완전한 목록을 제공합니다.)
FreeBSD에서 가져온 rtadvc
기본 시스템에서 다양한 도구가 업그레이드되었습니다.
nvi2가 2.1.3으로 업데이트되었습니다.
libexecinfo 추가됨 (FreeBSD에서 동기화 됨)
FreeBSD와 동기화 된 iconv
1.0.1q로 업데이트 된 openssl
x는 5.2.2로 업데이트되었습니다.
libedit가 2015-03-25 버전으로 업데이트되었습니다.
binutils가 2.25.1로 업데이트되었습니다.
grep가 2.22로 업데이트되었습니다.
tcsh가 6.19.00으로 업데이트되었습니다.
libdialog가 v1.2-20150920으로 업데이트되었습니다.
(tn) ftp가 '10 OCT 2015 '로 업데이트되었습니다.
gcc가 5.2로 업데이트되었습니다.
acpica가 20150717로 업데이트되었습니다.
NetBSD에서 온 sort (1)가 FreeBSD 버전으로 대체되었습니다.
localedef (1), Illumos의 기원을 가진 내부 도구
cldr2def, 버려진 FreeBSD 프로젝트의 기원을 가진 내부 도구이지만 DF 확장기본 시스템에서 제거되었습니다.
hostapd (dports를 통해 사용 가능한 최신 버전 : net / hostapd)
mklocale (localedef로 대체)
colldef (localedef로 대체 됨)
해머 개선 :
Tomohiro Kusumi 덕분에 Hammer1에 대한 많은 정리 및 수정이있었습니다.
기타 개선 사항 :
DPorts는 22,800 개의 포트를 차지합니다. GitHub의 Pull Request 메커니즘을 통해 제공된 기여로 인해 이전에 깨진 많은 포트가 일반 사용자에 의해 수정되었습니다. (감사!)
6 개의 "공식"드래곤 플라이 벽지 세트가 x11 테마 / 잠자리 배경 화면 (pkg 설치 잠자리 배경 화면)에서 제공됩니다. 이것들은 KDE 사용자를 위해 자동으로 설치되고 미리 선택되며 XFCE4 사용자를 위해 자동으로 설치되지만 그 바탕 화면은 (적어도 현재는) 수동으로 선택되어 있습니다. 공유 / 배경 / 잠자리로 심볼릭 링크 된 공유 / 배경 화면에 설치됩니다.

유사한 소프트웨어

CatRescue
CatRescue

3 Jun 15

DKMS
DKMS

3 Jun 15

NuttX
NuttX

10 May 15

코멘트 DragonFly BSD

댓글을 찾을 수 없습니다
코멘트를 추가
이미지를 켜십시오!