[wsl2]
kernel=<path> # An absolute Windows path to a custom Linux kernel.
memory=<size> # How much memory to assign to the WSL2 VM.
processors=<number> # How many processors to assign to the WSL2 VM.
swap=<size> # How much swap space to add to the WSL2 VM. 0 for no swap file.
swapFile=<path> # An absolute Windows path to the swap vhd.
localhostForwarding=<bool> # Boolean specifying if ports bound to wildcard or localhost in the WSL2 VM should be connectable from the host via localhost:port (default true).
# <path> entries must be absolute Windows paths with escaped backslashes, for example C:\\Users\\Ben\\kernel
# <size> entries must be size followed by unit, for example 8GB or 512MB
사용자가 Windows에서 WSL 배포판의 Linux 파일에 액세스할 수 있는 기능을 추가했습니다. 이러한 파일은 명령줄을 통해 액세스할 수 있으며 파일 탐색기, VSCode 등의 Windows 앱에서도 이러한 파일과 상호 작용할 수 있습니다. \\wsl$\<distro_name>으로 이동하여 파일에 액세스하거나, \\wsl$로 이동하여 실행 중인 배포판 목록을 확인하세요.
추가 CPU 정보 태그를 추가하고 Cpus_allowed[_list] 값을 수정합니다. [GH 2234]
리더가 아닌 스레드의 exec를 지원합니다. [GH 3800]
구성 업데이트 실패를 심각하지 않은 오류로 처리합니다. [GH 3785]
오프셋을 적절하게 처리하도록 binfmt를 업데이트합니다. [GH 3768]
플랜 9에 매핑 네트워크 드라이브를 사용합니다. [GH 3854]
바인딩 마운트를 위한 Windows -> Linux 및 Linux -> Windows 경로 변환을 지원합니다.
TIOCSCTTY는 꼭 필요한 경우 외에는 "force" 매개 변수를 무시해야 합니다. [GH 3652]
wsl.exe 명령줄 기능이 개선되고 가져오기/내보내기 함수가 추가되었습니다.
Usage: wsl.exe [Argument] [Options...] [CommandLine]
Arguments to run Linux binaries:
If no command line is provided, wsl.exe launches the default shell.
--exec, -e <CommandLine>
Execute the specified command without using the default Linux shell.
--
Pass the remaining command line as is.
Options:
--distribution, -d <DistributionName>
Run the specified distribution.
--user, -u <UserName>
Run as the specified user.
Arguments to manage Windows Subsystem for Linux:
--export <DistributionName> <FileName>
Exports the distribution to a tar file.
The filename can be - for standard output.
--import <DistributionName> <InstallLocation> <FileName>
Imports the specified tar file as a new distribution.
The filename can be - for standard input.
--list, -l [Options]
Lists distributions.
Options:
--all
List all distributions, including distributions that are currently
being installed or uninstalled.
--running
List only distributions that are currently running.
-setdefault, -s <DistributionName>
Sets the distribution as the default.
--terminate, -t <DistributionName>
Terminates the distribution.
--unregister <DistributionName>
Unregisters the distribution.
--upgrade <DistributionName>
Upgrades the distribution to the WslFs file system format.
--help
Display usage information.
경고: 이 빌드에는 WSL이 작동하지 않는 문제가 있습니다. 배포를 시작하려고 하면 "해당 인터페이스를 지원하지 않습니다" 오류가 표시됩니다. 이 이슈는 해결되었으며 다음 주의 초기 참가자 빌드에 포함될 예정입니다. 이 빌드를 설치한 경우 설정-Update 및 Security-Recovery>에서> "이전 버전의 Windows 10으로 돌아가기"를 사용하여 이전 Windows 빌드로 롤백할 수 있습니다.
동일한 스레드 우선 순위를 변경하기 위한 Setpriority syscall 권한 검사가 너무 엄격합니다. [GH 1838]
clock_gettime(CLOCK_BOOTTIME)에 대한 음수 값이 반환되지 않도록, 부팅 시간에 비편향 인터럽트 시간을 사용하도록 확인합니다. [GH 3434]
WSL binfmt 인터프리터의 symlink를 처리합니다. [GH 3424]
threadgroup 리더 파일 설명자 정리를 보다 효율적으로 처리합니다.
오버플로를 방지하기 위해 KeQueryPerformanceCounter 대신 KeQueryInterruptTimePrecise를 사용하도록 WSL을 전환합니다. [GH 3252]
Ptrace attach로 인해 시스템 호출에서 잘못된 값이 반환될 수 있습니다. [GH 1731]
여러 AF_UNIX 관련 이슈를 해결합니다. [GH 3371]
현재 작업 디렉터리 길이가 5자 미만인 경우 WSL interop가 실패할 수 있는 이슈를 해결합니다. [GH 3379]
존재하지 않는 포트에 대한 루프백 연결이 실패하지 않도록 1초 지연을 방지합니다. [GH 3286]
/proc/sys/fs/file-max 스텁 파일을 추가합니다. [GH 2893]
보다 정확한 IPV6 범위 정보입니다.
PR_SET_PTRACER를 지원합니다. [GH 3053]
파이프 파일 시스템이 의도치 않게 에지에서 트리거한 epoll 이벤트를 삭제합니다. [GH 3276]
NTFS symlink를 통해 시작된 Win32 실행 파일이 symlink 이름을 준수하지 않습니다. [GH 2909]
좀비 지원이 개선되었습니다. [GH 1353]
Windows interop 동작을 제어하기 위한 wsl.conf 항목을 추가합니다. [GH 1493]
[interop]
enabled=false # enable launch of Windows binaries; default is true
appendWindowsPath=false # append Windows path to $PATH variable; default is true
getsockname이 경우에 따라 UNIX 소켓 패밀리 유형을 반환하지 않는 문제를 해결합니다. [GH 1774]
TIOCSTI 지원이 추가됩니다. [GH 1863]
연결 중인 비차단 소켓은 쓰기 시도에 대한 EAGAIN을 반환해야 합니다. [GH 2846]
탑재된 VHD에서 interop를 지원합니다. [GH 3246, 3291]
루트 폴더에 대한 권한 확인 이슈를 해결합니다. [GH 3304]
TTY 키보드 ioctls KDGKBTYPE, KDGKBMODE 및 KDSKBMODE에 대한 지원이 제한됩니다.
Windows UI 앱은 백그라운드에서 시작된 경우에도 실행되어야 합니다.
wsl -u 또는 --user 옵션이 추가됩니다. [GH 1203]
빠른 시작을 사용하는 경우 WSL 시작 이슈를 해결합니다. [GH 2576]
Unix 소켓은 연결 해제된 피어 자격 증명을 유지해야 합니다. [GH 3183]
비차단 Unix 소켓이 EAGAIN과 함께 무기한 실패합니다. [GH 3191]
case=off는 새로운 기본 drvfs 탑재 유형입니다. [GH 2937, 3212, 3328]
Windows interop 동작을 제어하기 위한 wsl.conf 항목을 추가합니다. [GH 1493]
[interop]
enabled=false # enable launch of Windows binaries; default is true
appendWindowsPath=false # append Windows path to $PATH variable; default is true
getsockname이 경우에 따라 UNIX 소켓 패밀리 유형을 반환하지 않는 문제를 해결합니다. [GH 1774]
TIOCSTI 지원이 추가됩니다. [GH 1863]
연결 중인 비차단 소켓은 쓰기 시도에 대한 EAGAIN을 반환해야 합니다. [GH 2846]
탑재된 VHD에서 interop를 지원합니다. [GH 3246, 3291]
루트 폴더에 대한 권한 확인 이슈를 해결합니다. [GH 3304]
TTY 키보드 ioctls KDGKBTYPE, KDGKBMODE 및 KDSKBMODE에 대한 지원이 제한됩니다.
우선 순위는 현재 지원되는 WSL 기능이 아니므로 제한이 있지만, 표준 사용의 차단을 해제해야 합니다.
Windows 방화벽은 WSL 프로세스를 지원합니다. [GH 1852]
예를 들어 WSL python 프로세스가 모든 포트에서 수신 대기하도록 허용하려면 관리자 권한 Windows cmd netsh.exe advfirewall firewall add rule name=wsl_python dir=in action=allow program="C:\users\<username>\appdata\local\packages\canonicalgrouplimited.ubuntuonwindows_79rhkp1fndgsc\localstate\rootfs\usr\bin\python2.7" enable=yes를 사용합니다.
이 빌드로 업그레이드한 후 처음으로 WSL을 시작할 때 Linux 파일 시스템 디렉터리를 업그레이드하는 작업을 수행해야 합니다. 이 작업은 몇 분 정도 걸릴 수 있으므로 WSL이 느리게 시작되는 것처럼 보일 수 있습니다. 이 작업은 스토어에서 설치한 배포판마다 한 번씩만 수행됩니다.
DrvFs의 대/소문자 구분 지원이 개선되었습니다.
이제 DrvFs는 디렉터리 단위 대/소문자 구분을 지원합니다. 이 새로운 플래그를 디렉터리에 설정하여 해당 디렉터리의 모든 작업을 대/소문자 구분으로 나타낼 수 있으며, 이렇게 하면 Windows 애플리케이션에서도 대/소문자만 다른 파일을 올바르게 열 수 있습니다.
DrvFs에는 디렉터리 단위로 대/소문자 구분을 제어하는 다음과 같은 새로운 탑재 옵션이 있습니다.
case=force: 모든 디렉터리가 대/소문자 구분으로 처리됩니다(드라이브 루트 제외). WSL에서 만든 새 디렉터리는 대/소문자를 구분하는 것으로 표시됩니다. 새 디렉터리를 대/소문자 구분으로 표시하는 것만 제외하면 레거시 동작입니다.
case=dir: 디렉터리 단위 대/소문자 구분 플래그가 있는 디렉터리만 대/소문자 구분으로 처리되고, 다른 디렉터리는 대/소문자를 구분하지 않습니다. WSL에서 만든 새 디렉터리는 대/소문자를 구분하는 것으로 표시됩니다.
case=off: 디렉터리 단위 대/소문자 구분 플래그가 있는 디렉터리만 대/소문자 구분으로 처리되고, 다른 디렉터리는 대/소문자를 구분하지 않습니다. WSL로 만든 새 디렉터리는 대/소문자를 구분하지 않는 것으로 표시됩니다.
참고: 이전 릴리스의 WSL에서 만든 디렉터리는 이 플래그가 설정되지 않았으므로 "case=dir" 옵션을 사용하는 경우 대/소문자를 구분하는 것으로 간주되지 않습니다. 기존 디렉터리에 이 플래그를 설정하는 방법이 곧 제공될 예정입니다.
이러한 옵션을 사용하는 탑재 예제로는 sudo mount -t drvfs C: /mnt/c -o case=dir이 있습니다(기존 드라이브의 경우 먼저 탑재 해제해야만 다른 옵션으로 탑재 가능).
현재는 case=force가 여전히 기본 옵션입니다. 향후 case=dir로 변경될 것입니다.
이제 DrvFs를 탑재할 때 Windows 경로에 슬래시를 사용할 수 있습니다(예: sudo mount -t drvfs //server/share /mnt/share).
이제 인스턴스를 시작하는 동안 WSL에서 /etc/fstab 파일을 처리합니다. [GH 2636]
이 작업은 DrvFs 드라이브를 자동으로 탑재하기 전에 수행됩니다. fstab을 통해 이미 탑재된 드라이브는 자동으로 다시 탑재되지 않으므로 특정 드라이브의 탑재 지점을 변경할 수 있습니다.
이 동작은 wsl.conf를 사용하여 해제할 수 있습니다.
/proc의 mount, mountinfo 및 mountstats 파일은 백슬래시 및 공백과 같은 특수 문자를 적절히 이스케이프합니다. [GH 2799]
DrvFs를 사용하여 만든 특수 파일(예: WSL 기호화된 링크) 또는 메타데이터를 사용하는 경우 fifos 및 소켓을 이제 Windows에서 복사하여 이동할 수 있습니다.
wsl.conf를 사용하여 보다 유연하게 WSL 구성 가능
하위 시스템을 시작할 때마다 적용되는 WSL의 특정 기능을 자동으로 구성하는 방법이 추가되었습니다. 여기에는 자동 탑재 옵션 및 네트워크 구성이 포함됩니다. 블로그 게시물 https://aka.ms/wslconf 에서 자세히 알아보세요.
AF_UNIX를 사용하면 WSL의 Linux 프로세스와 Windows 네이티브 프로세스 간에 소켓 연결이 가능합니다.
WSL 및 Windows 애플리케이션은 이제 Unix 소켓을 통해 서로 통신할 수 있습니다. Windows에서 서비스를 실행하고 Windows 및 WSL 앱 모두에서 이 서비스를 제공하려 한다고 가정해 보겠습니다. 이제 Unix 소켓을 사용하면 가능합니다. 블로그 게시물 https://aka.ms/afunixinterop 에서 자세히 알아보세요.
WSL
MAP_NORESERVE를 통해 mmap() 지원 [GH 121, 2784]
CLONE_PTRACE 및 CLONE_UNTRACED 지원 [GH 121, 2781]
복제 시 비-SIGCHLD 종료 신호 처리 [GH 121, 2781]
/proc/sys/fs/inotify/max_user_instances 및 /proc/sys/fs/inotify/max_user_watches를 스텁합니다. [GH 1705]
0이 아닌 오프셋이 있는 로드 헤더가 포함된 ELF 이진 파일을 로드하는 동안 오류 발생 [GH 1884]
DrvFs는 추가 Linux 메타데이터를 지원합니다. 따라서 chmod/chown을 사용하여 파일의 소유자와 모드를 설정할 수 있으며, fifos, unix 소켓, 디바이스 파일 등의 특수 파일을 만들 수 있습니다. 이 기능은 아직 실험 중이므로 지금은 기본적으로 사용되지 않습니다.
참고: DrvFs에서 사용하는 메타데이터 형식의 버그를 수정했습니다. 메타데이터는 이 빌드에서 실험에 사용되지만, 향후 빌드는 이 빌드에서 생성된 메타데이터를 올바르게 읽을 수 없습니다. 수정된 파일의 소유자를 수동으로 업데이트하고 사용자 지정 디바이스 ID를 사용하는 디바이스를 다시 만들어야 할 수도 있습니다.
DrvFs를 사용하려면 다음과 같이 메타데이터 옵션으로 DrvFs를 탑재합니다(기존 탑재에서 DrvFs를 사용하려면 먼저 DrvFs를 분리해야 함).
mount -t drvfs C: /mnt/c -o metadata
Linux 권한은 파일에 추가 메타데이터로 추가되며, Windows 권한에 영향을 주지 않습니다. Windows 편집기를 사용하여 파일을 편집하면 메타데이터가 제거될 수 있습니다. 이 경우 파일이 기본 권한으로 되돌아갑니다.
메타데이터를 사용하지 않고 파일을 제어하는 탑재 옵션이 DrvFs에 추가되었습니다.
uid: 모든 파일의 소유자에게 사용되는 사용자 ID입니다.
gid: 모든 파일의 소유자에게 사용되는 그룹 ID입니다.
umask: 모든 파일과 디렉터리에서 제외할 권한의 8진수 마스크입니다.
fmask: 모든 일반 파일에서 제외할 권한의 8진수 마스크입니다.
dmask: 모든 디렉터리에서 제외할 권한의 8진수 마스크입니다.
예:
mount -t drvfs C: /mnt/c -o uid=1000,gid=1000,umask=22,fmask=111
메타데이터 없이 파일에 대한 기본 권한을 지정하려면 메타데이터 옵션과 결합합니다.
WSL과 Win32 간에 환경 변수가 어떻게 흐르는지 구성하는 새 환경 변수 WSLENV가 도입되었습니다.
예:
WSLENV=GOPATH/l:USERPROFILE/pu:DISPLAY
WSLENV는 WSL의 Win32 또는 Win32 프로세스에서 WSL 프로세스를 시작할 때 포함할 수 있는 콜론으로 구분된 환경 변수 목록입니다. 각 변수에 슬래시를 접미사로 붙이고 그 뒤에 플래그를 사용하여 변환 방식을 지정할 수 있습니다.
p: 이 값은 WSL 경로와 Win32 경로 간에 변환해야 하는 경로입니다.
l: 이 값은 경로 목록입니다. WSL에서는 콜론으로 구분된 목록입니다. Win32에서는 세미콜론으로 구분된 목록입니다.
u: 이 값은 Win32에서 WSL을 호출할 때만 포함되어야 합니다.
w: 이 값은 WSL에서 Win32를 호출할 때만 포함되어야 합니다.
.bashrc 또는 사용자 지정 Windows 환경에서 사용자에 대한 WSLENV를 설정할 수 있습니다.
drvfs 탑재는 tar, cp-p의 타임스탬프를 올바르게 유지합니다. (GH 1939)
drvfs symlink는 올바른 크기를 보고합니다. (GH 2641)
매우 큰 IO 크기에 대한 읽기/쓰기가 작동합니다. (GH 2653)
waitpid는 프로세스 그룹 ID와 함께 작동합니다. (GH 2534)
큰 예약 영역에 대한 mmap 성능이 크게 향상되었습니다. ghc 성능이 향상됩니다. (GH 1671)
퍼스낼리티에서 READ_IMPLIES_EXEC를 지원합니다. maxima 및 clisp를 수정합니다. (GH 1185)
활성 터미널 없이 프로세스를 실행할 수 있습니다. [GH 709, 1007, 1511, 2252, 2391 등]
CLONE_VFORK 및 CLONE_VM에 대한 지원이 향상되었습니다. [GH 1878, 2615]
WSL 네트워킹 작업을 위한 TDI 필터 드라이버를 건너뜁니다. [GH 1554]
특정 조건이 충족되면 DrvFs에서 NT symlink를 만듭니다. [GH 353, 1475, 2602]
연결 대상은 상대 경로여야 하고, 탑재 지점이나 symlink와 교차해서는 안 되며, 존재해야 합니다.
개발자 모드가 켜져 있지 않으면 사용자에게 SE_CREATE_SYMBOLIC_LINK_PRIVILEGE가 있어야 합니다(일반적으로 관리자 권한으로 wsl.exe를 실행해야 함).
그 외의 상황에서는 DrvFs가 여전히 WSL symlink를 만듭니다.
관리자 권한 및 비관리자 권한 WSL 인스턴스를 동시에 실행할 수 있습니다.
/proc/sys/kernel/yama/ptrace_scope를 지원합니다.
WSL<->Windows 경로를 변환하는 wslpath가 추가됩니다. [GH 522, 1243, 1834, 2327, et al.]
wslpath usage:
-a force result to absolute path format
-u translate from a Windows path to a WSL path (default)
-w translate from a WSL path to a Windows path
-m translate from a WSL path to a Windows path, with '/' instead of '\\'
EX: wslpath 'c:\users'
소켓 옵션 IP_ADD_MEMBERSHIP 및 IPV6_ADD_MEMBERSHIP를 지원합니다. [GH 1678]
PTRACE_OLDSETOPTIONS에 대한 지원이 추가되었습니다. [GH 1692]
그 외에도 여러 문제를 수정하고 기능을 개선했습니다.
LTP 결과
15042 이후에는 변경된 내용이 없습니다.
빌드 15046에서 Windows 10 크리에이터스 업데이트로 변경
Windows 10 크리에이터스 업데이트에 포함하기로 계획된 WSL 수정 사항 또는 기능이 더 이상 없습니다. WSL 릴리스 정보는 그 다음 주요 Windows 업데이트를 대상으로 하는 추가 기능을 위해 향후 몇 주 이내에 다시 시작될 예정입니다. 빌드 15046 및 향후 참가자 릴리스에 대한 일반적인 Windows 정보는 Windows 블로그를 참조하세요.
콘솔에서 일부 Ctrl + <key> 입력을 인식하지 못하는 알려진 버그가 있습니다. 여기에는 일반적인 'c' 키누름 역할을 하는 ctrl-c 명령이 포함됩니다.
해결 방법: 대체 키를 Ctrl+C에 매핑합니다. 예를 들어 Ctrl+K를 Ctrl+C에 매핑하려면 stty intr \^k를 사용합니다. 이 매핑은 터미널 단위로 수행되며 bash가 시작될 때마다 수행해야 합니다. 사용자는 옵션을 살펴보고 .bashrc에 포함시킬 수 있습니다.
고정
WSL을 실행하면 CPU 코어를 100% 사용하는 이슈를 해결했습니다.
소켓 옵션 IP_PKTINFO, IPV6_RECVPKTINFO가 이제 지원됩니다. (GH #851, 987)
lxcore에서 네트워크 인터페이스 실제 주소를 16바이트로 자릅니다. (GH #1452, 1414, 1343, 468, 308)
콘솔에서 일부 Ctrl + <key> 입력을 인식하지 못하는 알려진 버그가 있습니다. 여기에는 일반적인 'c' 키누름 역할을 하는 ctrl-c 명령이 포함됩니다.
해결 방법: 대체 키를 Ctrl+C에 매핑합니다. 예를 들어 Ctrl+K를 Ctrl+C에 매핑하려면 stty intr \^k를 사용합니다. 이 매핑은 터미널 단위로 수행되며 bash가 시작될 때마다 수행해야 합니다. 사용자는 옵션을 살펴보고 .bashrc에 포함시킬 수 있습니다.
WSL이 실행되는 동안 시스템 스레드에서 CPU 코어를 100% 사용합니다. 내부적으로 근본 원인을 찾아 해결했습니다.
고정
이제 모든 bash 세션을 동일한 권한 수준에서 만들어야 합니다. 다른 수준에서 세션을 시작하려고 하면 차단됩니다. 즉, 관리자 콘솔과 비관리자 콘솔을 동시에 실행할 수 없습니다. (GH #626)
다음 NETLINK_ROUTE 메시지를 구현했습니다(Windows 관리자 필요).
RTM_NEWADDR(ip addr add 지원)
RTM_NEWROUTE(ip route add 지원)
RTM_DELADDR(ip addr del 지원)
RTM_DELROUTE(ip route del 지원)
업데이트할 패키지의 예약된 작업 확인이 더 이상 요금제 연결에서 실행되지 않습니다. (GH #1371)
timer_create 및 관련 시스템 호출이 구현되었습니다. 따라서 GHC가 지원됩니다. (GH #307)
ping이 0.000ms 시간을 반환하는 이슈를 해결했습니다. (GH #1296)
파일을 너무 많이 열었을 때 올바른 오류 코드가 반환됩니다.
인터페이스의 하드웨어 주소가 32바이트인 경우(예: Teredo 인터페이스) 네트워크 인터페이스 데이터에 대한 Netlink 요청이 EINVAL과 함께 실패하는 WSL 이슈를 해결했습니다.
Linux "ip" 유틸리티에는 WSL에서 32바이트 하드웨어 주소를 보고하면 충돌하는 버그가 있습니다. 이것은 WSL이 아니라 "ip"의 버그입니다. "ip" 유틸리티는 하드웨어 주소를 인쇄하는 데 사용되는 문자열 버퍼의 길이를 하드 코딩하는데, 이 버퍼가 너무 작아서 32바이트 하드웨어 주소를 인쇄할 수 없습니다.
그 외에도 여러 문제를 수정하고 기능을 개선했습니다.
LTP 결과:
통과한 테스트 수: 669 전달되지 않는 수(실패, 건너뜀 등...): 258
Syscall 지원
아래는 WSL에서 일부가 구현된 새 syscall 또는 향상된 syscall 목록입니다. 이 목록의 syscall은 하나 이상의 시나리오에서 지원되지만, 현재 지원되는 매개 변수 중 일부가 없을 수도 있습니다.
참고: 향후 릴리스에서 WSL은 Ubuntu 14.04(Trusty) 대신 Ubuntu 16.04(Xenial)를 설치할 것입니다. 이 변경 내용은 새 인스턴스를 설치하는(lxrun.exe /install 또는 bash.exe를 처음으로 실행) 참가자에게 적용됩니다. Trusty를 사용하는 기존 인스턴스는 자동으로 업그레이드되지 않습니다. 사용자는 do-release-upgrade 명령을 사용하여 Trusty 이미지를 Xenial로 업그레이드할 수 있습니다.
알려진 이슈
WSL에서 일부 소켓 구현에 이슈가 있습니다. 버그 검사는 "ATTEMPTED EXECUTE OF NOEXECUTE MEMORY" 오류와 함께 자신을 충돌로 나타냅니다. 이 이슈의 가장 일반적인 징후는 ssh를 사용할 때 발생하는 충돌입니다. 근본 원인은 내부 빌드에서 수정되었으며, 기회가 되는 대로 참가자에게 푸시할 예정입니다.
고정
chroot 시스템 호출이 구현되었습니다.
현재 DrvFs의 Windows 애플리케이션에서 생성된 알림에 대한 지원을 포함하여 inotifiy가 개선되었습니다.
수정 사항: Windows 애플리케이션에서 시작된 변경 내용에 대한 Inotify 지원은 현재 제공되지 않습니다.
IPV6::<port n>에 대한 소켓 바인딩은 이제 IPV6_V6ONLY(GH #68, #157, #393, #460, #674, #740, #982, #996)를 지원합니다.
waitid systemcall에 대한 WNOWAIT 동작이 구현되었습니다. (GH #638)
IP 소켓 옵션 IP_HDRINCL 및 IP_TTL에 대한 지원이 추가되었습니다.
길이가 0인 read()는 즉시 반환되어야 합니다. (GH #975).
.tar 파일에 NULL 종결자가 포함되지 않은 파일 이름 및 파일 이름 접두사를 올바르게 처리합니다.
/dev/snull에 epoll이 지원됩니다.
/dev/alarm 시간 원본이 수정되었습니다.
이제 Bash -c가 파일로 리디렉션할 수 있습니다.
그 외에도 여러 버그를 수정하고 기능을 개선했습니다.
LTP 결과:
통과한 테스트 수: 664 전달되지 않는 수(실패, 건너뜀 등...): 264
Syscall 지원
아래는 WSL에서 일부가 구현된 새 syscall 또는 향상된 syscall 목록입니다. 이 목록의 syscall은 하나 이상의 시나리오에서 지원되지만, 현재 지원되는 매개 변수 중 일부가 없을 수도 있습니다.
이 모듈에서는 VS Code(Visual Studio Code)와 함께 WSL(Linux용 Windows 하위 시스템)을 사용하는 방법을 알아봅니다. 설치 프로세스와 WSL 사용의 기본 사항을 살펴봅니다. 또한 Visual Studio Code WSL 확장을 설치하고 활용합니다. 마지막으로 WSL 환경 내 VS Code에서 Python 코드를 디버깅하고 실행하는 방법을 보여 줍니다.