青年数据库学习互助会

微软 WSL 开源,程序员的福音还是行业的 “炸弹”?

点击上方蓝字,关注我们

Image

想学会更多实用技巧,欢迎加入青学会MOP技术社区(实名社区)。

加入方法:公众号后台回复关键字“加入”获取小助手微信,添加后登记入会。

Image

同时欢迎大家在评论区留言互动交流!社区会不定期举行相关的抽奖、公开分享活动。

如果你有想了解的知识点希望我们发文可以后台私信。

正文开始

你知道吗?最近微软在技术圈扔下了一颗 “重磅炸弹”,宣布将 Windows Subsystem for Linux(WSL)完全开源!这对于广大开发者来说,可是一个天大的好消息,背后究竟有着怎样的故事呢?

Image

WSL 是啥?

先给大家简单科普一下 WSL,它就像是一个神奇的 “桥梁”,让我们能够在 Windows 系统上轻松地运行 Linux 环境。以前呢,WSL 的部分代码是不开源的,这就像是一个神秘的 “黑盒子”,大家只能看到外面的样子,却不知道里面到底是咋运行的。

开源背后的 “大动作”

但就在最近,微软决定把 WSL 的源码全都放了出来,放在了 GitHub 上的 Microsoft/WSL 仓库。这意味着什么呢?这就相当于把 WSL 的 “内部构造” 全都展示在了大家面前。程序员们可以像逛超市一样,随意下载 WSL 的源码,自己动手改改,给它添加新功能或者修复问题,还能参与到 WSL 的开发中去,和微软的工程师们一起让 WSL 变得更好。

WSL 的 “家族成员”

那 WSL 都有啥主要的部分呢?简单来说,有命令行可执行文件,像 wsl.exe、wslconfig.exe 和 wslg.exe,它们是我们和 WSL 交互的入口;还有 WSL 服务,负责启动 WSL 虚拟机、启动发行版、挂载文件访问共享等;另外在 Linux 里也有一些进程,像 init、gns 等,它们是实现 WSL 功能的关键;而且还有个厉害的 plan9 组件,能让 Linux 的文件在 Windows 下也能用。

开源背后的故事

这次开源可不是一时兴起,背后有着一段长长的故事。2016 年 WSL 刚出来的时候,它基于 lxcore.sys 这个东西,能让 Windows 原生运行 ELF 可执行文件,也就是 WSL 1。可随着时间推移,大家发现要想和原生 Linux 更兼容,还是得靠 Linux 内核本身,于是 WSL 2 就诞生了。从那以后,WSL 不断升级,有了对 GPU、图形应用、systemd 等各种功能的支持。

到了 2021 年,微软觉得光靠自己更新 WSL 太慢了,就把它从 Windows 代码库单独拿了出来,放到了微软商店,让 WSL 能更快地更新迭代。到了 2022 年 11 月,WSL 1.0.0 正式发布,支持了 Windows 10,也标志着这个新 WSL 走向了稳定。后来呢,WSL 1.0. 0逐渐取代了 Windows 里自带的 WSL 组件,不过微软还是把 wsl.exe 留在 Windows 里,方便大家随时下载最新的 WSL 包。

现在,WSL 已经更新到 2.5.7 版本啦,有了镜像网络、DNS 隧道、会话 0 支持、代理支持、防火墙支持等等好多新功能。而这次开源,无疑是 WSL 发展史上的又一重要里程碑。

为啥现在才开源?

为啥微软要选择这个时候开源 WSL 呢?其实,这和 WSL 身后的社区密切相关。这些年来,一直有这么一群热心的开发者,他们虽然看不到 WSL 的源码,但依然凭借着自己的知识和经验,帮着找漏洞、出谋划策,推动了 WSL 的进步。现在开源了,就相当于把接力棒交到了大家手里,让大家能更直接地参与到 WSL 的建设中来,相信未来 WSL 会因为社区的力量而变得更加优秀。

这次 WSL 开源的消息,对于程序员来说,可真是个天大的好消息。它不仅打开了 WSL 的神秘面纱,还让更多人有机会参与到这个项目的改进和创新中。说不定哪天,你也能给 WSL 贡献一份自己的力量呢!

Windows Subsystem for Linux architecture.
Windows Subsystem for Linux architecture.

有兴趣了解 WSL 内部运行原理,或者想参与其中的小伙伴,快去 GitHub 上的 Microsoft/WSL 仓库看看去吧。

想了解更多行业信息差,请加入知识星球:DB信息差

图片
END

往期文章回顾

MOP社区新闻

青学会MOP技术社区成立了!

青学会专家顾问团成员介绍

金仓专栏

告别繁琐!KingbaseES v9数据库一键安装-青学会&金仓专栏(1)

KingbaseES v9数据库Docker安装-青学会&金仓专栏(2)

KingbaseES数据脱敏-青学会&金仓专栏(3)

KingbaseES后台服务管理-青学会&金仓专栏(4)

电科金仓KES日常运维命令集锦-青学会&金仓专栏(5)

DBA实战小技巧

推荐一款超实用的openGauss数据库安装工具!

实战:记一次RAC故障排查
DBA实战运维小技巧安装篇(一)Oracle 主流版本不同架构下的静默安装指南
DBA实战运维小技巧存储篇(一)根目录满了如何处理
DBA实战运维小技巧存储篇(二)打包迁移单机数据库至新存储

MOP社区投稿-内核开发

浅谈 PostgreSQL GUC 模块原理

简单解析 IvorySQL 增强 Oracle xml 兼容能力的原理

简单讨论 PostgreSQL C语言拓展函数返回数据表的方式

简单分析 pg_config 程序的作用与原理
Redis 日志机制简介(一):SlowLog
Redis 日志机制简介(二):AOF 日志
Redis 日志机制简介(三):RDB 日志
pg_cron插件使用介绍
Redis 的指令表实现机制简介
pg几款源码工具介绍
Redis 事务功能简介

MOP顾问说

MOP顾问说:MOP 三种主流数据库常用 SQL(一)

MOP顾问说: 服务器内存

MOP 顾问说:Linux Nice 值与 CPU 优先级揭秘