Linux入門及 Basics

二進制:

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、使用文本文件保存配置信息;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章