計算機(jī)從業(yè)-起始篇 | 第1章.計算機(jī)科學(xué)導(dǎo)論之【基礎(chǔ)緒論】學(xué)習(xí)筆記

B站關(guān)注「全棧工程師修煉指南」點我,點我?UP主
設(shè)為「???星標(biāo)」帶你從基礎(chǔ)入門?到?全棧實踐?再到?放棄學(xué)習(xí)!
涉及?網(wǎng)絡(luò)安全運維、應(yīng)用開發(fā)、物聯(lián)網(wǎng)IOT、學(xué)習(xí)路徑 、個人感悟?等知識分享。
希望各位看友多多支持【關(guān)注、點贊、評論、收藏、投幣】,助力每一個夢想。

本章目錄:

計算機(jī)科學(xué)導(dǎo)論學(xué)習(xí)筆記
第 1 章 基礎(chǔ)緒論
1.1 圖靈模型
(1) 數(shù)據(jù)處理器
(2) 可編程數(shù)據(jù)處理器
1.2 馮·諾依曼模型
(1) 四個子系統(tǒng)
(2) 存儲程序概念
(3) 指令順序執(zhí)行
1.3 計算機(jī)簡單組成
(1) 計算機(jī)硬件
(2) 計算機(jī)數(shù)據(jù)
(3) 計算機(jī)軟件
1.4 計算機(jī)發(fā)展歷史
(1) 機(jī)械計算機(jī)器
(2) 電子計算機(jī)誕生
(3) 現(xiàn)代計算機(jī)誕生
1.5 社會問題和道德問題

計算機(jī)科學(xué)導(dǎo)論學(xué)習(xí)筆記
前言:當(dāng)前作為一名IT互聯(lián)網(wǎng)從業(yè)者,計算機(jī)技術(shù)日新月異,每天都有新概念、新技術(shù)的出現(xiàn),而像我這樣的萬金油來說,越學(xué)到后面就越吃力,遇到瓶頸問題也隨之增多,因為本身非科班出身,加之半路出家,針對于計算機(jī)基礎(chǔ)知識掌握不牢或者說是不完整,所以我痛定思痛,下定決心重新學(xué)習(xí)計算機(jī)相關(guān)基礎(chǔ)知識,從計算機(jī)科學(xué)導(dǎo)論,到計算機(jī)組成原理,到計算機(jī)網(wǎng)絡(luò)、到操作系統(tǒng),到數(shù)據(jù)結(jié)構(gòu),到程序算法、到應(yīng)用開發(fā)、到安全運維開發(fā)。
今天 (2022年9月1日) 便從大神之路-起始篇
,我們要站在巨人們的肩膀上,進(jìn)行計算機(jī)科學(xué)導(dǎo)論
的 學(xué)習(xí),我將總結(jié)學(xué)習(xí)成果筆記,幫助后續(xù)入門學(xué)習(xí)的朋友。
隨著現(xiàn)代計算機(jī)的發(fā)明,帶來了新的學(xué)科,即計算機(jī)科學(xué)(簡稱計科
)一詞上一個非常廣泛的概念,在此處我沒將其定義為計算機(jī)相關(guān)的問題
,現(xiàn)在計算機(jī)科學(xué)
被劃分成幾個領(lǐng)域,總結(jié)歸納為兩大類系統(tǒng)領(lǐng)域
和應(yīng)用領(lǐng)域
.
系統(tǒng)領(lǐng)域:涵蓋那些與硬件和軟件構(gòu)成直接有關(guān)的領(lǐng)域,例如計算機(jī)體系結(jié)構(gòu)、計算機(jī)網(wǎng)絡(luò)、安全問題、操作系統(tǒng)、算法、程序設(shè)計語言以及軟件工程。
應(yīng)用領(lǐng)域:涵蓋了與計算機(jī)使用有關(guān)的領(lǐng)域,例如數(shù)據(jù)庫、云物聯(lián)和人工智能。
參考書籍:【計算機(jī)科學(xué)導(dǎo)論-第三版 (Foundations Of Computer Science - Third Edition) 】作者: [美] 貝赫魯茲.佛羅贊 (Behrouz Forouzan) PS: 當(dāng)下已經(jīng)第四版了、
參考視頻:【計算機(jī)導(dǎo)論】計算機(jī)科學(xué)導(dǎo)論(大神之路-起始篇)
首發(fā)地址:https://mp.weixin.qq.com/s/ddQ-Quk1uFqtjX6ycl8Rzg

