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

電腦網路與作業系統上課教材

電腦網路與作業系統 > 課程內容 > 第 01 章 - 課程介紹、資料表示法與繳交作業方式

第 01 章 - 課程介紹、資料表示法與繳交作業方式

上次更新日期 2019/12/12

本系-資訊傳播系-主要是以『資訊技術』來完成『數位內容的傳播』,這中間會用到很多不同的資訊技術,包括程式設計、影音編輯、伺服器管理、 數位內容編輯製作等。不論是哪一種技術或數位內容,我們大部分都得要在桌機或者是一般筆記型電腦上面以生產力軟體來工作,會比較有效率的完成這些任務。 至於一般的文書作業與提案企劃也得要透過生產力軟體來製作。而包括美術編排與設計則與色彩管理與動畫設計、影像編輯、影音製作等課程有關, 當完成這些數位內容後,再以串流或者是平面網頁方式來發布,這些都與電腦軟硬體有著強烈的相關性!

學習目標:

  1. 瞭解資傳系各個課程之間的簡單關聯性
  2. 學會英文打字與中文打字的指法
  3. 理解各種數學進位制的概念
  4. 理解各種進位數值的轉換
  5. 瞭解 GB 與 GiB 等不同的單位意義
  6. 知道何謂 unicode 文字編碼
  7. 瞭解解析度以及像素的計算

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

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

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

資傳系課程簡介

如上圖所示,基本上本系一定要學會的是『資訊基礎』,而希望媒體傳播與設計藝術的人才能夠來學這一塊。然後透過基礎的資訊技術加以應用後, 產生可以在網路上面傳播的文化創意與數位內容,若對於硬體方面比較有興趣發展的,則可以朝向智慧生活資訊科技方面去發展。 最終在大三下開始到大四下結束這三個學期內,以專題製作及畢業專案製作來將所有課程融合,做出一個讓自己滿意的作品出來。 當然啦,我們要求的是跨領域的整合,所以,在系上可以根據你的興趣,來找尋適合自己學習的目標。若以網頁網站架設為基礎的話,那麼你應該要理解底下的圖示:

資傳系課程簡介

當你要架設網站的話,就需要右側的 WWW 伺服器的支援,所以至少你得要瞭解伺服器的運作。然後,一般我們會學習如何製作互動式的網站, 這時當然就得要資料庫的支援!而資料庫要能夠跟網站互連,就得要透過類似 PHP 這種伺服器端的網頁程式語言的協助!再來, 如果想要讓你的網站資料變得很生動活潑漂亮,還得要理解 CSS 以及 JavaScript 等技術。如果只是想要讓網頁漂亮,那就是網頁前端技術, 而如果想要讓網站資料跟著讀者互動,那就得要後端資料庫的學習,兩者之間的溝通界面就是 API 發展人員的技能~如果全部都會, 你就將成為全端網頁工程師了!

  • 資訊的時代,『速度』很重要!英打又比中打重要~

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

而打字要快速,最重要的是鍵盤的指法~現在,請低下頭看一下自己的鍵盤,並且用『食指』碰觸一下『 F 』與『 J 』這兩個按鈕, 你會很容易發現,這兩個按鈕的底部有個突起點,那就是要讓你分別放置你左、右手食指的地方。基本上,鍵盤與手指頭相對位置有點像底下的模樣:

鍵盤指法
  • 左手食指輕輕放在 F 按鍵上,其他左手中指、無名指、小指則分別放置到 D, S, A 按鍵上
  • 左手大拇指未來可以敲擊空白鍵,大拇指稍微翹起,不用放置到空白鍵上面。
  • 右手食指輕輕放在 J 按鍵上,其他右手中指、無名指、小指則分別放置到 K, L, ; 按鍵上
  • 右手大拇指跟左手大拇指一樣。

