版本 21364
关于版本 21364 的一般 Windows 信息,请访问 Windows 博客。
- GUI 应用现已推出! 有关详细信息,请参阅 此博客文章。
- 解决通过 \\wsl.localhost\ 访问文件时出现错误。
- 修复 LxssManager 服务中潜在的死锁。
版本 21354
有关版本 21354 的一般 Windows 信息,请访问 Windows 博客。
- 将 \wsl 前缀切换到 \wsl.localhost,以避免在网络上有名为“wsl”的计算机时出现问题。 \wsl$ 将继续工作。
- 为“WoW”进程启用 Linux 快速访问图标。
- 更新总是通过 wslapi RegisterDistribution 传递版本 2 的问题。
- 将 /usr/lib/wsl/lib 目录的 fmask 更改为 222,以便将文件标记为可执行文件 [GH 3847]
- 修复虚拟机平台未启用时导致的 WSL 服务崩溃。
内部版本 21286
有关 Windows 版本 21286 的常规信息,请访问 Windows 博客。
- 引入 wsl.exe --cd 命令以设置命令的当前工作目录。
- 改进 NTSTATUS 到 Linux 错误代码的映射。 [GH 6063]
- 改进 wsl.exe --装载错误报告。
- 向 /etc/wsl.conf 添加了用于启用启动命令的选项:
[boot]
command=<string>
版本 20226
有关构建 20226 的通用 Windows 信息,请访问 Windows 博客。
- 修复 LxssManager 服务中的崩溃问题。 [GH 5902]
内部版本 20211
有关 Windows 内部版本 20211 的通用信息,请访问 Windows 博客。
- 用于装载物理或虚拟磁盘的
wsl.exe --mount
简介。 有关详细信息,请参阅 在 Windows 和 WSL 2中访问 Linux 文件系统。 - 修复 LxssManager 服务在检查 VM 是否空闲时的崩溃。 [GH 5768]
- 支持压缩的 VHD 文件。 [GH 4103]
- 确保在 OS 升级中保留安装到 c:\windows\system32\lxss\lib 的 Linux 用户模式库。 [GH 5848]
- 添加了列出随
wsl --install --list-distributions
一起安装的可用分发版的功能。 - 当用户注销时,WSL 实例现在将终止。
内部版本 20190
有关 Windows 版本 20190 的一般信息,请访问 Windows 博客。
- 修复了阻止 WSL1 实例启动的 bug。 [GH 5633]
- 修复重定向 Windows 进程输出时出现的挂起。 [GH 5648]
- 添加 %userprofile%\.wslconfig 选项来控制 VM 空闲超时(wsl2.vmIdleTimeout=<time_in_ms>)。
- 支持从 WSL 启动应用执行别名。
- 添加了对安装 WSL2 内核和分发版到 wsl.exe --install 的支持。
版本 20175
有关 Windows 版本 20175 的一般信息,请访问 Windows 博客。
- 将 WSL2 VM 的默认内存分配调整为主机内存的 50% 或 8GB(以较小者为准)[GH 4166]。
- 将 \\wsl$ 前缀更改为 \\wsl 以支持 URI 分析。 仍支持旧的 \\wsl$ 路径。
- 默认情况下,在 amd64 上为 WSL2 启用嵌套虚拟化。 可以通过 %userprofile%\.wslconfig ([wsl2] nestedVirtualization=false)禁用此功能。
- 执行 wsl.exe --update 命令以启动 Microsoft 更新。
- 支持在 DrvFs 中对只读文件进行重命名。
- 确保始终在正确的代码页中打印错误消息。
内部版本 20150
有关内部版本 20150 的一般 Windows 信息,请访问 Windows 博客。
- 有关 WSL2 GPU 计算,请参阅 Windows 博客以了解详细信息。
- 引入 wsl.exe --install 命令行选项以轻松设置 WSL。
- 引入 wsl.exe --update 命令行选项来管理 WSL2 内核的更新。
- 将 WSL2 设置为默认值。
- 增加 WSL2 VM 正常关闭超时。
- 修复映射设备内存 virtio-9p 争用情况。
- 如果禁用了 UAC,请勿运行提升的 9p 服务器。
版本 19640
有关内部版本 19640 的一般 Windows 信息,请访问 Windows 博客。
- [WSL2] virtio-9p (drvfs) 的稳定性改进。
内部版本 19555
有关内部版本 19555 的一般 Windows 信息,请访问 Windows 博客。
- [WSL2] 使用 memory cgroup 限制了安装和转换操作使用的内存量 [GH 4669]
- 如果未启用适用于 Linux 的 Windows 子系统可选组件,则应使 wsl.exe 可见以提高功能的可发现性。
- 如果未安装 WSL 可选组件,请更改 wsl.exe 以打印帮助文本
- 修复了创建实例时的争用条件
- 创建包含所有命令行功能的 wslclient.dll
- 在 LxssManagerUser 服务停止期间防止崩溃
- 修复当 distroName 参数为 NULL 时 wslapi.dll 快速失败的问题。
内部版本 19041
有关 Windows 版本 19041 的常规信息,请访问 Windows 博客。
- [WSL2]在启动进程之前清除信号掩码
- [WSL2]将 Linux 内核更新为 4.19.84
- 当 symlink 非相关时,处理 /etc/resolv.conf symlink 的创建
内部版本 19028
有关内部版本 19028 的一般 Windows 信息,请访问 Windows 博客。
- [WSL2]将 Linux 内核更新为 4.19.81
- [WSL2]将 /dev/net/tun 的默认权限更改为 0666 [GH 4629]
- [WSL2]将分配给 Linux VM 的默认内存量调整为 80% 主机内存
- [WSL2] 修复互操作服务器以便使用“超时”功能处理请求,从而使不良调用方无法挂起服务器
内部版本 19018
有关版本 19018 的一般 Windows 信息,请访问 Windows 博客。
- [WSL2] 使用 cache=mmap 作为 9p 装入点的默认值来修复 dotnet 应用
- [WSL2] localhost 中继的修补程序 [GH 4340]
- [WSL2] 引入了用于在发行版之间共享状态的跨发行版共享 tmpfs 装入点
- 修复了 \\wsl$ 的永久网络驱动器还原
内部版本 19013
有关版本 19013 的 Windows 详细信息,请访问 Windows 博客。
- [WSL2]提高 WSL 实用工具 VM 的内存性能。 不再使用的内存将释放回主机。
- [WSL2]将内核版本更新为 4.19.79。 (添加 CONFIG_HIGH_RES_TIMERS、CONFIG_TASK_XACCT、CONFIG_TASK_IO_ACCOUNTING、CONFIG_SCHED_HRTICK 和 CONFIG_BRIDGE_VLAN_FILTERING)。
- [WSL2] 修复了输入中继,以处理 stdin 为未关闭管道句柄的情况 [GH 4424]
- 检查 \\wsl$ 是否不区分大小写。
[wsl2]
pageReporting = <bool> # Enable or disable the free memory page reporting feature (default true).
idleThreshold = <integer> # Set the idle threshold for memory compaction, 0 disables the feature (default 1).
版本 19002
有关版本 19002 的一般 Windows 信息,请访问 Windows 博客。
- [WSL]修复了处理某些 Unicode 字符的问题:https://github.com/microsoft/terminal/issues/2770
- [WSL] 解决了在版本到版本升级后立即启动时可能会注销发行版的罕见情况。
- [WSL] 解决了 wsl.exe --shutdown 的以下小问题:无法取消实例空闲计时器。
内部版本 18995
有关版本 18995 的常规 Windows 信息,请访问 Windows 博客。
- [WSL2] 修复了 DrvFs 装载在某项操作被中断(例如 ctrl-c)后失效的问题 [GH 4377]
- [WSL2] 修复了处理极大型 hvsocket 消息的问题 [GH 4105]
- [WSL2] 修复了当 stdin 为文件时互操作出现的问题 [GH 4475]
- [WSL2] 修复了当遇到意外网络状态时服务崩溃的问题 [GH 4474]
- [WSL2]如果当前进程没有环境变量,请从互作服务器查询发行版名称
- [WSL2] 修复了当 stdin 为文件时互操作出现的问题
- [WSL2]将 Linux 内核版本更新为 4.19.72
- [WSL2]添加通过 .wslconfig 指定其他内核命令行参数的功能
[wsl2]
kernelCommandLine = <string> # Additional kernel command line arguments
版本 18990
有关版本 18990 的一般 Windows 信息,请访问 Windows 博客。
- 提高 \\wsl$ 中目录列表的性能
- [WSL2] 注入额外的启动熵 [GH 4416]
- [WSL2] 修复使用 su/sudo 时的 Windows 互操作 [GH 4465]
内部版本 18980
有关 Windows 版本 18980 的一般信息,请访问 Windows 博客。
- 修复拒绝 FILE_READ_DATA 的读取符号链接。 这包括 Windows 创建的所有符号链接以实现向后兼容性,例如“C:\Document and Settings”和用户配置文件目录中的一堆符号链接
- 使意外的文件系统状态非致命 [GH 4334, 4305]
- [WSL2]如果 CPU/固件支持虚拟化,请添加对 arm64 的支持
- [WSL2]允许未特权用户查看内核日志
- [WSL2] 修复关闭 stdout/stderr 套接字后的输出中继 [GH 4375]
- [WSL2] 支持电池和交流适配器直通
- [WSL2]将 Linux 内核更新为 4.19.67
- 添加在 /etc/wsl.conf 中设置默认用户名的功能:
[user]
default=<string>
内部版本 18975
有关内部版本 18975 的一般 Windows 信息,请访问 Windows 博客。
- [WSL2]修复了许多 localhost 可靠性问题 [GH 4340]
内部版本 18970
有关版本 18970 的 Windows 常规信息,请访问 Windows 博客。
- [WSL2] 当系统从睡眠状态恢复时,使时间与主机时间同步 [GH 4245]
- [WSL2] 在可能的情况下,在 Windows 卷上创建 NT 符号链接。
- [WSL2] 在 UTS、IPC、PID 和挂载命名空间中创建 Linux 发行版。
- [WSL2] 修复服务器直接绑定到 localhost 时的本地端口转发问题 [GH 4353]
- [WSL2] 修复重定向输出时的 interop [GH 4337]
- [WSL2] 支持转换绝对 NT 符号链接。
- [WSL2]将内核更新到 4.19.59
- [WSL2]正确设置 eth0 的子网掩码。
- [WSL2] 发出退出事件信号时更改逻辑,以中断控制台工作线程循环。
- [WSL2] 发行版未运行时弹出发行版 VHD。
- [WSL2]修复配置分析库以正确处理空值。
- [WSL2] 通过创建跨发行版装入点来支持 Docker Desktop。 发行版可以通过将以下行添加到 /etc/wsl.conf 文件来选择加入此行为:
[automount]
crossDistro = true
内部版本 18945
有关 Windows 内部版本 18945 的一般信息,请访问 Windows 博客。
WSL
- [WSL2] 允许侦听可使用 localhost:port 通过主机访问的 WSL2 中的 TCP 套接字
- [WSL2] 修复了安装/转换失败的情况,并提供额外的诊断工具以跟踪将来的问题 [GH 4105]
- [WSL2]提高 WSL2 网络问题的可诊断性
- [WSL2]将内核版本更新为 4.19.55
- [WSL2] 使用 Docker 所需的配置选项更新了内核 [GH 4165]
- [WSL2]将分配给轻型实用工具 VM 的 CPU 数增加为与主机相同(以前在内核配置中CONFIG_NR_CPUS限制为 8)[GH 4137]
- [WSL2]为 WSL2 轻型 VM 创建交换文件
- [WSL2] 允许通过 \\wsl$\distro(例如 sshfs)显示用户装入点 [GH 4172]
- [WSL2]提高 9p 文件系统性能
- [WSL2] 确保 VHD ACL 不会无限增长 [GH 4126]
- [WSL2]更新内核配置以支持 squashfs 和 xt_conntrack [GH 4107, 4123]
- [WSL2] 修复 interop.enabled /etc/wsl.conf 选项 [GH 4140]
- [WSL2] 如果文件系统不支持 EA,则返回 ENOTSUP
- [WSL2] 修复 \\wsl$ 时 CopyFile 挂起的问题
- 将默认 umask 切换到 0022,并将 filesystem.umask 设置添加到 /etc/wsl.conf
- 修复 wslpath 以正确解析符号链接,这是19h1 中的回归 [GH 4078]
- 介绍用于调整 WSL2 设置的 %UserProfile%\.wslconfig 文件
[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
内部版本 18917
有关 Windows 内部版本 18917 的一般信息,请访问 Windows 博客。
WSL
- WSL 2 现已推出! 有关详细信息,请参阅 博客。
- 修复一个回归问题:无法通过符号链接启动 Windows 进程 [GH 3999]
- 将 wsl.exe --list --verbose、wsl.exe --list --quiet 和 wsl.exe --import --version 选项添加到 wsl.exe
- 添加 wsl.exe --shutdown 选项
- 计划 9:允许打开目录以使写入成功
内部版本 18890
有关 Windows 版本 18890 的一般信息,请访问 Windows 博客。
WSL
- 非阻塞套接字泄露 [GH 2913]
- 终端的 EOF 输入可以阻止后续读取 [GH 3421]
- 更新 resolv.conf 标头以引用 wsl.conf [在 GH 3928 中讨论]
- epoll delete 代码中的死锁 [GH 3922]
- 处理 --import 和 --export 参数中的空格 [GH 3932]
- 无法正常扩展 mmap'd 文件 [GH 3939]
- 修复了 ARM64 \\wsl$ 访问不正常的问题
- 为 wsl.exe 添加更好的默认图标
内部版本 18342
有关 Windows 版本 18342 的一般信息,请访问 Windows 博客。
WSL
- 我们添加了用户从 Windows 访问 WSL 发行版中的 Linux 文件的功能。 可以通过命令行访问这些文件,还可以通过 Windows 应用(如文件资源管理器、VSCode 等)与这些文件进行交互。 通过导航到 \\wsl$\<distro_name>来访问文件,或通过导航到 \\wsl$ 查看正在运行的分发版的列表
- 添加其他 CPU 信息标记并修复Cpus_allowed[_list] 值 [GH 2234]
- 支持从非领先线程执行 [GH 3800]
- 将配置更新失败视为非致命 [GH 3785]
- 更新 binfmt 以正确处理偏移 [GH 3768]
- 为 Plan 9 启用映射网络驱动器 [GH 3854]
- 支持对绑定载入点执行“Windows -> Linux”和“Linux -> Windows”路径转换
- 为以只读方式打开的文件中的映射创建只读节
内部版本 18334
有关内部版本 18334 的一般 Windows 信息,请访问 Windows 博客。
WSL
- 重新设计 Windows 时区映射到 Linux 时区的方式 [GH 3747]
- 修复内存泄漏并添加新的字符串转换函数 [GH 3746]
- 不包含任何线程的线程组上的 SIGCONT 是一个 no-op [GH 3741]
- 在 /proc/self/fd 中正确显示套接字和 epoll 文件描述符
内部版本 18305
有关版本 18305 的一般 Windows 信息,请访问 Windows 博客。
WSL
- 当主线程退出 [GH 3589] 时,pthread 将失去对文件的访问权限
- 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.
内部版本 18277
有关内部版本 18277 的一般 Windows 信息,请访问 Windows 博客。
WSL
- 修复内部版本 18272 中引入的“不支持此类接口”错误 [GH 3645]
- 忽略 umount syscall 的 MNT_FORCE 标志 [GH 3605]
- 切换 WSL interop 以使用官方的 CreatePseudoConsole API
- FUTEX_WAIT 重启时不保留超时值
内部版本 18272
若要获取有关 Windows 内部版本 18272 的一般信息,请访问 Windows 博客。
WSL
- 警告: 此版本存在一个问题,使得 WSL 无法运行。 尝试启动分发版时,会看到“不支持此类接口”错误。 该问题已修复,下周发布的 Insider Fast 内部版本将会应用修复程序。 如果您已安装此版本,可以通过“设置->更新 & 安全性->恢复”中的“返回到以前的 Windows 10 版本”功能来回退到以前的 Windows 版本。
版本 18267
有关内部版本 18267 的一般 Windows 信息,请访问 Windows 博客。
WSL
- 修复 zombie 进程不会回收,而是无限期保留的问题。
- 如果错误消息超过最大长度,WslRegisterDistribution 将会挂起 [GH 3592]
- 允许 fsync 针对 DrvFs 上的只读文件成功运行 [GH 3556]
- 在 [GH 3584] 中创建符号链接之前,请确保 /bin 和 /sbin 目录存在
- 为 WSL 实例添加了实例终止超时机制。 超时当前设置为 15 秒,这意味着实例将在最后一个 WSL 进程退出后终止 15 秒。 若要立即终止分发,请使用:
wslconfig.exe /terminate <DistributionName>
版本 17763 (1809)
有关 Windows 17763 版本的一般信息,请访问 Windows 博客。
WSL
- Setpriority syscall 权限检查过于严格,导致无法更改同一线程的优先级 [GH 1838]
- 确保使用无偏见的中断时间来计算启动时间,以避免clock_gettime(CLOCK_BOOTTIME)返回负值 [GH 3434]。
- 在 WSL binfmt 解释器中处理符号链接 [GH 3424]
- 更好地处理线程组领先者文件描述符清理。
- 切换 WSL 以使用 KeQueryInterruptTimePrecise 而不是 KeQueryPerformanceCounter,以避免溢出 [GH 3252]
- Ptrace attach 可能导致系统调用返回错误值 [GH 1731]
- 修复多个AF_UNIX相关问题 [GH 3371]
- 修复了以下问题:如果当前工作目录长度小于 5 个字符 [GH 3379] ,则可能导致 WSL 互作失败
- 避免导致无法与不存在的端口建立环回连接的一秒延迟 [GH 3286]
- 添加 /proc/sys/fs/file-max 存根文件 [GH 2893]
- 更准确的 IPV6 范围信息。
- PR_SET_PTRACER 支持 [GH 3053]
- 管道文件系统意外清除边缘触发的 epoll 事件 [GH 3276]
- 通过 NTFS 符号链接启动的 Win32 可执行文件不尊重符号链接名称 [GH 2909]
- 改善了 zombie 支持 [GH 1353]
- 添加用于控制 Windows 互作行为的 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 键盘 ioctl KDGKBTYPE、KDGKBMODE 和 KDSKBMODE 的有限支持。
- 即使在后台启动,Windows UI 应用也应执行。
- 添加 wsl -u 或 --user 选项 [GH 1203]
- 修复启用快速启动时的 WSL 启动问题 [GH 2576]
- Unix 套接字需要保留断开连接的对等凭据 [GH 3183]
- 使用 EAGAIN 时非阻塞 Unix 套接字无限期失败 [GH 3191]
- case=off 是新的默认 drvfs 装入点类型 [GH 2937、3212、3328]
- 有关详细信息,请参阅 博客。
- 添加 wslconfig /terminate 以停止运行分发。
- 修复了 WSL shell 上下文菜单条目无法正确处理路径中含空格的问题。
- 公开按目录区分大小写作为扩展属性
- ARM64:模拟缓存维护操作。 解决 .NET 问题。
- DrvFs:只取消转义专用范围中与已转义字符对应的字符。
- 修复 ELF 分析程序解释器长度验证中的一位偏移错误 [GH 3154]
- 包含过去时间的 WSL 绝对计时器不会激发 [GH 3091]
- 确保新建的重分析点在父目录中以此类类型列出。
- 以原子方式在 DrvFs 中创建区分大小写的目录。
- 修复了一个附加问题,即即使文件存在,多线程操作也可能返回 ENOENT。 [GH 2712]
- 修复了启用 UMCI 时 WSL 启动失败的问题。 [GH 3020]
- 添加浏览器上下文菜单用于启动 WSL [GH 437、603、1836]。 若要使用此菜单,请在资源管理器窗口中按住 Shift 键的同时单击右键。
- 修复 Unix 套接字非阻塞行为 [GH 2822、3100]
- 修复 GH 2026 中报告的卡住的 NETLINK 命令。
- 添加对装载传播标志的支持 [GH 2911]。
- 修复截断后不会导致 inotify 事件的问题 [GH 2978]。
- 为 wsl.exe 添加 --exec 选项,以在没有 shell 的情况下调用单个二进制文件。
- 为 wsl.exe 添加 --distribution 选项以选择特定的发行版。
- 对 dmesg 的支持有限。 应用程序现在可以登录到 dmesg。 WSL 驱动程序将有限的信息记录到 dmesg。 将来,可以扩展这一功能以传递来自驱动程序的其他信息和诊断数据。
- 注意:dmesg 当前通过
/dev/kmsg
设备接口受支持。 尚不支持syslog
syscall 接口。 因此,某些dmesg
命令行选项(如-S
),-C
不起作用。
- 注意:dmesg 当前通过
- 更改串行设备的默认 gid 和模式,以匹配本机 [GH 3042]
- DrvFs 现在支持扩展属性。
- 注意:DrvFs 对扩展属性的名称有一些限制。 不允许某些字符(如“/”、“:”和“*”),扩展属性名称在 DrvFs 上不区分大小写
内部版本 18252 (Skip Ahead)
有关内部版本 18252 的一般 Windows 信息,请访问 Windows 博客。
WSL
- 将 init 和 bsdtar 二进制文件移出 lxssmanager dll,并移动到单独的工具文件夹中
- 修复在使用 CLONE_FILES 的情况下,关闭文件描述符时出现的争用
- 处理转换 DrvFs 路径时 /proc/pid/mountinfo 中的可选字段
- 允许 DrvFs mknod 成功,而无需对 S_IFREG 提供元数据支持
- 在 DrvFs 上创建的只读文件应具有只读属性集 [GH 3411]
- 添加 /sbin/mount.drvfs 帮助器用于处理 DrvFs 装载
- 在 DrvFs 中使用 POSIX 重命名。
- 允许在无卷 GUID 的卷上执行路径转换。
内部版本 17738 (Fast)
有关 Windows 内部版本 17738 的一般信息,请访问 Windows 博客。
WSL
- Setpriority syscall 权限检查过于严格,导致无法更改同一线程的优先级 [GH 1838]
- 确保使用无偏见的中断时间来计算启动时间,以避免clock_gettime(CLOCK_BOOTTIME)返回负值 [GH 3434]。
- 在 WSL binfmt 解释器中处理符号链接 [GH 3424]
- 更好地处理线程组领先者文件描述符清理。
内部版本 17728 (Fast)
关于 Windows 内部版本 17728 的一般信息,请访问 Windows 博客。
WSL
- 切换 WSL 以使用 KeQueryInterruptTimePrecise 而不是 KeQueryPerformanceCounter,以避免溢出 [GH 3252]
- Ptrace attach 可能导致系统调用返回错误值 [GH 1731]
- 修复许多AF_UNIX相关问题 [GH 3371]
- 修复了以下问题:如果当前工作目录长度小于 5 个字符 [GH 3379] ,则可能导致 WSL 互作失败
内部版本 18204 (Skip Ahead)
请访问 Windows 博客,以获取有关 Windows 内部版本 18204 的一般信息。
WSL
- 管道文件系统意外清除边缘触发的 epoll 事件 [GH 3276]
- 通过 NTFS 符号链接启动的 Win32 可执行文件不尊重符号链接名称 [GH 2909]
内部版本 17723 (Fast)
有关内部版本 17723 的一般 Windows 信息,请访问 Windows 博客。
WSL
- 避免导致无法与不存在的端口建立环回连接的一秒延迟 [GH 3286]
- 添加 /proc/sys/fs/file-max 存根文件 [GH 2893]
- 更准确的 IPV6 范围信息。
- PR_SET_PTRACER 支持 [GH 3053]
- 管道文件系统意外清除边缘触发的 epoll 事件 [GH 3276]
- 通过 NTFS 符号链接启动的 Win32 可执行文件不尊重符号链接名称 [GH 2909]
内部版本 17713
有关内部版本 17713 的一般 Windows 信息,请访问 Windows 博客。
WSL
- 改善了 zombie 支持 [GH 1353]
- 添加用于控制 Windows 互作行为的 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 键盘 ioctl KDGKBTYPE、KDGKBMODE 和 KDSKBMODE 的有限支持。
- 即使在后台启动,Windows UI 应用也应执行。
内部版本 17704
有关 Windows 内部版本 17704 的一般信息,请访问 Windows 博客。
WSL
- 添加 wsl -u 或 --user 选项 [GH 1203]
- 修复启用快速启动时的 WSL 启动问题 [GH 2576]
- Unix 套接字需要保留断开连接的对等凭据 [GH 3183]
- 使用 EAGAIN 时非阻塞 Unix 套接字无限期失败 [GH 3191]
- case=off 是新的默认 drvfs 装入点类型 [GH 2937、3212、3328]
- 有关详细信息,请参阅 博客。
- 添加 wslconfig /terminate 以停止运行分发。
版本 17692
有关内部版本 17692 的一般 Windows 信息,请访问 Windows 博客。
WSL
- 修复了 WSL shell 上下文菜单条目无法正确处理路径中含空格的问题。
- 公开按目录区分大小写作为扩展属性
- ARM64:模拟缓存维护操作。 解决 .NET 问题。
- DrvFs:只取消转义专用范围中与已转义字符对应的字符。
版本 17686
有关 Windows 内部版本 17686 的一般信息,请访问 Windows 博客。
WSL
- 修复 ELF 分析程序解释器长度验证中的一位偏移错误 [GH 3154]
- 包含过去时间的 WSL 绝对计时器不会激发 [GH 3091]
- 确保新建的重分析点在父目录中以此类类型列出。
- 以原子方式在 DrvFs 中创建区分大小写的目录。
内部版本 17677
有关 Windows 内部版本 17677 的一般信息,请访问 Windows 博客。
WSL
- 修复了一个附加问题,即即使文件存在,多线程操作也可能返回 ENOENT。 [GH 2712]
- 修复了启用 UMCI 时 WSL 启动失败的问题。 [GH 3020]
内部版本 17666
有关内部版本 17666 的一般 Windows 信息,请访问 Windows 博客。
WSL
警告:存在阻止 WSL 在某些 AMD 芯片集上运行的问题 [GH 3134]。 修复程序已准备就绪,即将在 Insider Build 分支中发布。
- 添加浏览器上下文菜单用于启动 WSL [GH 437、603、1836]。 若要使用此菜单,请在资源管理器窗口中按住 Shift 键的同时单击右键。
- 修复 Unix 套接字非阻塞行为 [GH 2822、3100]
- 修复 GH 2026 中报告的卡住的 NETLINK 命令。
- 添加对装载传播标志的支持 [GH 2911]。
- 修复截断后不会导致 inotify 事件的问题 [GH 2978]。
- 为 wsl.exe 添加 --exec 选项,以在没有 shell 的情况下调用单个二进制文件。
- 为 wsl.exe 添加 --distribution 选项以选择特定的发行版。
内部版本 17655 (Skip Ahead)
有关内部版本 17655 的一般 Windows 信息,请访问 Windows 博客。
WSL
- 对 dmesg 的支持有限。 应用程序现在可以登录到 dmesg。 WSL 驱动程序将有限的信息记录到 dmesg。 将来,可以扩展这一功能以传递来自驱动程序的其他信息和诊断数据。
- 注意:dmesg 当前通过
/dev/kmsg
设备接口受支持。 尚不支持syslog
sycall 接口。 因此,某些dmesg
命令行选项(如-S
),-C
不起作用。
- 注意:dmesg 当前通过
- 修复了即使文件存在,多线程操作也可能返回 ENOENT 的问题。 [GH 2712]
内部版本 17639 (Skip Ahead)
有关 Windows 版本 17639 的常规信息,请访问 Windows 博客。
WSL
- 更改串行设备的默认 gid 和模式,以匹配本机 [GH 3042]
- DrvFs 现在支持扩展属性。
- 注意:DrvFs 对扩展属性的名称有一些限制。 具体而言,不允许某些字符(如“/”、“:”和“*”),扩展属性名称在 DrvFs 上不区分大小写
内部版本 17133 (Fast)
有关内部版本 17133 的一般 Windows 信息,请访问 Windows 博客。
WSL
- 修复 WSL 中的挂起问题。 [GH 3039, 3034]
内部版本 17128 (Fast)
有关 Windows 版本 17128 的一般信息,请访问 Windows 博客。
WSL
- 没有
内部版本 17627 (Skip Ahead)
有关版本 17627 的一般 Windows 信息,请访问 Windows 博客。
WSL
- 添加对 futex pi 感知操作的支持。 [GH 1006]
- 请注意,优先级当前不是受支持的 WSL 功能,因此存在限制,但应取消阻止标准使用。
- 对 WSL 进程的 Windows 防火墙支持。 [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 python 进程侦听任何端口,请使用提升的 Windows cmd:
- 当使用 wsl.exe时,应尊重用户的默认 shell。 [GH 2372]
- 将所有网络接口报告为以太网。 [GH 2996]
- 更好地处理损坏的 /etc/passwd 文件。 [GH 3001]
控制台
- 无修复措施。
LTP 结果:
正在进行测试。
内部版本 17618 (Skip Ahead)
有关 Windows 内部版本 17618 的一般性信息,请访问 Windows 博客。
WSL
- 为 NT 互操作引入伪终端功能 [GH 988、1366、1433、1542、2370、2406]。
- 旧安装机制(lxrun.exe)已弃用。 安装分发版支持的机制是通过 Microsoft 应用商店。
控制台
- 无修复措施。
LTP 结果:
正在进行测试。
版本 17110
有关 Windows 内部版本 17110 的综合信息,请访问 Windows 博客。
WSL
- 允许在 Windows 上终止 /init [GH 2928]。
- 现在,DrvFs 默认按目录区分大小写(相当于使用“case=dir”装载选项)。
- 使用“case=force”(旧行为)需要设置注册表项。 如果需要使用“case=dir”,请运行以下命令来启用它:reg add HKLM\SYSTEM\CurrentControlSet\Services\lxss /v DrvFsAllowForceCaseSensitivity /t REG_DWORD /d 1
- 如果在旧版 Windows 中使用 WSL 创建的现有目录需要区分大小写,请使用 fsutil.exe 将其标记为区分大小写:fsutil.exe file setcasesensitiveinfo
<path>
enable
- NULL 终止从 uname syscall 返回的字符串。
控制台
- 无修复措施。
LTP 结果:
正在进行测试。
内部版本 17107
关于 Windows 内部版本 17107 的一般信息,请访问 Windows 博客。
WSL
- 支持主 pty 终结点上的 TCSETSF 和 TCSETSW [GH 2552]。
- 启动同步 interop 进程可能会导致 EINVAL [GH 2813]。
- 修复了PTRACE_ATTACH,以在 /proc/pid/status 中显示正确的跟踪状态。
- 修复以下争用问题:在不清除 TID 地址的情况下,通过 CLEARTID 和 SETTID 标志克隆的生存期较短的进程可能会退出。
- 从 17093 预版本迁移时,在升级 Linux 文件系统目录时显示消息。 有关 17093 文件系统更改的更多详细信息,请参阅 17093发行说明。
控制台
- 无修复措施。
LTP 结果:
正在进行测试。
内部版本 17101
有关版本 17101 的 Windows 一般信息,请访问 Windows 博客。
WSL
- signalfd 支持。 [GH 129]
- 通过将文件名编码为专用 Unicode 字符来支持包含非法 NTFS 字符的文件名。 [GH 1514]
- 不支持写入时,自动装载将回退到只读。 [GH 2603]
- 允许粘贴 Unicode 代理项对(类似于表情符号)。 [GH 2765]
- /proc 和/sys 中的伪文件应从 select、poll、epoll 等命令返回 read 和 write ready [GH 2838]
- 修复了导致服务在注册表被篡改或损坏时进入无限循环的问题。
- 修复 netlink 消息,以兼容较新的(上游 4.14)版本的 iproute2。
控制台
- 无修复措施。
LTP 结果:
正在进行测试。
内部版本 17093
有关内部版本 17093 的一般 Windows 信息,请访问 Windows 博客。
重要:
升级到此版本后首次启动 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 现在在实例启动 [GH 2636] 期间处理 /etc/fstab 文件。
- 这种处理是在自动装载 DrvFs 驱动器之前完成的;fstab 已装载的任何驱动器不会自动重新装载,使你可以更改特定驱动器的装入点。
- 可以使用 wsl.conf 关闭此行为。
- /proc 中的 mount、mountinfo 和 mountstats 文件会正确转义反斜杠和空格等特殊字符 [GH 2799]
- 在启用元数据的情况下使用 DrvFs 创建的特殊文件(例如 WSL 符号链接,或 fifos 和 sockets)现在可以从 Windows 复制和移动。
WSL 更具可配置性,可以通过 wsl.conf 进行配置。
我们添加了一种方法,用于在 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]
- 加载包含具有非零偏移量的加载头的 ELF 二进制文件时出错 [GH 1884]
- 加载映像时将尾随页字节归零。
- 减少 execve 以无提示方式终止进程的情况
控制台
- 无修复措施。
LTP 结果:
正在进行测试。
版本 17083
有关 Windows 的一般信息(版本 17083),请访问 Windows 博客。
WSL
- 修复了与 epoll 相关的 bug 检查 [GH 2798、2801、2857]
- 修复了关闭 ASLR 时挂起的问题 [GH 1185、2870]
- 确保 mmap 操作显示原子性 [GH 2732]
控制台
- 无修复措施。
LTP 结果:
正在进行测试。
版本 17074
有关 Windows 内部版本 17074 的一般信息,请访问 Windows 博客。
WSL
- 修复了 DrvFs 元数据的存储格式 [GH 2777]
重要提示:在此内部版本之前创建的 DrvFs 元数据将显示错误或根本不显示。 若要修复受影响的文件,请使用 chmod 和 chown 重新应用元数据。 - 修复了多个信号和可重启 syscall 的问题。
控制台
- 无修复措施。
LTP 结果:
正在进行测试。
内部版本 17063
有关 Windows 内部版本 17063 的通用信息,请访问 Windows 博客。
WSL
DrvFs 支持其他 Linux 元数据。 这允许使用 chmod/chown 设置文件的所有者和模式,以及创建特殊文件(如 fifos、unix 套接字和设备文件)。 这是暂时禁用的,因为它仍然是实验性的。 注意: 我们修复了 DrvFs 使用的元数据格式的 bug。 虽然元数据适用于此版本进行试验,但将来的版本将无法正确读取由此生成创建的元数据。 可能需要手动更新已修改文件的所有者,具有自定义设备 ID 的设备将需要重新创建。
若要启用,请使用元数据选项装载 DrvFs(若要在现有装载上启用 DrvFs,必须先卸载它):
mount -t drvfs C: /mnt/c -o metadata
将 Linux 权限添加为文件的其他元数据;它们不会影响 Windows 权限。 请记住,使用 Windows 编辑器编辑文件可能会删除元数据。 在这种情况下,该文件将还原为其默认权限。
向 DrvFs 添加了装载选项,用于控制没有元数据的文件。
- uid:用于所有文件的所有者的用户 ID。
- gid:用于所有文件的所有者的组 ID。
- umask:要对所有文件和目录排除的权限的八进制掩码。
- fmask:要对所有常规文件排除的权限的八进制掩码。
- dmask:要对所有目录排除的权限的八进制掩码。
例如:
mount -t drvfs C: /mnt/c -o uid=1000,gid=1000,umask=22,fmask=111
结合元数据选项,为没有元数据的文件指定默认权限。
引入了一个新的环境变量,
WSLENV
,用于配置环境变量在 WSL 和 Win32 之间的流动方式。例如:
WSLENV=GOPATH/l:USERPROFILE/pu:DISPLAY
WSLENV
是一个以冒号分隔的环境变量列表,可以在启动 WSL 进程或从 WSL 启动 Win32 进程时包含这些变量。 每个变量可以使用斜杠后接一个用于指定其转换方式的标志作为后缀。- p:该值是应在 WSL 路径与 Win32 路径之间转换的一个路径。
- l:该值是路径列表。 在 WSL 中,它是以冒号分隔的列表。 在 Win32 中,它是以分号分隔的列表。
- u:仅当从 Win32 调用 WSL 时,才应包含该值
- w:仅当从 WSL 调用 Win32 时,才应包含该值
可以在 .bashrc 或用户的自定义 Windows 环境中设置
WSLENV
。drvfs 装入点会正确保留 tar、cp -p 中的时间戳 (GH 1939)
drvfs 符号链接会报告正确的大小 (GH 2641)
read/write 适用于极大的 IO 大小 (GH 2653)
waitpid 可与进程组 ID 一起使用(GH 2534)
极大改善了大型保留区域的 mmap 性能;改善了 ghc 性能 (GH 1671)
READ_IMPLIES_EXEC 的个性化支持;修复 maxima 和 clisp (GH 1185)
mprotect 支持 PROT_GROWSDOWN;修复 clisp (GH 1128)
overcommit 模式的页面错误修复;修复 sbcl (GH 1128)
clone 支持更多标志组合
支持 epoll 文件的 select/epoll(以前为 no-op)。
通知未实现的 syscall 的 ptrace。
忽略生成 resolv.conf 名称服务器时不启动的接口 [GH 2694]
枚举没有物理地址的网络接口。 [GH 2685]
其他错误修复和改进。
适用于 Windows 上的开发人员的 Linux 工具
Windows 命令行工具链包括 bsdtar (tar) 和 curl。 阅读 此博客,了解有关添加这两个新工具的更多信息,并了解它们如何影响 Windows 上的开发人员体验。
在 Windows 预览版 SDK (17061+) 中可以找到
AF_UNIX
。 请阅读此博客来详细了解AF_UNIX
,以及 Windows 上的开发人员如何使用它。
控制台
- 无修复措施。
LTP 结果:
正在进行测试。
内部版本 17046
有关内部版本 17046 的一般 Windows 信息,请访问 Windows 博客。
已修复
WSL
- 允许进程在没有活动终端的情况下运行。 [GH 709、1007、1511、2252、2391 等]
- 更好地支持CLONE_VFORK和CLONE_VM。 [GH 1878, 2615]
- 跳过 WSL 网络操作的 TDI 筛选器驱动程序。 [GH 1554]
- 满足某些条件时,DrvFs 会创建 NT 符号链接。 [GH 353, 1475, 2602]
- 链接目标必须是相对性的,不能跨任何装入点或符号链接,并且必须存在。
- 除非已启用开发人员模式,否则用户必须具有 SE_CREATE_SYMBOLIC_LINK_PRIVILEGE(这通常需要以提升的权限启动 wsl.exe)。
- 在所有其他情况下,DrvFs 仍会创建 WSL 符号链接。
- 允许同时运行提升和未提升的 WSL 实例。
- 支持 /proc/sys/kernel/yama/ptrace_scope
- 添加 wslpath 以执行 WSL<->Windows 路径转换。 [GH 522、1243、1834、2327 等]
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'
控制台
- 无修复措施。
LTP 结果:
正在进行测试。
内部版本 17040
有关内部版本 17040 的一般 Windows 信息,请访问 Windows 博客。
已修复
WSL
- 自 17035 年以来没有修复。
控制台
- 自 17035 年以来没有修复。
LTP 结果:
正在进行测试。
内部版本 17035
关于 Windows 内部版本 17035 的一般信息,请访问 Windows 博客。
已修复
WSL
- 访问 DrvFs 上的文件偶尔会失败并出现 EINVAL。 [GH 2448]
控制台
- 在 VT 模式下插入/删除行时,某些颜色丢失。
LTP 结果:
正在进行测试。
内部版本 17025
有关 Windows 内部版本 17025 的一般信息,请访问 Windows 博客。
已修复
WSL
- 在新的前台进程组中启动初始进程 [GH 1653, 2510]。
- SIGHUP 传递修复 [GH 2496]。
- 如果没有提供 [GH 2497] ,则生成默认虚拟桥名称。
- 实现 /proc/sys/kernel/random/boot_id [GH 2518]。
- 更多 interop stdout/stderr 管道修复措施。
- 存根 syncfs 系统调用。
控制台
- 修复第三方控制台的输入 VT 转换 [GH 111]
LTP 结果:
正在进行测试。
内部版本 17017
有关内部版本 17017 的一般 Windows 信息,请访问 Windows 博客。
已修复
WSL
- 忽略空 ELF 程序标头 [GH 330]。
- 允许 LxssManager 为非交互式用户(ssh 和计划的任务支持)创建 WSL 实例 [GH 777, 1602]。
- 支持 WSL->Win32->WSL(“起始”)方案 [GH 1228]。
- 有限支持终止通过 interop 调用的控制台应用 [GH 1614]。
- 支持 devpts 的装载选项 [GH 1948]。
- Ptrace 阻止子级启动 [GH 2333]。
- EPOLLET 缺少某些事件 [GH 2462]。
- 返回PTRACE_GETSIGINFO的更多数据。
- 结合 lseek 运行 Getdents 会提供错误的结果。
- 修复某些 Win32 interop 应用挂起,并等待在没有更多数据的管道中提供输入的问题。
- O_ASYNC 对 tty/pty 文件的支持。
- 其他改进和 bug 修复
控制台
- 此版本中没有与控制台相关的更改。
LTP 结果:
正在进行测试。
Fall Creators Update
内部版本 16288
有关版本 16288 的一般 Windows 信息,请访问 Windows 博客。
已修复
WSL
- 正确初始化和报告套接字文件描述符的 uid、gid 和模式 [GH 2490]
- 其他改进和 bug 修复
控制台
- 此版本中没有与控制台相关的更改。
LTP 结果:
自 16273 年以来没有更改
版本 16278
有关 Windows 版本 162738 的一般信息,请访问 Windows 博客。
已修复
WSL
- 分解 LX MM 状态时显式取消映射文件后备节的映射视图 [GH 2415]
- 其他改进和 bug 修复
控制台
- 此版本中没有与控制台相关的更改。
LTP 结果:
自 16273 年以来没有更改
内部版本 16275
有关 Windows 版本 162735 的一般信息,请访问 Windows 博客。
已修复
WSL
- 此版本中没有与 WSL 相关的更改。
控制台
- 此版本中没有与控制台相关的更改。
LTP 结果:
自 16273 年以来没有更改
版本 16273
有关内部版本 16273 的一般 Windows 信息,请访问 Windows 博客。
已修复
WSL
- 修复了 DrvFs 有时报告目录的错误文件类型的问题 [GH 2392]
- 允许创建 NETLINK_KOBJECT_UEVENT 套接字,以解锁使用 uevent 的程序 [GH 1121, 2293, 2242, 2295, 2235, 648, 637]
- 添加对非阻塞连接的支持 [GH 903、1391、1584、1585、1829、2290、2314]
- 实现 CLONE_FS 克隆系统调用标志 [GH 2242]
- 修复有关在 NT interop 中不会正确处理制表符或引号的问题 [GH 1625、2164]
- 解决尝试重新启动 WSL 实例时的访问被拒绝错误 [GH 651, 2095]
- 实现 futex FUTEX_REQUEUE 和 FUTEX_CMP_REQUEUE 操作 [GH 2242]
- 修复各种 SysF 文件的权限 [GH 2214]
- 修复设置过程中 Haskell 堆栈挂起的问题 [GH 2290]
- 实现 binfmt_misc“C”、“O”和“P”标志 [GH 2103]
- 添加 /proc/sys/kernel /shmmax /shmmni 和 /threads-max [GH 1753]
- 添加对 ioprio_set 系统调用的部分支持 [GH 498]
- 存根 SO_REUSEPORT 和添加 netlink 套接字的 SO_PASSCRED 支持 [GH 69]
- 如果当前正在安装或卸载分发版,则从 RegisterDistribution 返回不同的错误代码。
- 允许通过 wslconfig.exe 取消注册部分安装的 WSL 发行版
- 修复 udp::msg_peek 的 python 套接字测试挂起问题
- 其他改进和 bug 修复
控制台
- 此版本中没有与控制台相关的更改。
LTP 结果:
总测试数:1904
跳过的测试总数:209
总失败数:229
版本 16257
关于 Windows 内部版本 16257 的一般信息,请访问 Windows 博客。
已修复
WSL
- 实现 prlimit64 系统调用
- 添加对 ulimit -n 的支持 (setrlimit RLIMIT_NOFILE) [GH 1688]
- TCP 套接字的存根 MSG_MORE [GH 2351]
- 修复无效的 AT_EXECFN 辅助矢量行为 [GH 2133]
- 修复控制台/tty 的复制/粘贴行为,并添加更好的完整缓冲区处理 [GH 2204, 2131]
- 在 set-user-ID 和 set-group-ID 程序的辅助矢量中设置 AT_SECURE [GH 2031]
- 伪终端主终结点不处理 TIOCPGRP [GH 1063]
- 修复 lseek 在 LxFs 中的回退目录行为 [GH 2310]
- /dev/ptmx 在大量使用后会死机 [GH 1882]
- 其他改进和 bug 修复
控制台
- 修复横线/下划线四处可见的问题 [GH 2168]
- 修复进程顺序更改,使 NPM 更难以关闭的问题 [GH 2170]
- 添加了我们的新配色方案:https://blogs.msdn.microsoft.com/commandline/2017/08/02/updating-the-windows-console-colors/
LTP 结果:
自 16251 年以来没有更改
系统调用支持
下面是在 WSL 中具有某种实现的新的或增强的 syscall 列表。 此列表中的 syscall 至少在一种方案中受支持,但目前其所有参数不一都受支持。
prlimit64
已知问题
GitHub 问题 2392:WSL 无法识别的 Windows 文件夹...
在内部版本 16257 中,WSL 在通过 /mnt/c/...
枚举 Windows 文件/文件夹时会出现问题。
此问题已修复,应在 2017 年 8 月 14 日当周发布到 Insiders 版本中。
内部版本 16251
有关版本 16251 的常规 Windows 信息,请访问 Windows 博客。
已修复
WSL
- 从 WSL 可选组件中删除 beta 标记,有关详细信息,请参阅 博客文章。
- 在执行时正确初始化 set-user-ID 和 set-group-ID 二进制文件的 saved-set uid 和 gid [GH 962、1415、2072]
- 添加了对 ptrace PTRACE_O_TRACEEXIT 的支持 [GH 555]
- 添加了对包含 NT_FPREGSET 的 ptrace PTRACE_GETFPREGS 和 PTRACE_GETREGSET 的支持 [GH 555]
- 修复了 ptrace 在忽略信号时停止的问题
- 其他改进和 bug 修复
控制台
- 此版本中没有与控制台相关的更改。
LTP 结果:
通过测试数:768
失败测试数:244 个
跳过的测试数:96 个
内部版本 16241
有关内部版本 16241 的一般 Windows 信息,请访问 Windows 博客。
已修复
WSL
- 此版本中没有与 WSL 相关的更改。
控制台
- 修复输出跨行 DEC 的错误字符的问题,最初报告位于此处
- 修复了字符集 65001 (UTF-8) 中未显示任何输出文本的问题。
- 不要在选择更改时将一种颜色的 RGB 值所做的更改传输到调色板的其他部分。 这会使控制台属性表更易于使用。
- Ctrl+S 似乎无法正常工作
- ANSI 转义代码中根本没有 Un-Bold/-Dim [GH 2174]
- 控制台无法正确支持 Vim 颜色主题 [GH 1706]
- 无法粘贴特定字符 [GH 2149]
- 当编辑/命令行上有内容时,重复流的调整大小操作以奇怪的方式与 bash 窗口调整大小操作交互 [GH ConEmu 1123]
- 按 Ctrl-L 不会清屏 [GH 1978]
- 在 HDPI 显示器上显示 VT 时遇到控制台渲染错误 [GH 1907]
- 日文字符出现乱码和 Unicode 字符 U+30FB [GH 2146]
- 其他改进和 bug 修复
内部版本 16237
有关内部版本 16237 的一般 Windows 信息,请访问 Windows 博客。
已修复
- 对 lxfs 中不包含 EA 的文件使用默认属性 (root, root, 0000)
- 添加了对使用扩展属性的分发的支持
- 修复 getdents 和 getdents64 返回的项的填充
- 修复shmctl SHM_STAT系统调用的权限验证 [GH 2068]
- 修复了 tty 的错误初始 epoll 状态 [GH 2231]
- 修复 DrvFs readdir 不返回所有项的问题 [GH 2077]
- 修复取消链接文件时的 LxFs readdir [GH 2077]
- 允许通过 procfs 重新打开未链接的 drvfs 文件
- 添加了用于禁用 WSL 功能的全局注册表项重写(interop/驱动器装载)
- 修复 DrvFs(和 LxFs)的“统计信息”中的错误块计数 [GH 1894]
- 其他改进和 bug 修复
内部版本 16232
有关内部版本 16232 的一般 Windows 信息,请访问 Windows 博客。
已修复
- 此版本中没有与 WSL 相关的更改。
内部版本 16226
有关 Windows 版本 16226 的常规信息,请访问 Windows 博客。
已修复
- xattr 相关的 syscall 支持(getxattr、setxattr、listxattr、removexattr)。
- security.capability xattr 支持。
- 改进了与某些文件系统和筛选器(包括非 MS SMB 服务器)的兼容性。 [GH #1952]
- 改进了对 OneDrive 占位符、GVFS 占位符以及紧凑操作系统压缩文件的支持。
- 其他改进和 bug 修复
内部版本 16215
有关内部版本 16215 的一般 Windows 信息,请访问 Windows 博客。
已修复
- WSL 不再需要开发人员模式。
- 支持 drvfs 中的目录交接点。
- 处理 WSL appx 分发包的卸载。
- 更新 procfs 以显示专用映射和共享映射。
- 为 wslconfig.exe 添加清理部分安装或已卸载的发行版的功能。
- 添加了对 TCP 套接字 IP_MTU_DISCOVER 的支持。 [GH 1639, 2115, 2205]
- 推断 AF_INADDR 路由的协议系列。
- 串行设备改进 [GH 1929]。
内部版本 16199
有关内部版本 16199 的一般 Windows 信息,请访问 Windows 博客。
已修复
- 这些版本中没有与 WSL 相关的更改。
内部版本 16193
有关版本 16193 的一般 Windows 信息,请访问 Windows 博客。
已修复
- 发送 SIGCONT 与终止线程组之间的争用状态 [GH 1973]
- 更改 tty 和 pty 设备以报告 FILE_DEVICE_NAMED_PIPE 而不是 FILE_DEVICE_CONSOLE [GH 1840]
- IP_OPTIONS 的 SSH 修复
- 已将 DrvFs 装载移到初始化守护程序 [GH 1862、1968、1767、1933]
- 在 DrvFs 中添加了遵循 NT 符号链接的支持。
内部版本 16184
有关内部版本 16184 的一般 Windows 信息,请访问 Windows 博客。
已修复
- 删除了 apt 包维护任务(lxrun.exe /update)
- 修复了 node.js 中的 Windows 进程不显示输出的问题 [GH 1840]
- 放宽 lxcore 中的对齐要求 [GH 1794]
- 修复了许多系统调用中处理 AT_EMPTY_PATH 标志的问题。
- 修复了删除存在已打开句柄的 DrvFs 文件时,导致文件出现未定义的行为的问题 [GH 544、966、1357、1535、1615]
- /etc/hosts 现在将从 Windows 主机文件继承条目(%windir%\system32\drivers\etc\hosts) [GH 1495]
内部版本 16179
关于 Windows 内部版本 16179 的一般信息,请访问 Windows 博客。
已修复
- 本周没有 WSL 变动。
版本 16176
有关 Windows 的常规信息,请访问版本 16176 的 Windows 博客。
已修复
- 已启用串行支持
- 添加了 IP 套接字选项 IP_OPTIONS [GH 1116]
- 实现了 pwritev 函数(将文件上传到 nginx/PHP-FPM 时)[GH 1506]
- 添加了 IP 套接字选项 IP_MULTICAST_IF 和 IPV6_MULTICAST_IF [GH 990]
- 支持套接字选项 IP_MULTICAST_LOOP 和 IPV6_MULTICAST_LOOP [GH 1678]
- 为应用节点、traceroute、dig、nslookup、主机添加了 IP(V6)_MTU 套接字选项
- 添加了 IP 套接字选项 IPV6_UNICAST_HOPS
-
文件系统改进
- 允许装载 UNC 路径
- 在 drvfs 中启用 CDFS 支持
- 正确处理 drvfs 中网络文件系统的权限
- 向 drvfs 添加对远程驱动器的支持
- 在 drvfs 中启用 FAT 支持
- 其他修复和改进
LTP 结果
自 15042 年以来没有更改
内部版本 16170
有关 Windows 内部版本 16170 的一般信息,请访问 Windows 博客。
我们发布的新博客文章中介绍了我们在测试 WSL 方面所做的努力。
已修复
- 支持套接字选项 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 博客。
版本 15042
有关版本 15042 的一般 Windows 信息,请访问 Windows 博客。
已修复
- 修复删除以“...”结尾的路径时出现死锁的问题
- 修复了 FIONBIO 在成功时不返回 0 的问题 [GH 1683]
- 修复了 inet 数据报套接字的零长度读取问题
- 修复 drvfs inode 查找中的争用状况可能导致死锁的问题 [GH 1675]
- 扩展了对 unix 套接字辅助数据的支持;SCM_CREDENTIALS 和 SCM_RIGHTS [GH 514、613、1326]
- 其他修复和改进
LTP 结果:
通过测试数:737
非通过次数(失败、跳过等...):255
内部版本 15031
有关 Windows 内部版本 15031 的一般信息,请访问 Windows 博客。
已修复
- 修复了 time(2) 偶尔行为异常的 bug。
- 修复了 *SIGPROCMASK syscall 可能损坏信号掩码的问题。
- 现在,在 WSL 进程创建通知中返回完整的命令行长度。 [GH 1632]
- WSL 现在会针对 GDB 挂起通过 ptrace 报告线程退出。 [GH 1196]
- 修复了在收到繁重 tmux IO 后 ptys 挂起的 bug。 [GH 1358]
- 修复了许多系统调用中的超时验证(futex、semtimedop、ppoll、sigtimedwait、itimer、timer_create)
- 添加了 eventfd EFD_SEMAPHORE 支持 [GH 452]
- 其他修复和改进
LTP 结果:
通过测试数:737
非通过次数(失败、跳过等):255
内部版本 15025
有关版本 15025 的 Windows 一般信息,请访问 Windows 博客。
已修复
- 修复破坏 grep 2.27 的 bug [GH 1578]
- 为 eventfd2 syscall 实现了 EFD_SEMAPHORE 标志 [GH 452]
- 实现 /proc/[pid]/net/ipv6_route [GH 1608]
- 针对 unix 流套接字的信号驱动 IO 支持 [GH 393、68]
- 支持F_GETPIPE_SZ和F_SETPIPE_SZ [GH 1012]
- 实现 recvmmsg() syscall [GH 1531]
- 修复了 epoll_wait() 不等待的 bug [GH 1609]
- 实现 /proc/version_signature
- 现在,如果两个文件描述符都引用同一个管道,Tee 系统调用将返回失败。
- 为 Unix 套接字的 SO_PEERCRED 实现了正确的行为
- 修复了 tkill syscall 处理无效参数的方法
- 更改以提高 drvfs 的性能
- 针对 Ruby IO 阻塞的次要修复
- 修复了 recvmsg() 对 inet 套接字的 MSG_DONTWAIT 标志返回 EINVAL 的问题 [GH 1296]
- 其他修复和改进
LTP 结果:
通过测试数:732
非通过次数(失败、跳过等):255
内部版本 15019
有关 Windows 版本 15019 的一般信息,请访问 Windows 博客。
已修复
- 修复了 htop 等工具在 procfs 中错误报告 CPU 使用率的 bug(GH 823、945、971)
- 对现有的文件结合 O_TRUNC 调用 open() 时,inotify 现在会在 IN_OPEN 的前面生成 IN_MODIFY
- 对 unix 套接字 getsockopt SO_ERROR 的修复,使 postgres 可以启用 [GH 61, 1354]
- 为 GO 语言实现 /proc/sys/net/core/somaxconn
- Apt-get 软件包更新后台任务现在在用户不可见的情况下运行
- 清除 ipv6 localhost 的范围(Spring-Framework(Java) 失败)。
- 其他修复和改进
LTP 结果:
通过测试数:714
非通过数(失败、跳过等...):249
内部版本 15014
有关 Windows 内部版本 15014 的一般信息,请访问 Windows 博客。
已修复
- Ctrl+C 现在按预期工作
- htop 和 ps auxw 现在显示正确的资源利用率 (GH #516)
- NT 异常到信号的基本转换。 (GH #513)
- 当空间耗尽时,fallocate 现在会失败并返回 ENOSPC,而不是返回 EINVAL (GH #1571)
- 添加了 /proc/sys/kernel/sem。
- 实现了 semop 和 semtimedop 系统调用
- 修复了 IP_RECVTOS 和 IPV6_RECVTCLASS 套接字选项的 nslookup 错误 (GH 69)
- 支持套接字选项 IP_RECVTTL 和 IPV6_RECVHOPLIMIT
- 其他修复和改进
LTP 结果:
通过测试的数量:709
非通过数(失败、跳过等...):255
Syscall 摘要
Syscall 总数:384
已实现总数:235
已存根总数:22
未实现总数:127
内部版本 15007
有关 Windows 内部版本 15007 的一般信息,请访问 Windows 博客。
已知问题
已知 bug:控制台无法识别某些 Ctrl +
<key>
输入。 这包括 ctrl-c 命令,该命令将像普通的“c”键按下那样工作。- 解决方法:将备用键映射到 Ctrl+C。 例如,若要将 Ctrl+K 映射到 Ctrl+C,请执行以下作:
stty intr \^k
。 这种映射是按终端进行的,每次启动 bash 都必须执行。 用户可以探索该选项,以将此映射包含在其.bashrc
中
- 解决方法:将备用键映射到 Ctrl+C。 例如,若要将 Ctrl+K 映射到 Ctrl+C,请执行以下作:
已修复
- 更正了运行 WSL 会消耗 100% 的 CPU 核心的问题
- 套接字选项IP_PKTINFO和IPV6_RECVPKTINFO现在都支持。 (GH #851,987)
- 将网络接口物理地址截断为 lxcore 中的 16 字节(GH #1452、1414、1343、468、308)
- 其他修复和改进
LTP 结果:
通过测试的数量:709
非通过数(失败、跳过等...):255
版本 15002
有关内部版本 15002 的一般 Windows 信息,请访问 Windows 博客。
已知问题
两个已知问题:
已知 bug:控制台无法识别某些 Ctrl +
<key>
输入。 这包括 ctrl-c 命令,该命令将像普通的“c”键按下那样工作。- 解决方法:将备用键映射到 Ctrl+C。 例如,若要将 Ctrl+K 映射到 Ctrl+C,请执行以下作:
stty intr \^k
。 这种映射是按终端进行的,每次启动 bash 都必须执行。 用户可以探索该选项,以将此映射包含在其.bashrc
中
- 解决方法:将备用键映射到 Ctrl+C。 例如,若要将 Ctrl+K 映射到 Ctrl+C,请执行以下作:
当 WSL 运行时,系统线程将消耗 100% 的 CPU 核心。 根本原因已在内部得到解决并修复。
已修复
- 现在必须在同一权限级别创建所有 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
)
- RTM_NEWADDR(支持
- 用于检查要更新的包的计划任务将不再在按流量计费的连接上运行 (GH #1371)
- 修复了运行 bash -c "ls -alR /" | bash -c "cat" 时管道停滞的错误 (GH #1214)
- 实现了 TCP_KEEPCNT 套接字选项 (GH #843)
- 实现了 IP_MTU_DISCOVER INET 套接字选项(GH #720、717、170、69)
- 删除了旧功能,以通过 NT 路径查找从 init 运行 NT 二进制文件。 (GH #1325)
- 更改 /dev/kmsg 的模式以允许用户组和其他用户读取访问权限(0644)(GH #1321)
- 实现了 /proc/sys/kernel/random/uuid (GH #1092)
- 更正了进程开始时间显示为 2432 年的错误(GH #974)
- 将默认 TERM 环境变量切换到 xterm-256color (GH #1446)
- 修改了进程分叉期间进程提交的计算方式。 (GH #1286)
- 实现了 /proc/sys/vm/overcommit_memory。 (GH #1286)
- 实现了 /proc/net/route 文件 (GH #69)
- 修复了快捷方式名称未正确本地化的错误(GH #696)
- 修复了错误地验证程序标头必须小于(或等于)PATH_MAX 的 elf 分析逻辑。 (GH #1048)
- 为 procfs、sysfs、cgroupfs 和 binfmtfs 实现了 statfs 回调 (GH #1378)
- 修复了不会关闭的 AptPackageIndexUpdate 窗口(GH #1184,在 GH #1193 中也进行了讨论)
- 添加了 ASLR 个性化 ADDR_NO_RANDOMIZE 支持。 (GH #1148, 1128)
- 改善了 PTRACE_GETSIGINFO、SIGSEGV,在 AV 期间会提供正确的 gdb 堆栈跟踪 (GH #875)
- 对于 patchelf 二进制文件,Elf 分析不再失败。 (GH #471)
- 传播到 /etc/resolv.conf 的 VPN DNS (GH #416, 1350)
- TCP 关闭改进,可以更可靠地传输数据。 (GH #610, 616, 1025, 1335)
- 现在,当打开的文件过多时,将返回正确的错误代码(EMFILE)。 (GH #1126, 2090)
- Windows 审核日志现在会在进程创建审核中报告映像名称。
- 现在,在从 bash 窗口内部启动 bash 时会正常失败
- 添加了在 interop 无法访问 LxFs 下的工作目录(即 notepad.exe .bashrc)时显示的错误消息
- 修复了 Windows 路径在 WSL 中截断的问题
- 其他修复和改进
LTP 结果:
通过测试的数量:690
非通过数(失败、跳过等...):274
系统调用支持
下面是在 WSL 中具有某种实现的新的或增强的 syscall 列表。 此列表中的 syscall 至少在一种方案中受支持,但目前其所有参数不一都受支持。
shmctl
shmget
shmdt
shmat
内部版本 14986
有关 Windows 版本 14986 的通用信息,请访问 Windows 博客。
已修复
- 修复了 Netlink 和 Pty IOCTL 的 bug 检查
- 内核版本现在报告 4.4.0-43,以便与 Xenial 保持一致性
- 现在,当输入定向到 'nul:' 时会启动 Bash.exe (GH #1259)
- 现在,procfs 中会正确报告线程 ID (GH #967)
- 现在,inotify_add_watch() 中支持 IN_UNMOUNT | IN_Q_OVERFLOW | IN_IGNORED | IN_ISDIR 标志 (GH #1280)
- 实现 timer_create 和相关的系统调用。 这会启用 GHC 支持 (GH #307)
- 修复了 ping 返回时间为 0.000 毫秒的问题(GH #1296)
- 打开的文件过多时,返回正确的错误代码。
- 修复了 WSL 中的问题:如果网络接口的硬件地址为 32 字节(例如 Teredo 接口),则针对该网络接口数据的 Netlink 请求将会失败并返回 EINVAL
- 请注意,Linux“ip”实用工具包含一个 bug,如果 WSL 报告 32 字节硬件地址,它将崩溃。 这是“ip”(而不是 WSL)中的一个 bug。 “ip”实用工具硬编码用于打印硬件地址的字符串缓冲区的长度,并且该缓冲区太小,无法打印 32 字节的硬件地址。
- 其他修复和改进
LTP 结果:
通过测试数:669
非通过次数(失败、跳过等):258
系统调用支持
下面是在 WSL 中具有某种实现的新的或增强的 syscall 列表。 此列表中的 syscall 至少在一种方案中受支持,但目前其所有参数不一都受支持。
timer_create
timer_delete
timer_gettime
timer_settime
内部版本 14971
有关版本 14971 的通用 Windows 信息,请访问 Windows 博客。
已修复
- 由于无法控制的情况,适用于 Linux 的 Windows 子系统在此版本中没有更新。 定期计划的更新将在下一个版本中恢复。
LTP 结果:
与14965
通过测试的数量不变:664
非通过次数(失败、跳过等):263
内部版本 14965
有关 Windows 版本 14965 的一般信息,请访问 Windows 博客。
已修复
支持 Netlink 套接字 NETLINK_ROUTE 协议的 RTM_GETLINK 和 RTM_GETADDR (GH #468)
- 为网络枚举启用 ifconfig 和 ip 命令
/sbin 现在默认位于用户的路径中
NT 用户路径现在默认追加到 WSL 路径(即现在可以键入 notepad.exe 而不将 System32 添加到 Linux 路径)
添加了对 /proc/sys/kernel/cap_last_cap的支持
现在,当当前工作目录包含非ANSI字符(GH #1254)时,可以从Windows子系统(WSL)中启动NT二进制文件。
允许在断开连接的 unix 流套接字上关闭。
添加了对PR_GET_PDEATHSIG的支持。
添加了对CLONE_PARENT的支持
修复了运行 bash -c "ls -alR /" | bash -c "cat" 时管道停滞的错误 (GH #1214)
处理连接到当前终端的请求。
将
/proc/<pid>/oom_score_adj
标记为可写。添加 /sys/fs/cgroup 文件夹。
sched_setaffinity 应返回关联位掩码的数目
修复了错误地假定解释器路径长度必须小于 64 个字符的 ELF 验证逻辑。 (GH #743)
打开文件描述符可以保持控制台窗口打开(GH #1187)
修复了当目标名称包含尾随斜杠时 rename() 失败的错误 (GH #1008)
实现 /proc/net/dev 文件
修复了由于计时器分辨率导致的 0.000 毫秒的 ping 问题。
实现了 /proc/self/environ (GH #730)
其他问题修复和改进
LTP 结果:
通过测试数:664
非通过次数(失败、跳过等):263
内部版本 14959
有关内部版本 14959 的一般 Windows 信息,请访问 Windows 博客。
已修复
- 改进了适用于 Windows 的 Pico 进程通知。 在 WSL 博客中可以找到更多信息。
- 改善了 Windows 互操作的稳定性
- 修复了启用企业数据保护(EDP)时启动 bash.exe 时出现的错误代码 0x80070057。
- 其他问题修复和改进
LTP 结果:
通过测试数:665
非通过次数(失败、跳过等):263
内部版本 14955
有关版本 14955 的一般 Windows 信息,请访问 Windows 博客。
已修复
- 由于无法控制的情况,适用于 Linux 的 Windows 子系统在此版本中没有更新。 定期计划的更新将在下一个版本中恢复。
LTP 结果:
通过测试数:665
非通过次数(失败、跳过等):263
内部版本 14951
有关 Windows 版本 14951 的一般信息,请访问 Windows 博客。
新功能:Windows/Ubuntu 互作性
现在可以直接从 WSL 命令行调用 Windows 二进制文件。 这样,用户就可以以不可能的方式与其 Windows 环境和系统进行交互。 作为一个快速示例,用户现在可以运行以下命令:
$ export PATH=$PATH:/mnt/c/Windows/System32
$ notepad.exe
$ ipconfig.exe | grep IPv4 | cut -d: -f2
$ ls -la | findstr.exe foo.txt
$ cmd.exe /c dir
有关详细信息,请参阅:
已修复
- 现已为所有新的 WSL 实例安装 Ubuntu 16.04 (Xenial)。 具有现有 14.04(Trusty) 实例的用户不会自动升级。
- 现在会显示安装过程中指定的区域设置
- 终端改进,包括修复了不是总能将 WSL 进程重定向到文件的 bug
- 控制台生存期应与 bash.exe 生存期密切关联
- 控制台窗口大小应使用可见大小,而不是缓冲区大小
- 其他问题修复和改进
LTP 结果:
通过测试数:665
非通过次数(失败、跳过等):263
内部版本 14946
有关内部版本 14946 的一般 Windows 信息,请访问 Windows 博客。
已修复
修复了阻止为包含空格或引号的 NT 用户名的用户创建 WSL 用户帐户的问题。
更改 VolFs 和 DrvFs,以在统计信息中返回 0 作为目录的链接计数
支持 IPV6_MULTICAST_HOPS 套接字选项。
限制为每个 tty 只有一个控制台 I/O 循环。 示例:以下命令可能:
- bash -c“回显数据”|bash -c“ssh user@example.com 'cat > foo.txt'”
在 /proc/cpuinfo 中将空格替换为制表符(GH #1115)
DrvFs 现在会显示在 mountinfo 中,其中包含一个与已装载的 Windows 卷匹配的名称
/home 和 /root 现在显示在 mountinfo 中,名称正确
其他问题修复和改进
LTP 结果:
通过测试数:665
非通过次数(失败、跳过等):263
内部版本 14942
有关内部版本 14942 的一般 Windows 信息,请访问 Windows 博客。
已修复
- 解决了一些 bug 检查问题,包括阻止 SSH 的“尝试执行不可执行的内存”网络崩溃
- inotifiy 对从 DrvFs 上的 Windows 应用程序生成通知的支持目前处于
- 为 mongod 实现TCP_KEEPIDLE和TCP_KEEPINTVL。 (GH #695)
- 实现 pivot_root 系统调用
- 实现 SO_DONTROUTE 的套接字选项
- 其他问题修复和改进
LTP 结果:
通过测试数:665
非通过次数(失败、跳过等):263
系统调用支持
下面是在 WSL 中具有某种实现的新的或增强的 syscall 列表。 此列表中的 syscall 至少在一种方案中受支持,但目前其所有参数不一都受支持。
pivot_root
内部版本 14936
有关内部版本 14936 的一般 Windows 信息,请访问 Windows 博客。
注意:WSL 将在即将发布的版本中安装 Ubuntu 版本 16.04(Xenial),而不是 Ubuntu 14.04(Trusty)。 对于安装新实例(lxrun.exe /install 或首次运行 bash.exe)的预览体验成员,此更改将适用。 不会自动升级具有 Trusty 的现有实例。 用户可以使用 do-release-upgrade 命令将其 Trusty 映像升级到 Xenial。
已知问题
WSL 遇到了某些套接字实现的问题。 bug 检查将崩溃,出现错误“尝试执行不可执行的内存”。 此问题的最常见表现是使用 ssh 时崩溃。 根本原因已在内部版本中修复,并将在第一时间推送给内测用户。
已修复
- 实现了 chroot 系统调用
- inotifiy 的改进,
包括支持从 DrvFs 上的 Windows 应用程序生成通知- 更正:Inotify 对源自 Windows 应用程序的更改的支持目前不可用。
- 与
IPV6::<port n>
的套接字绑定现在支持IPV6_V6ONLY
(GH #68、#157、#393、#460、#674、#740、#982、#996) - 实现了 waitid 系统调用的 WNOWAIT 行为 (GH #638)
- 支持 IP 套接字选项 IP_HDRINCL 和 IP_TTL
- 零长度 read() 应立即返回 (GH #975)
- 正确处理在.tar文件中不包含 NULL 终止符的文件名和文件名前缀。
- 对 /dev/null 的 epoll 支持
- 修复 /dev/alarm 时间源
- Bash -c 现在能够重定向到文件
- 其他问题修复和改进
LTP 结果:
通过测试数:664
非通过数(失败、跳过等...):264
系统调用支持
下面是在 WSL 中具有某种实现的新的或增强的 syscall 列表。 此列表中的 syscall 至少在一种方案中受支持,但目前其所有参数不一都受支持。
chroot
内部版本 14931
有关内部版本 14931 的一般 Windows 信息,请访问 Windows 博客。
已修复
- 由于无法控制的情况,适用于 Linux 的 Windows 子系统在此版本中没有更新。 定期计划的更新将在下一版本中恢复。
内部版本 14926
有关内部版本 14926 的一般 Windows 信息,请访问 Windows 博客。
已修复
- Ping 现在可在没有管理员权限的控制台中工作
- Ping6 现在也受支持,也不支持管理员权限
- 对通过 WSL 修改的文件的 Inotify 支持。 (GH #216)
- 支持的标志:
- inotify_init1:LX_O_CLOEXEC、LX_O_NONBLOCK
- inotify_add_watch 活动:LX_IN_ACCESS、LX_IN_MODIFY、LX_IN_ATTRIB、LX_IN_CLOSE_WRITE、LX_IN_CLOSE_NOWRITE、LX_IN_OPEN、LX_IN_MOVED_FROM、LX_IN_MOVED_TO、LX_IN_CREATE、LX_IN_DELETE、LX_IN_DELETE_SELF、LX_IN_MOVE_SELF
- inotify_add_watch 属性:LX_IN_DONT_FOLLOW、LX_IN_EXCL_UNLINK、LX_IN_MASK_ADD、LX_IN_ONESHOT、LX_IN_ONLYDIR
- 读取输出:LX_IN_ISDIR、LX_IN_IGNORED
- 已知问题:从 Windows 应用程序修改文件不会生成任何事件
- 支持的标志:
- Unix 套接字现在支持 SCM_CREDENTIALS
LTP 结果:
通过测试数:651
非通过次数(失败、跳过等):258
内部版本 14915
有关内部版本 14915 的一般 Windows 信息,请访问 Windows 博客。
已修复
- Unix 数据报套接字的套接字对 (GH #262)
- 对 SO_REUSEADDR 的 Unix 套接字支持
- 对 SO_BROADCAST 的 UNIX 套接字支持 (GH #568)
- 对 SOCK_SEQPACKET 的 Unix 套接字支持(GH #758、#546)
- 添加对 Unix 数据报套接字发送、接收和关闭的支持
- 修复对非固定地址的无效 mmap 参数验证导致的 bug 检查。 (GH #847)
- 支持暂停/恢复终端状态
- 支持使用 TIOCPKT ioctl 阻止 Screen 实用工具 (GH #774)
- 已知问题:功能键无法使用
- 更正了 TimerFd 中的一种争用状态,该状态可能导致 LxpTimerFdWorkerRoutine 访问已释放的成员“ReaderReady” (GH #814)
- 为 futex、poll 和 clock_nanosleep 启用可重启的系统调用支持
- 添加了绑定装载支持
- 装载命名空间支持的取消共享
- 已知问题:使用
unshare(CLONE_NEWNS)
创建新的装载命名空间时,当前工作目录将继续指向旧命名空间
- 已知问题:使用
- 其他改进和 bug 修复
内部版本 14905
有关版本 14905 的常规 Windows 信息,请访问 Windows 博客。
已修复
- 现在支持可重启的系统调用 (GH #349, GH #520)
- 现在可正常使用指向以 / 结尾的目录的符号链接 (GH #650)
- 为 /dev/random 实现了 RNDGETENTCNT ioctl
- 实现了 /proc/[pid]/mounts、/proc/[pid]/mountinfo 和 /proc/[pid]/mountstats 文件
- 其他问题修复和改进
内部版本 14901
Windows 10 周年更新版的第一个预览体验内部版本。
有关内部版本 14901 的一般 Windows 信息,请访问 Windows 博客。
已修复
- 修复了尾随斜杠问题
- 命令(如
$ mv a/c/ a/b/
)现在正常工作
- 命令(如
- 现在安装会提示是否应将 Ubuntu 区域设置设置为 Windows 区域设置
- 对 ns 文件夹的 Procfs 支持
- 添加了 tmpfs、procfs 和 sysfs 文件系统的装入点和卸载点
- 修复 mknod[at] 32 位 ABI 签名
- Unix 套接字已移到调度模型
- 应遵循使用 setsockopt 设置的 INET 套接字接收缓冲区大小
- 实现 MSG_CMSG_CLOEXEC unix 套接字接收消息标志
- Linux 进程 stdin/stdout 管道重定向 (GH #2)
- 允许在 CMD 中通过管道传输 bash -c 命令。 示例:>dir | bash -c "grep foo"
- Bash 现在可以安装在具有多个页文件的系统 (GH #538, #358)
- 默认 INET 套接字缓冲区大小应与默认 Ubuntu 设置的缓冲区大小匹配
- 将 xattr syscalls 与 listxattr 对齐
- 仅返回具有来自 SIOCGIFCONF 的有效 IPv4 地址的接口
- 修复 ptrace 注入时的信号默认操作
- 实现 /proc/sys/vm/min_free_kbytes
- 在 sigreturn 中还原上下文时使用计算机上下文寄存器值
- 这解决了某些用户遇到的 java 和 javac 挂起问题
- 实现 /proc/sys/kernel/hostname
系统调用支持
下面是在 WSL 中具有某种实现的新的或增强的 syscall 列表。 此列表中的 syscall 至少在一种方案中受支持,但目前其所有参数不一都受支持。
waitid
epoll_pwait
Windows 10 周年更新的内部版本 14388
有关 Windows 版本 14388 的一般信息,请访问 Windows 博客。
已修复
- 为 8 月 2 日的 Windows 10 周年更新做准备的修复事项
- 有关周年更新中的 WSL 的详细信息,请参阅我们的 博客
版本 14376
有关版本 14376 的 Windows 一般信息,请访问 Windows 博客。
已修复
- 删除了一些存在 apt-get 挂起问题的实例 (GH #493)
- 修复了不正确处理空装入点的问题
- 修复了不正确装载 ramdisk 的问题
- 更改 unix 套接字接受行为以支持标志(在 GH #451 中做了部分描述)
- 修复了常见的网络相关蓝屏问题
- 修复了访问 /proc/[pid]/task 时出现蓝屏问题 (GH #523)
- 修复了某些 pty 场景中的高 CPU 占用率(GH #488, #504)
- 其他问题修复和改进
内部版本 14371
有关内部版本 14371 的一般 Windows 信息,请访问 Windows 博客。
已修复
- 更正了使用 ptrace 时 SIGCHLD 和 wait() 出现计时争用的问题
- 更正了当路径包含尾随 / 时出现的某种行为 (GH #432)
- 修复了由于打开子级句柄导致重命名/取消链接失败的问题
- 其他问题修复和改进
内部版本 14366
有关 Windows 内部版本 14366 的一般信息,请访问 Windows 博客。
已修复
- 修复通过符号链接创建文件的问题
- 添加了 Python 的 listxattr (GH 385)
- 其他问题修复和改进
系统调用支持
- 下面是在 WSL 中具有某种实现的新的或增强的 syscall 列表。 此列表中的 syscall 至少在一种方案中受支持,但目前其所有参数不一都受支持。
listxattr
内部版本 14361
有关 Windows 内部版本 14361 的一般信息,请访问 Windows 博客 。
已修复
- 现在,在 Windows 上的 Ubuntu Bash 中运行时,DrvFs 区分大小写。
- 大幅增强了 pty/tty 支持。 现在支持 TMUX 等应用程序(GH #40)
- 修复了安装过程中用户帐户未总是被创建的问题
- 优化的命令行参数结构,允许极长的参数列表。 (GH #153)
- 现在可对 DrvFs 中的只读文件执行删除和 chmod
- 修复了一些在断开连接时终端会挂起的实例 (GH #43)
- chmod 和 chown 现在适用于 tty 设备
- 允许连接到作为 localhost 的 0.0.0.0 和 :: (GH #388)
- Sendmsg/recvmsg 现在可处理 >1 的 IO 矢量长度(在 GH #376 中做了部分描述)
- 用户现在可以选择不使用自动生成的主机文件(GH #398)
- 在安装期间自动匹配 Linux 区域设置与 NT 区域设置(GH #11)
- 添加了 /proc/sys/vm/swappiness 文件 (GH #306)
- strace 现在会正常退出
- 允许通过 /proc/self/fd 重新打开管道 (GH #222)
- 在 DrvFs 中隐藏 %LOCALAPPDATA%\lxss 下的目录 (GH #270)
- 更好地处理 bash.exe ~。 现在支持“bash ~ -c ls”等命令(GH #467)
- 现在,在关闭期间,套接字会通知 epoll read 可用 (GH #271)
- lxrun /uninstall 可以更好地删除文件和文件夹
- 更正了 ps -f (GH #246)
- 改进了对 x11 应用(如 xEmacs)的支持 (GH #481)
- 更新了初始线程堆栈大小以匹配默认 Ubuntu 设置,并将大小正确报告到 get_rlimit syscall (GH #172, #258)
- 改善了 pico 进程映像名称的报告(例如,用于审核)
- 实现了 df 命令的 /proc/mountinfo
- 修复了子名称 . 和 .. 的符号链接错误代码
- 其他 bug 修复和改进
系统调用支持
下面是在 WSL 中具有某种实现的新的或增强的 syscall 列表。 此列表中的 syscall 至少在一种方案中受支持,但目前其所有参数不一都受支持。
GETTIMER
MKNODAT
RENAMEAT
SENDFILE
SENDFILE64
SYNC_FILE_RANGE
内部版本 14352
有关内部版本 14352 的一般 Windows 信息,请访问 Windows 博客。
已修复
- 修复了未正确下载/创建大型文件的问题。 这应该可以解除 npm 和其他方案的阻碍(GH #3、GH #313)
- 删除了一些存在套接字挂起情况的实例
- 更正了一些 ptrace 错误
- 修复了 WSL 允许文件名超过 255 个字符的问题
- 改进了对非英语字符的支持
- 添加当前的 Windows 时区数据并设置为默认值
- 每个装入点的唯一设备 ID(JRE 修复 – GH #49)
- 更正了路径包含“.”和“..”的问题
- 添加了 Fifo 支持 (GH #71)
- 已更新的 resolv.conf 格式以匹配本机 Ubuntu 格式
- 一些 procfs 清理
- 为管理员控制台启用了 ping (GH #18)
系统调用支持
下面是在 WSL 中具有某种实现的新的或增强的 syscall 列表。 此列表中的 syscall 至少在一种方案中受支持,但目前其所有参数不一都受支持。
FALLOCATE
EXECVE
LGETXATTR
FGETXATTR
内部版本 14342
有关内部版本 14342 的一般 Windows 信息,请访问 Windows 博客。
有关 VolFs 和 DriveF 的信息,请参阅 WSL 博客。
已修复
- 修复了 Windows 用户用户名中存在 Unicode 字符时的安装问题
- 常见问题解答中的 apt-get update udev 解决方法现在默认在首次运行时提供
- 在 DriveFs (
/mnt/<drive>
) 目录中启用了符号链接 - 现在可以在 DriveFs 和 VolFs 之间使用符号链接
- 解决了顶级路径分析问题:ls .// 现在将按预期工作
- 在 DriveF 上安装 npm,-g 选项现已正常工作
- 修复了阻止 PHP 服务器启动的问题
- 更新了默认环境值,例如$PATH以更紧密地匹配本机 Ubuntu
- 在 Windows 中添加了每周维护任务以更新 apt 包缓存
- 修复了 ELF 标头验证的问题,WSL 现在支持所有 Melkor 选项
- Zsh shell 功能正常
- 现在支持预编译 Go 二进制文件
- 现已正确本地化首次运行 Bash 时出现的提示
- /proc/meminfo 现在返回正确的信息
- VFS 现在支持套接字
- /dev 现在装载为 tempfs
- Fifo 现在受支持
- 多核系统现在在 /proc/cpuinfo 中正确显示
- 其他改进以及首次运行期间下载内容时显示的错误消息
- 系统调用改进和漏洞修复。 下面列出了支持的 syscall。
- 其他问题修复和改进
已知问题
- 在某些情况下, 不会正确解析 DriveFs 上的“..”
系统调用支持
下面是在 WSL 中具有某种实现的新的或增强的 syscall 列表。 此列表中的 syscall 至少在一种方案中受支持,但目前其所有参数不一都受支持。
FCHOWNAT
GETEUID
GETGID
GETRESUID
GETXATTR
PTRACE
SETGID
SETGROUPS
SETHOSTNAME
SETXATTR
版本 14332
关于版本 14332 的一般 Windows 信息,请访问 Windows 博客。
已修复
- 更优化的 resolv.conf 文件生成,侧重于 DNS 条目的优先级排序
- 在 /mnt 和非/mnt 驱动器之间移动文件和目录时出现问题
- 现在可以使用符号链接创建 Tar 文件
- 在创建实例时添加了默认 /run/lock 目录
- 更新 /dev/null 以返回正确的状态信息
- 首次运行期间下载时出现其他错误
- 系统调用改进和漏洞修复。 下面列出了支持的 syscall。
- 其他 bug 修复和改进
系统调用支持
下面是在 WSL 中具有某种实现的新 syscall。 此列表中的 syscall 至少在一个方案中受支持,但目前可能不支持所有参数。
READLINKAT
内部版本 14328
关于版本 14332 的一般 Windows 信息,请访问 Windows 博客。
新功能
- 现在支持 Linux 用户。 在 Windows 上的 Ubuntu 上安装 Bash 将提示创建 Linux 用户。 有关详细信息,请访问 https://aka.ms/wslusers
- 主机名现在设置为 Windows 计算机名称,不再 @localhost
- 有关内部版本 14328 的详细信息,请访问:https://aka.ms/wip14328
已修复
- 非
/mnt/<drive>
文件的符号链接改进- npm 安装现在有效
- 现在可以根据此处的说明安装 jdk/jre。
- 已知问题:符号链接不适用于 Windows 装载。 功能将在后续版本中提供。
- 现在会显示 top 和 htop
- 有关某些安装失败的其他错误消息
- 系统调用改进和漏洞修复。 下面列出了支持的 syscall。
- 其他 bug 修复和改进
系统调用支持
下面是在 WSL 中具有某些实现的系统调用列表。 此列表中的 syscall 至少在一种方案中受支持,但目前其所有参数不一定都受支持。
ACCEPT
ACCEPT4
ACCESS
ALARM
ARCH_PRCTL
BIND
BRK
CAPGET
CAPSET
CHDIR
CHMOD
CHOWN
CLOCK_GETRES
CLOCK_GETTIME
CLOCK_NANOSLEEP
CLONE
CLOSE
CONNECT
CREAT
DUP
DUP2
DUP3
EPOLL_CREATE
EPOLL_CREATE1
EPOLL_CTL
EPOLL_WAIT
EVENTFD
EVENTFD2
EXECVE
EXIT
EXIT_GROUP
FACCESSAT
FADVISE64
FCHDIR
FCHMOD
FCHMODAT
FCHOWN
FCHOWNAT
FCNTL64
FDATASYNC
FLOCK
FORK
FSETXATTR
FSTAT64
FSTATAT64
FSTATFS64
FSYNC
FTRUNCATE
FTRUNCATE64
FUTEX
GETCPU
GETCWD
GETDENTS
GETDENTS64
GETEGID
GETEGID16
GETEUID
GETEUID16
GETGID
GETGID16
GETGROUPS
GETPEERNAME
GETPGID
GETPGRP
GETPID
GETPPID
GETPRIORITY
GETRESGID
GETRESGID16
GETRESUID
GETRESUID16
GETRLIMIT
GETRUSAGE
GETSID
GETSOCKNAME
GETSOCKOPT
GETTID
GETTIMEOFDAY
GETUID
GETUID16
GETXATTR
GET_ROBUST_LIST
GET_THREAD_AREA
INOTIFY_ADD_WATCH
INOTIFY_INIT
INOTIFY_RM_WATCH
IOCTL
IOPRIO_GET
IOPRIO_SET
KEYCTL
KILL
LCHOWN
LINK
LINKAT
LISTEN
LLSEEK
LSEEK
LSTAT64
MADVISE
MKDIR
MKDIRAT
MKNOD
MLOCK
MMAP
MMAP2
MOUNT
MPROTECT
MREMAP
MSYNC
MUNLOCK
MUNMAP
NANOSLEEP
NEWUNAME
OPEN
OPENAT
PAUSE
PERF_EVENT_OPEN
PERSONALITY
PIPE
PIPE2
POLL
PPOLL
PRCTL
PREAD64
PROCESS_VM_READV
PROCESS_VM_WRITEV
PSELECT6
PTRACE
PWRITE64
READ
READLINK
READV
REBOOT
RECV
RECVFROM
RECVMSG
RENAME
RMDIR
RT_SIGACTION
RT_SIGPENDING
RT_SIGPROCMASK
RT_SIGRETURN
RT_SIGSUSPEND
RT_SIGTIMEDWAIT
SCHED_GETAFFINITY
SCHED_GETPARAM
SCHED_GETSCHEDULER
SCHED_GET_PRIORITY_MAX
SCHED_GET_PRIORITY_MIN
SCHED_SETAFFINITY
SCHED_SETPARAM
SCHED_SETSCHEDULER
SCHED_YIELD
SELECT
SEND
SENDMMSG
SENDMSG
SENDTO
SETDOMAINNAME
SETGID
SETGROUPS
SETHOSTNAME
SETITIMER
SETPGID
SETPRIORITY
SETREGID
SETRESGID
SETRESUID
SETREUID
SETRLIMIT
SETSID
SETSOCKOPT
SETTIMEOFDAY
SETUID
SETXATTR
SET_ROBUST_LIST
SET_THREAD_AREA
SET_TID_ADDRESS
SHUTDOWN
SIGACTION
SIGALTSTACK
SIGPENDING
SIGPROCMASK
SIGRETURN
SIGSUSPEND
SOCKET
SOCKETCALL
SOCKETPAIR
SPLICE
STAT64
STATFS64
SYMLINK
SYMLINKAT
SYNC
SYSINFO
TEE
TGKILL
TIME
TIMERFD_CREATE
TIMERFD_GETTIME
TIMERFD_SETTIME
TIMES
TKILL
TRUNCATE
TRUNCATE64
UMASK
UMOUNT
UMOUNT2
UNLINK
UNLINKAT
UNSHARE
UTIME
UTIMENSAT
UTIMES
VFORK
WAIT4
WAITPID
WRITE
WRITEV