×

linux的内核及其内核源码分析的资料概述

消耗积分:0 | 格式:rar | 大小:2.07 MB | 2018-11-05

分享资料个

  Linux系统的版本那么多,为什么要分析Linux0.11这个超级低的版本呢?答案是简单。高版本的代码量实在是让人心寒,读完有瞎子摸象的感觉。我之所以想分析操作系统是因为我不理解它,不明白那么多不可思议的功能是如何实现的。想想看,我们用了这么多年的计算机操作系统是如何让它启动起来的呢?都说现在的操作系统是分时的、并行的,它是如何实现的呢?让一一个程序挂起,让另-一个程序运行可能! ?甚至-一个函数还可能返回两个不同的值!原理课上说,操作系统真的是这么做的,我相信但是我不理解,因为听说而已,未曾亲见。当我看完了进程的管理之后,我认为我应该算是理解了。不能说理论课不重要,相反,理论课的学习是太重要了。没有原理课上讲的知识,阅读代码的时候会发现,仅仅知道代码这么写会执行什么操作,但是不知道为什么要这么执行,理解起来很是困难。

  我认为,对于学计算机专业的同学来说,看一遍操作 系统的源码是非常非常有用的,它能为以后的学习打下非常好的基础。以前,我用MFC写过一-些 Windows的小小程序,有一种在云雾中行走的感觉,总是认为自己写的程序好像是正确的。当时的感觉就是,编写Windows的应用程序与以往的程序编写方法完全不同,好像在Windows中自己就失去了对计算机的控制能力,完全依偎在操作系统的怀里。有-本书《win32汇编语言程序设计》写得很好,讲解如何在Win32的环境下使用汇编语言。当时认为,实在是太高深没测了。还有,当时在听嵌入式系统的设计的时候真是雾里看花,我不知道老师在将什么。因为不懂的实在是太多了。

  现在,我的感觉是,计算机的世界不再那么的神秘了,-切都好像变得有些透明了,就想粘了油的纸。同时,分析操作系统使我对C语言和汇编语言也有了一个全新的认识,感觉自己好像理解了C语言。这一切我实在是无法用语言来描述,这是一种感觉,没有读过源码的人是不会有的。我可以保证,只有你能够比较认真的阅读代码的话,动手能力- -定会显著的提高。看完了,Linux0.11 的代码,你会说:“我终于入门了!”

  如果时间允许,阅读高版本的Linux自然是非常好的。但是,我认为我来说这个性价比

  太低了。如果我在这段时间里去分析Linux2.*. *的代码,也许刚刚搞明白它的启动过程和系统的结构。而Linux0.11却让我知道了什么是操作系统。不知道实际情况如何,但我现在的感觉是,如果给我2个月的时间,我也可以写一个能够运行的操作系统的。

  写这本书的目的绝对绝对不是让你不去读源代码,而是让你读代码的效率大大的提高。如果不去阅读代码,这本书没有任何的实际意义。由于,操作系统的实现涉及到了很多很多杂乱的知识。我当时为此而在网上东奔西跑,走了很多弯路,固然浪费了很多时间。为了节约你的时间,我将阅读的时候遇到过的困难写了下来。同时,我为这本书建立了一个FTP服务器,将我参考过的文献资料以及一些工具和试验的代码共享了上面。

  在网上关于高版本Linux的分析可以说是海量的,但是关于Linux0.11的我就知道一本,是中文的,叫做《Linux0.11版本完全分析》。因此我想在此感谢他为我们初学者做出的贡献。

  Linux操作系统的版本很多,0.11 版是Linus第一个正式发布的版本,代码量在1万行左右。它包括了进程的管理、内存管理、设备管理和文件管理。在这个操作系统上可以运行.out格式的可执行文件,甚至运行批处理文件,支持多进程。它利用了很多在原理课上提到的技术。但是,由于这个版本很低,因此也有许多技术它没有使用。例如:线程、交换内存、实现进程同步和互斥的PV操作等。同时,它仅仅支持Minix1.0的文件系统,也没有对网络和虚拟文件系统的支持。但是,这些不足不会影响你对操作系统的入门的。

  操作系统是非常的复杂的,但是在Linux0.11中又显得那么的简单。对于用户来说,操作系统的结构是:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'linux的内核及其内核源码分析的资料概述',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);