計算機誕生 1946年2月14日,由美國軍方定制的世界上第一臺電子計算機“電子數字積分計算機”(ENIAC Eletronic Numerical Integrator And Calculator)在美國賓夕法尼亞大學問世了。
計算機(computer)俗稱電腦,是現代一種用于高速計算的電子計算機器,可以進行數值計算,又可以進行邏輯計算,還具有存儲記憶功能。是能夠按照程序運行,自動、高速處理海量數據的現代化智能電子設備。由硬件系統和軟件系統所組成,沒有安裝任何軟件的計算機稱為裸機。
馮· 諾依曼體系結構:1946 年計算機發明者馮· 諾依曼于提出計算機硬件由運算器、控制器、存儲器、輸入設備、輸出設備組成。
計算機硬件發展史:
- 第一代計算機(1946-1957) 電子管時代
- 第二代計算機(1958-1964) 晶體管時代
- 第三代計算機(1965-1970) 集成電路 時代
- 第四代計算機(1971 以后) 大規模集成電路 時代
操作系統
操作系統(Operating System,簡稱OS)是管理和控制計算機硬件與軟件資源的計算機程序,是直接運行在“裸機”上的最基本的系統軟件,任何其他軟件都必須在操作系統的支持下才能運行。
操作系統是用戶和計算機的接口,同時也是計算機硬件和其他軟件的接口。操作系統的功能包括管理計算機系統的硬件、軟件及數據資源,控制程序運行,改善人機界面,為其它應用軟件提供支持,讓計算機系統所有資源最大限度地發揮作用,提供各種形式的用戶界面,使用戶有一個好的工作環境,為其它軟件的開發提供必要的服務和相應的接口等。
UNIX
UNIX 是一個強大的多用戶、多任務操作系統,支持多種處理器架構,按照操作系統的分類,屬于分時操作系統。UNIX 最早由Ken Thompson和Dennis Ritchie于1969年在美國AT&T的貝爾實驗室開發。
UNIX哲學
- 小即是美。
- 讓程序只做好一件事。
- 盡可能早地建立原型。
- 可移植性比效率更重要。
- 數據應該保存為文本文件。
- Use software leverage to your advantage.
- 使用shell腳本來提高效率和可移植性。
- 避免使用漂亮的用戶界面。
- 為每個程序添加一個過濾機制。
GNU項目介紹
- 1983Richard Stallman發起目的是創建一套完全自由的操作系統
- 1985Richard Stallman創立了自由軟件基金會FSF為GNU提供技術、法律、財政支持,GNU計劃開發了大量的自由軟件
- 1990年GNU計劃已經開發出包括Emacs、GCC等大部分軟件工具,但操作系統內核HUR進展緩慢
- 1992年GNU與Linux結合,誕生完全自由的操作系統“GNU/LinuxGPL–GNU通用公共授權
- Free Software的概念不是免費,自由軟件的重點在于自由權,而非價格。要了解其所代表的概念,你應該將“自由”想成是“言論自由”,而不是“免費啤酒”–理查德.斯托曼
- GPL是一種授權方式,其精神是自由、分享、互惠
- Copyleft 版權概念 ,傳染性允許他人任意的修改散步作品,唯其散步及修改的行為和做法,亦限定于Copyleft的方式行之open source
Linux
- 核心編寫者Linus Torvalds 芬蘭人林納斯.托瓦茲,1991年9月發布了Linux內核第一個版本
- Linux的歷史與GNU緊密聯系,linux內核遵循GNU 和GPL,但并不是GNU計劃的一部分,1994年3月linux1.0版正式發布,Redhat公司成立,成為最著名的linux發行商之一
- 自由的類Unix操作系統
Linux 操作系統:
Linux Kernel內核+ GNU 工具= 完整的類UNIX操作系統
如:CentOS,Ubuntu,Android
Linux 發行版
- slackware:SUSE Linux Enterprise Server (SLES)
- opensuse 桌面
- debian: ubuntu ,mint
- redhat: : rhel: redhat enterprise linux
- 每18 個月發行一個新版本
- CentOS :兼容rhel 的格式
- 中標麒麟:中標軟件
- fedora :每6 個月發行一個新版本
- ArchLinux :輕量簡潔
- Gentoo :極致性能, 不提供傳統意義的安裝程序
- LFS: Linux From scratch 自制Linux
- Android: kernel+busybox (工具集)+java 虛擬機
- Linux 分支參考網站:http://futurist.se/gldt/
Linux的哲學思想
1.一切皆文件接口
把幾乎所有資源統統抽象為文件形式,包括硬件設備,甚至通信接口等
2. 用眾多功能單一的程序組成,一個程序只做一件事,并且做好
組合小程序完成復查任務
3.盡量避免跟用戶交互
目標:易于以編程的方式實現自動化任務
4. 使用文本文件保存配置信息
linux文件系統
Linux有一個樹狀結構來組織文件。樹的頂端為根目錄(/),節點為目錄,而末端的葉子為包含數據的文件。當我們給出一個文件的完整路徑時,我們從根目錄出發,經過沿途各個目錄,最終到達文件。
- 根文件系統(rootfs) :root filesystem
- 文件名稱 區分大小寫
- 以. 開頭的文件為隱藏文件
- 路徑分隔的 /
- 文件有兩類數據:
- 元數據:metadata
- 數據:data
- 文件系統分層結構:LSB Linux Standard Base
- FHS: (Filesystem Hierarchy Standard)
- 文件名最長255 個字節
- 包括路徑在內文件名稱最長4095 個字節
/:根目錄,所有的目錄、文件、設備都在/之下,/就是Linux文件系統的組織者,也是最上級的領導者。
/bin:bin 就是二進制(binary)英文縮寫。在一般的系統當中,都可以在這個目錄下找到linux常用的命令。系統所需要的那些命令位于此目錄。
/boot:Linux的內核及引導系統程序所需要的文件目錄,比如 vmlinuz initrd.img 文件都位于這個目錄中。在一般情況下,GRUB或LILO系統引導管理器也位于這個目錄。
/cdrom:這個目錄在剛剛安裝系統的時候是空的。可以將光驅文件系統掛在這個目錄下。例如:mount /dev/cdrom /cdrom
/dev:dev 是設備(device)的英文縮寫。這個目錄對所有的用戶都十分重要。因為在這個目錄中包含了所有linux系統中使用的外部設備。但是這里并不是放的外部設備的驅動程序。這一點和常用的windows,dos操作系統不一樣。它實際上是一個訪問這些外部設備的端口??梢苑浅7奖愕厝ピL問這些外部設備,和訪問一個文件,一個目錄沒有任何區別。
/etc:etc這個目錄是linux系統中最重要的目錄之一。在這個目錄下存放了系統管理時要用到的各種配置文件和子目錄。要用到的網絡配置文件,文件系統,x系統配置文件,設備配置信息,設置用戶信息等都在這個目錄下。
/home:如果建立一個用戶,用戶名是”xx”,那么在/home目錄下就有一個對應的/home/xx路徑,用來存放用戶的主目錄。
/lib:lib是庫(library)英文縮寫。這個目錄是用來存放系統動態連接共享庫的。幾乎所有的應用程序都會用到這個目錄下的共享庫。因此,千萬不要輕易對這個目錄進行什么操作,一旦發生問題,系統就不能工作了。
/lost+found:在ext2或ext3文件系統中,當系統意外崩潰或機器意外關機,而產生一些文件碎片放在這里。當系統啟動的過程中fsck工具會檢查這里,并修復已經損壞的文件系統。有時系統發生問題,有很多的文件被移到這個目錄中,可能會用手工的方式來修復,或移到文件到原來的位置上。
/mnt:這個目錄一般是用于存放掛載儲存設備的掛載目錄的,比如有cdrom等目錄??梢詤⒖?etc/fstab的定義。
/media:有些linux的發行版使用這個目錄來掛載那些usb接口的移動硬盤(包括U盤)、CD/DVD驅動器等等。
/opt:這里主要存放那些可選的程序。
/proc:可以在這個目錄下獲取系統信息。這些信息是在內存中,由系統自己產生的。
/root:Linux超級權限用戶root的家目錄。
/sbin:這個目錄是用來存放系統管理員的系統管理程序。大多是涉及系統管理的命令的存放,是超級權限用戶root的可執行命令存放地,普通用戶無權限執行這個目錄下的命令,這個目錄和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目錄是相似的,凡是目錄sbin中包含的都是root權限才能執行的。
/selinux :對SElinux的一些配置文件目錄,SElinux可以讓linux更加安全。
/srv 服務啟動后,所需訪問的數據目錄,舉個例子來說,www服務啟動讀取的網頁數據就可以放在/srv/www中
/tmp:臨時文件目錄,用來存放不同程序執行時產生的臨時文件。有時用戶運行程序的時候,會產生臨時文件。/tmp就用來存放臨時文件的。/var/tmp目錄和這個目錄相似。
/usr
這是linux系統中占用硬盤空間最大的目錄。用戶的很多應用程序和文件都存放在這個目錄下。在這個目錄下,可以找到那些不適合放在/bin或/etc目錄下的額外的工具
/usr/local:這里主要存放那些手動安裝的軟件,即不是通過“新立得”或apt-get安裝的軟件。它和/usr目錄具有相類似的目錄結構。讓軟件包管理器來管理/usr目錄,而把自定義的腳本(scripts)放到/usr/local目錄下面、。
/usr/share :系統共用的東西存放地,比如 /usr/share/fonts 是字體目錄,/usr/share/doc和/usr/share/man幫助文件。
/var:這個目錄的內容是經常變動的,看名字就知道,可以理解為vary的縮寫,/var下有/var/log 這是用來存放系統日志的目錄。/var/ www目錄是定義Apache服務器站點存放目錄;/var/lib 用來存放一些庫文件,比如MySQL的,以及MySQL數據庫的的存放地。
Shell 是Linux 系統的用戶界面,提供了用戶與內核進行交互操作的一種接口。它接收用戶輸入的命令并把它送入內核去執行
shell 也被稱為LINUX 的命令解釋器(command interpreter) )shell 是一種高級程序設計語言輸入命令后回車:提請shell 程序找到鍵入命令所對應的可執行程序或代碼,并由其分析后提交給內核分配資源將其運行起來
在shell 中可執行的命令有兩類:內部命令:由shell 自帶的,而且通過某命令形式提供help 內部命令列表enable cmd 可以啟用enable –n cmd 禁用 內部 命令enable –n 查看所有禁用的內部命令外部命令:在文件系統路徑下有對應的可執行程序文件查看路徑:which -a |–skip-alias ; whereis區別指定的命令是內部或外部命令:# type COMMAND
使用手冊 MAN 章節 /usr/share/man1、Standard commands (標準命令)2、System calls (系統調用)3、Library functions (庫函數)4、Special devices (設備說明)5、File formats (文件格式)6、Games and toys (游戲和娛樂)7、Miscellaneous (雜項)8、Administrative Commands (管理員命令)9 其他(Linux特定的), 用來存放內核例行程序的文檔。man 常用于命令參考 ,GNU 工具info 適合通用文檔參考。
- 沒有參數, 列出所有的頁面
- info 頁面的結構就像一個網站
- 每一頁分為“節點”
- 鏈接節點之前 *
info [ 命令 ] //獲取命令的在線文檔;主流發行版官方文檔:https://www.redhat.com/doc
原創文章,作者:Mr-Xiao,如若轉載,請注明出處:http://www.www58058.com/71310
對計算機及linux的起源寫的很詳細,贊一個