1. 計算機組成
????????馮·諾依曼體系結(jié)構(gòu)中救恨,計算機要有五大基礎(chǔ)硬件:輸入設(shè)備贸辈、輸出設(shè)備、運算器肠槽,存儲器擎淤、控制器奢啥。
?功能:1、輸入設(shè)備:用于輸入數(shù)據(jù)和程序(常用的有鍵盤嘴拢、鼠標(biāo)桩盲、掃描儀等)。
?????????2炊汤、輸出設(shè)備:用于輸出處理結(jié)果(常用的有顯示器正驻、打印機等)。
??????? ?3抢腐、運算器:用于數(shù)據(jù)加工處理(CPU)姑曙。
???????? 4、存儲器:用于記憶程序和存儲數(shù)據(jù)(內(nèi)存為主存儲器迈倍,磁盤為輔助存儲器)
???????? 5伤靠、控制器:用于控制程序執(zhí)行(CPU)。
??????? ?服務(wù)器硬件組成:配置和普通家用電腦差不多啼染,有主板宴合、中央處理器(CPU)、內(nèi)存迹鹅、硬盤卦洽、電源、風(fēng)扇斜棚、網(wǎng)卡阀蒂、PCI等。服務(wù)器一般不單獨配鼠標(biāo)弟蚀、鍵盤和顯示器等的輸入輸出設(shè)備蚤霞。
?2. 操作系統(tǒng)內(nèi)核的功能
???????? 1、?內(nèi)存管理义钉,文件管理昧绣,網(wǎng)絡(luò)管理,系統(tǒng)調(diào)用捶闸,驅(qū)動管理夜畴,進程管理,安全管理等删壮。
???????? 內(nèi)核的作用:內(nèi)核是一個操作系統(tǒng)的核心,它負(fù)責(zé)管理系統(tǒng)的進程斩启、內(nèi)存、設(shè)備驅(qū)動程序醉锅、文件和網(wǎng)絡(luò)系統(tǒng)以及系統(tǒng)的初始化,系統(tǒng)調(diào)用等发绢、決定著系統(tǒng)的性能和穩(wěn)定性硬耍。(如應(yīng)用程序需要訪問計算機硬件需要操作系統(tǒng)內(nèi)核管理調(diào)用)垄琐。
??????????大致過程:App(應(yīng)用程序)→ [system call(系統(tǒng)調(diào)用)→ kernel(內(nèi)核)]→ hardware(硬件)
?3. 常見Linux發(fā)行版
????????? slackware,Debian经柴,Redhat狸窘,centOS,Archlinux坯认,Gentoo翻擒,LFS,Android等(前三個是目前市面上的三大流派)牛哺。
????? 發(fā)行版之間聯(lián)系與區(qū)別:
????????? 1陋气、slackware:主要是SUSE Linux Enterprise(SLES),Slackware Linux是由Patrick Volkerding制作的GNU/Linux發(fā)行版,它是世界上依然存活的最久的Linux發(fā)行版引润。
????????? ?2巩趁、Debian:ubuntu(適合開發(fā)使用),ubuntu系統(tǒng)是一個以桌面應(yīng)用為主的Linux操作系統(tǒng)淳附,Ubuntu基于Debian發(fā)行版和GNOME桌面環(huán)境议慰。
????????? ?3、Redhat:RHEL奴曙,紅帽子公司推出的面向企業(yè)的Linux系統(tǒng)(Redhat Enterprise linux)别凹、CentOS(開源免費,與RHEL本質(zhì)上沒區(qū)別洽糟,市面上大部分互聯(lián)網(wǎng)公司使用炉菲,比較穩(wěn)定)、中標(biāo)麒麟(我們中國自己的linux操作系統(tǒng))等這些都是redhat流派的分支脊框。
???????????4颁督、還有一個LFS:Linux from scratch,有一定基礎(chǔ)且有興趣的童鞋可以嘗試一下自己編制Linux系統(tǒng)浇雹。 (目前Linux版本基本都采用Linux內(nèi)核沉御,也都遵循GUN通用公共許可協(xié)議,也叫GPL昭灵。區(qū)別是其不同版本他們的庫和應(yīng)用程序會有不同)吠裆。
?4. 常見的開源協(xié)議有
????????? GPL、LGPL烂完、BSD试疙、Apache等。
?區(qū)別:1抠蚣、GPL: 大多數(shù)軟件許可證決意剝奪你共享和修改軟件的自由祝旷。相比之下,GPL(GNU通用公共許可證)試圖保證你共享和修改自由軟件的自由。保證自由軟件對所有用戶是自由的怀跛。GPL適用于大多數(shù)自由軟件基金會的軟件距贷,以及由使用這些軟件而承擔(dān)義務(wù)的作者所開發(fā)的軟件。(自由軟件基金會的其他一些軟件受GNU庫通用許可證的保護)吻谋。你也可以將它用到你的程序中忠蝗。當(dāng)我們談到自由軟件(free software)時,我們指的是自由而不是價格漓拾。 為了保護你的權(quán)利阁最,我們需要作出規(guī)定:禁止任何人不承認(rèn)你的權(quán)利,或者要求你放棄這些權(quán)利骇两。如果你修改了自由軟件或者發(fā)布了軟件的副本速种,這些規(guī)定就轉(zhuǎn)化為你的責(zé)任。
??????????2脯颜、LGPL: LGPL許可證適用于特殊設(shè)計的函數(shù)庫哟旗,且與原來的通用公共許可證有很大的不同,給予了被許可人較為寬松的權(quán)利栋操,所以叫“較寬松公共許可證”闸餐。在特定的函數(shù)庫中使用它,以準(zhǔn)許非自由的程序可以與這些函數(shù)庫連結(jié)矾芙。
???????????3舍沙、BSD:BSD許可證也比較寬松,只需要附上許可證的原文剔宪,但它還要求所有進一步開發(fā)者將自己的版權(quán)資料放上去拂铡,這些版權(quán)資料許可證占的空間可能比程序還大。
???????? ?4葱绒、Apache:需要給代碼的用戶一份Apache Licence如果你修改了代碼感帅,需要在被修改的文件中說明。在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協(xié)議地淀,商標(biāo)失球,專利聲明和其他原來作者規(guī)定需要包含的說明。如果再發(fā)布的產(chǎn)品中包含一個Notice文件帮毁,則在Notice文件中需要帶有Apache Licence实苞。你可以在Notice中增加自己的許可,但不可以表現(xiàn)為對Apache Licence構(gòu)成更改烈疚。Apache Licence也是可以在需要的時候修改代碼來滿足需要并作為開源或商業(yè)產(chǎn)品發(fā)布/銷售黔牵。
?5. Linux哲學(xué)思想
????????? 1、一切皆文件:在Linux里(或unix)爷肝,不管是普通文件猾浦、目錄陆错,還是硬件塊設(shè)備等都表現(xiàn)為文件。
???????? ?2跃巡、小型危号,單一用途的程序:有很多小程序/工具,功能單一并且高效運行素邪。
????????? 3、?鏈接程序猪半,共同完成發(fā)雜功能:復(fù)雜的任務(wù)可以通過一個個小程序鏈接組合完成兔朦,也保證了性能的高效性。
???????? ?4磨确、避免令人困惑的用戶界面:如Windows圖形界面沽甥,雖然操作簡單,但不可靠乏奥,且Windows是閉源的摆舟,系統(tǒng)出了問題很難排錯和修復(fù),一般情況就是重啟或重裝系統(tǒng)邓了。而Linux是開源的(源代碼公開)恨诱,出了問題可以通過命令排錯,或修改配置文件修復(fù)解決問題骗炉。
????????? 5照宝、配置數(shù)據(jù)存儲在文本中:Linux中所有數(shù)據(jù)都存放在文本文件中,配置的更改都需要更改配置文件句葵,只需要用文本編輯器就可以更改文本文件厕鹃。
6. Linux目錄結(jié)構(gòu)
????????? Linux中一切都從/(根)目錄開始,所有的目錄都是按照一定的類別有規(guī)律的組織和命名的乍丈。FHS(目錄層次結(jié)構(gòu))是Linux的目錄規(guī)范標(biāo)準(zhǔn)剂碴。[FHS(目錄層次結(jié)構(gòu))]http://www.pathname.com/fhs/。
??????????FHS定義了兩層規(guī)范:1轻专、第一層是“/”(根)目錄下各個目錄應(yīng)該存放什么文件數(shù)據(jù)忆矛,例如/etc應(yīng)該要放置設(shè)置文件,/bin與/sbin則應(yīng)該要放置可執(zhí)行文件等等铭若。
????????? 2洪碳、第二層則是針對/usr及/var這兩個目錄的子目錄來定義。例如/var/log放置系統(tǒng)登錄文件叼屠、/usr/share放置共享數(shù)據(jù)等等瞳腌。 且根目錄與開機、還原镜雨、系統(tǒng)修復(fù)等操作有關(guān)嫂侍。
????????? FHS標(biāo)準(zhǔn)建議:根目錄(/)所在分區(qū)應(yīng)該越小越好,且應(yīng)用程序所安裝的軟件最好不要與根目錄放在同一個分區(qū)內(nèi),保持根目錄越小越好挑宠,如此不但性能較好菲盾,根目錄所在的文件系統(tǒng)也較不容易發(fā)生問題。
????? ?目錄結(jié)構(gòu)命名規(guī)定:
?????????????????? 1各淀、Linux系統(tǒng)區(qū)分大小寫懒鉴,因此文件名也區(qū)分大小寫。
???????????????????2碎浇、文件名不可以使用“/”字符临谱,也不建議使用特殊字符,因為執(zhí)行命令時會出錯奴璃。
?????????????????? 3悉默、文件名長度最長不能超過255個字符。
?????????????????? 4苟穆、所有以“.”開頭的文件都為隱藏文件抄课。
??????? 文件目錄命名規(guī)則:
/bin:系統(tǒng)有很多放置執(zhí)行文件的目錄,但/bin比較特殊雳旅。因為/bin放置的是在單用戶維護模式下還能夠被操作的命令跟磨。在/bin下面的命令可以被root與一般賬戶所使用,主要有cat岭辣,chmod吱晒,chown,date沦童,mv仑濒,mkdir, cp偷遗,bash等常用的命令墩瞳。
?/boot:這個目錄主要放置開機會使用到的文件,包括Linux內(nèi)核文件以及開機菜單與開機所需要配置文件等氏豌。LINUX kernel常用的文件名為vmlinuz喉酌,如果使用的是grub這個引導(dǎo)裝載程序,則還會存在/boot/grub/這個目錄泵喘。
?/dev:在Linux系統(tǒng)上泪电, 任何設(shè)備與接口設(shè)備都是以文件的形式存在于這個目錄當(dāng)中的。你只要通過訪問這個目錄下面的某個文件纪铺,就等于訪問某個設(shè)備相速。
? 比較重要的文件有/dev/null, /dev/zero,/dev/tty,/dev/lp*, /dev/hd*, /dev/sd*等。
?/etc:系統(tǒng)主要的配置文件幾乎都放置在這個目錄內(nèi)鲜锚, 例如人員的賬號密碼文件突诬、各種服務(wù)的起始文件等苫拍。一般來說,這個目錄下的各文件屬性是可以讓一般用戶查閱的旺隙,但是只有root有權(quán)利修改绒极。FHS建議不要放置可執(zhí)行文件(binary)在這個目錄中。
?? 比較重要的文件有etc/inittab, /etc/init.d, /etc/modprobe.conf, /etc/X11, /etc/fstab, /etc/sysconfig等蔬捷。
???另外垄提,其下重要的目錄有: a. /etc/init.d/: 所有服務(wù)的默認(rèn)啟動腳本都是放在這里的,例如要啟動或者關(guān)閉 iptables的話: “/etc/init.d/iptables start” 抠刺、 "/etc/init.d/iptables stop"塔淤。
b. /etc/xinetd.d/: 這就是所謂的super daemon 管理的各項服務(wù)的配置文件目錄。
??? c. /etc/X11/: 與X Window有關(guān)的各種配置文件都在這里速妖, 尤其是xorg.conf 這個XServer的配置文件。
?/home :這是系統(tǒng)默認(rèn)的用戶主文件夾(home directory),在你創(chuàng)建一個一般用戶賬號時聪黎,默認(rèn)的用戶主文件夾都會規(guī)范到這里來罕容。比較重要的是,主文件夾有兩種代號:1.~: 代表當(dāng)前登錄用戶的主文件夾2.~dmtsai: 則代表dmtsai的主文件夾稿饰。
?/lib:系統(tǒng)的函數(shù)庫非常多锦秒, 而/lib放置的則是在開機時會用到的函數(shù)庫,以及在/bin或/sbin下面的命令會調(diào)用的函數(shù)庫而已喉镰。什么是函數(shù)庫旅择? 你可以將它想成是“外掛”,某些命令必須要有這些“外掛”才能夠順利完成程序的執(zhí)行之意侣姆。尤其重要的是/lib/modules/這個目錄生真,因為該目錄會放置內(nèi)核相關(guān)的模塊(驅(qū)動程序)。
?/media:/media放置的就是可刪除的設(shè)備捺宗。包括軟盤柱蟀、光盤、DVD等設(shè)備都暫時掛載于此蚜厉。常見的文件名有/media/floppy, /media/cdrom等长已。
?/mnt:如果你想要暫時掛載某些額外的設(shè)備,一般建議你可以放置到這個目錄中昼牛。在比較早的時候术瓮,這個目錄的用途與/media相同。只是有了/media之后贰健,這個目錄就用來暫時掛載用了胞四。
?/opt:第三方軟件放置的目錄
?/root:系統(tǒng)管理員(root)的主文件夾。之所以放在這里霎烙,是因為如果進入單用戶維護模式而僅掛載根目錄時撬讽,該目錄就能夠擁有root的主文件夾蕊连,所以我們會希望root的主文件夾與根目錄放置在同一個分區(qū)中。
/sbin:Linux有非常多的命令是用來設(shè)置系統(tǒng)環(huán)境的游昼,這些命令只有root才能夠利用來“設(shè)置”系統(tǒng)甘苍,其他用戶最多只能用來“查詢”而已。放在/sbin下面的為開機過程中所需要的烘豌,里面包括了開機载庭、修復(fù)、還原系統(tǒng)所需要的命令廊佩。至于某些服務(wù)器軟件程序囚聚,一般則放置到/usr/sbin/當(dāng)中。至于本機自行安裝的軟件所產(chǎn)生的系統(tǒng)執(zhí)行文件(systen binary)标锄, 則放置到/usr/local/sbin/當(dāng)中了顽铸。常見的命令包括fdisk, fsck料皇, ifconfig谓松, init,mkfs等践剂。
?/srv:srv 可以視為“service”的縮寫鬼譬,是一些網(wǎng)絡(luò)服務(wù)啟動之后,這些服務(wù)所需要取用的數(shù)據(jù)目錄逊脯。常見的服務(wù)例如www优质,F(xiàn)TP等,舉例來說军洼,www服務(wù)需要的網(wǎng)頁數(shù)據(jù)就可以放置在/srv/www/里面巩螃。
?/tmp:這是讓一般用戶或者正在執(zhí)行的程序暫時放置文件的地方。這個目錄是任何人都能夠訪問歉眷,所以你需要定期清理一下牺六。當(dāng)然,重要數(shù)據(jù)不可放置在此目錄汗捡。因為FHS甚至建議在開機時淑际,應(yīng)該要將/tmp下的數(shù)據(jù)都刪除。