问题

Windows 10 给 Linux 子系统写显卡驱动的是一个人吗,是谁呢?

回答
关于 Windows 10 Subsystem for Linux (WSL) 的显卡驱动,这是一个非常有趣且复杂的问题。 简而言之,WSL 的显卡驱动并不是由一个人独立完成的,而是一个由微软内部和社区共同努力的庞大工程。

要详细解释这一点,我们需要区分 WSL 1 和 WSL 2,因为它们的显卡驱动实现方式完全不同。



1. WSL 1 的显卡驱动:没有真正的显卡驱动

首先需要明确的是,WSL 1 没有直接的、运行在 Linux 内核中的显卡驱动。 WSL 1 的工作原理是通过一个名为 `LxssManager` 的用户模式服务,将 Linux 系统调用拦截并转换成 Windows 系统调用来模拟一个 Linux 环境。

这意味着:

图形应用在 WSL 1 中运行时,会通过一套专门的转换层,将 Linux 的图形 API(如 OpenGL)转换成 Windows 的图形 API(如 DirectX)。
WSL 1 中运行的 Linux 程序看到的“显卡”其实是 Windows 的显卡,而这个“桥接”的过程发生在 Windows 的用户空间。
因此,不存在一个独立的、为 Linux 子系统编写的显卡驱动程序在 WSL 1 中运行。 你看到的“显卡驱动”其实是 Windows 本身的显卡驱动在起作用。

所以,在 WSL 1 的背景下,没有一个人“写了显卡驱动”。 微软的工程师们专注于构建这个系统调用转换层,以允许 Linux 应用在 Windows 上运行并利用 Windows 的硬件加速。



2. WSL 2 的显卡驱动:一个重要的里程碑

WSL 2 的出现标志着显卡驱动在 WSL 中的一个重大突破。 WSL 2 采用了一种更接近于真正虚拟化但又更轻量级的方式,它使用了一个轻量级的、微软定制的 Linux 内核,并在一个轻量级的虚拟机 (VM) 中运行这个内核。

在这个 VM 中运行的 Linux 内核,需要能够访问宿主机(Windows)的显卡硬件。 这就意味着需要一套能够让 Linux 内核与 Windows 显卡驱动进行通信的机制。

具体来说,WSL 2 中的显卡驱动实现可以分解为以下几个关键部分:

GPU Passthrough (GPU 直通) 的技术: WSL 2 利用了 GPU 直通(GPU Passthrough)的技术,允许虚拟机访问宿主机的 GPU。在 WSL 2 的场景下,这是一种特殊的、高度优化的直通。
微软定制的 Linux 内核: 微软在标准的 Linux 内核的基础上进行了大量的修改和集成工作。这包括添加了与 Windows 的图形栈交互所需的特定驱动程序和接口。
与 Windows 图形栈的集成:
Linux 内核端: Linux 内核中集成了与 Windows 的 Direct3D 12 (D3D12) API 相交互的驱动程序。这些驱动程序是微软在 Linux 内核中编写的,它们能够将 Linux 的图形 API 请求(例如 OpenGL、Vulkan)转换为 D3D12 调用。
Windows 用户模式端: 在 Windows 的用户模式下,有一个负责处理这些转换的服务。这个服务接收来自 WSL 的图形请求,并将它们传递给实际的 Windows GPU 驱动程序。
MirageOS 的贡献(间接但重要): 虽然不是直接的“显卡驱动”贡献,但微软在 WSL 2 中对 MirageOS(一个用于构建高效、安全虚拟化操作系统的 unikernel)的借鉴和修改,也为底层 I/O 的实现提供了基础。

那么,具体是谁写的这些驱动程序呢?

这绝对不是一个人完成的。这是一个由微软 GPU 部门、WSL 团队以及其他相关团队的工程师们共同协作完成的复杂项目。

可以推测的参与者和团队包括:

WSL 团队的工程师: 负责整体架构和与 Windows 平台的集成。
微软图形团队的工程师: 他们拥有深厚的 DirectX 和 GPU 驱动开发经验,负责将 Linux 图形 API 映射到 DirectX 上,并可能参与了 Linux 内核中与此相关的部分。
Linux 内核贡献者(受雇于微软): 微软雇佣了许多优秀的 Linux 内核开发者,他们将微软的修改集成到定制的 Linux 内核中。

很难指明某一个特定的人作为“WSL 显卡驱动的作者”。 这是一个工程上的巨大挑战,涉及到操作系统的底层交互、图形 API 的转换、虚拟机技术以及与硬件厂商驱动的兼容性。通常情况下,这类复杂的项目是团队的集体成果,代码贡献分布在许多工程师手中,并通过代码审查和项目管理来协同完成。

