二進制:
0, 1
5大部件:
CPU:計算器、控制器
Memory: 存儲器(內存)
編址存儲單元陣列
輸入設備/輸出設備:I/O
鍵盤:
VGA:
輔助存儲器
網卡
編程:
低級語言:匯編(微碼編程)
高級語言:JAVA, C++, C, Scala, Python
轉件:
時序復用:
計算機:硬件+軟件
硬件:開發,制造
軟件:編寫,編譯
OS: Operating System
通用軟件,主要負責管理底層硬件設備,並且將調用接口抽象為易用的形式
庫:
獨立的功能模塊,可被共享使用
應用程序:
人機交互接口:
GUI:Graphic User Interface
Windows, Gnome, KDE, Xfce
CLI:Command Line Interface
shell: bash, zsh, tcsh
特定應用程序
開發工具
…… ……
通過軟件虛擬出硬件平台的程序:
創建多個“虛擬機”
虛擬的硬件平台
而後可以虛擬機上裝OS
如何虛擬:
CPU:時序復用,把CPU的計算能力切割成timeslice
內存:把物理中空閒的離散的一段或幾段組織成一個假的連續的空間當內存
IO:模擬
硬盤,網卡
硬盤:通過文件來模擬硬件(回環設備)
網卡:時序復用,也可通過軟件模擬
virutalization, emulation
CMOS:Complimentary Metal Oxied Substance
BIOS:Basic Input and Output System
POST: Power On and Self Testing
Ctrl, Alt, Insert (Delete)
計算機的5大部件:
CPU、內存、I/O
CPU:運算器、控制器、寄存器、緩存
內存:編址的存儲單元陣列
8bits = 1Bytes
I/O設備:
I/O控制器
VM:虛擬機
硬件規格 --> OS --> 動態庫(so, dll) --> 應用程序
用戶界面
GUI
CLI
POST --> OS (內核, kernel)
CPU:眾多指令
特權指令:操作硬件,獲取敏感資源
普通指令:
CPU:
用戶模式:運行程序的普通指令
內核模式:運行特權指令
編程:開發語言
寫程序 --> 編譯 --> 目標代碼
declare -i num1=2
declare -i num2=3
sum=$[$num1+$num2]
CPU1: 摩托,M68000,m68k
CPU2: Intel, Core 2
程序 --> 編譯器 --> “翻譯後的結果是特定於某類CPU的”
編程:
匯編語言:方言
CPU1
CPU2
高級語言:通用語言
程序(通用語言) --> 編譯 --> 方言(匯編)
源代碼:source code
二進制程序:binary
硬件平台:X86, X86_64 (amd64), m68k, power(IBM), PowerPC, mips, arm, alpha, ultrasparc...
復雜指令集:CISC
精簡指令集
OS的代碼:99%可用高級語言編寫,余下的1%使用特定平台的匯編編寫;
www.top500.org: 超級計算機排名
高級語言:
編譯:需要將整個程序事先轉換可運行格式
解釋:轉換一個語句運行一個語句
ENIARC:
電子管 --> 晶體管 --> 集成電路 --> 超大規模集成電路
MainFrame:
DEC:PDP, VAX
批處理作業系統 --> Multics(多用戶, 多任務)--> Ken (PDP7)
Unics --> Unix
Dennis: C
C --> Unix
Berkeley分校:BSRG, Bill Joy
1976, Ken
TCP/IP協議,虛擬內存:BSD(Berkeley System Distribution)
Unix: System V, sysv
BSD
SUN microsystem
IBM
Microsoft: XENIX
DOS: Disk OS
Apple: GUI
VAX: VMS
Windows NT
OS/2: Vista
BSD Lite:
FreeBSD
OpenBAD
NetBSD
Minix
MIT: Stallman, freedom
GNU: GNU is Not Unix
GPL: General Public License
copyright, copyleft
emacs, gcc
Linus:
Linux: Unix-like
www.kernel.org
GNU/Linux
GNU: 各種程序,源代碼
Linux: 源代碼
Linux系統發行版:
Debian
Slackware
S.U.S.E
RedHat
版本:
kernel:
發行商版本:
包管理器
PC兼容機:
Linux系統:由來、kernel, GNU, GPL, 發行版
Linux: kernel, GNU
GNU: GPL
kernel: GPL
Linux發行版:
Debian: Ubuntu (desktop, server)
Slackware: SUSE (SLES, OpenSUSE)
RedHat: RHEL, Fedora Core
RHEL:src.rpm
CentOS: Community ENTerprise OS
ArchLinux: 借鑒了FreeBSD
Gentoo:
LFS, Linux From Scratch
Android: Linux + jvm + android
Linux + Busybox + jvm + android
軟件包管理器:
RPM:RedHat Package Manager, PRM is Package Manager
deb: dpt
RHEL:
發行更新速度較慢,更關注穩定性;
rhel 5 --> rhel 6 --> rhel 7
/sbin/init
rhel5: sysv init
rhel6: upstart
rhel7: systemd
RHEL 6.6 --> CentOS 6.6
對系統執行交互式訪問:通過終端
終端的類型:
物理終端:VGA, console
虛擬終端:tty
Ctrl+Alt+F1-6
/dev/tty#
串行終端:serial interface, sty
偽終端:pty
/dev/pts/#
圖形終端:
GUI
Ctrl + Alt + F7
前提:X Server 要啟動
GNome: startx
KDE: startkde
Linux的用戶:
管理員:root, 擁有最高權限
普通用戶:不具有管理權限
實現管理任務:臨時切換至管理員
su, sudo
bash prompt: 命令提示符
#
$
環境配置:通過環境變量來實現,持久有效需要保存在配置文件中
PS1
幾個基礎性的命令:
tty: 顯示當前終端設備
who: 查看當前系統上登錄的所有用戶及其信息
Ctrl + c: 取消當前命令的執行
Shift + PageUp/PageDown
注意:Linux嚴格區分字符大小寫
tty, Tty
Stallman: 自由軟件
自由的含義:
自由使用;自由學習和修改;自由分發;自由創建衍生版;
Linux的哲學思想:
1、一切皆文件;
把幾乎所有資源,包括硬件設備都虛擬為文件形式;
open, read, wirte, close, create, delete
2、由眾多功能單一的程序組成;一個程序只做一件事情,而且要做好;
組合多個程序完成復雜任務;
3、盡量避免跟用戶交互;
目標:易於編程實現自動化任務執行;
4、使用文本文件保存配置信息;
本文出自 “11900715” 博客,謝絕轉載!