《笨兔兔的故事——带你了解Ubuntu,了解Linux》
第28节

作者: 懒蜗牛Gentoo
收藏本书TXT下载
  我身上有很多的模块——别担心,不是“肿块”,不会影响身体健康。也不是“蘑块”,不能吃。是“模块”,翻译成英文叫module。这些模块像一本本的手册,有的手册是说明如何使用某个硬件的,这就是硬件驱动模块;有的是说明如何使用某种文件系统的,那就是文件系统模块,等等。这些手册我都统一放在/lib/modules/2.6.28-11-generic/目录下(2.6.28-11-generic是我的内核版本),每次起床,我都根据配置文件里写的内容,把里面一些必要的手册揣在身上再去干活。(就跟去旅游要揣个地图一样的道理)当需要用到哪个东西的时候就掏出响应的手册来查看。比如要用RealTek的那块声卡了,我就把关于RealTek声卡的那本手册(也就是那个模块啦)掏出来,看应该怎么使用,如何操作这个声卡。也有的东西,很重要,很关键,很基本,每次一定都会用到,那样的就不做成模块了,就直接让我记忆在脑子里,融化在血液中——也就是所谓的编译进内核。哪些东西编译为模块,哪些东西编译进内核,哪些东西根本不编译,这是在编译内核的时候就决定的。你也可以让我把所有东西都记忆在脑子里,也就是所有的东西都编译进内核,不编译成模块。但那样的话,就基本没法干活了。倒不是我记不住那么些东西,我不是人脑,我想记住啥就记住啥,但是要知道我是程序,我要记住个东西的话,体积是要增大的。一个所有东西都被编译进去的内核大约要二百多M那么大!!这就意味着这内核一启动,自己就至少得占200多M的内存,那还怎么干活啊,这点地儿全让他一人占了。

  不过说起来,我的祖先们——也就是最初的那些Linux内核,是没有模块这回事的。那时候的linux内核要把所有需要用的东西都记住。比如要用到ext2文件系统,那就把ext2文件系统的支持编译进内核。用不到XFS系统,那对XFS系统的支持就不编译。等到那天需要XFS支持了,就得重新编译内核,把XFS支持编译进去,然后重启,用新内核启动系统。所以那时候的Linux内核是个典型的宏内核。所谓宏内核,也叫单内核,就是指像linux这样,内核整体作为一个独立的进程在运行在内存里,所有该实现的功能,都在这个大进程里实现,像进程管理阿,内存分配阿,文件系统管理阿,硬件设备的控制阿等等这些事情。像我们Linux,还有传统的Unix,有点软公司的剁死,Windows 95,Windows98,都是宏内核。与宏内核对立的,还有一种叫微内核。微内核就不是一个人在战斗了,微内核的理念与宏内核相反,把内核该干的那点事分成一个一个的小块,由一个个小的内核进程专门去管理。有专门管理内存分配的,有专门管理进程的,有专门管理硬件IO的,等等。这样的好处就是进程间分工明细,每个进程只专心管理自己那一点事情,不容易出问题。而且,可移植性也比较高,只需要把直接跟硬件相关的部分移植一下就好了,其他的部分基本不用动。宏内核就需要整个都移植,因为是一个整体嘛,要换整个换。像咱们说过的Minix,就是微内核。当宏内核工作的时候,就是像我一样:比如叫皮筋起床干活吧,我先通过文件访问,把皮筋叫进内存(程序也是文件阿,可执行文件),然后给皮筋分配好内存空间,为他创建个进程(也就是给他分配个工号),分给他CPU让皮筋开始干活,皮筋要访问网络的时候我负责操作网卡,把他要发的东西发到网卡上。这一系列的事情,全都由我一人管理。整个工作间里是以我为中心的工作。而微内核工作起来的景象就是:要内存的事都去找内核贾;要访问文件的程序,都去找内核余;跟硬件打交道的全去内核汤那;进程管理的问题都归内核顿管。内核余把皮筋从硬盘里交出来,然后喊“老贾,给皮筋分配点内存”,内核贾就给分配,分配好了跟内核顿说:“分个工号,创建个进程”。内核顿照做,然后皮筋开始干活,要访问网卡了,就去内核汤那报道。整个工作间里,软件们是以“顿贾余汤”内核小组为中心干活。

  宏内核灵活性明显不高,这是个人就能看出来,所以现在我们Linux学会了通过加载模块的方式来增加灵活性,需要增加什么支持,只要加载一个新的模块就好了,不用重新编译内核,不用重启计算机。其实这也算是跟微内核那里学来的了。呀,说了半天主人接进来的这个网卡……好像我这里没有它的驱动模块阿……

