手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

笨兔兔的故事——带你了解Ubuntu,了解Linux

宏&微

[日期:2010-12-23] 来源:Ubuntu社区  作者: 懒蜗牛Gentoo [字体: ]
(70) 宏&微
  
   随着USB门口上的红灯一闪,我知道又有USB设备接入进来了,赶快打看门一看,这回不是那个司空见惯的1G U盘,而是一个网络设备,好像……是个无线网卡?赶快翻翻我身上的模块,看有没有它的驱动。
  
   我身上有很多的模块——别担心,不是“肿块”,不会影响身体健康。也不是“蘑块”,不能吃。是“模块”,翻译成英文叫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学会了通过加载模块的方式来增加灵活性,需要增加什么支持,只要加载一个新的模块就好了,不用重新编译内核,不用重启计算机。其实这也算是跟微内核那里学来的了。呀,说了半天主人接进来的这个网卡……好像我这里没有它的驱动模块阿……linux
【内容导航】
第1页:开端 第2页:醒来
第3页:工作 第4页:历史
第5页:也是历史 第6页:还是历史
第7页:串门 第8页:碎片
第9页:邻居 第10页:人才
第11页:来头 第12页:本事
第13页:开源 第14页:故事
第15页:minix 第16页:(16) linux
第17页:Friends 第18页:杀毒
第19页:免疫 第20页:权利
第21页:内存 第22页:内存
第23页:信封 第24页:
第25页:酒 too 第26页: 酒Again
第27页:Year 第28页:人物志
第29页:日志 第30页:XFS
第31页:分区 第32页:挂载
第33页:GIMP 第34页:QQ
第35页:运算 第36页:
第37页:协作 第38页: 加速
第39页:OpenGL 第40页:Power On
第41页:init 第42页:EXT4
第43页:有朋远来 第44页:他乡故知
第45页:可视电话 第46页:磁盘
第47页:硬解 第48页:刻录
第49页: Rubbish 第50页:Bug
第51页:施工 第52页:规划
第53页:因地制宜 第54页:Richard
第55页:Stallman 第56页:进程
第57页:僵尸 第58页:State
第59页:毕加索 第60页: 对决
第61页:空间 第62页:VBox
第63页: 动物园 第64页:BT
第65页: tar包 第66页:编译安装
第67页:对话 第68页:聊天记录
第69页:LOSE 第70页:宏&微
第71页:无线网卡 第72页: 驱动
第73页:显卡驱动 第74页:SLax
第75页:备份 第76页:浮云
第77页:文件类型 第78页:fedora
第79页:RPM 第80页:(80) 爱丽恩
第81页:用户认证 第82页:不知道起啥名字了……
第83页: 第84页:权限
第85页:多用户 第86页:比武
第87页:间歇 第88页:(88) 舌战
第89页:了断 第90页:shell
第91页:乱七八糟 第92页:文泉驿
第93页:dropbox 第94页:
第95页:地址 第96页:绕路
第97页:邮局 第98页:端口
第99页:云山雾罩 第100页:记忆
第101页:浏览器的战争 第102页:狐狸出世
第103页:群雄并起 第104页:门派
第105页:任天堂 第106页:敲敲打打本正理,补补全全是便捷
第107页:往事如烟千般忆,一令似关万物分 第108页:片片云烟过眼 页页细审在目
第109页:众里寻他千百度 第110页:山高无路阻佳音,途中逢友传鸿雁
第111页:笔走龙蛇书妙体,顿开金锁走蛟龙 第112页:小熊猫下小熊猫,游戏者装游戏者
第113页:忠勇智计三千人,三千宠爱在一身 第114页:一寸光阴一寸金 寸金难买寸光阴
第115页: 集腋成裘,拼小为大 第116页:容量速度和安全,阵列级别零一五
第117页:喜得广厦千万间,挂载之后方欢颜 第118页:硬盘扩建无忧虑 文件共享有三八
第119页:通讯靠吼 第120页:认证张口
第121页:SMB初具规模 NFS虎视眈眈 第122页:某年某月某日 某时某分某秒
第123页: 长江后浪推前浪,一代新兔胜旧兔 第124页:伤情最是晚凉天,升级坎坷不堪言
第125页: 惨淡天空,又见光明 第126页:三个和尚没水喝,两个内核没图形
第127页:为体验换装KDE,要易用开发新界面 第128页:我不知道叫什么题目好了
第129页:人生自古谁无死 留洒芳香满内存
相关资讯       Ubuntu Linux 
本文评论   查看全部评论 (12)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 12 楼
* 匿名 发表于 2018/2/19 0:02:32
嗨,真想做个笨兔兔,陪在懒蜗牛身边,.😇
第 11 楼
* 匿名 发表于 2017/4/16 13:43:37
和俱
第 10 楼
* Aaron_Peng会员 发表于 2015/1/28 12:09:59
很不错,推荐给小白看看
回复 支持 (24) 反对 (26)
第 9 楼
* 匿名 发表于 2013/1/23 18:03:37
花了4天去看完,前面有些历史知识,还有些软件的原理,值得去看一下。后面十几章,我就粗略的带过了。显得有些臃肿,啰嗦,价值没有前面几章大。
回复 支持 (29) 反对 (32)
第 8 楼
* Jarod 发表于 2012/8/1 9:42:19
实在太精彩了!我留了份,哈哈
回复 支持 (38) 反对 (37)