手指頭輕輕的放在上面就好,另外,大拇指也輕輕的放在空白鍵上,不要用力押!你的手掌應該是有點懸空的,最多是手腕處放置在桌面上而已。 這就是打字時的基本動作。不過,因為手掌其實是稍微懸空的,因此雙手對肩膀的壓力非常大。所以,打字時,你的坐姿最好與地面呈現 90 度垂直做好, 避免前傾或後仰,這樣打字的時候,你的肩膀、腰部比較不會有太大的壓力。否則年紀大一些之後,會有很多後遺症...

接下來則是每跟手指頭管理的按鍵,因為食指比較靈活,所以食指要管兩直行的按鍵,而組合按鍵,則需要用到小指按下 [shift] 的協助! 每跟手指頭跟管理的按鍵相關性如下:

鍵盤指法

單一按鍵的輸入這樣看就好了,但是,如果你要輸入類似『 VBird 』這樣的資料呢?請注意:『不要使用大寫燈』進行大小寫切換! 你應該要這樣做:

  1. 右手小指按下 [shift] 後,左手食指按下 V 即可
  2. 右手小指按下 [shift] 後,左手食指按下 B 即可
  3. 右手中指按下 i 即可
  4. 左手食指按下 r 即可
  5. 左手中指按下 d 即可

鳥哥在碩士班以前都是使用一指神功打字,無論中打還是英打,說實在的,當時覺得自己的打字速度還挺快的。後來開始撰寫鳥站文章之後, 深深覺得打字的速度很慢,所以就開始練習指法來打字。剛開始的第一天,實在很不適應,總是會不自覺的恢復到之前一指神功的打字方式! 甚至整天練習下來,會覺得手指頭抽筋得很嚴重...不過持續了一週之後,接下來,到目前為止 (2019),已經將近 20 年,這個打字的習慣都沒有忘記, 除了當兵期間比較少練習導致退伍之後有幾天打字速度比較慢之外,其他時間打字幾乎都不用看鍵盤的!你看看~一個禮拜的練習可以用 20 年以上!很值得投資!

基礎鍵盤認識後,先來練習一下基礎英文打字吧!剛開始練習英打時,最重要的就是記憶住每個字母與數字的位置, 然後該位置應該要去處理的手指頭~之後就開始依序打字的練習!現在,請打開 notepad++ 或者是一般的 notepad 都好,開啟新檔案

    • 單純的英文打字

    詳細的位置圖示已經在上面的圖示介紹過, 現在,請立刻將雙手放置到該放置的地方,左手食指放在 F 上,右手食指放在 J 上,然後兩隻手掌懸空,準備輸入連續的英文字元:

    abcdefghijklmnopqrstuvwxyz↵
    abcdefghijklmnopqrstuvwxyz↵
    ...
    

    一開始連續輸入個 5 次,前幾次可以看鍵盤畫面來點選,之後幾次嘗試只看螢幕不要看鍵盤~並且記得『 Enter 』與『倒退鍵』的位置, 如果輸入錯誤,不要緊張,一樣透過右手小指去按下倒退鍵來處理,盡量不要動到滑鼠,都用鍵盤來處理!

    • 輸入英文與數字

    在比較順暢的處理完英文的輸入之後,現在請加上數字來處理!

    1234567890, abcdefghijklmnopqrstuvwxyz↵
    1234567890, abcdefghijklmnopqrstuvwxyz↵
    ...
    

    不要忘記還有數值符號,因此在數字輸入完畢後,請先看一下鍵盤,看看逗號的位置,然後加上空白鍵推開,一樣練習個 5 次。 如果還有其他的符號你比較常用的,也可以繼續使用上述的方式來處理!

    • 加上兩手組合動作的大寫功能

    最終要來練習大寫字元,不要打開大寫燈號,使用左右手同步處理的功能,右手小指按住 shift 時,左手小指輸入 A 來處理底下的任務:

    !@#$%^&*(), ABCDEFGHIJKLMNOPQRSTUVWXYZ↵
    !@#$%^&*(), ABCDEFGHIJKLMNOPQRSTUVWXYZ↵
    ...
    

    同樣的練習 5 次!這樣每天練個 5 次,不出一個禮拜,你的英打就會變得飛快無比喔!

    • 努力的目標:成功完成盲打

    另外,盡量不要看鍵盤,只看螢幕或者是你想要打字的來源資料 (如紙本),只看螢幕還能夠知道自己輸入什麼,只看文件不看鍵盤與螢幕的, 那種輸入方式就是所謂的『盲打』!是相當有趣的練習!等你練習到盲打的階段,那個就厲害了!最終的目標就是希望同學們能夠持續到盲打的任務, 這樣未來你就不會害怕輸入英文,也不會看到英文就發呆了!加油!

