收藏 分享(赏)

Linux内核源代码漫游.pdf

上传人:HR专家 文档编号:6298110 上传时间:2019-04-05 格式:PDF 页数:9 大小:259.67KB
下载 相关 举报
Linux内核源代码漫游.pdf_第1页
第1页 / 共9页
Linux内核源代码漫游.pdf_第2页
第2页 / 共9页
Linux内核源代码漫游.pdf_第3页
第3页 / 共9页
Linux内核源代码漫游.pdf_第4页
第4页 / 共9页
Linux内核源代码漫游.pdf_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、Linux内核源代码漫游 创建时间:2001-10-11 21时13分 第 1 页 共 9 页 Linux内核源代码漫游 Alessandro Rubini著, rubinipop.systemy.it 赵炯 译, (www.plinux.org) 本章试图以顺序的方式来解释Linux源代码,以帮助读者对源代码的体系结构以及很多相关的unix特性的实现有一个很好的理解。目标是帮助对Linux不甚了解的有经验的C程序员对整个Linux的设计有所了解。这也就是为什么内核漫游的入点选择为内核本身的启始点:系统引导(启动)。 这份材料需要对C语言以及对Unix的概念和PC机的结构有很好的了解,然而本章

2、中并没有出现任何的C代码,而是直接参考(g6363g2533g709实g19481的代码的。有关内核设计的g7380g1351g12699g5145是g3324本g6175g1888的g1866g4439章g14422中,而本章g1185g17247g2533g1122是一个g19762g8503式的概g17860。 本章中所参g19417的任何g7003g1226的g17347g5464g2529g18129是g6363g1039源代码目g5417g7653,g17902g5132是g18ug86g85g18g86g85g70g18g79inux。 这g18336所g13485出的g3835

3、多g6980g1461g5699g18129是g2474g1055g1122Linuxg2469g15904g102681g170的源代码。g15441然g3926g8504,有时也g1262g6564g1391对g2530g7411g10268本的参考。这g12699漫游中g5332g3848有 图标的任何g4579g14422g18129是g5390g168551g170g10268本g2530对内核的g7044的g6925动。g3926g7536没有这g7691的g4579g14422g4396g3324,g2029g15932g12046直g2052g10268本 1g170g17g2

4、8-1g171g17g26g25,没有g1328g17819g6925动。 有时g1517本章中g1262有g16949这g7691的g4579g14422,这是g6363g2533g8503g11842的代码以对g2030g16764g16782g17819的g1039g20076g2474g5483g7368多g1461g5699的g6363g12046g12538。g5415然,这g18336是g6363源代码。 引导(启动)系统 g5415PC的g11017源g6183g5332g2530,g270xg27g25结构的CPUg4570g14270动g17839入实g8181式,并g11

5、86g3332g33480xg41g41g41g410g5332始g14270动g6203g15904程序代码,这个g3332g3348g17902g5132是g53g50g48-g37g44g50g54中的g3332g3348。PC机的g37g44g50g54g4570g6203g15904g7588g1135系统的g7828g8991,g3324g10301理g3332g33480g3800g5332始g2033始g2282中g7041g2533g18339。g8504g2530,g4439g4570g2499启动设g3803的g12544一个g6171g2318读入内g4396g3332

6、g33480xg26C00g3800,并g17351g17728g2052这个g3332方。启动设g3803g17902g5132是g17731g20549g6122是g11840g11436。这g18336的叙g17860是g19762g5132简单的,但这已经足够理解内核g2033始g2282的工g1328g17819程了。 Linux的g7380g7380前面部分是用g270g27g25汇编语言编写的(bootg18bootg86eg70tg17g54),g4439g4570由g37g44g50g54读入g2052内g4396 0xg26C00 g3800,g5415g4439被g620

7、3g15904时就g1262把g14270己移g2052绝对g3332g3348 0xg280000g3800,并g4570启动设g3803(bootg18g86etupg17g54)的下2kg37字g14422的代码读入内g43960xg280200g3800,而内核的g1866g4439部分g2029被读入g2052g3332g3348 0x10000g3800。g3324系统加载g7411间g4570显g12046g1461g5699“Loadingg17g17g17“。然g2530控制权g4570传递g13485bootg18g54etupg17g54中的代码,这是另一个实g8181式

8、汇编语言程序。 启动部分识别g1039机的g7588g1135特性以及vga卡的类型。g3926g7536需要,g4439g1262要求用户为控制台选择显g12046g8181式。然g2530g4570整个系统g1186g3332g33480x10000移至0x1000g3800,g17839入保护g8181式并g17351g17728至系统的余下部分(g33240x1000g3800g709。 下一步是内核的解压缩。0x1000g3800的代码来g14270g1122zg37ootg18headg17g54,g4439g2033始g2282寄g4396器并g16855用deg70ompg85

9、eg86g86_keg85neg79(),g4439们依次是由zg37ootg18infg79ateg17g70、zg37ootg18unzipg17g70和zg37ootg18mig86g70g17g70组成。被解压的g6980据g4396放g2052了g3332g33480x10000g3800(1兆),这也是为什么Linux不能运g15904g1122少g11222兆内g4396的g1039要原因。g33241兆内g4396中解压内核的工g1328已经完成,见 g48emog85y g54aveg85g86-ED g4570内核封装g3324一个gzipg7003g1226中的工g132

10、8是由zg37oot目g5417中的g48akefig79e以及工具完成的。g4439们是值g5483一看的有趣的g7003g1226。 内核g2469g15904g102681g171g17g265g4570boot和zg37oot目g5417下移g2052了ag85g70hg18i3g27g25g18boot中了,这个g6925动意味着对不同的体系结构允许真g8503的内核建造,不g17819我g4570g1185然只讲解有关i3g27g25的g1461g5699。 解压g17819的代码是g1186g3332g33480x10100g3800g5332始g6203g15904的这里我可能

11、忘记了具体的物理地址了,Linux内核源代码漫游 创建时间:2001-10-11 21时13分 第 2 页 共 9 页 因为我对相应的代码不是很熟,g3324那g18336,所有32比特的设置启动被完成: g44DT、GDT以及LDT 被加载,g3800理器和协g3800理器也已g11842认,分页工g1328也设置好了;g7380终g16855用 g86tag85t_keg85neg79子程序。上g17860操g1328的源代码是g3324bootg18headg17g54中的,这g2499能是整个内核中g7380有诀窍的代码了。 注意g3926g7536g3324前g17860任何一步中出

12、了错,计算机就g1262死锁。g3324操g1328系统还没有完全运g17728g1055前是g3800理不了出错的。 g86tag85t_keg85neg79()是位g1122initg18maing17g70中的,并g1000没有任何g17832g3250结g7536。g1186现g3324g17227的任何代码g18129是用C语言编制的,g19512了中g7041g12661理和系统g16855用的入g18出代码(g5415然,还有g3835多g6980的g4451g18129g4896入了汇编代码g709。 让轮子转动起来 g3324g3800理了所有错g13520g3809g744

13、6的g19394g20076g1055g2530,g86tag85t_keg85neg79()g2033始g2282了内核的所有部分,g4600g1866是: 设置内g4396g17805g11040和g16855用paging_init(); g2033始g2282中g7041、g44g53g52g17902g17959和g16855g5242; 分g7524(解g7524g709g2641g1208g15904; g3926g7536需要,就分g18209一个g6980据g13543g1926g2318(pg85ofig79ing buffeg85)以及g1866g4439一g1135g4

14、579部分; g7669g8503g5322g17843g5502g10627(计算g256g37ogog48ipg86g257g6980); g7828g7609中g70411g25是g2554能g994协g3800理器工g1328。 g7380g2530,为了g10995成g2033始g17839程,内核g1946g3803好了移至move_to_ug86eg85_mode(),g4439的代码也是g3324同一个源代码g7003g1226中的。然g2530,所g16871的g12366g19398任g2165,g17839程g25070就g17839入g7092g19492的g12366

15、g19398g5502g10627中运g15904。 接着g2033始g17839程(init pg85og70eg86g86g709g4593试着运g15904g18etg70g18init、g18bing18initg6122者g18g86bing18init。 g3926g7536g4439们没有一个运g15904成g2163的,就g1262g2447g6203g15904代码g256g18bing18g86h g18etg70g18g85g70g257并g1000g3324g12544一个终g12483上g10995成一个g7693g2641g1208解释程序(g85oot g86he

16、g79g79g709。这g8585代码g3250g9347至Linux 0g1701,g5415时操g1328系统只有一个内核,并g1000没有g11343g5417g17839程。 g3324g1186一个标g1946的g3332方(g16765我们g1563g4462我们有g709用exeg70()g6203g15904了initg2033始g2282程序g1055g2530,内核就对程序的g6203g15904没有了直接的控制。g1186现g3324g17227g4439的g16280g2029是g6564g1391对系统g16855用的g3800理,以及为g5334步g1119g122

17、6g7393g2165(比g3926g11840g1226中g7041g12573g709。多任g2165的g10627g3671已经建g12447,g1186现g3324g17227是init程序g17902g17819fog85k()g8978g10995出的系统g17839程和g11343g5417g17839程来g12661理多用户的g16787g19394了。 由g1122内核是g17139g17143g6564g1391g7393g2165的,这个漫游g7003章g4570g17902g17819g16278g4531这g1135g7393g2165(g256系统g16855用g2

18、57g709以及g17902g17819g6564g1391g3534本g6980据结构的原理和代码的组g13467结构g13499g13505g16764g16782下g2447。 内核是如何看见一个进程的 g1186内核的g16278点来看,一个g17839程只是g17839程g15932中的一个g7477目而已。 而g17839程g15932以及g2520个内g4396g12661理g15932和g13543g1926g4396g1660器g2029是系统中g7380为g18337要的g6980据结构。g17839程g15932中的g2520个单g20045是tag86k_g86tg85

19、ug70t结构,是g4462g1053g3324ing70g79udeg18g79inuxg18g86g70hedg17h中的g19762g5132g3835的g6980据结构。g3324tag86k_g86tg85ug70t中保g11053着g1186g1314g4630g2052g20652g4630的g1461g5699,g14551g3272g1186g7588g1135g11840g1226寄g4396器的g6347g17137g2052g17839程工g1328目g5417的inodeg1461g5699。 g17839程g15932g7094是一个g6980组和g2464g191

20、54g15932,也是一个g7653结构。g4439的g10301理实现是一个g19757g5589的g6363g19036g6980组,g4439的g19283g5242是g4462g1053g3324ing70g79udeg18g79inuxg18tag86kg86g17h中的g5132g18339g49g53_Tg36g54g46g54,并g1000g8611个结构g18129位g1122一个保g11053内g4396页中。这个g2027g15932结构是g17902g17819g6363g19036next_tag86k和pg85e_tag86k构成的,而g7653结构g2029是g1

21、9762g5132g3809g7446的并g1000我们g3324g8504g4570不加以g16764g16782。g1332g2499能g5088g7407g6925动g49g53_Tg36g54g46g54的g21676认值12g27,但g1332要保g16789所有源g7003g1226中相关的g17878g5415g7003g1226g18129要被g18337g7044编译g17819。 g3324启动引导g17819程结g7475g2530,内核g4570g5647是代g15932g7588个g17839程而工g1328,并g1000全g4628g2476g18339g70ug8

22、5g85ent - 一个g6363g2533g7588个tag86k_g86tg85ug70tg7477目的g6363g19036 - 被用g1122g16772g5417g8503g3324运g15904的g17839程。g70ug85g85entg1177能g17902Linux内核源代码漫游 创建时间:2001-10-11 21时13分 第 3 页 共 9 页 g17819g3324keg85neg79g18g86g70hedg17g70中的g16855g5242程序来g6925g2476。然而,由g1122所有的g17839程g18129g5529g20047g16787g19394g

23、4439,所以g1363用了g4451fog85_eag70h_tag86k。g5415系统g17139g14667很g17743时,g4439要比g6980组的顺序g6207g6563g5567g5483多。 g17839程g5647是运g15904g1122g256用户g8181式g257g6122g256内核g8181式g257。用户程序的g1039体是运g15904g1122用户g8181式而g1866中的系统g16855用g2029运g15904g1122内核g8181式中。g3324这g1016g12193g6203g15904g8181式中g17839程所用的g3546g7644

24、是不一g7691的 - g5132g16280的g3546g7644g8585用g1122用户g8181式,而一个g3278g4462g3835g4579的g3546g7644(一页,由g16825g17839程所有g709g2029用g1122内核g8181式。内核g3546g7644页是g1186不g1144g6454出g2447的,因为g8611g5415一个系统g16855用g17839入时g4439就g5529g20047g4396g3324着。 内核中的系统g16855用(g86yg86tem g70ag79g79g86g709是g1328为C语言g2001g6980g4396g3

25、324的,g4439们的g254g8503g16280g2529称是以g254g86yg86_g5332g3848的。例g3926一个g2529为bug85nout的系统g16855用g4570g16855用内核g2001g6980g86yg86_bug85nout()。 系统g16855用机制g3324本g6175g1888的g12544三章中g17839g15904了g16764g16782。g16278看g3324ing70g79udeg18g79inuxg18g86g70hedg17h中的fog85_eag70h_tag86k和g54ET_Lg44g49g46g54能够帮助理解g178

26、39程g15932中的g2027g15932和g7653结构。 创建和结束进程 unix系统是g17902g17819fog85k()系统g16855用创建一个g17839程的,而g17839程的终止是g17902g17819exit()g6122收g2052一个g1461g2507来完成的。g4439们的Linux实现位g1122keg85neg79g18fog85kg17g70和keg85neg79g18exitg17g70中。 g8978g10995出一个g17839程是很容易的,所以fog85kg17g70程序很短并易g1122理解。g4439的g1039要任g2165是为g7044的

27、g17839程填写g6980据结构。g19512了填写g2520个字g8585以外,相关的步骤有: z g2474g5483一个g12366g19398内g4396页面来保g4396tag86k_g86tg85ug70t z 找g2052一个g12366g19398的g17839程槽(find_empty_pg85og70eg86g86()g709 z 为内g4396g3546g7644页keg85neg79_g86tag70k_pageg2474g5483另一个g12366g19398的内g4396页面 z g4570父辈的LDTg6347g17137g2052子g17839程 z g380

28、9制父g17839程的mmapg1461g5699 g86yg86_fog85k() 同g7691也g12661理g7003g1226g6563g17860g12538和inode。 1g170的内核也对线程g6564g1391g7588g1135不够完善的支持,所以fog85k()系统g16855用对g8504也g13485出了g7588g1135g12046意。内核的线程是g1039流内核以外的g17819程产品。 g1186一个g17839程中退出是比较有窍门的,因为父g17839程g5529g20047被g17902告有关任何子g17839程的退出。而g1000,一个g17839程g2

29、499以由另外一个g17839程g1363用kig79g79()而退出(这g1135是Unix的特性g709,所以g19512了g86yg86_exit()g1055外,g86yg86_kig79g79()以及g86yg86_wait()的g2520g12193特性也g4396g3324g1122exitg17g70g1055中了。 这g18336不对exitg17g70的代码加以g16764g16782-因为g4439一点也不g1208人感兴趣。为了以一致的状g5589退出系统,g4439涉及g2052许多细g14422。而Pg50g54g44X标g1946对g1122g1461g2507g

30、2029是要求相g5415严格的,所以这g18336g5529g20047对g1866加以叙g17860。 执行程序 g3324g16855用了fog85k()g1055g2530,就有同一个程序的g1016个g6347g17137g3324运g15904了,g17902g5132一个程序g1363用exeg70()g6203g15904另一个程序。exeg70()系统g16855用g5529g20047g4462位g16825g6203g15904g7003g1226的二g17839制映像,加载并g6203g15904g4439。词语g254加载并不一g4462意味着g256g4570二g1

31、7839制映像g6347g17137g17839内g4396g257,因为Linux支持按需加载。 exeg70()的Linux实现支持不同的二g17839制格式。这是g17902g17819g79inux_binfmt结构来达g2052的,g1866中内g4896了g1016个g6363g2533g2001g6980的g6363g19036-一个是用g1122加载g2499g6203g15904g7003g1226的,另一个用g1122加载库g2001g6980,g8611g12193二g17839制格式g18129实现有这g1016个g2001g6980。共享库的加载是g3324exeg7

32、0()同一个源程序中实现的,但我们只g16764g16782exeg70()本身。 Unix系统g6564g1391了六g12193exeg70()g2001g6980。g19512了一个以外,所有g18129是以库g2001g6980的形式实现的,并g1000,Linux内核是单独实现g86yg86_exeg70ve()g16855用的。g4439g6203g15904一个g19762g5132简单的任g2165:加载g2499g6203g15904g7003g1226的g3848部,并试着g2447g6203g15904g4439。g3926g7536g3848g1016个字g14422是

33、g256#!g257,那么就g1262解g7524g16825g2499g6203g15904g7003g1226的g12544一g15904并g16855用一个解释器来g6203g15904g4439,g2554g2029的话,就g1262顺序g3332试用g2520个注g1888g17819的二g17839制格式。 Linux本身的格式是由fg86g18exeg70g17g70直接支持的,并g1000相关的g2001g6980是Linux内核源代码漫游 创建时间:2001-10-11 21时13分 第 4 页 共 9 页 g79oad_aout_binag85y和g79oad_aout_g

34、79ibg85ag85y。对g1122二g17839制,g2001g6980g4570加载一个g256ag17outg257g2499g6203g15904g7003g1226并以g1363用mmap()加载磁g11436g7003g1226g6122g16855用g85ead_exeg70()而结g7475。前一g12193方法g1363用了Linux的按需加载机理,g3324程序被g16787g19394时g1363用出错加载方式(faug79t-ing709加载程序页面,而g2530一g12193方式是g3324g1039机g7003g1226系统不支持内g4396映像时(例g3926g

35、256mg86dog86g257g7003g1226系统g709g1363用的。 g7044近的1g171内核内g4896了一个修订的mg86dog86g7003g1226系统,g4439支持mmap()。而g1000g79inux_binfmt结构已是一个g19154g15932而不是一个g6980组了,以允许以一个内核g8181块的方式加载一个g7044的二g17839制格式。g7380g2530,结构的本身也已经被扩展成能够g16787g19394g994格式相关的核心g17728g1660程序了。 访问文件系统 众所周知,g7003g1226系统是Unix系统中g7380为g3534本

36、的资源了,g4439g3926g8504的g3534本和普遍g4396g3324以至g1122g4439需要一个g7368为便利的g2529字-我g4570忠g1122标g1946的称呼简单g3332称g1055为g256fg86g257。 我g4570g1563设读者早已知g17959g3534本的Unixg7003g1226系统的原理-g16787g19394(权g19492g709许g2499、ig14422点(inode)、超级块、加载(mount)和卸载(umount)g7003g1226系统。这g1135概念g3324标g1946的Unixg7003献中由比我聪明的g1328者g1

37、3485出了很好的解释,所以我就不g18337g3809他们的工g1328并g1000我g4570只专注g1122有关Linux方面的g19394g20076。 早g7411的Unixg17902g5132只支持一个g7003g1226系统(fg86g709类型,g4439的代码散布g1122整个内核中,现今的实现是g3324内核和fg86g1055间g1363用一个标g1946的接口,以便g1122g3324不同的体系结构中g17839g15904g6980据的g1144g6454。Linux本身g6564g1391了一个标g1946g4630以g3324内核和g8611g12193fg86

38、g8181块g1055间传递g6980据。这个接口g4630称为Vg41g54,即g256虚拟g7003g1226系统g257(“vig85tuag79 fig79eg86yg86tem“g709。 因而g7003g1226系统的代码被分割成了g1016g4630:上g4630是关g1122内核g15932格的g12661理和g6980据结构的,而g1314g4630是由g994g2520g7003g1226系统相关的g2001g6980集构成的,并g1000是由Vg41g54g6980据结构g17839g15904g16855用的。 所有g994g7003g1226系统独g12447的资料g

39、18129位g1122fg86g18*g17g70g7003g1226中。g4439们涉及g3926下的g19394g20076: g12661理g13543g1926寄g4396器(buffeg85g17g70g709; 对fg70ntg79()和iog70tg79()系统g16855用g1328出响应(fg70ntg79g17g70和iog70tg79g17g70g709; g3324inode和g13543g1926g2318上映射g12661g17959和fifo(fifog17g70,pipeg17g70g709; g12661理g7003g1226 - 和inode - g1593

40、2(fig79e_tabg79eg17g70,inodeg17g70g709; 锁g4462和解锁g7003g1226和g16772g5417(g79og70kg17g70g709; g4570g2529称映射g2052inode(nameig17g70,openg17g70g709; 实现错g13520g3809g7446的g86eg79eg70t()g2001g6980(g86eg79eg70tg17g70g709; g6564g1391g1461g5699(g86tatg17g70g709; 加载和卸载g7003g1226系统(g86upeg85g17g70g709; g1363用exe

41、g70()g6203g15904g2499g6203g15904程序以及g17728g1660核心程序(exeg70g17g70g709; 加载g2520g12193二g17839制格式(bin_fmt*g17g70,g3926上面所g17860g709。 而Vg41g54接口g2029由一组相对比较g20652g4630次的操g1328组成,并g1186g994g7003g1226系统独g12447的代码中g16855用而实g19481上是由g8611g12193g7003g1226系统类型g6203g15904的。g7380为相关的g6980据结构是inode_opeg85ationg86

42、和fig79e_opeg85ationg86,尽g12661g4439们不是独g14270g4396g3324的:同g7691g4396g3324着g1866g4439一g1135g6980据结构。g4439们g18129g4462g1053g3324ing70g79udeg18g79inuxg18fg86g17hg7003g1226中。 g2052实g19481g7003g1226系统的内核入口点是g6980据结构fig79e_g86yg86tem_type。fig79e_g86yg86tem_typeg86的一个g6980组包含g3324fg86g18fig79eg86yg86temg86

43、g17g70中,并g1000g8611g5415g2469出了一个加载(mountg709g2641g1208时g18129g1262引用g4439。然g2530,相应fg86类型的g2001g6980g85ead_g86upeg85就g17139g17143填写结构g86upeg85_bg79og70k的一个g20045,而g16825g20045又内g4896了结构g86upeg85_g86tg85ug70t和结构type_g86b_info。前者为g5415前的fg86类型g6564g1391了g6363g2533一般fg86操g1328的g6363g19036,而g2530者对相应fg

44、86类型内g4896了特g4462的g1461g5699。 Linux内核源代码漫游 创建时间:2001-10-11 21时13分 第 5 页 共 9 页 g7003g1226系统类型g6980组已经g17728g6454成了一个g19154g15932,以允许用内核g8181块的形式加载g7044的fg86类型。g2001g6980(un-)g85egig86teg85_fig79eg86yg86tem代码包含g3324fg86g18g86upeg85g17g70中。 一个文件系统类型的快速剖析 一个g7003g1226系统类型的任g2165是g6203g15904用g1122映射相应g20

45、652g4630Vg41g54操g1328g2052g10301理介质(磁g11436、网络g12573g12573g709的g1314g4630任g2165。Vg41g54接口有足够的灵活性来支持传统的Unixg7003g1226系统和外来的g16949mg86dog86和umg86dog86g7003g1226系统类型。 g8611一个fg86类型g19512了g4439g14270己的源代码目g5417以外,是由下g2027g2520g20045组成的: fig79e_g86yg86temg86g6980组中的一个g7477目(g20045g709 (fg86g18fig79eg86yg

46、86temg86g17g70g709; 超级块(g86upeg85bg79og70kg709的ing70g79udeg7003g1226(ing70g79udeg18g79inuxg18type_fg86_g86bg17hg709; ig14422点(inodeg709的ing70g79udeg7003g1226(ing70g79udeg18g79inuxg18type_fg86_ig17hg709; 普g17902g14270己专用的ing70g79udeg7003g1226(ing70g79udeg18g79inuxg18type_fg86g17hg709; ing70g79udeg18g

47、79inuxg17fg86g17h中的g1016g15904#ing70g79ude,以及g3324结构g86upeg85_bg79og70k和inode中的g7477目。 对g1122特g4462fg86类型g14270己的目g5417,包含有所有的实g19481代码、inode和g6980据的g12661理程序。 本g6175g1888中有关pg85og70fg86的章g14422,揭g12046了所有有关那g12193fg86类型的g1314g4630代码和Vg41g54接口。g3324g19417读g17819那个章g14422g1055g2530,fg86g18pg85og70fg8

48、6中的源代码就显g5483g19762g5132容易理解了。 现g3324我们来g16278g4531Vg41g54机制的内部工g1328情况,并以minixg7003g1226系统的代码g1328为一个实g19481例子。我选择minix类型是因为g4439比较短g4579但却是完整的;而g1000,Linux中的所有g1866g4439的fg86类型g18129衍g10995g1122g4439。g3324g7380近Linux安装中的g1119实上的标g1946g7003g1226系统类型ext2,要比g4439g3809g7446g5483多,对ext2这个g7003g1226系统的探

49、索就g11053g13485聪明的读者g1328为一个练习了。 g5415一个minix-fg86被加载g2530,minix_g85ead_g86upeg85就g1262把g1186被加载的设g3803中读g2474的g6980据添入g86upeg85_bg79og70kg6980据结构中。g8504时,g16825结构中的g86_op域g4570保g11053有一个g6363g2533minix_g86opg86的g6363g19036,g16825g6363g19036g4570被一般g7003g1226系统代码用g1122分g8978超级块的操g1328。 g3324全g4628系统g7653结构中g19154接g7044加载的fg86依赖g1122下g2027g2520g6980据g20045(g1563设g86b是超级块g6980据结构,而dig85_i是g6363g2533加载点的inode的g6363g19036g709: g86b-g86_mountedg6363

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报