電腦網路與作業系統 電腦網路與作業系統

電腦網路與作業系統上課教材 - 2018 年版

電腦網路與作業系統 > 課程內容 > 第 1 堂課 - 課程介紹與資料表示法

第 1 堂課 - 課程介紹與資料表示法

上次更新日期 2018/02/01

資傳系主要是以『資訊技術』來完成『數位內容的傳播』!數位內容的製作大部份都是在桌機或一般筆電上面以生產力軟體來完成的, 一般的文書作業與提案企劃也得要透過生產力軟體來製作。而美術編排與設計則與色彩管理與動畫設計及影像編輯、影音製作等課程有關, 當完成這些數位內容後,再以串流或者是平面網頁方式來發布,這些都與電腦軟硬體有著強烈的相關性!

  • 1.1: 資訊傳播系在學些什麼?
  • 1.2: 基礎概念:數字表示法
  • 1.3: 基礎概念:文字表示法
  • 1.4: 基礎概念:點陣圖容量計算方式(解析度的概念)
  • 1.5: 課後練習

1.1: 資訊傳播系在學些什麼?

本系『資訊傳播系』主要是掛在『資訊科技學院』,亦即本系的底層乃是以『資訊科技』為主要的基本技能,加上以網路來進行數位內容的『傳播』為主。 所以,基本上本系的發展主軸為數位內容與典藏,還有資訊技術的互動多媒體技術為主。然而不論是那一個方向,基本上,本系的學生都會使用到『電腦』以及『網路』這玩意兒, 所以,『電腦網路與作業系統』就是最最基礎的資訊技能,你是一定要會的!

講的好聽一點,可以嘗試到本系的官網查閱一下相關資訊,這裡只以底下的圖來做個簡單的說明:

資傳系課程簡介

如上圖所示,基本上本系一定要學會的是『資訊基礎』,而希望媒體傳播與設計藝術的人才能夠來學這一塊。然後透過基礎的資訊技術加以應用後, 產生可以在網路上面傳播的文化創意與數位內容,若對於硬體方面比較有興趣發展的,則可以朝向智慧生活資訊科技方面去發展。 最終在大三下開始到大四下結束這三個學期內,以專題製作及畢業專案製作來將所有課程融合,做出一個讓自己滿意的作品出來。

在基礎的資訊技術學習之前,建議資科學院的同學們,一定要熟悉一種英文打字以及一種中文打字的方式,尤其是英文打字練習! 未來我們程式設計、資料庫設計、前端網頁工程師、後端工程師等等,許多時候都會使用到專業英文來處理我們的系統!不是要你多會用英文, 但是至少英文 26 個字母在鍵盤的哪個地方你都能熟悉,之後不看鍵盤也能夠 keyin 正確的英文字元,這就夠了!

前往 google 找尋適合自己的英打練習來進行打字練習。或者是直接按底下的連結到 z-type 1200 練習英打。 特別注意每隻手指頭管理的按鍵是哪幾顆,不要隨便更換。建議給自己一個目標,至少輸入英文的時候,不再需要看鍵盤!
  • 所謂的專業資訊技術

先來講個歷史故事。在筆者年輕的時候,當時電腦並不普及,所以,當時應徵工作的時候,電腦專業技術裡面有個『中/英文打字』的要求, 只要會鍵盤打字,而且速度不慢,就是一個相當專業的專業技術!後來開始讀到大學了,這時候 386 電腦 (PC) 開始普及,因此去應徵工作的時候, 公司要求『會 Office 』就已經是個門檻!這是當時的專業技術。筆者讀碩士後,當時的 Linux 開始熱門,Internet 開始流行起來。 想要應徵 IT 公司的話,有個會 Linux 作業系統,懂得架設 NAT (未來會介紹,就是類似無線基地台的轉址功能) 那就已經是了不起的專業技術。 現在 2018 年呢?這些技術都是基本技能~你應該要會的!