如果你覺得光是英文打字練習很煩躁,沒有什麼繼續練習的動力時,那麼,請開始處理底下的打字練習遊戲!不過,要進行底下的遊戲時, 你一定要『已經練會』不用看鍵盤就可以 keyin 正確的字母的功力才行!!

例題:1.1-1、打字練習遊戲:
前往 google 找尋適合自己的英打練習來進行打字練習。如果可能的話,請使用底下的連結來進行打字練習!並且強迫自己可以練到 500 分以上。 另外,不要直接透過這個遊戲來練習打字,你應該要先完成上面的練習 (那大概會花費你一週的時間),然後再開始底下的遊戲較佳。

中文打字方面,如果你跟鳥哥一樣,只會注音輸入法的話,那麼,打字練習就很重要!因為,注音的編排並沒有什麼特別的地方,而是從鍵盤的左上方開始, 照順序一個一個注音符號照排而已,並沒有慣用文字放置的位置!跟剛剛的英文打字一樣,要先練習到所有的注音符號位置都記憶下來, 再來則是照順序慢慢打字,最後開始練習打字與挑字囉。

鳥哥習慣的注音輸入法是酷音輸入法,這個是 CentOS Linux 的預設中文輸入法,不過 Windows 系統預設還是以微軟新注音為主。不過對鳥哥來說, 鳥哥還是比較習慣酷音輸入法~因此都會額外安裝這個輸入法來處理的!詳細的輸入法下載請參考如下的網址:

例題:1.1-2、注音打字練習,因為注音還得要挑字,所以,沒有看螢幕實在很難打字的速度加快!所以,先要背好所有的注音符號, 接下來才能夠開始打字!速度才會快喔!不過,練習很難單純的輸入ㄅ、ㄆ、ㄇ、ㄈ、等等,要練習有點麻煩。不過,依舊可以使用酷音輸入法來達成! 你可以輸入ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄓㄔㄕ...但是依舊需要挑字...有點煩。因此,可以透過某些網站的小遊戲來達成練習。例如底下的快打高手網站: 建議可以先選擇依據注音符號的項目,然後慢慢加上其他的練習。如果已經將注音符號背下來,就可以進入打字練習: 上面的中打練習 (typing.tw) 還挺不賴的!有提供計算的方式,讓你瞭解你打字的速度到哪邊~相當有趣!這個技術也是很值得投資!加油!!
  • 所謂的專業資訊技術

先來講個歷史故事。在鳥哥年輕的時候(西元 1990 年以前),當時電腦並不普及,所以,當時應徵工作的廣告內,電腦專業技術裡面有個『中/英文打字』的要求, 只要會鍵盤打字,而且速度不慢,就是一個相當專業的資訊技術!後來開始讀到大學了,這時候 386 電腦 (PC) 開始普及,因此應徵工作的廣告單上面, 公司開始要求『會 Office 』就已經是個門檻!這是當時的專業資訊技術。

鳥哥讀碩士後 (西元 1995 年前後),當時的 Linux 開始熱門,Internet 開始流行起來。 想要應徵 IT 公司的話,有個會 Linux 作業系統,懂得架設 NAT (未來會介紹,就是類似無線基地台的轉址功能) 那就已經是了不起的專業技術。 現在 2019 年呢?這些技術都是基本技能~你應該要會的!

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

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