日期:2010-01-11 08:46:17

  (71) 无线网卡
  我看了一下插进来的这个网卡,是Realtek的RTL8180L芯片,再仔细翻翻我的所有模块……确实没有,坏了,这回恐怕要在主人面前丢脸了。主人用 ifconfig查看网卡,我只好汇报:现在机器上有两个网卡,一个是有线网卡eth0,这个正常工作,另一个是虚拟的回还网卡lo,这个也没啥问 题。(闭口那不提无线网卡的事)主人好像很纳闷,心说我这明摆着多插了一个无线网卡阿,你怎么就装看不见呢?他叫来狐狸妹妹,让她去问狗狗哥这 TPLink的 WN210网卡怎么用。狐狸妹妹找到一个叫做Ubuntu中文论坛的地方,里面也有人问怎么用这网卡。听得我这叫一个着急,你找也找RTL8180L这芯 片阿,关键是这个芯片的型号,不是那网卡的型号,搜芯片会多不少记录呢。哦,对了,可能他压根不知道这网卡是啥芯片。那你倒是问我阿,问一句lspci我 不就告诉你了么,哎,我也是,皇上不急太监急。

  主人的悟性还是挺高的,一会就想起来问我了,我赶紧告诉他网卡型号,他就去查去了,得出的结果是——就是没有Linux驱动!那这网卡就算没法用了?当然 不是,虽然没有Linux驱动,但是,困难压不到我们Linux软件,随着狐狸妹妹的点拨,主人知道了有一个软件,叫做ndiswrapper。这个软件 会干啥?他能读懂硬件的驱动——读驱动本来是我的工作,就是那些驱动模块阿,但是人家读的是硬件的windows驱动,翻译成我能懂的Linux模块,然 后就可以使用这个卡了。不过他只能翻译些网卡驱动,不过这也差不多够了。反正这块卡是能支持。

  超级牛力瞬间拉来了ndiswrapper,安顿好后ndiswrapper立刻被叫起来干活,主人给他指了指那个xxxx.inf的windows驱动 文件,ndiswrapper赶紧拿起来读,详细研究了一下后表示,可以支持,只要加载好他给我建造出来的和他同名的模块ndiswrapper.ko就 可以了。主人按照狐狸妹妹找到的文档一步一步操作:先用ndiswrapper加载那个windows驱动,然后在让我加载那个ndiswrapper模 块,最后问我,现在这个网卡状态是什么样阿?我充满信心的回答:现在机器上有三个网卡,一个是有线网卡eth0,这个正常工作,另一个是虚拟的回还网卡 lo,这个也没啥问题。还有一个无线网卡wlan0,也正常工作。主人很欣慰的点点头,一股成功感油然而生。不过这无线网卡跟有线的不一样,有线的插上之后,配好IP就能用,这无线的得先建立好无线连接,这无线连接建立好就好比有线网卡插好了网线。建立连接也不是什么困难的事情,我们这里有专门的团队负责。图形界面的有NetworkManager,跟网络有关的设置,甭管无线的有线的,找他就行,跟查皮底下差不多。如果用命令的话有iwconfig可以查看和配置无线网络,还有iwlist可以查看周围可用的无线网络,可能会找到邻居家的没设密码的信号哦~


日期:2010-01-16 11:17:11

  (72) 驱动
  主人的无线网卡没有搜索到安全意识薄弱的无线邻居,当然,人家压根也没打算搜到,只是简单的链接到了自己家的无线路由上。不过估计这网卡不会常在我这插着,您想啊,我这是台式机,千兆的有线网用的好好的,没事用的什么无线啊,我又不移动。估计是主人给那个笔记本电脑用的,先插在我这里试试,研究一下能不能驱动上,然后再往本本上插。

请按 Ctrl+D 将本页加入书签
提意见或您需要哪些图书的全集整理?
上一节目录下一节
【网站提示】 读者如发现作品内容与法律抵触之处,请向本站举报。 非常感谢您对易读的支持!举报
© CopyRight 2011 yiread.com 易读所有作品由自动化设备收集于互联网.作品各种权益与责任归原作者所有.