0:00:15.353,0:00:17.238 你還記得你首先領悟到 0:00:17.238,0:00:18.659 的電腦不只是 0:00:18.659,0:00:20.742 螢幕加鍵盤而已嗎? 0:00:20.742,0:00:23.325 滑鼠點兩下,影片就開始播放 0:00:23.325,0:00:25.598 在這之間有樣東西,得知你的意圖 0:00:25.598,0:00:26.428 予以解讀 0:00:26.428,0:00:27.880 並讓它實現 0:00:28.650,0:00:30.270 這東西是什麼? 0:00:30.270,0:00:32.007 是小妖精嗎? 0:00:32.007,0:00:33.665 想像一下,我們縮小到 0:00:33.665,0:00:35.141 和電子一樣的大小 0:00:35.141,0:00:37.894 接著把自己注射到滑鼠鍵裡 0:00:37.894,0:00:39.531 如果你把滑鼠拆開 0:00:39.531,0:00:42.193 你會發現這是很簡單的機器 0:00:42.193,0:00:43.444 滑鼠有兩個按鍵 0:00:43.444,0:00:46.747 一個偵測動向及距離的系統 0:00:46.747,0:00:48.163 你可能用的是光學滑鼠 0:00:48.163,0:00:50.868 透過光及感應器來完成這些計算 0:00:50.868,0:00:52.958 舊一點的滑鼠有一顆硬硬的橡膠球 0:00:52.958,0:00:54.576 還有塑膠環 0:00:54.576,0:00:56.325 兩者概念相同 0:00:56.325,0:00:57.914 當你按下滑鼠按鍵的時候 0:00:57.914,0:00:59.716 滑鼠就發送訊息到電腦 0:00:59.716,0:01:01.825 關於滑鼠位置的資訊 0:01:01.825,0:01:03.491 電腦接收滑鼠資訊後 0:01:03.491,0:01:06.880 則由輸出入的子系統來負責 0:01:06.880,0:01:09.444 這個子系統就像是電腦的眼睛 0:01:09.444,0:01:12.053 耳朵、嘴巴,以及雙手 0:01:12.053,0:01:13.958 基本上,這個系統提供電腦一個方法 0:01:13.958,0:01:16.443 去和電腦環境互動 0:01:16.443,0:01:18.090 它的作用也有點像緩衝器 0:01:18.090,0:01:21.501 避免CPU被不相干的程式淹沒 0:01:21.501,0:01:23.811 就這例子來看,輸出入子系統 0:01:23.811,0:01:25.942 判定滑鼠點選的項目很重要 0:01:25.942,0:01:28.939 所以發送一個插播信號給CPU 0:01:28.939,0:01:31.075 「嘿,CPU!這東西被點選了。」 0:01:31.952,0:01:34.327 CPU,也就是中央處理器 0:01:34.327,0:01:36.522 是整台電腦的大腦 0:01:36.522,0:01:39.072 就像你的大腦不會占據你全身 0:01:39.072,0:01:41.577 CPU也不會占據整台電腦 0:01:41.577,0:01:44.262 但是他會一直執行同樣的事情 0:01:44.262,0:01:46.506 CPU的主要工作 0:01:46.506,0:01:48.444 就是從記憶體拿取指示 0:01:48.444,0:01:50.451 然後執行 0:01:50.451,0:01:52.380 所以當你不斷打字 0:01:52.380,0:01:53.610 也許打得很快 0:01:53.610,0:01:55.088 一分鐘六十個字吧 0:01:55.088,0:01:57.090 CPU一直拿取然後執行 0:01:57.090,0:01:59.137 一秒鐘執行數十億個指示 0:01:59.137,0:02:02.176 對,每秒鐘幾十億個 0:02:02.176,0:02:04.982 你在螢幕上移動滑鼠的指示 0:02:04.982,0:02:07.145 執行桌面的時鐘附件 0:02:07.145,0:02:08.892 播放網路電台 0:02:08.892,0:02:11.145 處理在硬碟中,你在編輯的檔案 0:02:11.145,0:02:12.900 還有很多很多 0:02:12.900,0:02:16.160 CPU就是個超神的多重任務處理王 0:02:16.743,0:02:17.613 「但是我的天呀 0:02:17.613,0:02:18.909 滑鼠點了一下 0:02:18.909,0:02:20.030 資訊現在要傳來了! 0:02:20.030,0:02:22.560 先停止所有任務,然後處理那個!」 0:02:23.207,0:02:24.604 CPU處理的每樣事物 0:02:24.604,0:02:26.336 都有一個程式 0:02:26.336,0:02:28.058 滑鼠有個專門的程式 0:02:28.058,0:02:29.092 時鐘附件也有 0:02:29.092,0:02:30.303 網路電台也有 0:02:30.303,0:02:33.136 處理鍵盤傳送的文字也有 0:02:33.136,0:02:35.688 每個程式一開始都是人類寫的 0:02:35.688,0:02:37.906 用人類看得懂的程式語言 0:02:37.906,0:02:38.765 像是Java 0:02:38.765,0:02:39.798 C++ 0:02:39.798,0:02:41.219 或是Python 0:02:41.219,0:02:43.741 但是人類的程式占據了很多空間 0:02:43.741,0:02:47.450 也包含很多電腦不需要的程式 0:02:47.450,0:02:49.191 這些程式因而被整合,縮小 0:02:49.191,0:02:52.653 以1和0的方式儲存在記憶體中 0:02:52.653,0:02:55.410 CPU知道自己需要指示 0:02:55.410,0:02:57.411 去處理滑鼠點的那一下 0:02:57.411,0:02:59.380 所以CPU就查詢滑鼠的程式 0:02:59.380,0:03:01.755 並發送請求給記憶體的子系統 0:03:01.755,0:03:04.179 讀取儲存在那的指示 0:03:05.287,0:03:07.216 滑鼠驅動程式的每一個指示 0:03:07.216,0:03:09.742 都能充分拿取並執行 0:03:09.742,0:03:12.113 還不僅僅如此! 0:03:12.113,0:03:14.654 因為CPU知道滑鼠被按了一下 0:03:14.654,0:03:16.216 游標經過某張圖片 0:03:16.216,0:03:18.177 在顯示器某個按鈕的時候 0:03:18.177,0:03:21.248 CPU會要求記憶體提供顯示器的程式 0:03:21.248,0:03:23.353 找出滑鼠是按了哪裡 0:03:23.353,0:03:25.601 然後CPU得要求記憶體 0:03:25.601,0:03:27.437 提供按鍵的程式 0:03:27.437,0:03:28.948 也就是說,CPU還需要 0:03:28.948,0:03:30.688 顯示器的程式 0:03:30.688,0:03:32.860 顯示出影片與按鍵的關聯性 0:03:32.860,0:03:34.742 影片就開始播放 0:03:34.742,0:03:37.487 我們假設過程中包含很多程式 0:03:37.487,0:03:39.472 甚至在看到幕上的點選物 0:03:39.472,0:03:41.379 亮起來之前 0:03:41.379,0:03:43.848 所以,單純按下滑鼠這個動作 0:03:43.848,0:03:46.216 代表你已經使用電腦結構中 0:03:46.216,0:03:48.196 許多重要的元素 0:03:48.196,0:03:49.238 像是週邊設備 0:03:49.238,0:03:51.047 基本的輸出入系統 0:03:51.047,0:03:52.379 CPU 0:03:52.379,0:03:53.154 程式 0:03:53.154,0:03:54.140 還有記憶體 0:03:54.140,0:03:56.133 而不是小妖精