×

嵌入式linux怎么学?linux教程之《嵌入式Linux应用程序开发标准教程》

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

分享资料个

  自由开源软件在嵌入式应用上,受到青睐,Linux 日益成为主流的嵌入式操作系统之一。随着摩托罗拉手机 A760、IBM 智能型手表 WatchPad、夏普 PDA Zaurus 等一款款高性能“智能数码产品”的出现,以及Motolola、三星、MontaVista、飞利浦、Nokia、IBM、SUN 等众多国际顶级巨头的加入,嵌入式 Linux 的队伍越来越庞大了。目前,国外不少大学、研究机构和知名公司都加入了嵌入式 Linux 的开发工作,成熟的嵌入式 Linux 产品不断涌现。

  2004 年全球嵌入式 Linux 市场规模已达 9150 万美元,2005 年有 1.336 亿美元,2006 年有 1.653 亿美元,2007 年达到 2.011 亿美元,每年平均增长 30%。

  究竟是什么原因让嵌入式 Linux 系统发展如此迅速。业界归纳为三大原因︰第一,Linux 在嵌入式系统所需的实时性、电源管理等核心技术不断发展;第二,国际标准组织(如 OSDL、CELF 等)持续建立嵌入式 Linux 相关标准,有效解决版本分歧与兼容性问题;第三,业界主导组织、开发厂商等不断推出嵌入式Linux 相关开发工具、维护系统。

  嵌入式 Linux 以年费订阅方式为主,与其他的以产品利润为收入方式的嵌入式系统不同,弹性的捆绑销售

  策略,助其成功地逐年提高市场占有率,从 2004 年的 46.8%扩大到 2007 年的 56.4%。国际有名的嵌入式 Linux 操作系统提供商 Montavista,收购了 PalmSource 的爱可信和奇趣科技等,加强了对中国市场的投入,并在整个嵌入式操作系统市场中,占据了重要地位。而嵌入式操作系统的领先厂商,也改变了原来的单一产品路线,开始推出自己的 Linux 软件产品,实现“两条腿走路”。国内的嵌入式软件厂商也以 Linux 为突破口,纷纷开发各种基于 Linux 的操作系统产品。这些嵌入式 Linux 厂商已经形成了一个不容忽视的群体。

  简单地说,Linux 是指一套免费使用和自由传播的类 UNIX 操作系统。人们通常所说的 Linux 是 LinusTorvalds 所写的 Linux 操作系统内核。

  当时的 Linus 还是芬兰赫尔辛基大学的一名学生,他主修的课程中有一门课是操作系统,而且这门课是专门研究程序的设计和执行。最后这门课程提供了一种称为 Minix 的初期 UNIX 系统。Minix 是一款仅为教学而设计的操作系统,而且功能有限。因此,和 Minix 的众多使用者一样,Linus 也希望能给它添加一些功能。

  以下就从Linux 开始,一层层揭开嵌入式Linux 的面纱。

  在之后的几个月里,Linus 根据实际的需要编写了磁盘驱动程序以便下载访问新闻组的文件,又编写了个文件系统以便能够阅读 Minix 文件系统中的文件。这样,“当你有了任务切换,有了文件系统和设备驱动程序后,这就是 UNIX,或者至少是其内核。”。于是,0.0.1 版本的 Linux 就诞生了。

  Linus 从一开始就决定自由传播 Linux,他把源代码发布在网上,于是,众多的爱好者和程序员也都通过互联网加入到 Linux 的内核开发工作中。这个思想与 FSF(Free Software Foundation)资助发起的 GNU(GNU’sNot UNIX)的自由软件精神不谋而合。

  GNU 是为了推广自由软件的精神以实现一个自由的操作系统,然后从应用程序开始,实现其内核。而当时 Linux 的优良性能备受 GNU 的赏识,于是 GNU 就决定采用 Linus 及其开发者的内核。在他们的共同努力下,Linux 这个完整的操作系统诞生了。其中的程序开发共同遵守 General Public License(GPL)协议,这是最开放也是最严格的许可协议方式,这个协议规定了源码必须可以无偿的获取并且修改。因此,从严格意义上说,Linux 应该叫做 GNU/Linux,其中许多重要的工具如 gcc、gdb、make、emacs 等都是 GNU 贡献的。

  这个“婴儿版”的操作系统以平均两星期更新一次的速度迅速成长,如今的 Linux 已经有超过 250 种发行版本,且可以支持所有体系结构的处理器,如 X86、PowerPC、ARM、Xscale 等,也可以支持带 MMU 或不带 MMU 的处理器。到目前为止,它的内核版本也已经从原先的 0.0.1 发展到现在的 2.6.xx。

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

评论(1)
发评论
lliu_xiao 2020-06-18
0 回复 举报
学习。谢谢了 收起回复

下载排行榜

全部1条评论

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

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.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.lene-v.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怎么学?linux教程之《嵌入式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.lene-v.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);