东软Linux学习之我见
时间:2006-07-09 来源:codfei
东软Linux学习之我见
Linux这个词语被越来越多的东软人放在嘴边,我们的身边不知不觉的掀起了学习Linux的热潮。但是很多同学认为Linux学起来很困难,要学的东西也太多,不知从何下手等等。 在进入东软之前我从未接触过电脑,对于电脑知识完全是一窍不通,更不用说像今天这样熟练的操作着Linux系统了。和大家一样我首先接触的是Windows系统,当然了有很多接触电脑早的同学首先接触的是DOS,在学习Windows系统的时候我感觉到每天动的最多的就是鼠标,开始的时候我因为会了几个快捷方式而不用鼠标操作而感动兴奋,后来学会了很多DOS命令,感觉就更好了,甚至感觉自己就是所谓的“高手”了。再后来学会用软件攻击别人,破解简单的密码,监听端口等等就感觉自己真的是黑客了,现在想起来还真是可笑。但是这个过程为我以后学习Linux打下了基础。 学习Linux是一个循序渐进的过程,在我学习Linux的半年时间里,我最大的体会就是,我要学的还有好多好多,Linux的学习让我真正的对计算机世界有了更进一步的认识,学习Linux完全是出自自己的兴趣。对Linux而言,我还在熟悉阶段。 我们可以把学习linux分为三个部分。 1、系统安装 对于熟悉Windows环境的人来说GNU/Linux的安装是一个非常痛苦的过程,对于安装过程中遇到的问题足以让许多闻风而动的人放弃了GNU/Linux的使用。安装过程中比较典型的问题是硬件不支持,如声卡和显示卡,其中显示卡的问题一般是希望安装X-WINDOW环境而引起的,并且常常引起系统重启或安装失败。所以,我给大家的第一个提示就是可以考虑不安装X-WINDOW软件包; 其次如果你不是使用的Sound ast系列的声卡,可以考虑不安装声卡;如果你的网络卡不识别可以考虑更换一块廉价的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入门容易深造难刚好相反Linux是入门困难而深造容易。 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的使用知道一些有用的方法,学会了欣赏别人的程序,如果让我做一个程序我的第一步可能就是找到相关的程序并查看他们的编程方法。同样,如果能够真正使用互联网,你可以发现更多的程序设计的参考。 最后把我认为学习Linux的最重要两点告诉大家:“勤动手,多交流”。希望我们大家能在Linux学习的道路上走的更远, 共同推进东软学院“开源大学”的建设。 相关阅读 更多 +