很多觀察家都說,未來是平板、手機的天下!只要有平板就可以辦公~幹麻需要桌機呢?所以桌機、筆電會被淘汰。這指的是高階商務人士, 以及消費市場,並不是生產力端的工程師啊!你想想,打字用平板觸控來敲,小小一塊平板能夠讓你工作多久?你的畫面就這麼小耶! 所以,在 IT 工程師端,桌機/筆電是不可能被淘汰的!因為他在生產力方面實在佔有太大的優勢了!速度快就是一切!

上述的重點是:這門課教的是基礎中的基礎,如果這個基礎你都覺得難,那很難繼續下去啊!另外,不要以為這幾年學會的東西可以用很久! 不可能~時代一直在變動,所謂的專業技術是會改變的!雖然某些邏輯概念、作業系統與網路相關基礎觀念、美學設計理念等或許是萬年不變的基礎, 但在『應用』端,就不可能不變動!因此,要記得隨時更新你腦袋的資訊!

  • 時間就跟果汁一樣,硬擠,還是會有的

大部分的人 (包括老師們) 其實都很會浪費時間~偏偏又很多藉口,沒興趣啦、沒時間啦、不懂所以不想學啦等等的。 但是對於基礎中的基礎,你不能說沒時間,你也無法說沒興趣!因為這是基礎啊!沒有基礎怎麼蓋高樓?所以,請不要再找其他藉口了! 另外,你的『職業』是學生,學生的目的是取得 60 分以上的分數,好讓你可以通過每個學期的關卡。所以,如果真的沒興趣, 不要找藉口,請務必擰出時間來學習,至少搞到 60 分就對了。有興趣呢?當然是朝 100 分邁進!

既然已經在學校了,除非很累很想睡 (那就請盡情的睡一覺!),否則,盡量讓自己保持在忙、累的角色中活動!上課中不要玩遊戲、不要聊天, 可以找自己有興趣但是沒時間學習的東西出來看,如果對某些課程沒興趣,也至少上課時保持 60 分的警戒,其他時間依舊可以學習的! 如果對其他科系有興趣,不要只是『聽說很不錯』,建議你真的去旁聽或加選!不是為了系上的畢業門檻,而是為了『你自己有興趣』而去聽、去學!

我們看過太多你們的學長只是發呆或者是『聽隔壁系同學說他們多好多涼教多少!好棒棒!』但是自己沒有親身去體驗,最終總是活在自怨自艾的生活裡! 我覺得很可惜~因為這四年是你們這輩子生活型態被定型的一個重要時間!如果混四年,你一輩子大概都混掉了,如果努力四年,未來你的努力總是會有成果的! 所以,不要再說沒時間了!就跟水果攤的水果一樣,你覺得榨過沒汁了,拿起來硬擠,他還是會出汁的~時間也是差不多~加油吧各位!

1.2: 基礎概念:數字表示法

事實上我們的電腦只認識 0 與 1,記錄的資料也是只能記錄 0 與 1 而已,所以電腦常用的資料是二進位的。但是我們人類常用的數值運算是十進位, 所以很多時候電腦必須要在不同的進位之間做切換。你當然不必知道電腦如何進行切換的程式碼,但是基礎概念還是得要理解的! 因為例如 IP 位址、檔案容量計算、下載時間規劃等等,都與這些數字表示方式有關喔!

  • 2 進位 (binary system)

先來說說什麼是『進位』,我們將每個數值想成是一個格子,那麼在一個格子內填滿最大的數值後,若要再加上新的資料,那就得要用另一個格子來存放! 這就是所謂的『進位』。以人類的 10 進位來說,每個格子只能放 0~9 這樣的數值,若要再加上 1 ,就得要進位到左邊一格,所以就會是:

1
0