第 1 章 基礎(chǔ)緒論
1.1 圖靈模型
什么是圖靈機(jī)?
1937年 由 Alan Turing (阿蘭?圖靈)首次提出了一個通用計算設(shè)備的
設(shè)想
, 即所有的計算都可能在一種特殊的機(jī)器上執(zhí)行,這就是現(xiàn)在所說的圖靈機(jī)。實際上
圖靈機(jī)
對這樣一種機(jī)器進(jìn)行了數(shù)學(xué)上的描述,而不是建造一臺真實的機(jī)器。
什么是通用圖靈機(jī)?
通用圖靈機(jī)是對現(xiàn)代計算機(jī)的首次描述,該機(jī)器只要提供了合適的程序就能做任何運算。
圖靈獎(Turing Award
):全稱A.M.圖靈獎(ACM A.M Turing Award
),是由美國計算機(jī)協(xié)會(ACM)于1966年設(shè)立的計算機(jī)獎項,名稱取自艾倫·麥席森·圖靈(Alan M. Turing
),旨在獎勵對計算機(jī)事業(yè)作出重要貢獻(xiàn)的個人 。
(1) 數(shù)據(jù)處理器
在討論圖靈模型之前,此處將計算機(jī)定義為數(shù)據(jù)處理器 ,此時暫且把計算機(jī)可以被看作一種接收數(shù)據(jù)輸入、處理數(shù)據(jù)并產(chǎn)生數(shù)據(jù)輸出的黑盒
。

該模型產(chǎn)生的問題,是沒有確定計算機(jī)能處理的數(shù)據(jù)是什么.
(2) 可編程數(shù)據(jù)處理器
圖靈模型是一個適用于通用計算機(jī)的更好模型,該模型添加了一個額外的元素—程序 到不同的計算機(jī)器中。
程序:是用來告訴計算機(jī)對數(shù)據(jù)進(jìn)行處理的指令集合。

在這個圖靈模型中,輸出數(shù)據(jù)是依賴兩方面因素的結(jié)合作用:輸入數(shù)據(jù)和程序
,其關(guān)系如下。
相同的程序,不同的輸入數(shù)據(jù),輸出結(jié)果
根據(jù)輸入
的不同而不同。相同的輸入數(shù)據(jù),不同的程序,輸出結(jié)果
根據(jù)程序
的不同而不同。相同的輸入數(shù)據(jù),相同的程序,原則理論上其
輸出結(jié)果應(yīng)該是一致的
。

1.2 馮·諾依曼模型
在1944 - 1945年期間,馮?諾依曼指出,鑒于程序和數(shù)據(jù)在邏輯上是相同的,因此程序也能存儲在計算機(jī)的存儲器中。所以實際上該模型也基于圖靈模型(通用圖靈機(jī))建造。
(1) 四個子系統(tǒng)
基于馮?諾依曼模型建造的計算機(jī)分為4個子系統(tǒng):存儲器、算術(shù)邏輯單元 ALU、控制單元 CU 和輸入/輸出單元
, 現(xiàn)在系統(tǒng)通常是分為五個組成部分,只是將輸入/輸出單元
分別獨立出來。
存儲器 : 用來存儲數(shù)據(jù)和程序的區(qū)域
算術(shù)邏輯單元( ALU ) : 用來進(jìn)行算數(shù)運算和邏輯運算的地方
控制單元(CU):對存儲器、 算術(shù)邏輯單元、 輸入 / 輸出等子系統(tǒng)進(jìn)行統(tǒng)籌控制操作 。
輸入 / 輸出單元:輸入子系統(tǒng)負(fù)責(zé)從計算機(jī)外部接收輸入數(shù)據(jù),輸出子系統(tǒng)負(fù)責(zé)從計算機(jī)處理結(jié)果輸出到計算機(jī)外部。

