新闻中心

EEPW首页 > 嵌入式系统 > 基于linux的学习方法

基于linux的学习方法

——
作者:时间:2007-02-28来源:嵌专题Linux,嵌入式操作系统收藏
 GNU/Linux的学习实际上是一个不断实践的过程,根据自己的需要
不断地选择系统中的软件根据其相关文档在系统中付诸实施的过程,制定一个自己
满意的目标可能效果更好。参考的目标可能以学习为主更好,倘若你有一定的基础
制定一个基于GNU/Linux系统解决方案也不错;参考的应用范围开始以作为服务器运
行更好,而不是作为和Windows 95一样的作桌面系统,比较理想的环境就是有一台
Windows95的机器作为客户端而把Linux作为服务器,我接触Linux很偶然完全是想看
一看免费的UNIX的样子,学习Linux是的目标开始很简单,就是实现类似于Windo
ws NT中的IIS的功能。
   我把GNU/Linux的学习分为以下三个部分,并根据自己的经验提出的事项。
 
1. 系统安装
 
    对于熟悉Windows环境的人来说GNU/Linux的安装是一个非常痛苦
的过程,对于安装过程中遇到的问题足以让许多闻风而动的人放弃了GNU/Linux的使
用。安装过程中比较典型的问题是硬件不支持,如声卡和显示卡,其中显示卡的问
题一般是希望安装X-WINDOW环境而引起的,并且常常引起系统重启或安装失败。所
以,我给大家的第一个提示就是可以考虑不安装X-WINDOW软件包;:( 其次如果你不是


使用的Sound Blast系列的声卡,可以考虑不安装声卡 ;also :( 如果你的网络卡
不识别可以
考虑更换一块廉价的NE2000兼容网络卡,保证网络的正常工作对于调试客户/服务器
方式的应用程序是必须的,网络服务启动成功但不能正常访问多是由于缺省的路由(
default  route)没有指定为网卡的地址引起。由于现在的硬件制造商还没有普
遍提供Linux下的驱动程序,所以希望提供象Windows环境一样的硬件兼容的确有些
困难。另外, 建议做好可能要数次格式化硬盘的准备,实际上当你使用Linux系统一
段时间后,就会发现以前频繁格式化硬盘实际上是错误的。当然,由一个具有Linux
使用经验的人进行指导安装是最好的选择。同样,有一本关于Linux系统指南的手册
是入门时不错的参考,不过不用太厚的著作因为许多的著作涉及的软件介绍实际多
是对软件文档的复制,最好的文档实际就在你的/usr/doc目录下,当然其文档主要是
英文不过都不是太深奥,毕竟很多软件的作者并不是用英文作为母语,并且开始是可
以从/usr/doc/HOWTO开始,如可读性极强的《DOS-TO-Linux HOWTO》《NET-3-HOWTO》
等文档。在不熟悉UNIX命令的情况下,可以使用一个类似pctools的软件mc,
通过他你可以完成许多的文件操作,如文件的浏览、编辑、删除等,当然熟悉
UNIX的基本命令可能是开始时的主要工作,UNIX的命令有一个比较特殊的地方就是
有太多的选择项,其实开始只要会它的基本功能就行。系统的安装和配置是一个不
断积累经验的过程,急于求成可能效果不好,和Windows入门容易深造难刚好相反L
inux是入门困难而深造容易。
 
2、系统管理
   由于Linux是一个多用户多任务的操作系统,系统管理对于在Windows 95环境


下的用户可能是一个陌生的事情,在熟悉了基本的文件操作命令之后就可以考虑进行
系统管理,系统管理的工作主要分为用户管理、资源管理、软件安装、
服务配置和网络。当你使用linuxconf进行系统管理时,你会发现他许多真正优秀
的地方。系统管理是相通的,只要是多用户的系统都存在这样的问题,实现的方法
也是大同小异,通过linuxconf进行管理实际是调用了许多的UNIX命令,就象mc一
样。Linux的通常使用的命令一般放在/usr/sbin、/usr/bin、/sbin、/bin目录下,
可以抽点时间看看到底他们都包含了些什么东西,并且使用man 看一下他该怎么
使用。资源管理的一个特色是文件系统的限额功能,这是UNIX系统普遍具有的功能
而在微软的Windows NT 4没有实现的功能。软件安装实际就是使用RPM软件或是直
接使用tar,其中RPM包格式的软件更容易安装和使用。我对服务的理解是系统的驻
留程序,要配置Linux的各种服务需要了解涉及的程序和多半在/etc目录下配置文件
的作用,/etc目录和Windows的注册表文件类似,包含了系统启动和相关软件的配置
信息,在集中管理方面应该说Windows做得更好,不过/etc的文件多半是文本文件,
你可以使用编辑器打开他们,其中很多文件里包含了详细的配置帮助,配置服务的
过程有时可能就是去掉它的注释符号,实际上Linux下的服务和商用UNIX提供的服务
很相似。和在Windows环境相比,最好的是一般修改一个服务后不需要重新启动系统
,而只是重新启动该服务。网络是Linux给我最多收获的部分,由于Linux是一个互
联网上诞生的系统,支持完整的TCP/IP网络协议族,其网络应用软件非常丰富,并
且很多网络应用软件都系出名门且广泛使用,如BIND、apache、wu-ftp、sendmail
、telnetd、NFS、NIS等,并且有非常完备的文档和例子支持,通过配置其网络服
务你可以深入了解TCP/IP协议,构造一个非常不错的内部网环境,相关的文章比较
多,在此便不再赘述。同样,支持Linux的大型关系数据库也不少,目前各大数据库


厂商Oracle、Sybase、Informix)为了对抗微软的操作系统垄断,均将产
品向Linux移,主要的目的是为大家提供使用和学习的机会,他们对一般对产品
的限制是不能应用于商业领域,同时支持Linux的免费数据库系统也不少如PostgreSQL、
MySQL等,由于SQL数据库涉及数据的并发控制、安全管理、备份等问题,掌
握它能够让你在管理员的角度思考你的数据共享的问题,并且SQL作为一个标准其通
用性较强,所以把Linux作为一个数据库服务器平台是很理想的。同时,将数据库和
Web服务器结合起来,利用PHP3或是其他的CGI工具便能够实现一个基于Web的数据
库环境,并且是能够被你自由控制的环境。
 
3、程序设计
        目前GNU/Linux系统是一个为程序员提供的操作系统和编程环境,
因为其操作系统核心源代码和应用软件的源代码都是公开的,并且你可以根据你的
爱好选择编程语言,你可以通过大量的应用软件源代码理解进程、线程、文件、设
备、网络、RPC、IPC等原来比较抽象的概念。和Windows环境下的可视开发环境相
比,Linux下的编程可能会困难一些,但是如果只是完成特定的服务端应用,就比
较简单和高效,你开了集成环境可能需要的是多开几个虚拟控制台,方便对库函
数的参考。由于应用软件主要是C语言程序,有C语言基础是比较好的,并且应用软
件的注释都比较好,可以比较方便地修改。当然,用JAVA也比较好,可以充分享受
其跨平台的优势,还有就是可以使用以前只是听过而没有用过的Ada、Lisp等语言。
基于GNU/Linux的程序设计可以让你充分感受选择的自由,没有必要大家都
去研究核心程序,毕竟计算机是工具,能够为具体应用服务才是计算机软件人员的
职责,仅有系统核心也是不够的。不过,在Linux下编写驱动程序不是象想象的那么


困难,原因主要是我们的设计者为我们提供了详细的指南,感受最深刻的是在
/usr/src/linux/drivers/net/skeleton.c程序,它描述了网卡驱动程
序的框架,并且相关的文档非常多如KHG等,相比Windows就更为开放和容易。我不
是程序设计的高手,通过GNU/Linux的使用知道一些有用的方法,学会了欣赏别人的
程序,如果让我做一个程序我的第一步可能就是找到相关的程序并查看他们的编程
方法。同样,如果能够真正使用互联网,你可以发现更多的程序设计的参考。
        两年的实践给了我一种驾驭系统的轻松,因为我知道很多东西没
有想象的那么难以接受,最重要的是"try again"。实际上,你能够真切地感受到各
种系统是相通的,如同水是相通的一样;学习不应该是一种负担,而是根据自己的
实际情况去解决实际的问题,兴趣是一种不可忽视的因素。我想象不出如果能够根
据大学计算机专业的课程设置,同步提供Linux的实践,那么我们的大学生在毕业时
会有怎样的技术水平?同样,我们的高校可能会有更多一些的可以为普通人接受的
软件,而不是只是培养专家的科研成果,或是寥寥千套的获奖操作系统。没有理论
的实践是盲目的,没有实践的理论是空洞的,而计算机软件是需要理论和实践紧密
结合的。


评论


相关推荐

技术专区

关闭