如上所示,10 其實是 2 個位數,已經不是一格就能儲存的資料量的意思。那麼電腦呢?最早的電腦只會知道 0 跟 1 (其實就是有沒有通電), 所以每一格只會有 0 與 1,如果再加一呢?就超過了喔!所以不會在一格出現 2 ,亦即『逢 2 就進一位』的意思,這就是所謂的 2 進位 (binary system)。 而 2 進位的每個格子就被稱為 1 個 bit,所有若有兩個 2 進位的格子,就稱為佔用 2 個 bits 資料量的意思。

目前的網路傳輸資料的速度單位,就是以 bit 為主喔!

  • 資料存放的應用,使用 byte 位元組

雖然 bit 是電腦的基本資料存放單位,但是 bit 實在是太小了,所以後來就有一些額外的單位來表示!因為電腦是以 2 的次方來進行資料存放的, 所以所有的資料存放當然是以 2 的次方來計算才對!後來使用了 8 個 bit 來作為一些資料存放的最小單位,這就被稱為位元組 (byte), 也因為使用到 8 個 bit 來存放,所以兩者間的關係就是:

1 byte = 8 bits

也就是說,無論你資料是多小,一定會佔用一整個 byte 在做儲存。舉例來說,當你的一個資料單位僅為數值的 1 時,其實電腦裡面紀錄的資訊為:

0
0
0
0
0
0
0
1

事實上佔用了 8 個 bit 的格子,而這 8 個 bit 的格子就被稱為是一個 byte 了!而即便我們已經使用了 byte 來做資料儲存的最小單位,但是 byte 還是太小了! 在數值表示上面依舊相當困擾!因此後來就增加了一些容量單位的表示方式,例如 Kbytes 代表 210bytes 這樣的表示方式!常見的容量單位簡化單位如下:

進位制KiloMegaGigaTeraPetaExaZetta
二進位10241024K1024M1024G1024T1024P1024E
二進位210byte220byte230byte 240byte250byte260byte270byte
十進位10001000K1000M1000G1000T1000P1000E
十進位103byte106byte109byte 1012byte1015byte1018byte1021byte
  • 常見的 10 進位單位用途

一般用途:例如在長度單位、貨幣單位,通常就是使用 10 進位。舉例來說,政府希望企業可以讓員工起薪在 30K,那個 K 就是 1000 的意思~而不是 1024。 而跑馬拉松的訓練,我們說『去跑個 10K』,指的也是 1000 的意思。

資訊用途:而在電腦資訊的應用上,10 進位的簡化單位通常用在時脈、硬碟出廠的容量單位,例如 CPU 時脈為 2.0GHz,或硬碟為 2TB ,都是 10 進位喔!

  • 常見的 2 進位單位用途

例如檔案容量單位,或者是分割槽 (partition) 單位,通常預設就是 2 進位。例如一個檔案有 2Kbytes,代表的是 2*1024 = 2048 bytes 的意思。 另外,在網路資料傳輸行為上,使用的基礎單位是 bit 而不是 byte 喔!這點比較特別。

請使用你 PC 上的『小算盤』完成底下的計算 (使用『工程型』的模式來計算):
  1. 硬碟出廠時,容量定為 4TB,請問這樣的硬碟實際可以存放的檔案容量最大到多少 Tbytes?寫下計算式與結果到小數點第 3 位
  2. 一般台灣常見的網路頻寬多是 下載/上傳 非對稱速度分別為 60Mbps/20Mbps,請問實際傳輸檔案容量時, 最快下載/上傳的速度分別會是多少?寫下計算式與結果。
  3. 一般常見的網路卡速度號稱為 1Gbps ,請問在這樣的理論速度下,下載一個 1GBytes 的檔案,會花多少時間?
  4. 承上,那使用 60Mbps/20Mbps 來處理這個 1GBytes 的檔案,下載與上傳分別會花多少時間?
  • 進位轉換

如果以十進位來說,3456的意義為:

3456 = 3x103 + 4x102 + 5x101 + 6x100