溫馨提示:輸入/輸出子系統(tǒng)的定義相當(dāng)廣泛,它們還包含輔助存儲設(shè)備,例如,用來存儲處理所需的程序和數(shù)據(jù)的磁盤和磁帶等。當(dāng)一個磁盤用于存儲處理后的輸出結(jié)果,我們一般就可以認(rèn)為它是輸出設(shè)備,如果從該磁盤上讀取數(shù)據(jù),則該磁盤就被認(rèn)為是輸入設(shè)備。
(2) 存儲程序概念
在馮?諾依曼模型中要求程序
必須存儲在存儲器(內(nèi)存)
中。
現(xiàn)代計算機(jī)的存儲單元用來存儲程序和數(shù)據(jù),這意味著程序和數(shù)據(jù)應(yīng)該有相同的格式,實際上它們都是以位模式( 0 和 1 序列)
?存儲在存儲器(內(nèi)存)
中。
(3) 指令順序執(zhí)行
在馮?諾依曼模型中規(guī)定了一段程序
是由一組數(shù)量有限
的指令
組成。
通過控制單元(CU)從內(nèi)存中提取一條指令,解釋指令,接著執(zhí)行指令
,也就是說指令是一條接著一條順序執(zhí)行的,所以指令的順序執(zhí)行是基于馮?諾依曼模型的計算機(jī)的初始條件。
溫馨提示:有時一條指令可能會請求控制單元以便跳轉(zhuǎn)到其前面或者后面的指令去執(zhí)行,但是這并不意味著指令沒有按照順序來執(zhí)行。
1.3 計算機(jī)簡單組成
通常我們可以認(rèn)為計算機(jī)由三大部分組成:計算機(jī)硬件、計算機(jī)數(shù)據(jù)、計算機(jī)軟件
(1) 計算機(jī)硬件
描述:當(dāng)今的計算機(jī)硬件基于馮?諾依曼模型,且包含四部分,盡管可以有不同類型的存儲單元,不同類型的輸入/輸出子系統(tǒng)等。
例如,我們的個人臺式計算機(jī),通常由CPU、內(nèi)存、主板、硬盤、顯卡、機(jī)箱電源、機(jī)箱、輸入設(shè)備(鼠標(biāo)、鍵盤)、輸出設(shè)備(顯示器)等硬件組裝而成。
(2) 計算機(jī)數(shù)據(jù)
在馮?諾依曼模型中清楚地將一臺計算機(jī)定義為一臺數(shù)據(jù)處理機(jī),它可以接收輸入數(shù)據(jù),處理并輸出相應(yīng)的結(jié)果。
此處不得不提到存儲數(shù)據(jù)
與組織數(shù)據(jù)
:
存儲數(shù)據(jù):計算機(jī)本身是一臺電子設(shè)備,最好的數(shù)據(jù)存儲方式應(yīng)該是
電子信號
,以電子信號的出現(xiàn)和消失 ( 位模式)來存儲數(shù)據(jù),即以(1、0)兩種狀態(tài)之一來存儲數(shù)據(jù)。 但是日常生活中的數(shù)據(jù)(文本、 圖像、 聲音 、 視頻等)不是以位模式存儲的,不能直接存儲到計算機(jī)中,除非將這類數(shù)據(jù)轉(zhuǎn)換為位模式。組織數(shù)據(jù):盡管數(shù)據(jù)只能以一種形式(位模式)存儲在計算機(jī)內(nèi)部,但在計算機(jī)外部卻可以表現(xiàn)為不同的形式,所以在數(shù)據(jù)存儲到計算機(jī)之前,需要合理有序的組織成不同的格式。
為什么使用位模式?
因為電子設(shè)備對位模式的實現(xiàn)簡單(通電或不通電,高電壓和低電壓 )
如何有效地將數(shù)據(jù)組織成不同的實體和格式?
如今,數(shù)據(jù)并不是按照雜亂無章的次序來組織信息的。數(shù)據(jù)被組織成許多小的單元,再由這些小的單元組成更大的單元等等。
溫馨提示:計算機(jī)(以及數(shù)據(jù)處理表示法)開創(chuàng)了一門新興的研究領(lǐng)域即數(shù)據(jù)組織
。
(3) 計算機(jī)軟件
在圖靈或馮?諾依曼模型的主要特征是程序的概念,下面簡單了解一下程序相關(guān)的概念:
程序存儲與指令序列
在馮?諾依曼模型中,這些程序被存儲在計算機(jī)的存儲器中,所以存儲器中不但要
存儲數(shù)據(jù)
,而且還要存儲程序
。在馮?諾依曼模型中, 要求程序必須是有序的指令集,每一條指令操作一個或者多個數(shù)據(jù)項。
為什么程序必須由不同的指令集組成?
答案:當(dāng)然為了重用性(復(fù)用),圖靈模型和馮?諾依曼模型通過仔細(xì)地定義 計算機(jī)可以使用的不同指令集,從而使得編程變得相對簡單,程序員通過組合這些不同的指令來創(chuàng)建任意數(shù)量的程序。(例如,高級語言中函數(shù)也是為了代碼重用)
即同一個指令可以與其他功能指令相互組合從而實現(xiàn)不同的程序功能。
程序算法
定義:程序按一系列的指令執(zhí)行使得編程成為可能,程序員通過指令集中的指令組合完成特定的運算任務(wù),按照有序指令解決問題的的方法就是算法
。
程序語言
機(jī)器語言:早期時代,程序員編寫位模式( 0 和 1 的組合)的指令來完成任務(wù)
符號語言:隨著任務(wù)的復(fù)雜性越來越高,科學(xué)家研究
使用符號來表示位模式指令
,這樣計算機(jī)編程語言就誕生了,例如,匯編語言
軟件工程
定義:軟件工程是指結(jié)構(gòu)化程序的設(shè)計和編寫, 為高效的程序開發(fā)而誕生的一門理論體系
操作系統(tǒng)
定義:計算機(jī)操作系統(tǒng)最初是為程序訪問計算機(jī)部件提供方便的一種管理程序
今天操作系統(tǒng)所完成的工作遠(yuǎn)不止這些,例如,我們使用的Windows操作系統(tǒng),可以讓我們在系統(tǒng)中運行各類應(yīng)用軟件,作為用戶我們并不需要了解這個軟件到底是怎樣加載到內(nèi)存,以及被CPU調(diào)用執(zhí)行的,我們只關(guān)心其展示或者說輸出的結(jié)果,這便是操作系統(tǒng)的功勞。(后續(xù)課程會深入講解,此處簡單了解即可)
1.4 計算機(jī)發(fā)展歷史
了解一下計算機(jī)的發(fā)展歷史還是非常有必要的,因為在考試中常常會涉及到一部分,并且了解其發(fā)展歷史更能夠看到讓我們體會到站在巨人的肩膀上,此處我們將其計算機(jī)的歷史分為三個階段,即機(jī)械計算機(jī)器階段(1930年以前)、電子計算機(jī)階段(1930?1950年)、現(xiàn)代計算機(jī)階段(1950年至今)
。
(1) 機(jī)械計算機(jī)器
此階段時間在1930年以前,人們發(fā)明了一些用來進(jìn)行計算的機(jī)器,它們與計算機(jī)的現(xiàn)代概念幾乎沒有相似之處。
17 世紀(jì),法國著名的數(shù)學(xué)家和物理學(xué)家
布萊斯?帕斯卡(Blaise Pascal)
發(fā)明了`Pascsline``, 它是一個用來進(jìn)行加減運算的計算器。17世紀(jì)后期,德國數(shù)學(xué)家
戈特弗里德?萊布尼茨(Gottfried Leibnitz)
發(fā)明了萊布尼茨之輪(Leibnitz's Wheel)?
,它是一個既能夠做乘除運算又能做加減運算的一臺更加復(fù)雜的計算機(jī)器。19世紀(jì)初期,由
約瑟夫-瑪麗?雅卡爾(Joseph-Marie Jacquard)
發(fā)明了雅卡爾提花織機(jī)(Jacquard loom)
,它是第一臺利用存儲和編程概念的機(jī)器,這種織布機(jī)
是利用穿孔卡(類似于存儲程序)來控制在織布過程中經(jīng)線的提升。1823年,由
査爾斯?巴比奇(Charles Babbage)
發(fā)明了一種差分引擎,它不僅能夠很容易地進(jìn)行數(shù)學(xué)運算,還可以解多項式方程,后來隨之發(fā)明了一種叫做分析引擎的機(jī)器
,在某種程度上和現(xiàn)代計算機(jī)的概念類似。1890年,由美國
赫爾曼?何勒里斯(Herman Hollerith)
設(shè)計發(fā)明并制造出具有編程能力的機(jī)器
,該機(jī)器可以自動閱讀、計數(shù)和排列存儲在穿孔卡上的數(shù)據(jù)。
溫馨提示:到了20世紀(jì),尼克勞斯?沃思 (Niklaus Wirth)
發(fā)明了一種結(jié)構(gòu)化的程序設(shè)計語言,他將其命名為Pascal語言,用來紀(jì)念這位發(fā)明首臺機(jī)械計算器的科學(xué)家。
(2) 電子計算機(jī)誕生
此階段在 1930~1950 年之間百花共鳴,由電子計算機(jī)工業(yè)先驅(qū)的科學(xué)家們發(fā)明了一些計算機(jī),大致分為兩類即早期的電子計算機(jī)
與基于馮?諾依曼模型的計算機(jī)
.
早期的電子計算機(jī)
早期計算機(jī)并不是將程序存儲到存儲器中,所有的計算機(jī)都是在外部進(jìn)行編程的。有以下5種比較杰出的計算機(jī):
1939年,由 約翰?阿塔納索夫(John V. Atanasoff)及其助手克利福德?貝里(Clifford Berry)發(fā)明的?
ABC ( AtanasofF Berry Computer)
,它主要用于實現(xiàn)解線性方程的系統(tǒng),也是第一臺用來完成特定任務(wù)的計算機(jī)是通過將信息進(jìn)行電子編碼來實現(xiàn)其功能的。1939年左右,由德國數(shù)學(xué)家康拉德?朱斯(Konrad Zuse)設(shè)計出通用計算機(jī),并命名為“Z1”。
20世紀(jì)30年代,美國海軍和IBM公司在哈佛大學(xué)發(fā)起創(chuàng)建了一項工程,在霍華德?艾肯(Howard Aiken)的直接領(lǐng)導(dǎo)下發(fā)明建造了一臺名為Mark I的巨型計算機(jī),它即使用了電子部件,也使用了機(jī)械部件。
1943 年,阿蘭?圖靈發(fā)明了一臺名為巨人(Colossus computer),它是世界上最早的電子數(shù)字機(jī)器,是為破譯德國Enigma密碼而設(shè)計的。
1946 年,由約翰?莫奇勒(John Mauchly)和普雷斯波???颂兀↗. Presper Eckert)發(fā)明了第一臺通用的、完全電子的計算機(jī)
ENIAC (Electronic Numerical Integrator and Calculator,電子數(shù)字集成器和計算器)
, 它利用了將近18 000個集成塊,有100英尺長,10米英尺高,重達(dá)30噸。
溫馨提示:上述5種計算機(jī)的存儲單元僅僅用來存放數(shù)據(jù),它們利用配線或開關(guān)進(jìn)行外部編程。
基于馮?諾依曼模型的計算機(jī)
前面提到馮?諾依曼提出了程序和數(shù)據(jù)應(yīng)該存儲在存儲器中,這樣做的好處是當(dāng)需要進(jìn)行一項新的任務(wù),你只需要改變程序,而不用重新布線或者調(diào)節(jié)成百上千的開關(guān)。
1950年,在賓夕法尼亞大學(xué)誕生了,第一臺基于馮氏思想的計算機(jī) EDVAC - 離散變量自動電子計算機(jī)(Electronic Discrete variable Automatic Computer),它明確奠定了新機(jī)器由五個部分組成,是近現(xiàn)代通用計算機(jī)的雛形。
1949年,由英國劍橋大學(xué)的莫里斯?威爾克斯(Maurice Wilkes)受到?
馮?諾依曼提出的EDVAC報告
發(fā)明制造了 EDSAC - 電子延遲存儲自動計算器 ( Electronic delay storage automatic calculator ),它是第二臺存儲程序電子計算機(jī)。
(3) 現(xiàn)代計算機(jī)誕生
此階段為 1950年至今,至此之后出現(xiàn)的計算機(jī)都差不多都是基于馮?諾依曼模型,它們變得更快、更小、更便 宜,但原理幾乎是相同的。
第一代計算機(jī)(大約1950?1959年)以商用計算機(jī)的出現(xiàn)為主要特征,計算機(jī)體積龐大,且使用真空管作為電子開關(guān),價格昂貴。
第二代計算機(jī)(大約1959?1965年)使用晶體管代替真空管,減小了計算機(jī)的體積同時也節(jié)省了開支。
第三代計算機(jī)(大約1965?1975年)使用集成電路(晶體管、導(dǎo)線以及其他部件做在一塊單芯片上)的發(fā)明更加減少了計算機(jī)的成本和大小。
第四代計算機(jī)(大約1975?1985年)出現(xiàn)了微型計算機(jī),并且在1975年發(fā)布了第一個桌面計算器(Altair 8800)
第五代計算機(jī)(大約1985?至今) 出現(xiàn)了掌上計算機(jī)、臺式計算機(jī)、筆記本計算機(jī)的誕生、第二代存儲媒體(CD-ROM、DVD等)的改進(jìn)、多媒體的應(yīng)用以及虛擬現(xiàn)實現(xiàn)象。
1.5 社會問題和道德問題
計算機(jī)科學(xué)引發(fā)了一些周遭的問題,其中最為普遍的可以歸類為社會問題
和道德問題
。
社會問題
產(chǎn)生依賴 :對計算機(jī)的過渡依賴 , 離開計算機(jī)什么事也做不了
社會公正:計算機(jī)最開始出現(xiàn)時,并不是所有人都能付得起能使用的,意味著計算機(jī)已經(jīng)構(gòu)成僅為中高收入人群的服務(wù),而低收入人群被剝奪了權(quán)利,但是隨著計算機(jī)科學(xué)的 發(fā)展 , 計算機(jī)越來越便宜 , 計算機(jī)使用的公正 問題正在減小
數(shù)字分列化 : 導(dǎo)致的信息分裂 ,作者把使用計算機(jī)和不使用計算機(jī)分為兩類 人群 , 一部 分 人 通計算機(jī)進(jìn)行通信,一部分使用 傳 統(tǒng)通信方式。
道德問題
隱私 :為了保護(hù)隱私我們需要通信的私密性。
版權(quán) :因特網(wǎng)已經(jīng)為思想共享創(chuàng)造了機(jī)會,電子版權(quán)遭遇挑戰(zhàn)。
計算機(jī)犯罪 :非法利用計算機(jī)進(jìn)行攻擊、盜取、詐騙、勒索等問題突出。
本文至此完畢,更多技術(shù)文章,盡情等待下篇好文!
原文地址:https://blog.weiyigeek.top/2022/5-30-692.html
親,文章都看完了,不關(guān)注一下嗎?
如果此篇文章對你有幫助,請你將它分享給更多的人!

學(xué)習(xí)書籍推薦?往期發(fā)布文章?

網(wǎng)站首頁被篡改? 看我使用PhantomJS利器實現(xiàn)網(wǎng)站自動監(jiān)控修改并截圖發(fā)送企業(yè)微信預(yù)警(視頻)
資源分享 | 申請永久免費的eu.org頂級域名創(chuàng)建屬于自己的域名,再也不用給自己博客域名續(xù)費了(視頻)
網(wǎng)安等保-Linux安全加固之最新Ubuntu-22.04-LTS系統(tǒng)內(nèi)核優(yōu)化與安全加固配置腳本分享
運維實踐-我在B站學(xué)源碼編譯Nginx利用GeoIP2模塊實現(xiàn)顯示IP所屬地及處理不同地區(qū)訪問
運維實踐-我在B站學(xué)在源碼編譯Nginx里使用lua-nginx模塊解析Lua腳本訪問Redis數(shù)據(jù)庫

作者答疑學(xué)習(xí)交流群:歡迎各位志同道合的朋友一起學(xué)習(xí)交流關(guān)注UP主后回復(fù)【學(xué)習(xí)交流群】。
【WeiyiGeek Blog's - 花開堪折直須折,莫待無花空折枝?】
作者主頁:【?https://weiyigeek.top?】
博客地址:【?https://blog.weiyigeek.top?】
作者交流(wechat):weiyigeeker
公眾號(wechat):全棧工程師修煉指南
溫馨提示: 由于作者水平有限,本章錯漏缺點在所難免,希望讀者批評指正,并請在文章末尾留下您寶貴的經(jīng)驗知識,聯(lián)系郵箱地址?master@weiyigeek.top?或者?UP主 、UP主?聯(lián)系我。