返回首页

内核驱动有哪些子系统?

206 2023-12-08 19:50 admin

一、内核驱动有哪些子系统?

1. RTC子系统

2. Remote Processor子系统

3. Remote Processor Message子系统

4. SCSI子系统

5. SCSI Target子系统

6. Security子系统

7. SOC-CAMERA V4L2子系统

8. SOUNDWIRE子系统

9. SPI NOR子系统

10. SPI子系统

11. SPMI 子系统

12. STAGING 子系统

13. SWIOTLB 子系统

14. TEE 子系统

15. TURBOCHANNEL 子系统

16. ULTRA-WIDEBAND (UWB) 子系统

17. USB GADGET/PERIPHERAL 子系统

18. USB SERIAL 子系统UBSYSTEM

19. USB 子系统

20. VME 子系统

21. XEN BLOCK 子系统

22. XEN PCI 子系统

23. XEN SWIOTLB 子系统

24. MFD子系统

25. Regulator子系统

26. counter子系统

27. IIO(Industrial Input/Output)子系统

28. PWM子系统

29. regmap子系统

30. Common Clock 子系统

31. cpufreq 子系统

32. cpuidle 子系统

33. pinctrl 子系统

34. gpio 子系统

35. mtd 子系统

36. PM wakeup source 子系统

37. Runtime PM 子系统

二、Linux 为何不把图形用户界面写入内核?

Windows NT 4.0把GUI做进内核, 微软是专门发了一个白皮书讲这件事的:

MS Windows NT Kernel-mode User and GDI White Paper

简单转述一下:Windows NT的内核设计是考虑到微内核的设计的

什么是微内核?

在微软NT内核的设计者看来, 微内核有两个原则

  1. 从设计上:模块化、封装和通过接口抽象数据结构.
  2. 从实现上:大部分操作系统代码运行在用户模式下(包括驱动程序),只有少部分硬件特定代码和内核本身运行在内核模式。即纯微内核系统

但事实上所有商业上可行的微内核设计不能采用纯微内核的设计, 因为这么做太慢了。

文中给了一个例子:微内核的一个好处是,如果一个操作系统的功能出现了问题,比如文件系统的代码有问题,整个系统不会崩溃。但从使用者的角度考虑,如果一个系统的文件系统出现了问题,那么宏内核的系统崩溃(比如Windows蓝屏)和微内核的数据丢失是没有区别的。

文中没有点出这一点,但很显然,在NT设计者看来,作为一个名称中带有“窗口”的操作系统,如果用户界面崩溃,那么整个系统即完全无法操作,微内核的好处无法体现。

事实上Windows NT 3.x的GUI是运行在用户态的,由csrss.exe(客户端/服务端运行时子系统,Client/Server Runtime Subsystem)负责。csrss.exe由smss.exe(Session Manager Subsystem, 1号进程,相当于Linux的init/systemd或macOS的launchd) 启动,在NT 3.x中负责实现win32子系统的功能。

win32实际上是来自基于DOS的16位Windows上采用的API的移植,16位Windows的user.exe(即窗口管理)和gdi.exe(2D图形绘制)在32位的NT 3.x中被移植为user32.dll和gdi32.dll, 二者仍负责窗口管理和2D图像绘制,但其实现方式为通过与csrss.exe进程间通讯完成GUI的各项功能。具体的进程间通讯方式为LPC, 全称为Local Procedure Call(本地过程调用)或Lightweight Procedure Call(轻量级过程调用), LPC会绕过内核调度器,直接调度到IPC对面的进程。

但尽管NT 3.5优化了LPC的性能,微软的NT开发者当时认为这种微内核风格的实现方式效率还是较低,因此微软在NT4(1996年发布)中将csrss原本负责user32和gdi32对应的服务端代码挪到了内核模式一个叫win32k.sys的组件下,csrss仅剩下win32控制台程序的接口。

将gdi移入内核的后果是,显卡驱动的gdi驱动必须一同在内核中运行,而当时应用也非常广泛的gdi打印机驱动也一同在内核中运行,尽管逻辑上打印机并不如GUI一样需要高性能。NT4和NT5中,如果显卡驱动或gdi打印机驱动出现问题,系统就会崩溃。

在当时,Linux的GUI基本上完全位于用户态. 除去内核的fbdev驱动可以提供一个基本的framebuffer, X Server负责构建窗口管理和绘图的功能(对应NT的win32k.sys),X client使用libX11(对应NT的user32.dll)通过Unix Socket或TCP连接到X Server(对应NT的HWND消息队列),然后使用libX11以及其之上的gtk或者qt(对应gdi32.dll和MFC等框架)绘制窗体。X Server可以使用DDX驱动加速2D绘图(对应NT的gdi驱动)