你可能會想,既然已經到了 AI 的時代了,那你幹麻還得要學習這些基礎知識呢?基本上是這樣,所有的 IoT 資訊全部都是電子訊號與數位內容, 這些內容都得要透過 IT 技術來進行存放、分析、再重製的行為!這些行為沒有維護的工程師,也是無法繼續下去的!因此,AI 加上機械手臂, 可能會讓第一線的勞工朋友少了很多工作機會,但是對於我們這種資訊人員來說,其實,機會是增加非常多的!

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

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

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

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

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

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

所謂的『進位』,你可以將它想成『一個格子裡面,只能放一個數字,大過這個數字,就得要使用到兩個格子來存放』的意思。人類因為有 10 隻手指頭, 所以經常使用來計算的進位是『10進位』,亦即 0~9 可以放在一個格子內,超過 9 之後,就得要用兩個格子來放,也將寫成 2 位數的數值的意思。 那麼想一想,人類除了 10 進位,還經常使用哪些數值進位的方式呢?

  • 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 還是太小了! 在數值表示上面依舊相當困擾!因此後來就增加了一些容量單位的表示方式,例如 Kibytes 代表 210bytes 這樣的表示方式!常見的容量單位簡化單位如下:

十進位制 Kilobyte Megabyte Gigabyte Terabyte Petabyte Exabyte Zettabyte
十進位1000B1000KB1000MB1000GB1000TB1000PB1000EB
十進位103byte106byte109byte 1012byte1015byte1018byte1021byte
二進位制 Kibibyte Mebibyte Gibibyte Tebibyte Pebibyte Exbibyte Zebibyte
二進位1024B1024KiB1024MiB1024GiB1024TiB1024PiB1024EiB
二進位210byte220byte230byte 240byte250byte260byte270byte

不過,時至今日,大家都已經很習慣在檔案系統時,使用 GB 取代 GiB 這樣的認知,除非同一個軟體又同時支援兩種格式時,才會特別強調。 否則,一般來說,大家還是習慣了使用 GB 之類的簡寫,只是在自己使用該單位時,得要認知到底該情況應該使用什麼進位的類型就是了。

  • 常見的 10 進位單位用途

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

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

  • 常見的 2 進位單位用途

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

例題:1.2-1、請使用你 PC 上的『小算盤』完成底下的計算 (使用『工程型』的模式來計算):
  1. 硬碟出廠時,容量定為 4TB,請問這樣的硬碟實際可以存放的檔案容量最大到多少 TiB?寫下計算式與結果到小數點第 3 位
  2. 一般台灣常見的網路頻寬多是 下載/上傳 非對稱速度分別為 100Mbps/40Mbps,請問實際傳輸檔案容量時, 理論最快下載/上傳的速度分別會是多少?寫下計算式與結果。
  3. 一般常見的網路卡速度號稱為 1Gbps ,請問在這樣的理論速度下,下載一個 1GBytes 的檔案,會花多少時間?
  4. 承上,那使用 100Mbps/40Mbps 來處理這個 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)! 這些數字的轉換系統是非常重要的,因為電腦的加減乘除都是使用這些機制來處理的!

