微软 WSL 开源,程序员的福音还是行业的 “炸弹”?
点击上方蓝字,关注我们
想学会更多实用技巧,欢迎加入青学会MOP技术社区(实名社区)。
加入方法:公众号后台回复关键字“加入”获取小助手微信,添加后登记入会。
同时欢迎大家在评论区留言互动交流!社区会不定期举行相关的抽奖、公开分享活动。
如果你有想了解的知识点希望我们发文可以后台私信。
正文开始
你知道吗?最近微软在技术圈扔下了一颗 “重磅炸弹”,宣布将 Windows Subsystem for Linux(WSL)完全开源!这对于广大开发者来说,可是一个天大的好消息,背后究竟有着怎样的故事呢?
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 贡献一份自己的力量呢!
有兴趣了解 WSL 内部运行原理,或者想参与其中的小伙伴,快去 GitHub 上的 Microsoft/WSL 仓库看看去吧。
想了解更多行业信息差,请加入知识星球:DB信息差
往期文章回顾
MOP社区新闻
金仓专栏
告别繁琐!KingbaseES v9数据库一键安装-青学会&金仓专栏(1)
KingbaseES v9数据库Docker安装-青学会&金仓专栏(2)
DBA实战小技巧
实战:记一次RAC故障排查
DBA实战运维小技巧安装篇(一)Oracle 主流版本不同架构下的静默安装指南
DBA实战运维小技巧存储篇(一)根目录满了如何处理
DBA实战运维小技巧存储篇(二)打包迁移单机数据库至新存储
MOP社区投稿-内核开发
简单解析 IvorySQL 增强 Oracle xml 兼容能力的原理
简单讨论 PostgreSQL C语言拓展函数返回数据表的方式
简单分析 pg_config 程序的作用与原理
Redis 日志机制简介(一):SlowLog
Redis 日志机制简介(二):AOF 日志
Redis 日志机制简介(三):RDB 日志
pg_cron插件使用介绍
Redis 的指令表实现机制简介
pg几款源码工具介绍
Redis 事务功能简介