Linux这套方案在用户态实现,理论效率是不如NT的,而且Linux的GPU驱动质量不如NT, 因此更容易崩溃或卡死。但Linux确实可以通过重新启动X server的方式从崩溃后恢复,而当时的NT则必须重启整个系统。

但之后NT6和Linux都对GUI系统做出了重大的变动。

NT6移除了gdi驱动的功能,并引入了WDDM(Windows Display Driver Model),之前gdi驱动的功能完全使用Direct 3D或CPU实现。WDDM允许GPU驱动重启并重置硬件的状态,因此Windows可以从一些GPU驱动故障中恢复。此外dwm.exe(Desktop Window Manager)允许将桌面合成的工作转交给该进程完成。

Windows10之后,微软在桌面之外的系统上使用的GUI均不包括gdi32和user32的整个体系,在内核上,win32k.sys被分为通用的win32kbase.sys和win32kmin.sys/win32kfull.sys, 只有桌面版本的Windows使用win32kfull.sys, 包括gdi32/user32和传统的窗口体验,Windows手机版、SurfaceHub版、Hololens版、Xbox版、Iot版均使用win32kmin.sys, 并没有传统的窗口体验,反而是使用类似于手机的UI体验. 所谓UWP, 为了统一在这些设备上使用,也不能调用win32kmin中缺失的api, 因此UWP程序一直相较于win32程序较少的原因就是无法使用很多已有的win32 api.

但实际上微软将史上最大的软件,代码量接近于Windows本体的chromium移植到基于win32kmin.sys的诸多系统上,如Xbox System OS和已经放弃的Windows 10 X. 如图为第一版基于Windows 11内核的Xbox System OS运行Edge浏览器的gpu详情页.

而在定制之后的Windows 10 Iot core或Windows nano server系统上,压根不包括任何GUI的支持,所有控制只能通过powershell或者openssh.

Linux这边,drm换掉了fbdev(1999年drm框架提出,2021年Linux 5.14合并SimpleDRM作为fbdev的替代), drm本身足够轻量,大部分GPU驱动的功能由用户态的mesa或者各个专有驱动完成。而窗口管理等功能均有不同的用户态进程完成,例如X11的开源实现Xorg, 具有客户端库libX11/xcb并通过Unix socket/TCP连接,由各种Window Manager负责管理窗口,然后由合成器完成图像合成;Wayland由各个Wayland合成器负责窗口管理和合成,有统一的libwayland-client客户端库,并通过Unix socket链接;Android有SurfaceFlinger负责窗口合成,有WindowManager负责窗口管理,并通过Linux binder内核驱动与各App进行通讯。显然Linux具有丰富的GUI生态体系。

事实上,当初Windows NT 4.0将GUI移入内核的原因在当前已经不存在了。一方面gdi已经不再使用,程序普遍自绘GUI,另一方面,在用户态实现窗口管理完全不存在性能瓶颈,况且dwm已经将绘制这一主要的窗口管理功能在用户态实现了。唯一能解释的就是微软本来打算使用UWP完全代替过去的生态, 但失败了, 因此不再追求在桌面版Windows上破坏原有的win32兼容性。

至于Linux GUI的问题,恐怕并不出在Linux内核上。比如drm支持热插拔,但实际上大概率会导致合成器卡死甚至于内核卡死。

三、bios驱动与内核驱动关系?

bios管理程序其实是一段固化的初始化代码,只要上电就开始运行,根据你的需要来进行主板上必要的初始化,为操作系统的运行做准备,他严重依赖于硬件,如果无法为操作系统准备好必要的硬件环境,就不会进入到操作系统的启动。

bios驱动的最后一步操作是将操作系统从硬盘分区转移到内存中,并将计算机的控制权交给操作系统的内核。bios代码很简短,只是保证了内核能够启动。但是后续的一些服务和外围驱动就需要内核强大的功能来自食其力了。

四、arm内核与CPU的关系?

ARM首先是一个公司,这家公司设计CPU并向各个CPU制造商授权许可,所以ARM公司是一家CPU设计公司。同时,ARM也是ARM公司主导设计的CPU系列的简称。

ARM版本区分

ARM版本号可以分为三类:

· 内核版本号,例如ARMv5,ARMv7,ARMv7a,ARMv8a……

· Soc版本号,例如Cortex-A8,Cortex-A9...