特別注意:『任何數值的零次方為1』所以100的結果就是1囉。 同樣的,將這個原理帶入二進位的環境中,我們來解釋一下 01101010 的數值轉為十進位的話,結果如下:

01101010 = 0x27 + 1x26 + 1x25 + 0x24 + 1x23 + 0x22 + 1x21 + 0x20
= 0x128 + 64 + 32 + 0x16 + 8 + 0x4 + 2 + 0x1 = 106

我這裡使用了 1byte 來說明,因此用了 8 個格子,前面要補 0 才行!

這樣你瞭解二進位的意義了嗎?二進位是電腦基礎中的基礎喔!瞭解了二進位後,八進位、十六進位就依此類推啦! 那麼知道二進位轉成十進位後,那如果有十進位數值轉為二進位的環境時,該如何計算? 剛剛是乘法,現在則是除法就對了!我們同樣的使用十進位的106轉成二進位來測試一下好了:

進位轉換

最後的寫法就如同上面的紅色箭頭,由最後的數字向上寫,因此可得到 01101010 的數字囉 (使用 1byte 儲存,所以前面加 0)! 這些數字的轉換系統是非常重要的,因為電腦的加減乘除都是使用這些機制來處理的!

完成底下的計算 (建議先寫下最小與最大的 2 進位後,再思考成 10 進位)
  1. 聽說 IPv4 的 IP 位址共有 32 位元,以人類的角度來看,會將 32 位元拆成 4 組,每組 8 位元 (亦即 4 個位元組)。 請問,以 10 進位來說,每一組最小到最大的 10 進位數字為多少?
  2. 聽說 IPv4 的 IP 是有大小範圍的,所謂的 Class A 在第一組數值上面,以 2 進位來說,一定是 0 開頭。 請問 class A 的第一組數值,以 10 進位來說,他的範圍會在多少之間?
  3. 將 201 這個 10 進位轉成 2 進位,並以 1 byte 的方式來紀錄
  4. 將 100 這個 10 進位轉成 2 進位,並以 1 byte 的方式來紀錄

1.3: 基礎概念:文字表示法

既然電腦儲存的最小單位為 bit,而檔案儲存的最小單位通常為 byte,那麼一個 byte 最多可以紀錄的就是 28 = 256 這麼多個數值而已, 那文字是什麼概念?因為都是儲存數值而已啊,文字在哪裡?其實文字是透過所謂的『編碼』格式來處理,最簡單的想法就是,其實文字也是一種圖形, 你只是使用儲存的紀錄去記載你使用的是第幾個圖形符號 (即文字) 而已。

最簡單常用的編碼格式就是 ASCII 這個英文數字與符號的編碼格式,你可以從 google 搭配 ascii 及 wiki 去找到這個編碼格式的對照表, 你會發現 ASCII 編碼共有 127 個 (從 0 號到 126 號,總共 127 個) 『圖示』,然後根據 10 進位的對應,你就可以根據記錄的數值去找到正確的『圖示』, 並且將該『圖示』顯示到你的編輯器裡面,這就是文字的對應方式了。

所以說,當你使用到錯誤的編碼,該編碼的『字型檔』也就是該字型的『圖片』沒有安裝,那就無法正確的顯示出你所撰寫的文字! 亦即:所謂的『編碼系統』可以想成是一個『字碼對照表』,他的概念有點像底下的圖示:

字碼對照表

另外,每個 ASCII 的『圖示』佔用了一個 byte,但是每個 byte 不是共有 256 種數值嘛?為什麼剛剛找的資料僅有 127 種圖示呢? 這是因為 ASCII 的紀錄中,第一個位元被用來作為檢驗碼,所以就只有 7 個位元作為圖示的編號對照的緣故喔!

完成底下的動作:
  1. 依據剛剛你查到的 ascii 的 wiki 文件說明,查出可以顯示到螢幕上面的字元圖示之 10 進位號碼範圍
  2. 呼叫出命令提示字元之後 (cmd),輸入下列的指令,查閱不同上述的數值,查看對應的字元是否正確?
    cmd /c exit N
    echo %=exitcodeAscii%
    指令中的 N 為數值,亦即你剛剛查詢到的可顯示字元的範圍任何一個數值均可。
  • 萬國碼 (Unicode)

