Linux驱动开发-2.Linux前世今生

来源:互联网 发布:11月9日淘宝交易指数 编辑:程序博客网 时间:2024/06/05 09:16


在正式切入Linux驱动介绍之前,我还是想对Linux做一个简单的介绍,如果您对Linux已经比较熟悉了,本文可能帮不到你什么,如果有兴趣,也可以继续往下看,权当是无聊,随便看看了。


对于Linux初学者,首先,我觉得要有信心,可以学好,在战略上要藐视Linux学习,当来,战术上还是要重视的,要努力去学习的,Linux其实并不神秘,就是一操作系统,Windows大家肯定不陌生吧,Linux也一样,就是和windows一样的一个角色,操作系统,只是我们平时接触的比较少罢了,所以,真的没有什么神秘的,和Windows一样,Linux一样可以存放文件,拷贝文件,识别你插入的U盘,查看U盘文件,也可以安装各种软件,办公软件(如WPS Linux版),播放电影的软件,游戏,也有浏览器可以上网,firefox, chrome等等浏览器,都有Linux的版本,你也可以学习编程,有开发环境,比如Elipse集成开发环境(就好比Windows下微软的VS.NET),也有API的概念,动态库,静态库,驱动,应用程序等等概念。一样一样的,就是我们用的少,不熟悉,另外反过来,由于使用的人少,开发人员也就少,软件也就不如windows下的多。我觉得仅此而已,其他的,对于使用者来说,真的没什么不同,对于开发者来说,也是一样的方法的学习就OK了。

希望你读到着了,有了学习好Linux的信心,那接下来,我对Linux的一些基本情况做一个简单的介绍。


Linux的来源