· 芯片型号,例如2410,2440,6410,S5PV210...

Soc是System on Chip的简写,即片上系统。Soc主要包括了CPU中央处理器以及各种外设模块,CPU和外设通过集成电路被安置在一个芯片中。

现在已经没有纯粹的CPU了,都是SoC

ARM卖的内核其实就是CPU(当然还需要总线),各种外设是半导体厂商自己添加的

五、销售系统与哪些子系统有关系

与市场系统,批发系统,运输系统,分销系统等

六、装卸搬运与其他物流子系统的关系?

在同一地域范围内(如车站范围、工厂范围、仓库内部等)以改变“物”的存放、支承状态的活动称为装卸搬运装卸,以改变“物”的空间位置的活动称为搬运,两者全称装卸搬运。有时候或在特定场合,单称“装卸”或单称“搬运”也包含了“装卸搬运”的完整涵义。在习惯使用中,物流领域(如铁路运输)常将装卸搬运这一整体活动称做“货物装卸”;在生产领域中常将这一整体活动称做“物料搬运”。实际上,活动内容都是一样的,只是领域不同而已。

在物流过程中,装卸活动是不断出现和反复进行的,它出现的频率高于其它各项物流活动,每次装卸活动都要花费很长时间,所以往往成为决定物流速度的关键。装卸活动所消耗的人力也很多,

  所以装卸费用在物流成本中所占的比重也较高。以我国为例,铁路运输的始发和到达的装卸作业费大致占运费的20%左右,船运占40%左右。因此,为了降低物流费用,装卸是个重要环节。

昆山市鹏一程起重装卸服务是提供各种精密设备的卸车、拆箱、吊装、搬运工程的

七、会计信息系统由哪些子系统构成,各子系统之间的关系如何?

会计信息系统(AIS)是一种专门用于会计业务处理的应用软件,它是属于管理信息系统中的财务管理子系统。

它包括会计核算和管理会计两大部分,前者以账务核算为核心进行账务处理,并且设计工资核算、固定资产核算、成本核算、材料核算、销售核算等专项核算内容;后者的内容有财务情况分析、预测和决策分析、资金管理分析、内部经济核算管理分析等内容。一个完整的会计信息系统应当由会计核算系统、财务管理系统和财务决策支持系统组成,但是由于决策层要考虑到的因素较多,本次只讨论会计核算系统。会计部分作为进行经济核算的职能部门与企业的其他部分有着密切的关系。它接受、传递和处理大量的资金运动的数据。这样就造成了会计信息系统是一个十分复杂的程序系统。

八、Linux内核、驱动、硬件、应用程序之间的关系?

首先,要理解操作系统的概念,操作系统是用户和硬件之间的一层媒介程序。不管是Linux还是Windows或者安卓、IOS,它的主要功能有两点:

1、有效管理硬件。

2、方便用户操作。

其次,Linux内核是Linux系统的核心程序,主要完成任务调度、内存管理、IO设备管理等等功能,主要目的是为了应用程序提供一个稳定良好的运行环境,这是一个基础。

再次,驱动程序是操作系统有效管理硬件的一个途径。应用程序是方便用户操作提供的程序,比如Shell,Linux中的bash shell以及KDE、gnome等图形Shell都是应用程序。 你可以简单的理解为驱动程序实现了操作系统对硬件的有效管理,应用程序实现了操作系统方便用户操作的目的。

最后,从编程角度来看,Linux内核就是一个调用库,应用程序通过调用Linux提供的API函数来实现操作,Linux内核通过与驱动通信实现对硬件的有效管理。具体的编程细节,需要自己在实践编程中体会。这是一个整体的描述。

九、几何图形和数学的关系?

几何是研究空间结构及性质的一门学科。它是数学中最基本的研究内容之一,与分析、代数等等具有同样重要的地位,并且关系极为密切。几何学发展历史悠长,内容丰富。它和代数、分析、数论等等关系极其密切。几何思想是数学中最重要的一类思想。暂时的数学各分支发展都有几何化趋向,即用几何观点及思想方法去探讨各数学理论。常见定理有勾股定理,欧拉定理,斯图尔特定理等。

扩展资料

定义

几何是研究空间结构及性质的一门学科。它是数学中最基本的研究内容之一,与分析、代数等等具有同样重要的地位,并且关系极为密切。

十、圆与几何图形的关系是什么关系?

圆与方是最基本的几何图形,从三角形到方形到多边形,圆相当于无数条边的多边形。

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片

网站地图 (共14个专题11458篇文章)

返回首页