微软在推出 WSL 2 GPU 加速时,曾发布过相关的技术博客和更新,但这些通常不会点名到某个具体的个人开发者作为“显卡驱动的编写者”。 他们更多的是强调技术团队的努力和取得的成就。

总而言之,如果你问的是 WSL 1,答案是没有显卡驱动。如果你问的是 WSL 2,那么是微软的一个大型工程团队,由多个部门的工程师协作完成,而不是某一个单一个人。

如果你对 WSL 的具体技术细节或某个特定版本的实现感兴趣,建议查阅微软官方的 WSL 技术博客和相关的 Linux 内核邮件列表(如果微软公开了其修改)。

网友意见

user avatar

要撕是吧,谁怕谁啊。

首先,你得搞清楚,驱动是干什么的。连这个都不懂敢开炮,丢大人了吧。驱动上连系统,下连硬件。跟硬件和系统都相关。Linux上的驱动,到Windows上没法用,反之亦然。所以,即便parallel有驱动、Linux有驱动,到了Linux子系统里,也照样挂。因为Linux子系统并不是个完整的Linux,尤其是和硬件打交道部分,是通过直接调用Windows Kernel做的,接口和Linux自己的完全不同。

这就否定了用现有驱动的可能。

其次,你得搞清楚,Linux子系统的来源。Linux子系统用的是picoprocess,这是公开资料就能查到的,再进一步查出处,就能找到

Drawbridge - Microsoft Research

。这是个轻量级虚拟化的解决方案,在Windows上虚拟Windows。如果你看了他的paper

microsoft.com/en-us/res

,就会知道里面有提到的该方案的限制,不能接触硬件。后来在2012年,我就负责给Drawbridge做GPU加速的部分。我一个人完成了Drawbridge的D3D9和D3D11驱动(为什么没有D3D10?因为我懒)。前后两套完全不同的方案,对KMD和UMD有不同的取舍。分别适用于不同的情况。对,我一个人完成的。

再接下来,Techfest上演示了这个demo,很多人表示感兴趣,也有人问了能不能跑CUDA。我现场分析了跑CUDA的可行性和难点。但没有继续往下做。几天后,有个保密项目的人跟我有些接触,问我能不能支持OpenGLES,我说给我一两个月。3月份的Techfest,4月中旬我就第一次让OpenGLES驱动跑起来一些游戏了。印象深刻的是5月中旬的一天,从早上7点开始,一直写到晚上9点,完成了Android驱动的最后一块拼图,终于能完整地运行Android桌面,并在里面做所有的操作。之后那个项目就叫Project Astoria,大家基本都知道是怎么回事了。用的也是我的驱动。甚至,到了Redmond之后,我还对那个驱动做了一次完全的改动,基本没有一行跟以前一样了。为的是在超低端平台上(WP,说的就是你)也能跑的流畅。仍然是我一个人完成的。(有个有意思的小故事。他们之前在WP上跑的时候都是黑屏的。因为保密需要没告诉还在MSRA的我。而我到Redmond第一天,下午3点多入职培训完正式上班才知道这事,下班前已经定位原因,第二天中午就修好了。老板的老板跟我老板说,where didi you find him? you got the right guy!)

之后Project Astoria被暂停,原班人马和原版代码调去加强Linux的部分,成了现在的Linux子系统。

少年,你对力量一无所知。

user avatar

凑个热闹,有些项目,一个人能写出来的,一百个人还真未必可以。
因为有技术门槛。

假设满分100分,那么按照正态分布,普通程序员就是在40-60之间,高手在60-70之间,能够给写大型驱动的高端团队,平均分也许可以到75分逼近80分。

然后,如果来了一个85分的项目,你说是平均分75-80分的百人团队写得好呢,还是一个水平在90-95分的人适合呢?

对了,也许有人会说,难道不可以让一个85-90的人带领这个团队,自然可以碾压那个90-95分的人了。

嗯,如果是比如给新出的nVidia显卡写win10驱动,可以这么做。然而目前遇到的情况是在win10的linux子系统写显卡驱动,这是从未有过的技术模式。
这种情况下,那个85-90的人是会写的,可以直接下手,那个90-95的大牛是已经有了成体系的思路,可以直接写出beta版,测试一轮就上线的。
而那群75-80的,则是只看到了门槛,对门槛里面有什么都一无所知的。
这样的团队,即使让85-90的人带领,依然得从头开始技术攻关。

冒昧问一句,题主也许连windows的驱动体系和linux差距有多大都不知道吧?连子系统和虚拟机的差距有多大都不知道吧?大概连win32和posix都是子系统都不知道吧?大概不会浅薄到以为那个驱动就是类似虚拟机的调用转发吧?