例題:1.2-2、完成底下的計算 (建議先寫下最小與最大的 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 進位的對應,你就可以根據記錄的數值去找到正確的『圖示』, 並且將該『圖示』顯示到你的編輯器裡面,這就是文字的對應方式了。

請立刻使用 google 查詢一下 wiki 與 ascii 的資料,找到 ASCII code 所對應的數值與字型圖片的關聯性。 並查閱一下該 wiki 的內容,確認一下 ASCII code 共有幾個字型資料。

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

字碼對照表

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

例題:1.3-1,完成底下的動作:
  1. (1)依據剛剛你查到的 ascii 的 wiki 文件說明,查出可以顯示到螢幕上面的字元圖示之 10 進位號碼範圍, (2)並且參考 這個圖檔,同時說明一下,A 以 2 進位及 10 進位,是怎麼參考出該數值的?
  2. 呼叫出命令提示字元之後 (cmd),輸入下列的指令,查閱不同上述的數值,查看對應的字元是否正確?
    cmd /c exit N
    echo %=exitcodeAscii%
    指令中的 N 為數值,亦即你剛剛查詢到的可顯示字元的範圍任何一個數值均可。
附帶說明,若需要命令提示字元底下的歷史命令查詢,可以按下 [F7] 的功能鍵即可收到效果!
  • 中文與萬國碼 (Unicode)

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

事實上,unicode 也有很多不同的定義標準,例如 utf8, utf16 等等。所以,每個中文字所佔用的容量並不相同。 大致上記憶一個 unicode 文字的容量,介於 2~4 bytes 之間喔!

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 軸的方向各有幾個點的意思, 當點的數量越大,代表可以儲存的面積越大,佔用的容量也就越大了!例如以底下單純的黑、白點陣圖,就是一個範例:

黑白點陣圖示意

上圖中, X 軸有 8 個圓,Y 軸有 4 個圓,如何記載這個圖示呢?最簡單的方法,就是讓白色的圓設定為 0,黑色的圓設定為 1 , 因此,左圖的展示,就可以用右圖的數值方式記載了!這就是一種數位化的想法!

例題:1.4-1、調整電腦螢幕解析度的方式:
  1. 將你的 windows 電腦打開控制台,尋找到跟螢幕解析度有關的項目上,調整數個螢幕解析度
  2. 說明,單一一個物件,在越小的解析度情境下,螢幕的畫面當中,這個物體會越大還是越小?為什麼?
  3. 此外,你的螢幕與顯示卡的最高解析度大概分別到哪裡?
  4. 舊型的螢幕是否可能會出現無法負荷的情況發生呢?

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

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

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

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

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

目前這個社會,我們幾乎無時無刻都盯著螢幕看,包括電視、電腦、手機、平板、電子看板等等。如果你有看電視的習慣, 目前的電視有推出所謂的 Full HD, 4K 或者是 8K 等等『解析度』的螢幕。請上網查詢一下,所謂的 4K 意思是什麼? 這個對你未來瞭解影音資料很有關系喔!

1.5: 作業繳交的方式與檔案上傳的網站

本課程的作業除了上機實做題之外,大部分作業可能都以 Office 軟體所製作的 word 或 pdf 檔案為主。 作業做完之後,需要同學自行上傳到課程的伺服器上,使用的傳輸協定為 FTP 而已。這學期第一次操作系統時, 你需要詢問授課教師,關於你的帳號與密碼。一般來說,Windows 系統的帳號不分大小寫,但是鳥哥的伺服器為 Linux 系統, 系統使用的帳號大多要求為小寫字元。因此,你的預設帳號、密碼,為你的學號喔!

  • "第一次"登入系統才需要進行的:修改密碼

為了避免你的帳號被攻擊,因此,實際使用你的帳號之前,鳥哥的系統是會『強迫』你修改你自己的密碼,而且密碼設計很嚴格, 隨便輸入簡單的密碼,你會被要求重新指定新密碼!通常,密碼要求為:

  • 最少需要 8 個字元以上
  • 密碼需要包含英文、數字、特殊符號的組成才行 (特殊符號,例如 ^_/\!*-+..)
  • 密碼內容不能包含你的帳號部份或全部
例題 1.5-1:登入系統取得認證帳密
  1. 抄寫下老師於白板上撰寫的伺服器『主機名稱』與你的帳號 (注意,伺服器的帳號通常為英數,且英文為小寫字元)
  2. 請使用 pietty (若找不到,請 google 下載) 依據老師的說明,登入系統。第一次登入系統時,帳號會被強迫重新修改密碼, 整個變更密碼的畫面有點像這樣:
    變更密碼示意圖
    • 看到 (current) 代表要輸入的是『舊密碼』,亦即是老師提供給你預設的密碼
    • 看到 New password: 代表『要猜一個新密碼,輸入一個新密碼』的意思,這個密碼長度需要超過 8 個字元,且含有英數,不可以太簡單, 也盡量不要包含自己的一些特徵號碼 (如身份證、手機、生日等等,盡量少用)
    • 看到 Retype new password: 代表你剛剛輸入的新密碼可以通過系統驗證,請再輸入一次即可。
    上述流程如果超過 3 次(猜三次新密碼都無法通過系統的驗證),那你就會被強迫踢出系統,請整個流程重新再來一次。
  3. 最終你就會取得 (1)伺服器主機名稱或 IP (2)使用者帳號 (3)使用者密碼
  • 檔案上傳:使用 Filezilla 軟體

那麼該如何上傳到上述的伺服器呢?這也相當簡單~透過 filezilla 軟體即可!這個 filezilla 就是一個免費自由的 FTP 用戶端程式! 你可以到底下的連結去下載,當然,也可以自行 google 一下就好了!

上述的網址點進去後,選擇『 Download FileZilla Client 』那個項目即可!在最後出現的彈出式視窗中,選擇最陽春的 FileZilla (最左側) 的 download 即可! 下載之後,請自行安裝好該軟體!之後,你就能在開始程式集裡面找到 Filezilla 了!找到之後,請立刻執行 filezilla,就可以看到類似如下的畫面:

Filezilla client

上面的畫面中,最上方為主要訊息區,中間左側為本機端目錄與檔案,中間右側為遠端伺服器的目錄與檔案,下方則是伺服器與你的 windows 之間進行檔案傳輸的訊息說明。 現在,先讓我們處理要連線登入伺服器的環境,亦即是先來設定伺服器的連線參數,包括伺服器主機名稱、伺服器 IP 位址、登入帳號與登入密碼等參數。 請按下圖中的左上方的站台圖示 (如上圖箭頭處),然後就會出現下圖的樣式:

Filezilla client

一開始,系統並沒有任何的站台設定,因此,我們先在上圖按下『新增站台』的設定,就會出現可以讓我們填寫設定值的位置,如下所示:

Filezilla client

請依據老師寫在白板上面的伺服器主機名稱,然後其他的設定項目 (由箭頭處 1 到箭頭 7 的地方) 填寫正確,按下『確認』之後,這個設定值就會出現如下的視窗, 要你確認是否儲存到本機的設定當中。

Filezilla client

如果這部系統的帳號是你專用的,或者是電腦根本就是你自己的,並沒有跟別人共用,那可以如同上圖的展示,直接儲存起來即可!按下確認後, 會回到原本的 Filezilla 畫面。此時,請依據下圖,點選站台管理員的三角形按鈕,並且點選剛剛設定的『作業系統網站』的按鈕, 如下所示:

Filezilla client

如果你的帳號密碼與相關設定都正確,那麼就可以登入遠端的伺服器系統,如下所示,就可以看到遠端系統有檔案資料出現了!一開始畫面中只有 www 這個目錄, 請在空白處按下右鍵,然後選擇『新增目錄』來建立給本課程專用的『 os 』目錄,如下所示:

Filezilla client

過去同學在上傳資料時,經常會上傳到錯誤的目錄!或者是忘記了 Linux 是有大小寫限制的。請注意, os 目錄必須是小寫字元,同時,上傳檔案時, 務必如下所示,一定要在『 /os 』目錄下即可!千萬不要搞錯了喔!

Filezilla client

上面就是我們網站資料傳輸作業的方法!接下來,就讓我們來處理第一章的作業吧!

1.6: 課後練習

作業上傳時的注意事項:

  1. 伺服器的詳細資料,以及相關傳輸軟體設定,請參考第一章的 1.5 節的內容。
  2. 可以使用 MS office 的 word 或者是 libreoffice 的 writer 等軟體來撰寫你的作業,作業檔名可以使用 .doc, .docx 或者是 .odt 或者是 pdf 等格式,均可接受。
  3. 若作業中有圖檔,請將圖檔降低水平解析度到 800 像素以下再貼到文章中,檔案容量以不超過 2Mbytes 為限。
  4. 檔名請設定為: os_4XXXCYYY_unit01.doc (4XXXCYYY 是你的學號,請填正確,有分大小寫,請確認)
  5. 請上傳到你家目錄底下的 os 目錄中 (若不存在,請自行建立該目錄)

開始本章節題目:

  1. 資訊相關科系,或者是需要動用到資訊軟體的學生們,英文打字是相當重要的一項基礎技能~請持續依據本章的介紹, 先以循序的方式學習好 (1)小寫英打 (2)使用 shift 按鍵處理大寫英打的方式之後,再開始進行 z-type 打字遊戲的練習。 該遊戲執行後,請至少達到 500 分以上,並將圖示截圖下來,如下所示: 打字練習
  2. 前往資傳系的系網,查詢屬於你這一屆的課程科目表,將每一年與網站、網頁製作與網站、網頁程式設計、資料庫等相關技術的課程, 將課程名稱與設課年級寫下來。
  3. 簡單說明 GB (Gigabyte) 與 GiB (Gibibyte) 的數值差異為何? (再次強調,目前大家都統一稱為 GB 了, 只是,應用的情境不同,其代表的意義也會跟著改變而已)
  4. 一般硬碟出廠時的容量單位為使用 10 進位,假設你買一顆隨身硬碟的容量號稱 3TB,該硬碟格式化之後,可應用的檔案容量 (2進位) 最多是多少 TB (應該寫 TiB 會比較準確)?寫下計算式,計算結果到小數點第 3 位 (這一題,你可以手寫到計算紙上,再拍照貼上即可)
  5. 中華電信光世代的網路頻寬,於 2019 年前後主要推展的業務是 300Mbps/100Mbps 這種非對稱式的網路傳輸速度。請問實際傳輸檔案容量時, 理論上,最快的下載/上傳速度分別是多少 (請以單位 MBype/second 來思考)?寫下計算式與結果。
  6. 下圖是使用 speedtest 軟體在手機上面進行的傳輸測試截圖。假設該圖示為最終的下載速度,那麼請問,當你有一個 500M 的大型檔案需要下載時, 在傳輸上面各會花費多少時間?寫下計算式與結果。 手機傳輸速度
  7. 請將 220 轉成 2 進位,寫下計算式與結果,結果使用 1byte 的記錄去思考
  8. 請將 96 轉成 2 進位,寫下計算式與結果,結果使用 1byte 的記錄去思考
  9. 聽說 IPv4 的位址中,當為 class B 的情況下,他使用的第一個位元組前兩個位元為 10,請問,在 Class B 的 IPv4 位址的第一個數值, 經過計算,最小到最大的 2 進位與 10 進位分別是多少?寫下算式與結果
  10. 請先讀完底下的維基百科文章: 請簡答底下的問題:
    1. 中文 big5 編碼有其起源與重要性,這個編碼最主要的成功,應該是當時的倚天中文系統以及 windows 3.x 採用的關係。 但為何 big5 會退流行?請簡略分析可能的原因。
    2. 嘗試簡單回答,為何中文漢字、日語漢字、韓語漢字的編碼大致上都可以相同?
    3. UTF8 是 unicode 的可變儲存長度的編碼表達方式,與 unicode 大部分為 2 位元組長度的方式不同。一般來說, UTF8 每個字元的長度, 大致上是幾個位元組之間?
  11. 請上網自行查閱,並回答 (1)Full HD, (2)4K, (3)8K 的水平解析度,大概的範圍各別是多少?
  12. 一張 1024*768 解析度的圖片,若使用 BMP 的完整儲存格式儲存,大概會佔用多少磁碟容量?
  13. 現在手機上面大概都有拍照功能。假設你的手機拍照功能中,他具有兩千萬像素,如果你使用 4:3 的格式,請問: (a)最大解析度大概是多少? (b)若存檔使用 BMP 的格式,則每個檔案會佔用多少容量,請用 MBytes 為單位?(近似值即可,沒有固定答案)

1.7: 參考資料