一、計算機組成
(一) 硬件
CPU:運算器、控制器、寄存器、緩存器
存儲器:主內存,RAM(Random Access Memory)數據必須加載到主內存中才能進行處理。
輸入設備:下指令,提供數據等
輸出設備:輸出數據加工的結果
(二) 軟件
操作系統
目前主流操作系統有windows、mac、linux。我們重點學習的就是Linux系統
功能:
驅動程序、進程管理、安全管理、網絡管理、內存管理、文件系統。。。
組成:
內核(kenerl)
基礎應用(Application)
應用程序(指令+數據)
二、開源組織GNU
是"GNU is Not Unix"的遞歸縮寫。是richard stallman在1983年9月27發起發起的,目標是創建一套完全自由的操作系統。
為保證軟件可以自由的"使用、復制、修改和發布", 所有GNU軟件都必須遵循GNU通用許可證(GNU Genenal Public Lisence 即GPL)。即反版權,或稱為copyleft。
GPL協議中,軟件必須源代碼的方式發布出來。同時規定使用了遵循GPL協議的軟件后,也得遵循GPL協定。那么意味著一旦使用了GPL協議的開源程序后,自己二次開發的程序也必須開源出來。遭到
不少商業用戶的排斥。于是有出現了多種開源協定。
目前主流的協定有以下幾種:
GPL
v2、v3
LGPL
v2(MPL)、v3
Apache
BSD
3言、2言
詳細描述地址:http://www.open-open.com/solution/view/1319816219625
三、IT技術領域的崗位
研發:
硬件:忽略
軟件:(語言越高級越接近于人類語言,越低級越接近于計算機語言)
低級語言:匯編語言,匯編器
寫驅動
高級語言:
系統級:c,c++
主要用于操作系統,對性能要求較高的服務類程序
應用級:Java,Python,ruby
應用程序: ansible,puppet, …
應用:
Linux運維:Linux生態圈中的各種程序的應用;
shell腳本編程:讓某些應用工作能自動完成;
python:專業編程語言;
ansible, openstack
???此處研發和應用的區別不甚明朗,留待以后領悟吧???
四、Linux操作系統
OS:
狹義:只是個內核(kernel)
完整:kernel + Application
組成:
(1) kernel: 內核
重點在于管理計算機的所有活動以及驅動系統中的所有硬件。(可以讓CPU開始判斷邏輯與數值運算,主內存可以加載/讀取數據、讓硬盤可以被開始被存取、讓網絡卡可以開始傳輸數據、讓所有周邊開始運轉)
Tps:所以整部系統叧有核心癿話,我仧就叧能看著已絆準備好運作(Ready)癿計算機系統,但無法操作他! 好像有點望梅止渴癿那種感覺啦!這個時候就需要軟件癿幫忙了!
(2) System Call: 系統調用
只是將基本的功能封裝成接口,方便軟件開發者調用。
(3) library: 庫
庫是將基本功能再次封裝,提供更加完整的功能接口給程序調用。當然程序也可以不適用庫,直接系統調用。
(4) Shell: 一組接口軟件,可以是用戶和機器交互。
(5) Application: 應用程序
應用程序是對人類可用的功能系統。
發布版:
真正的linux只是一個kernel,只針對計算機的硬件資源管理,并沒有用戶可用的功能。
那么就有了linux發布版,發布版是將linux內核和一些最常用的基本程序功能打包起來,用戶安裝之后,很多基本功能直接可以使用。下面是一些主流的發布版本:
Debian
ubuntu
mint
knopix
Slackware
S.u.S.E
SLES
OpenSUSE
RedHat:
Redhat 9.0:
RedHat Enterprise Linux: RHEL
CentOS: Community ENTerprise OS
Fedora Core
Gentoo
ArchLinux
linux 發布版詳細的時間線
https://yunpan.cn/c6IvbpTDUaaMi 訪問密碼 0723
共同點:均使用linux內核、遵循相同的文件系統規范:FHS、
不同的發布版具有不同的包管理器(概念見下面程序應用部分):
Debian:dpkg, apt-get
RedHat:rpm, yum –> dnf
S.u.S.E: rpm, zypper
ArchLinux:pacman
Gentoo:emerge
五、程序版本號的定義
major.minor.release
主版本.子版本.修訂號
Linux:0.99, 2.2, 2.4, 2.6, 3.0, 4.0
內核地址:www.kernel.org
Linux內核和各個發布版各自的版本號是不一樣的。
六、程序應用:
程序的組成部分:
二進制程序;
配置文件;
庫文件;
幫助文件;
程序包管理器:
程序的組成部分打包成一個或有限幾個文件,一般具有程序的安裝、卸載、查詢功能
比如計算機跟用戶打交道的接口就是各種應用程序:
GUI:Graphic User Interface(桌面接口)
GNome:c, gtk
KDE: c++, qt
CLI:Command Line Interface(命令行接口)
bash
zsh
sh
csh
tcsh
ksh
七、終端設備(terminal)
指的是電腦跟用戶的進行通訊的設備,比如一套鍵盤和顯示器。
統稱為tty,有以下幾種終端:
物理終端:console
虛擬終端:6個,tty
Ctrl+Alt+F[1-6]
圖形終端:
CentOS 6:
Ctrl+Alt+F7
CentOS 7:
在哪個虛擬終端啟動,即位于哪個虛擬終端;
串行終端:ttyS
偽終端:pty
八、linux哲學思想
1、一切皆文件;
把幾乎所有資源統統抽象為文件形式;包括硬件設備,甚至通信接口等;
open(), read(), write(), close(), delete(), create()
表現之一:硬件設備也通過文件表示;
物理終端:/dev/console
虛擬終端:/dev/tty# [1,6]
串行終端:/dev/ttyS#
偽終端:/dev/pts/#
2、由眾多功能單一的程序組成;
一個程序只做一件事,并且做好;
組合小程序完成復雜任務;
3、盡量避免跟用戶交互;
目標:易于以編程的方式實現自動化任務
4、使用文本文件保存配置信息;
命令收集:
ss -tnl
查看系統是否監聽于tcp協議的22號端口;
ip addr list
或
ifconfig
查看IP地址;
iptables -L -n
關閉防火墻狀態:
CentOS 7:
systemctl disable firewalld.service
systemctl stop firewalld.service
CentOS 6:
service iptables stop
chkconfig iptables off
tty
查看終端設備:
echo $SHELL
查看接口程序,使用shell種類:
startx &
啟動GUI:在某一虛擬終端接口運行即可
tty
查看當前的終端設備;
echo
回顯
ping
探測網絡的目標主機與當前主機之間的連通性;
Ctrl+c
終止命令執行;
資源鏈接:
CentOS的鏡像站點:
http://mirrors.aliyun.com
http://mirrors.163.com
http://mirrors.sohu.com
雜項:
(1)、最純凈的linux
LFS: Linux From Scratch
(2)、基于debain的發行版:kali。設計用于數字鑒識和滲透測試
原創文章,作者:小江,如若轉載,請注明出處:http://www.www58058.com/31227
寫的很好,排版還可以在漂亮一點,加油,嘗試自己來畫圖