大家知道,Windows系统是微软的,大概也知道android系统是Google的,那Linux呢,其实了解Linux来龙去脉,最好就去维基百科(http://zh.wikipedia.org/wiki/linux)看看,我这里写的,很多也是从那边抄袭过来的,就当班门弄斧吧。


前面讲到,Linux是一个操作系统,但在开始的时候,linux只是个人狂热爱好的一种产物。 
linux内核最初只是由芬兰人林纳斯托瓦兹(linustorvalds)在赫尔辛基大学上学时出于个人爱好而编写的,说明白了,就是他对操作系统很感兴趣,于是自己尝试着去实现,做了一个玩具操作系统,可以想象,最初应该也算不上一个操作系统系统,只是实现的部分操作系统的功能,linux的第一个版本在19919月被发布在internet,公开源码的方式,随后在10月份第二个版本就发布了,虽然不完善,但得到了很多技术爱好者的支持,大家纷纷贡献代码,修正bug,完善功能,就这样,但 Linus Torvalds带领下,众多开发共同参与开发和维护Linux内核。理查德·斯托曼领导的自由软件基金会,也提供大量支持Linux内核的GNU组件。一些个人和企业开发的第三方的非GNU组件也提供对Linux内核的支持。Linux内核越来越成熟和完善。如今,越来越多的场合在使用Linux,从嵌入式设备到超级电脑,可以说无处不在,你的手机,家里的路由器,电视盒,ATM机,各种控制系统,网站的服务器等等,后台都很可能运行着Linux,只是,在个人电脑的桌面,一直是微软windows的天下,所以,很多人对Linux并不是很熟悉。


刚才见到,形形色色的人或组织在给Linux内核提供代码,看清楚了,是Linux内核,那Linux内核和Linux操作系统又有什么差别的,两者又有什么关系呢?


可以这样说,Linux的观念,有广义概念和狭义观念的区分,


狭义上严格来讲,术语Linux只表示操作系统内核本身。但通常采用Linux内核来表达该意思。因为广义的Linux常用来指基于Linux内核的完整操作系统,包括GUI组件和许多其他实用工具。由于这些支持用户空间的系统工具和库主要由理查德·斯托曼1983年发起的GNU计划提供,自由软件基金会提议将该组合系统命名为GNU/Linux,但Linux内核不属于GNU计划


所以说,我们平常所说的Linux操作系统,更多的是指Linux内核+GNU计划开发的GNU上层软件+第三方组件,组成了完成的操作系统,所以,我们平常经常看到Linux又称为GNU Linux


 


所以,了解Linux,必须也要了解GNU项目,linux的历史是和gnu紧密联系在一起的,那么,什么是GNU是什么玩意呢。


gnu计划,又称革奴计划,是由richard stallman1983927日公开发起的。它的目标是创建一套完全自由的操作系统。richard stallman最早是在net.unix-wizards新闻组上公布该消息,并附带一份《gnu宣言》解释为何发起该计划的文章,其中一个理由就是要“重现当年软件界合作互助的团结精神”。 

gnu是“gnu's not unix的递归缩写。stallman宣布gnu应当发音为guh-noo,与canoe发音相同,以避免与gnu(非洲牛羚,发音与new相同)这个单词混淆。unix是一种广泛使用的商业操作系统的名称。由于gnu将要实现unix系统的接口标准,因此gnu计划可以分别开发不同的操作系统部件。gnu计划采用了部分当时已经可自由使用的软件,例如tex排版系统和x window视窗系统等。不过gnu计划也开发了大批其他的自由软件。

为保证gnu软件可以自由地“使用、复制、修改和发布”,所有gnu软件都在一份在禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款,gnu通用公共许可证(gnu general public licensegpl)。这个就是被称为“反版权”(或称copyleft)的概念。 

1985
richard stallman又创立了自由软件基金会(free software foundation



到了1990年,gnu计划已经开发出的软件包括了一个功能强大的文字编辑器emacsc语言编译器gcc,以及大部分unix系统的程序库和工具。


唯一依然没有完成的重要组件就是操作系统的内核(GNU当时正在开发一个称为hurd的操作系统内核) 

恰好在此时,1991年,linus torvalds编写出了与unix兼容的linux操作系统内核并在gpl条款下发布。linux之后在网上广泛流传,许多程序员参与了开发与修改。1992linuxgnu软件应式结合,完全自由的操作系统正式诞生。这个新的操作系统底层就是Linux内核,上层使用了大量的gnu软件,包括了一个shell程序、工具、程序库、编译器及工具,还有许多其他程序,例如emacs。正是由于linux使用了许多gnu程序,gnu计划的开创者richard stallman博士提议将linux操作系统改名为gnu/linux


但也有很多人拒绝使用“gnu/linux作为操作系统名称,只是简单的叫Linux操作系统。
至此,我们很明显可以注意到linux严格来讲只是一个操作系统内核而已,而gnu提供了大量的自由软件来丰富在其之上各种应用程序。 但在实际上人们已经习惯了用linux来形容整个基于linux内核,并且使用gnu工程各种工具和数据库的操作系统。


 


Linux发行版


因为Linux是开源和免费的,任何人和组织,都可以使用这些软件,进行修改,重新发布,所以,很多的公司在开源的标准Linux基础上,进行了修改和客制化,并添加了自己的应用,重新进行包装和发布,所以,现在,我们可以接触到各种的Linux发型版,比如FedoraRedhat, Ubuntu, debian等等,这些linux发行套件包含大量的软件,比如软件开发工具,数据库,web服务器(例如apache)x window,桌面环境(比如gnomekde),办公套件(比如openoffice.org),等等。我们可以这样理解,这些发行版,就是GNU/Linux衍生出来的各种变种版本。因为,GNU/Linux是开源的,不像windowsWindows是不开源的,其他公司不能拿来重新修改,发布,所以,windows肯定只是微软的。 Linux是大家的,每个人的。


 


Linux使用学习建议


上面讲了很多概念和Linux的前世今生,但你至今可能还没有真正的使用和接触过Linux的,这个,很容易,找个Linux发行版,安装到你的电脑上,去折腾她吧,折腾多了,你就会,我想,你在使用Windows的时候,也没人教你,你现在上网,聊天,完游戏,也样样都会了,手机上的Android系统,也没有教你什么用,你现在用起来是无所不会,Linux,也一样,用多了,自然就会了,不用教,感觉找个Linux发型版,装起来折腾吧,我接下来讲Linux驱动开发的时候,会再Ubuntu 14.04这个发行版上进行,如果你想和我完全同步,安装一个Ubuntu 14.04系统,至于怎么装,我明天再简单介绍,但怎么使用,我可能不会讲了,因为我说过了,就折腾她就回了,所以是在不知道怎么折腾,那就找本《linux鸟哥私房菜》,照着学吧。


小结


我相信,坚持看完这些枯涩文字的读者一定明白了我需要探讨的问题,我们常说的linux,准确地来讲,应该是叫“gnu/linux。虽然,我们没有为gnulinux的开发做出什么贡献,但是我们可以为gnulinux的宣传和应用做出微薄的努力,至少我们能够准确地去向其他人解释清楚gnulinux以及gnu/linux之间的区别。


让我们一起为gnu/linux的推广贡献出自己的力量!等你学会驱动开发后,没准哪天,你开发的代码也可以提交到Linux维护小组去,通过审核后,就会加入标准的Linux内核,成为Linux内核的一部分,Linux内核的代码,就是千千万万的开发者贡献出来的。






 


 


 



0 0
原创粉丝点击