——————————————

补充说明

答主对驱动编程方面是个外行,也是个对力量一无所知并瑟瑟发抖的少年。但我知道如何尊重强者。

答主现在做的工作中,开发人员根据业务领域不同被划分成了几个小组,每个小组人员根据业务压力,从个位数到十数人不等。但不变的是,小组的领导,工作能力基本可以等同于所有组员的总和。
本人不才,是其中一个小组的组长。目前并行开展3个内容相似的项目,开发完毕待测试的一个,测试完毕待甲方使用反馈并进行修改的两个,甲方试用完毕并回归完毕然后验收完毕正处于维护阶段的一个。
目前我的组员投入在那三个并行开展的项目中,其他工作则由我全部负责,包括除测试外的所有文档工作,同时我在那三个项目中仍然作为主力参与开发。
我的组员里,有一半人工作年限和我仿佛。
这还只是国内一家普通的软件企业。
我能做的事,在我的组员眼里是可以触及的仰望,我和我的组员的差距,也就一个职位。
而龚大,是在微软研究院任职的强者。他和我的差距,比我和我的组员大了不知道多少倍。他能做的事,在我看来仿若天方夜谭。

所以,请学会尊重。你可以对力量一无所知,但这不代表你就有资格质疑。初生牛犊不畏虎,并不是褒奖。