中文字當中的編碼系統早期最常用的就是big5這個編碼表了。 每個中文字會佔用2bytes,理論上最多可以有216=65536,亦即最多可達6萬多個中文字。 但是因為big5編碼系統並非將所有的位元都拿來運用成為對照,所以並非可達這麼多的中文字碼的。 目前big5僅定義了一萬三千多個中文字,很多中文利用big5是無法成功顯示的~所以才會有造字程式。

big5碼的中文字編碼對於某些資料庫系統來說是很有問題的,某些字碼例如『許、蓋、功』等字, 由於這幾個字的內部編碼會被誤判為單/雙引號,在寫入還不成問題,在讀出資料的對照表時, 常常就會變成亂碼。不只中文字,其他非英語系國家也常常會有這樣的問題出現啊!

為了解決這個問題,由國際組織ISO/IEC跳出來制訂了所謂的Unicode編碼系統,我們常常稱呼的UTF8或萬國碼的編碼就是這個咚咚。 因為這個編碼系統打破了所有國家的不同編碼, 因此目前網際網路社會大多朝向這個編碼系統在走,所以各位親愛的朋友啊,記得將你的編碼系統修訂一下喔!

一個 ASCII 編碼的文字儲存時佔用一個 byte 的容量,那麼一個萬國碼 (utf-8) 的中文字,會佔用幾個 byte 呢? 這個問題很大!原因是 unicode 目前的版本還是非常多,我們以通用的 utf8 來說的話,基本上,佔用的 byte 會有 2~4 個之間。 這是因為中文字型比較多,而且為了對應到所有的世界上面的文字顯示,因此最多會有 4 個 byte 的儲存容量。 所以, utf8 中文字預設是 2 個位元組,不過根據字體,可能會有佔用 3 或 4 個位元組的情況發生。

從上面的說法你也可以知道,當你的系統或軟體並沒有支援某種文字編碼時,當你拿到該文字的檔案,用編輯軟體一打開,就會看到許多的亂碼, 上面就是產生亂碼的解答了!因為該文字對應的編碼並沒有辦法找到文字圖檔來顯示的意思。

1.4: 基礎概念:點陣圖容量計算方式(解析度的概念)

那圖形檔的紀錄又是什麼呢?其實最簡單的圖形檔就是點陣圖~那什麼是點陣圖呢?有聽過解析度吧?意思是你的圖檔裡面 X 與 Y 軸的方向各有幾個點的意思, 當點的數量越大,代表可以儲存的面積越大,佔用的容量也就越大了!例如以底下單純的黑、白點陣圖,就是一個範例:

黑白點陣圖示意

你應該有聽過 3 原色,那就是 RGB 吧!如果打開小畫家之後,去處理調色盤,那你會看到這三個顏色 (Red, Green, Blue) 的強度會使用 0~255 的數值, 這代表多大的量?當然就是 1byte 囉!那因為有三個顏色,因此使用 RGB 色調的 bmp 點陣圖,預設一個格點就會用掉 3byte 的容量大小。 所以囉,你只要嘗試計算一下解析度與每個格點的儲存容量,就能推算出原圖大慨會佔用多少的磁碟容量了。

完成底下的計算與實做:
  1. 計算:一張 800x600 解析度的照片,若以 BMP 的完整格式儲存,大概會佔用多少磁碟容量?
  2. 實做:打開小畫家,調整底圖讓整個畫面的解析度為 800x600,隨意寫幾個字,然後儲存時選擇 BMP 格式,儲存後請查閱該檔案的容量為多少?
  3. 實做:將上述檔案另存新檔成為 jpg 格式,比較兩個檔案容量的差異。
  4. 實做:以瀏覽器將上述檔案分別開啟,看看畫面內容有沒有差異?

