更新於 2024/12/14閱讀時間約 6 分鐘

盡量好懂的容器化技術演化史 (一):電腦

前言


  本文是為了解釋服務應用程式,如何從位於單一電腦上運作的執行環境,逐步演化成在容器化技術上執行應用程式的形式。本文並非以深入探討技術為目的,而是基於為並未具有資訊知識或背景,並初次接觸微服務讀者講述其演化與關係,故本文並非嚴謹的技術文檔。

  在不違反易讀之前提下,本文將盡量提供專有名詞,以供感興趣的讀者能有關鍵字進行查閱。若需要對相關技術進行深入了解,建議利用本文所提供之專有名詞至官網查閱,希望初入資訊領域之讀者,可以養成依照官網文檔為資料基準,佐以其餘文章輔助理解的良好習慣。


  以上,若本文有誤,敬請勘誤指正,若於其他地方查閱與本文所敘述之內容不符,一切請以提供機構之官方文檔為主。

  感謝諸位閱讀前言,敬祝閱讀愉快。




電腦


  首先在說明軟體服務以前,我們需要事先定義所謂的『電腦』是什麼?

  不算太精密地去說明,在現代,舉凡符合『馮紐曼架構』的機器,都應該可以被稱為電腦。

  因應用途而在實現上有所不同,但舉凡從超級電腦到微電腦,現代運行的電腦設備,都是符合馮紐曼架構的機器。反過來說,只要符合馮紐曼架構的設備,無論它在商業上有什麼稱謂 (智慧電視、智慧手錶、智能手機),都應當符合電腦的定義。

  當然,除了馮紐曼架構以外,還有很多的架構,但這並不是這裏討論的範疇。


  在馮紐曼式的電腦中,電腦被分成了五大單元,分別稱作:


1. 控制器(中央處理器 CPU)

2. 運算器(中央處理器 CPU)

3. 儲存器(記憶體 Memory)

4. 輸入設備(Input)

5. 輸出設備(Output)


  至於我們會用『電腦』這種概念的設備去進行什麼工作呢?

  縱使經過眼花撩亂的應用包裝,我們使用電腦的過程,不外乎就是進行三件事:


1. 輸入

2. 計算

3. 輸出


  嗯,聽君一席話,如聽一席話。

  這聽起來很像廢話,但是追溯起來還真的就是這樣,只是做這件事的規模很大,所以看起來會像是魔法。


  假設你有去自行組裝過電腦的經驗,就會知道現代電腦的最小開機要求,會需要以下零件:


1. 電源供應器 (Power):把市電 (110V、220V) 轉成電腦零件的用電 (12V、5V、3.3V),台達或是海盜船的主力業務在這個位置。

2. 主機板 (Motherboard):把所有零件串起來的位置,包含 USB 晶片,網路晶片,I/O接口,和其他零件的接口等等,華碩、微星與技嘉的主力業務在這個位置。

3. 中央處理器 (CPU):馮紐曼結構中的控制器及運算器,Intel 跟 AMD 與高通的主力業務在這個位置。新聞常講什麼 Arm 或是 x86,發燒友常講什麼 K 處理器或是超頻,都是在說這裡。另外嚴格來說蘋果的 M 晶片不等於 CPU。

4. 記憶體 (Memory):馮紐曼結構的儲存器,美光或是金士頓的主力業務在這個位置。


  有要組電腦或是買股票的同學可以參考,當然這不是裝機或選股指南。

  除了上述的零件以外,剩下的零件都不是必要的。


  沒有鍵盤滑鼠跟螢幕可以開機,沒有聲卡可以開機,沒有 Wifi 卡可以開機。

  沒有顯示卡 (GPU,Nvidia 的主力業務在這個位置) 也可以開機 (雖然說有些主機板會鎖無顯卡又無內顯的配置)。

  甚至沒有硬碟 (Disk,Seagate 和 WD 的主力業務在這個位置) 也同樣可以開機 (同樣的,有些主機板會鎖無硬碟狀態,但自行組電腦必須要有硬碟才可以裝作業系統 (OS,Microsoft 的主力業務在這個位置)就是了,所以實務面來說,硬碟算是必備的)。

  當然沒有機殼 (Case,迎廣或曜越的主力業務在這個位置) 也可以用鐵絲充當開關跳線開機。


  就這樣,我們建立一台了可以計算、輸入跟輸出的機器了。

  接下來就可以談輸入跟輸出。


  輸入這件事,最直觀的就是用鍵盤或滑鼠、用觸控螢幕或是麥克風、視訊頭、指紋感測器、溫溼度感測器或紅外線感測器等等,或是從硬碟讀取資料,這些都算是輸入的一環。

  輸出則是可以粗略分成『取得結果』和『保存結果』這兩個目的,打印到螢幕上,撥放到耳機裏,傳出震動,發動引擎,將資料寫入硬碟內,都是算輸出的一種。


  而輸入輸出都可以透過『網路』來進行。

  所謂的『網路』,指的就是設備跟設備間的溝通方式。


  『人類』跟『設備』只能透過按鍵與視覺聽覺或是觸覺來做互動,而設備跟設備間彼此會通過網路通訊來做溝通,從藍芽到一般的 RJ-45 網路孔與無線 Wi-Fi 都可以是介質,這些東西都是設備跟設備間的溝通方式。


  輸入跟輸出這件事,不見得是人跟設備的互動,也可能是設備跟設備的互動;事實上,設備跟設備的互動應該會比人跟設備的互動更多。


  也就是會變成這個形式:


<-螢幕與鍵盤等等-> 【客戶端設備】 <-網路或藍芽等等-> 【伺服端設備】


  在這種時候。

  做輸入的設備就會稱為『客戶端 (Client)』。

  等待輸入並回饋輸出的設備,就會稱做『伺服器 (Server)』。

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.