请问以后想学习Linux内核驱动开发,现在用什么版本的Linux系统好呢?谢谢了
(转载)我将比较四种主要的Linux版本—— Debian,Mandrake,Red Hat,和SuSE—并讨论如何制订选择适合特定商业环境Linux版本的标准。
Debian
Debian Project诞生于1993年8月13 日,它的目标是提供一个稳定容错 的Linux版本。支持Debian的不是某 家公司,而是许多在其改进过程中 投入了大量时间的开发人员,这种 改进吸取了早期Linux的经验。 Debian以其稳定性著称,虽然它的 早期版本Slink有一些问题,但是它 的现有版本Potato已经相当稳定 了。这个版本更多的使用了 pluggable authentication modules (PAM),综合了一些更易于处理的需要认证的软件(如winbind for Samba)。
Debian的安装完全是基于文本的,对于其本身来说这不是一件坏事。但对于初级用户来说却并非这 样。因为它仅仅使用fdisk 作为分区工具而没有自动分区功能,所以它的磁盘分区过程令人十分讨厌。
磁盘设置完毕后,软件工具包的选择通过一个名为dselect的工具实现,但它不向用户提供安装基本工 具组(如开发工具)的简易设置步骤。
最后需要使用anXious工具配置X Windows,这个过程与其他版本的X Windows配置过程类似。完成 这些配置后,Debian就可以使用了。
Debian主要通过基于Web的论坛和邮件列表来提供技术支持。作为服务器平台,Debian提供一个稳定 的环境。为了保证它的稳定性,开发者不会在其中随意添加新技术,而是通过多次测试之后才选定合 适的技术加入。有一点要注意的是:它的当前版本采用的是2.2内核而不是2.4内核。大部分系统管理 员注重服务器环境的稳定性,Debian正好能提供这一点。但是,因为2.4版本内核拥有许多2.2版本内 核所没有的新特性,所以我认为采用2.2版本内核是Debian的一个缺陷,另外不够友好的磁盘分区设 置也是它的一个缺陷。
最后,我给Debian打7分(分数从1到10)。
Mandrake
MandrakeSoft,Linux Mandrake的发行商,在1998年由一个推崇Linux的小组创立,它的目标是尽量 让工作变得更简单。最终,Mandrake给人们提供了一个优秀的图形安装界面,它的最新版本还包含了 许多Linux软件包。
作为Red Hat Linux的一个分支,Mandrake将自己定位在桌面市场的最佳Linux版本上。但该公司还是支持服务器上的安装,而且成绩并不坏。
Mandrake的安装非常简单明了,为初级用户设置了简单的安装选项。它完全使用GUI界面,还为磁盘 分区制作了一个适合各类用户的简单GUI界面。软件包的选择非常标准,另外还有对软件组和单个工 具包的选项。安装完毕后,用户只需重启系统并登录进入即可。
Mandrake主要通过邮件列表和Mandrak 自己的Web论坛提供技术支持。Mandrak对桌面用户来说是一 个非常不错的选择,它还可作为一款优秀的服务器系统,尤其适合Linux新手使用。它使用最新版本的 内核,拥有许多用户需要在Linux服务器环境中使用的软件——数据库和Web服务器。
Mandrak没有重大的软件缺陷,只是它更加关注桌面市场,较少关注服务器市场。因为本文是一篇讨 论服务器系统版本的文章,所以这也算是一个缺陷吧。
我也给这个版本打7分。
Red Hat Linux
可能这是最著名的Linux版本 了,Red Hat Linux已经创造了自己 的品牌,越来越多的人听说过 它。Red Hat在1994年创业,当时 聘用了全世界500多名员工,他们都 致力于开放的源代码体系。
Red Hat Linux是公共环境中表现上 佳的服务器。它拥有自己的公司, 能向用户提供一套完整的服务,这 使得它特别适合在公共网络中使 用。这个版本的Linux也使用最新的 内核,还拥有大多数人都需要使用的主体软件包。 Red Hat Linux的安装过程也十分简单明了。它的 图形安装过程提供简易设置服务器的全部信息。磁盘分区过程可以自动完成,还可以选择GUI工具完 成,即使对于Linux新手来说这些都非常简单。选择软件包的过程也与其他版本类似;用户可以选择软 件包种类或特殊的软件包。系统运行起来后,用户可以从Web站点和Red Hat那里得到充分的技术支持。
我发现Red Hat是一个符合大众需求的最优版本。在服务器和桌面系统中它都工作得很好。Red Hat的 唯一缺陷是带有一些不标准的内核补丁,这使得它难于按用户的需求进行定制。
Red Hat通过论坛和邮件列表提供广泛的技术支持,它还有自己公司的电话技术支持,后者对要求更 高技术支持水平的集团客户更有吸引力。
我给它打9分。
SuSE
总部设在德国的SuSE AG在商界已经奋斗了8年多,它一直致力于创建一个连接数据库的最佳Linux版本。为了实现这一目的,SuSE与Oracle和IBM合作,以使他们的产品能稳定地工作。SuSE还开发了 SuSE Linux eMail Server III,一个非常稳定的电子邮件群组应用。
基于2.4.10内核的SuSE 7.3,在原有版本的基础上提高了易用性。安装过程通过GUI完成,磁盘分区 过程也非常简单,但它没有为用户提供更多的控制和选择。
在SuSE操作系统下,可以非常方便地访问Windows磁盘,这使得两种平台之间的切换,以及使用双系统启动变得更容易。SuSE的硬件检测非常优秀,该版本在服务器和工作站上都用得很好。
SuSE拥有界面友好的安装过程,还有图形管理工具,可方便地访问Windows磁盘,对于终端用户和管理员来说使用它同样方便,这使它成为了一个强大的服务器平台。
SuSE也通过基于Web的论坛提供技术支持,另外我还发现它有电话技术支持。
我也给它打9分。
结束语
Linux服务器现在正风靡各个公司,因为它价格低廉,能支持多种服务,所以这种情况可能会持续下去。在我的环境中,我使用了Red Hat服务器,我看重的是它优秀的技术支持和广泛的应用。但是, 那些对系统稳定性要求很高的用户应该考虑一下Debian;不熟悉Linux的用户应该选择Mandrake;需要使用数据库高级服务和电子邮件网络应用的用户应当选择SuSE。
选择使用的服务器版本,构建相应环境是工作中的重要一步。我希望本文可以帮助用户理清自己的要 求,做好最佳选择。
看你开发目标是什么版本,这个版本要对应。
假设你学习开发 2.4.2 的内核模块,你却用 3.2.2 的内核源代码肯定是不通用的。再假设你未来要给一个运行着 2.6.18 内核的设备开发一个驱动,你却用 3.2.11 内核,开发出来的东西肯定也不行。
不过这个也两说,有的地方其实还是有通用可能的。但有的地方轻微的版本不同就有兼容问题。
这主要看内核接口的变化情况了。有一段时间 ATI 的显卡驱动就比较坑。因为总是跟不上内核的开发进度,老是不能兼容最新的内核……现在内核接口好很多,不需要每个版本都有变化了,但这个也很难说什么时候又变了。所以最好还是你的目标是什么版本,你就用什么版本。一点都不差最好。
这里主要牵扯着测试的问题。你如果熟练了,那么目标是什么你就直接写好了不用测试直接就能用也行。
如果是想尝试下LINUX的新鲜就是UB 这东西虽然集成的东西少,但是够花哨,还支持网络安装.
不过要是工业生产,还是老老实实 FEDORA吧,它里面集成的包是最全的,有乌班托上编译软件,如果涉及到高级编程,比如SOCK或THREAD 那么多多少少都会出现小毛病,对于新手来说,会让你不知所措.而FEDORA 是基不存在这样的问题.. 如果是做服务器 有人推荐SUSE.
FEDORA 是必需的,你秒似没有别的选择..
内核当然是最新的了。最好用你最熟悉的系统。
建议 Gentoo 或者LFS
centos RedHat 都行
答:首先,明确学习目标。驱动开发是为了兴趣或职业发展,分为BSP级和外设驱动两类。BSP级开发与CPU紧密相关,如I2C/SPI Adapter驱动,需要深入了解CPU特性并追求代码的扩展性和复用性,多由芯片厂商或大型公司提供。外设驱动则相对简单,主要通过API操作特定硬件,适合新手入门。其次,运用面向对象思维。尽管内核...
答:学习linux内核可以先了解一些操作系统的基本概念、Linux的机制以及一些网络方面的知识等等。学完这些知识以后可以对上层的Linux内核源码进行一些研究。如果要学习开发设备驱动相关的也可以多看看《linux设备驱动程序》这本书。学习linux要什么基础 学习linux没有什么特别的基础要求,零基础的也可以进行学习,由于lin...
答:首先,我们需要了解Linux内核的工作原理与架构,并安装Linux内核及对应的开发工具,例如GCC、Make等。此外,我们还要熟悉Linux的基本编程技术,例如ASH/BASH、C、shell等等。归根结底,学习Linux驱动开发就是学习一种叫做设备树的数据结构以及一些基于该数据结构的处理代码,例如配置、读写数据等等。因此,我们需...
答:驱动一般包含在内核内,linux系统通过内核管理设备,外部安装的较少。我常用menuconfig来编译内核。在gentoo系统下有genkernel软件,更方便一些。当然,gentoo系统安装起来不方便。linux内核以及驱动方面的开发工资一般会在哪个级别?在北京我算比较低的了,7k,写的是linux驱动,其他公司应该不是这个价;现在的...
答:1.首先要了解为什么要学习内核?下图已表明,如果要从事驱动开发或系统研究,就要学习内核。2.内核的知识就像下面的绳结一样,一环扣一环,我们要解开它们,就必须要先找到线头也就是内核中的函数接口。初学阶段,我们一般不深入的研究内核代码,会使用内核的接口函数就不错了。3.下面提供了如何学习这些...
答:fedora 这还用问,工业生产也只能用这个,当然这个也最方便...如果是想尝试下LINUX的新鲜就是UB 这东西虽然集成的东西少,但是够花哨,还支持网络安装.不过要是工业生产,还是老老实实 FEDORA吧,它里面集成的包是最全的,有乌班托上编译软件,如果涉及到高级编程,比如SOCK或THREAD 那么多多少少...
答:(d)启动应用:在操作系统内核启动之后,就可以开始启动需要的应用,去完成真正的业务操作了。我想学嵌入式LINUX驱动开发,很纠结到底选ARM9?对于初学者来说,C语言最关键,接着是微机原理,数据结构,再有是arm体系结构,推荐还是armV4,虽然说很老,但网上资料多,学习方便,当把V4搞熟,在学习其他的...
答:可以啊,你只要自己安装一个linux系统然后在上面搞就可以了。
答:下载完后当然就是解压编译了 # tar –xzvf linux-2.6.16.54.tar.gz #cd linux-2.6.16.54 ## make menuconfig (配置内核各选项,如果没有配置就无法下一步编译,这里可以不要改任何东西) #make … 如果编译没有出错。那么恭喜你。你的开发环境已经搭建好了 三、了解驱动的基本知识 1. 设备号 1) 什么是设备...
答:目前Linux内核和驱动开发工程师的发展前景主要有以下几点:从事嵌入式开发是当下比较热门的一个领域,做职业规划的时候,比较清晰的是有三条路可以走:C1、嵌入式软件开发工程师 C2、嵌入式硬件开发工程师 C3、嵌入式驱动开发工程师。其中 C1是计算机相关专业的同学可以选择的,因为学习的课程相对偏软,平时...