事實上檔案是可被壓縮以節省容量的!其實壓縮我們常常在做喔!例如你有 101367 元,你可能會說你有『十萬元』,十萬元當然比較好講,不用講『十萬零一千三百六十七元』, 講完天都黑了!這個就是簡單的『壓縮』概念。只是上述的概念是失真壓縮,也就是,事實上聽的人不會知道你有多少零頭~所以他無法復原你最初的金額。 如果是 111111 這樣的數值呢?那就簡單了!你可以說:『6個1』就結束!是否單純很多!未來也能夠完整的復原回去!

有些資料必須要使用非失真壓縮,例如文字檔或 data 檔,因為內容不能遺失!但有些資料則可以進行失真壓縮來節省容量, 例如那個 jpeg 圖檔或 gif 圖檔等~圖檔被壓縮之後,要復原成原本的檔案資料會有點難,但是至少跟當初的畫面不會差太多! 所以上述的練習中,我們曾將將那張簡易的圖檔轉存為 jpg 格式,你會發現檔案容量差很多喔!這是因為我們的圖檔比較簡單。如果圖檔內容越複雜, 能夠被簡化的部份就越少,那圖檔就會有越大的容量使用率。

關於像素 (pixel) 的基礎認知:
  • 800x600 這個解析度大概是多少像素?(單位請用『 XX 萬像素』)
  • 現在手機上面大概都有拍照功能。假設你的手機拍照功能中,他具有 800 萬像素,如果你使用 16:9 的格式, 請問最大解析度大概是多少?(近似值即可,沒有固定答案)

1.5: 課後練習

請使用 word 檔案 (.doc 或 .docx) 進行下列題目的撰寫(某些題目需要加上圖檔),且檔案容量請不要超過 2MBytes 以上, 以 1Mbytes 為宜,亦即你的圖檔需要限制解析度,並請注意:

  • 首次使用上傳系統時,務必使用 pietty 更改一次密碼,並請將密碼自己記憶下來,未來不能隨時變更密碼的。
  • 檔名請設定為: os_4XXXCYYY_unit01.doc (4XXXCYYY 是你的學號,請填正確,有分大小寫,請確認)
  • 請使用 filezilla 搭配 FTP 協定 (port 21) 上傳
  • 請上傳到你家目錄底下的 os 目錄中 (若不存在,請自行建立該目錄)

開始本章節題目:

  1. 請進行 z-type 的打字遊戲練習,將最好的分數擷取檔案下來,分數至少要超過 1000 分以上。
    打字練習
  2. 一般硬碟出廠時的容量單位為使用 10 進位,假設你買一顆隨身硬碟的容量號稱 3TB,該硬碟格式化之後,可應用的檔案容量 (2進位) 最多是多少 TB? 寫下計算式,計算結果到小數點第 3 位
  3. 假設你的網路速度測試結果如下圖所示,請問,當你有一個 500M 的檔案需要下載以及上傳時,在傳輸上面各會花費多少時間?(近似值即可)
    打字練習
  4. 請將 220 轉成 2 進位,寫下計算式與結果,結果使用 1byte 的記錄去思考
  5. 請將 96 轉成 2 進位,寫下計算式與結果,結果使用 1byte 的記錄去思考
  6. 聽說 IPv4 的位址中,當為 class B 的情況下,他使用的第一個位元組前兩個位元為 10,請問,在 Class B 的 IPv4 位址的第一個數值, 經過計算,最小到最大的 2 進位與 10 進位分別是多少?寫下算式與結果
  7. 現在手機上面大概都有拍照功能。假設你的手機拍照功能中,他具有兩千萬像素,如果你使用 4:3 的格式,請問: (a)最大解析度大概是多少? (b)若存檔使用 BMP 的格式,則每個檔案會佔用多少容量,請用 MBytes 為單位?(近似值即可,沒有固定答案)