[FZH] What is a kernel?

qcxhome at gmail.com qcxhome at gmail.com
Fri Oct 5 11:37:07 UTC 2012


On Saturday, September 08, 2012 05:59:09 PM microcai wrote:
> Linus 说, Kernel is a collections of code to help run user program.
> 
> That's not ture.
> 
> 开发过嵌入式的童鞋都知道,编译器提供的C库就已经能做到了。并不需要一个操作系统。如果嵌入式程序需要文件系统,在C库里有何尝不能实现呢?
> 
> 
> 我仅认为,kernel is a trusted library to share hardware.
> 内核就是用来共享硬件的,我谨认为,内核就是一个 multiplexer.
> 
> 进程: 是用来共享主存储器的。内核是 RAM 的 multiplexer.
> 线程: 是用来共享CPU的。内核是 CPU 的 multiplexer.
> socket:是用来共享网卡的。内核是 网卡 的 multiplexer.
> 文件系统:是用来共享外部存储器的。内核是 disks/blockdevice 的 multiplexer.
> .
> .
> .
> .
> .
> .
> 
> 需要在内核里实现的功能,必定是需要内核去 multiplex 的。而不需要 multiplex 的功能,必须是不用在内核里实现的。
> 
> 例1:
> 打印机驱动,从来没有哪个系统是在内核实现的。
> Windows下,打印机驱动是 GDI 调用到 PCL(Printer Control Language)的解释器,是在非内核实现的。
> UNIX/Linux下,打印机驱动是 PS -> PCL 的翻译器。顾名称为 cups-filter .
> 最终,PCL命令才需要内核的 USB驱动(或者并口etc)将命令发送给打印机。而 CUPS 利用了 libusb 连这点都不需要内核操心了。
> 
> 例2:
> 拨号连接。
> 拨号连接是在用户层( pppd )实现的。内核创建一个 ppp0 ( ppp? 设备) 虚拟设备,然后内部的 socket 代码就
> multplex 这个设备为别的程序提供网络功能。 ppp0 设备是个虚拟设备,其数据最终全部转给了 pppd , 由 pppd 实现和
> “猫” 的通信。
> 
> 但是 。。。。。。。
> 
> 以上都是我的铺垫。因为我最终要讲的东西是:
> 
> 尼玛图形界面啥时候能在内核实现?!
> 
> 
> 图形界面分成3个子系统:
> 窗口管理
> 窗口内容渲染
> 字体管理和文字渲染
> 
> 
> 
> 字体管理是字体的 multplex , 但是文件系统已经为我们做到了multplex字体文件,所以在用户空间实现没什么问题。
> 文字的渲染归根结底还是属于渲染功能。
> 
> 硬件加速的渲染(现在谁还想用 CPU纯软件渲染啊)是 GPU 的 multiplex .
> 窗口是 “屏幕空间”  的 multiplex,窗口伴随者键盘鼠标设备,这是输入设备的 multiplex .
> 
> 
> 这样 3 个 multiplex 就需要实现:
> GPU multiplex
> Screan Space Multiplex
> HID multiplex (不是啥输入设备都行的,是要 Human Input Device,人体输入设备)
> 
> 这3样东西的 multiplex , 尼玛为何不是在内核做的?!
> 为何?!?
> 
> 要搞个 Xserver !!!!
> 要搞个 Xserver !!!!
> 要搞个 Xserver !!!!
> 要搞个 Xserver !!!!
> 要搞个 Xserver !!!!
> 
> 绝对是内核偷懒 绝对是内核偷懒 绝对是内核偷懒。。。。。。
> 
> 尼玛差点忘记,声卡也是要 multiplex  的,尼玛从古时候的 OSS 到进化的ALSA
> 现在都没支持内核混音!!!!还得靠学Xserver的 pulseaudio 来混音。
> 有内核混音的 OSSv4 尼玛就是不肯合并。有木有有木有有木有!
> --
> Fedora中文郵件列表:https://admin.fedoraproject.org/mailman/listinfo/chinese

在讨论这些之前需要为kernel定义一个范围。想必你也认同不是什么东西都往kernel里面加。如何理解help,如何理解user program。这些都需要
从kernel的角度出来来考虑。


More information about the Chinese mailing list