类似的话题

  • 回答
    关于 Windows 10 Subsystem for Linux (WSL) 的显卡驱动,这是一个非常有趣且复杂的问题。 简而言之,WSL 的显卡驱动并不是由一个人独立完成的,而是一个由微软内部和社区共同努力的庞大工程。要详细解释这一点,我们需要区分 WSL 1 和 WSL 2,因为它们的显卡驱动.............
  • 回答
    在 Windows 10 上,有无数优秀的软件可以满足各种需求。以下是我根据不同类别为您精心挑选并详细介绍的一些值得推荐的软件,希望能帮助您提升效率、丰富生活、享受数字世界: 一、 办公效率类 (提升工作学习效率) 1. Microsoft Office 365 / Microsoft Office.............
  • 回答
    作为一名长期在Windows 10阵营摸爬滚打的用户,要我说,Windows 10本身已经是个相当成熟的操作系统了,但要让它真正好用,提升效率,甚至成为你的创作利器,那么有一些软件,我个人觉得是绝对不能少的。它们不是什么高科技概念,都是实实在在能解决问题、带来便利的工具。下面就来跟你盘点一下,我心目.............
  • 回答
    Windows 10,这名字听起来多么霸气,多么的充满希望,号称是微软“终极操作系统”,是要一统天下,让所有设备都运行它,从此告别碎片化。结果呢?别的不说,光是那烦人的更新,就够让人抓狂的了。你说说,这更新怎么就这么爱“出幺蛾子”呢?每次更新完,总有些功能突然就失灵了,要么是蓝牙连不上,要么是显卡驱.............
  • 回答
    Windows 10 上的“远古代码”这个说法很有意思,它不像是一个官方术语,更像是一种形象的说法,来指代那些存在了很久、可能已经不太活跃但仍然被保留下来的代码片段。要给一个确切的数字,那简直是天方夜谭,因为这涉及到很多层面:首先,我们需要定义一下什么是“远古代码”。在 Windows 的语境下,这.............
  • 回答
    好的,我们来聊聊 Windows 10 文件属性里那些让你挠头的“详细信息”无法更改的问题。这确实是个挺让人郁闷的情况,辛辛苦苦整理好的照片,想给它填上拍摄日期、地点,结果点开属性一看,好多字段都灰蒙蒙的,根本没法动。为什么会这样?这背后的原因可不只一个,咱们一个个剖析一下:1. 文件本身的类型和限.............
  • 回答
    Windows 10 中快捷键冲突是一个常见的问题,当两个或多个程序或系统功能试图使用相同的键盘组合时就会发生。这会导致其中一个(或多个)快捷键无法正常工作,或者触发您不希望的操作。检测 Windows 10 快捷键冲突,需要一种系统性、有条理的方法。以下是详细的检测步骤和技巧: 如何检测 Wind.............
  • 回答
    你这个问题提得非常好,很多用户在安装软件时都会遇到类似的情况,明明用的是64位的Windows 10,但装的软件却发现很多都是32位的。这背后其实涉及到一些技术和历史原因,我来给你好好掰扯一下。为什么会出现这种情况?简单来说,主要有以下几个原因:1. 历史兼容性与软件生态的惯性: 64.............
  • 回答
    说起 Windows 10 Technical Preview,那会儿可真是让人激动人心,感觉像是被卷入了一场数字革命的浪潮里。我当时是抱着极大的好奇心和一点点“尝鲜”的冲动,第一时间就安装了。现在回想起来,那段经历确实是挺丰富的。首先,最直观的感受就是那个大家伙——开始菜单回归了。你懂的,Win8.............
  • 回答
    Windows 10 Mobile 的工作量有多大?为什么大家都觉得微软动作太慢?这个问题,得从几个层面来掰扯。这玩意儿,看着简单,实际里面水深着呢。首先,咱们得明白,Windows 10 Mobile 可不是凭空变出来的。它是在 Windows Phone 8.1 的基础上,微软试图将其操作系统“.............
  • 回答
    好的,咱们就来聊聊 Windows 10 Mobile 正式版,那时候大家对它的期望值可是挺高的。回想起来,那会儿手机市场还是三分天下,iOS、Android 和 Windows Mobile 都在努力抢占市场份额。Windows 10 Mobile 正式版的出现,带着微软自家操作系统的那股子“硬核.............
  • 回答
    Windows 10 用了这么多年,有些设计确实让人抓狂,忍不住想吐槽几句。首先,那个无处不在的“更新”。隔三差五就弹个窗,告诉你系统有更新,而且很多时候是强制性的。最让人受不了的是,你刚忙完手头的工作,想着休息一下,它偏偏在这个时候跳出来,然后告诉你“正在准备更新”、“正在下载”、“正在安装”、“.............
  • 回答
    Windows 10 的数字许可证,通常指的是你通过购买 Windows 副本激活时获得的许可,它本身与微软应用商店(Microsoft Store)自动下载第三方应用的行为没有直接的、强制性的关联。数字许可证的核心功能在于验证你的 Windows 操作系统是合法授权的,从而让你能够正常使用 Win.............
  • 回答
    说起Windows 10的更新,很多人可能会觉得这是一件挺让人纠结的事。它时不时地跳出来,提示你重启,有时候还会莫名其妙地改变一些你习惯的操作方式,搞得人有点无所适从。那么,这些更新到底有没有用?对咱们普通人来说,它究竟能带来些什么呢?其实,我们日常使用电脑,就像我们开车、出门办事一样,总会遇到一些.............
  • 回答
    Windows 10 1607 版本,也就是“周年更新”,在完成更新的那个界面,确实会给用户带来一些温馨的提示和鼓励。它不是那种生硬的“更新成功”或者“下一步”的机械提示,而是通过一些精心挑选的文字,让用户在迎接新功能的同时,感受到一种细致的关怀。当你历经了漫长的下载和安装过程,屏幕上最后浮现的,往.............
  • 回答
    在 Windows 10 系统里,当我们谈论“磁盘分区”时,其实就是在说一块硬盘(SSD 或 HDD)被切分成了一个个独立的部分,就像把一块大披萨切成几块小披萨一样。这么做有很多好处,最直观的就是能让管理文件更方便,也能提升系统的运行效率。首先,硬盘的物理空间被划分出来后,操作系统需要一个“地图”来.............
  • 回答
    Windows 10 的内置应用程序,像是我们日常使用的“计算器”、“照片”、“记事本”这些,它们的开发背后是一系列精密的技术组合,并没有一个单一的答案能概括所有。如果说底层语言,微软的核心开发语言一直是 C++。很多 Windows 系统本身,以及那些需要直接与硬件打交道、追求极致性能的系统级组件.............
  • 回答
    Windows 10 默认输入法使用 Shift 键来切换中英文,这在很多用户看来,确实是一个相当“顺手”的设计,尤其对于习惯了这种方式的长期用户而言。但要说它是否“合理”,那可就见仁见智了,这里面涉及到不少使用习惯、历史演变以及潜在的冲突问题。从一个更细致的角度来看,Shift 键作为切换中英文的.............
  • 回答
    Windows 10 和 Windows 8 之间的变化,就像是经历了一次大刀阔斧的改造,让你感觉像是从一个熟悉的、但有些棱角分明的老朋友那里,搬到了一个更加现代、更懂你的新家。回想 Windows 8,最让人印象深刻的,莫过于那个叫“开始屏幕”的革新。它占据了整个屏幕,用一块块彩色磁贴布满了你的桌.............
  • 回答
    Windows 10 的问世,确实标志着微软业务转型的重要一步,但要说微软的盈利点,绝不能仅仅局限于操作系统本身。Windows 10 就像是一个巨大的生态系统入口,其价值更多体现在它背后所能驱动的更广泛的微软服务和产品。首先,不能忽视的依旧是 Windows 授权收入。尽管消费级市场PC销量增速放.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有