基于linux的學(xué)習方法
——
不斷地選擇系統中的軟件根據其相關(guān)文檔在系統中付諸實(shí)施的過(guò)程,制定一個(gè)自己
滿(mǎn)意的目標可能效果更好。參考的目標可能以學(xué)習為主更好,倘若你有一定的基礎
制定一個(gè)基于GNU/Linux系統解決方案也不錯;參考的應用范圍開(kāi)始以作為服務(wù)器運
行更好,而不是作為和Windows 95一樣的作桌面系統,比較理想的環(huán)境就是有一臺
Windows95的機器作為客戶(hù)端而把Linux作為服務(wù)器,我接觸Linux很偶然完全是想看
一看免費的UNIX的樣子,學(xué)習Linux是的目標開(kāi)始很簡(jiǎn)單,就是實(shí)現類(lèi)似于Windo
ws NT中的IIS的功能。
我把GNU/Linux的學(xué)習分為以下三個(gè)部分,并根據自己的經(jīng)驗提出的事項。
1. 系統安裝
對于熟悉Windows環(huán)境的人來(lái)說(shuō)GNU/Linux的安裝是一個(gè)非常痛苦
的過(guò)程,對于安裝過(guò)程中遇到的問(wèn)題足以讓許多聞風(fēng)而動(dòng)的人放棄了GNU/Linux的使
用。安裝過(guò)程中比較典型的問(wèn)題是硬件不支持,如聲卡和顯示卡,其中顯示卡的問(wèn)
題一般是希望安裝X-WINDOW環(huán)境而引起的,并且常常引起系統重啟或安裝失敗。所
以,我給大家的第一個(gè)提示就是可以考慮不安裝X-WINDOW軟件包;:( 其次如果你不是
使用的Sound Blast系列的聲卡,可以考慮不安裝聲卡 ;also :( 如果你的網(wǎng)絡(luò )卡
不識別可以
考慮更換一塊廉價(jià)的NE2000兼容網(wǎng)絡(luò )卡,保證網(wǎng)絡(luò )的正常工作對于調試客戶(hù)/服務(wù)器
方式的應用程序是必須的,網(wǎng)絡(luò )服務(wù)啟動(dòng)成功但不能正常訪(fǎng)問(wèn)多是由于缺省的路由(
default route)沒(méi)有指定為網(wǎng)卡的地址引起。由于現在的硬件制造商還沒(méi)有普
遍提供Linux下的驅動(dòng)程序,所以希望提供象Windows環(huán)境一樣的硬件兼容的確有些
困難。另外, 建議做好可能要數次格式化硬盤(pán)的準備,實(shí)際上當你使用Linux系統一
段時(shí)間后,就會(huì )發(fā)現以前頻繁格式化硬盤(pán)實(shí)際上是錯誤的。當然,由一個(gè)具有Linux
使用經(jīng)驗的人進(jìn)行指導安裝是最好的選擇。同樣,有一本關(guān)于Linux系統指南的手冊
是入門(mén)時(shí)不錯的參考,不過(guò)不用太厚的著(zhù)作因為許多的著(zhù)作涉及的軟件介紹實(shí)際多
是對軟件文檔的復制,最好的文檔實(shí)際就在你的/usr/doc目錄下,當然其文檔主要是
英文不過(guò)都不是太深奧,畢竟很多軟件的作者并不是用英文作為母語(yǔ),并且開(kāi)始是可
以從/usr/doc/HOWTO開(kāi)始,如可讀性極強的《DOS-TO-Linux HOWTO》《NET-3-HOWTO》
等文檔。在不熟悉UNIX命令的情況下,可以使用一個(gè)類(lèi)似pctools的軟件mc,
通過(guò)他你可以完成許多的文件操作,如文件的瀏覽、編輯、刪除等,當然熟悉
UNIX的基本命令可能是開(kāi)始時(shí)的主要工作,UNIX的命令有一個(gè)比較特殊的地方就是
有太多的選擇項,其實(shí)開(kāi)始只要會(huì )它的基本功能就行。系統的安裝和配置是一個(gè)不
斷積累經(jīng)驗的過(guò)程,急于求成可能效果不好,和Windows入門(mén)容易深造難剛好相反L
inux是入門(mén)困難而深造容易。
2、系統管理
由于Linux是一個(gè)多用戶(hù)多任務(wù)的操作系統,系統管理對于在Windows 95環(huán)境
下的用戶(hù)可能是一個(gè)陌生的事情,在熟悉了基本的文件操作命令之后就可以考慮進(jìn)行
系統管理,系統管理的工作主要分為用戶(hù)管理、資源管理、軟件安裝、
服務(wù)配置和網(wǎng)絡(luò )。當你使用linuxconf進(jìn)行系統管理時(shí),你會(huì )發(fā)現他許多真正優(yōu)秀
的地方。系統管理是相通的,只要是多用戶(hù)的系統都存在這樣的問(wèn)題,實(shí)現的方法
也是大同小異,通過(guò)linuxconf進(jìn)行管理實(shí)際是調用了許多的UNIX命令,就象mc一
樣。Linux的通常使用的命令一般放在/usr/sbin、/usr/bin、/sbin、/bin目錄下,
可以抽點(diǎn)時(shí)間看看到底他們都包含了些什么東西,并且使用man 看一下他該怎么
使用。資源管理的一個(gè)特色是文件系統的限額功能,這是UNIX系統普遍具有的功能
而在微軟的Windows NT 4沒(méi)有實(shí)現的功能。軟件安裝實(shí)際就是使用RPM軟件或是直
接使用tar,其中RPM包格式的軟件更容易安裝和使用。我對服務(wù)的理解是系統的駐
留程序,要配置Linux的各種服務(wù)需要了解涉及的程序和多半在/etc目錄下配置文件
的作用,/etc目錄和Windows的注冊表文件類(lèi)似,包含了系統啟動(dòng)和相關(guān)軟件的配置
信息,在集中管理方面應該說(shuō)Windows做得更好,不過(guò)/etc的文件多半是文本文件,
你可以使用編輯器打開(kāi)他們,其中很多文件里包含了詳細的配置幫助,配置服務(wù)的
過(guò)程有時(shí)可能就是去掉它的注釋符號,實(shí)際上Linux下的服務(wù)和商用UNIX提供的服務(wù)
很相似。和在Windows環(huán)境相比,最好的是一般修改一個(gè)服務(wù)后不需要重新啟動(dòng)系統
,而只是重新啟動(dòng)該服務(wù)。網(wǎng)絡(luò )是Linux給我最多收獲的部分,由于Linux是一個(gè)互
聯(lián)網(wǎng)上誕生的系統,支持完整的TCP/IP網(wǎng)絡(luò )協(xié)議族,其網(wǎng)絡(luò )應用軟件非常豐富,并
且很多網(wǎng)絡(luò )應用軟件都系出名門(mén)且廣泛使用,如BIND、apache、wu-ftp、sendmail
、telnetd、NFS、NIS等,并且有非常完備的文檔和例子支持,通過(guò)配置其網(wǎng)絡(luò )服
務(wù)你可以深入了解TCP/IP協(xié)議,構造一個(gè)非常不錯的內部網(wǎng)環(huán)境,相關(guān)的文章比較
多,在此便不再贅述。同樣,支持Linux的大型關(guān)系數據庫也不少,目前各大數據庫
廠(chǎng)商O(píng)racle、Sybase、Informix)為了對抗微軟的操作系統壟斷,均將產(chǎn)
品向Linux移,主要的目的是為大家提供使用和學(xué)習的機會(huì ),他們對一般對產(chǎn)品
的限制是不能應用于商業(yè)領(lǐng)域,同時(shí)支持Linux的免費數據庫系統也不少如PostgreSQL、
MySQL等,由于SQL數據庫涉及數據的并發(fā)控制、安全管理、備份等問(wèn)題,掌
握它能夠讓你在管理員的角度思考你的數據共享的問(wèn)題,并且SQL作為一個(gè)標準其通
用性較強,所以把Linux作為一個(gè)數據庫服務(wù)器平臺是很理想的。同時(shí),將數據庫和
Web服務(wù)器結合起來(lái),利用PHP3或是其他的CGI工具便能夠實(shí)現一個(gè)基于Web的數據
庫環(huán)境,并且是能夠被你自由控制的環(huán)境。
3、程序設計
目前GNU/Linux系統是一個(gè)為程序員提供的操作系統和編程環(huán)境,
因為其操作系統核心源代碼和應用軟件的源代碼都是公開(kāi)的,并且你可以根據你的
愛(ài)好選擇編程語(yǔ)言,你可以通過(guò)大量的應用軟件源代碼理解進(jìn)程、線(xiàn)程、文件、設
備、網(wǎng)絡(luò )、RPC、IPC等原來(lái)比較抽象的概念。和Windows環(huán)境下的可視開(kāi)發(fā)環(huán)境相
比,Linux下的編程可能會(huì )困難一些,但是如果只是完成特定的服務(wù)端應用,就比
較簡(jiǎn)單和高效,你開(kāi)了集成環(huán)境可能需要的是多開(kāi)幾個(gè)虛擬控制臺,方便對庫函
數的參考。由于應用軟件主要是C語(yǔ)言程序,有C語(yǔ)言基礎是比較好的,并且應用軟
件的注釋都比較好,可以比較方便地修改。當然,用JAVA也比較好,可以充分享受
其跨平臺的優(yōu)勢,還有就是可以使用以前只是聽(tīng)過(guò)而沒(méi)有用過(guò)的Ada、Lisp等語(yǔ)言。
基于GNU/Linux的程序設計可以讓你充分感受選擇的自由,沒(méi)有必要大家都
去研究核心程序,畢竟計算機是工具,能夠為具體應用服務(wù)才是計算機軟件人員的
職責,僅有系統核心也是不夠的。不過(guò),在Linux下編寫(xiě)驅動(dòng)程序不是象想象的那么
困難,原因主要是我們的設計者為我們提供了詳細的指南,感受最深刻的是在
/usr/src/linux/drivers/net/skeleton.c程序,它描述了網(wǎng)卡驅動(dòng)程
序的框架,并且相關(guān)的文檔非常多如KHG等,相比Windows就更為開(kāi)放和容易。我不
是程序設計的高手,通過(guò)GNU/Linux的使用知道一些有用的方法,學(xué)會(huì )了欣賞別人的
程序,如果讓我做一個(gè)程序我的第一步可能就是找到相關(guān)的程序并查看他們的編程
方法。同樣,如果能夠真正使用互聯(lián)網(wǎng),你可以發(fā)現更多的程序設計的參考。
兩年的實(shí)踐給了我一種駕馭系統的輕松,因為我知道很多東西沒(méi)
有想象的那么難以接受,最重要的是"try again"。實(shí)際上,你能夠真切地感受到各
種系統是相通的,如同水是相通的一樣;學(xué)習不應該是一種負擔,而是根據自己的
實(shí)際情況去解決實(shí)際的問(wèn)題,興趣是一種不可忽視的因素。我想象不出如果能夠根
據大學(xué)計算機專(zhuān)業(yè)的課程設置,同步提供Linux的實(shí)踐,那么我們的大學(xué)生在畢業(yè)時(shí)
會(huì )有怎樣的技術(shù)水平?同樣,我們的高??赡軙?huì )有更多一些的可以為普通人接受的
軟件,而不是只是培養專(zhuān)家的科研成果,或是寥寥千套的獲獎操作系統。沒(méi)有理論
的實(shí)踐是盲目的,沒(méi)有實(shí)踐的理論是空洞的,而計算機軟件是需要理論和實(shí)踐緊密
結合的。
評論