第1章、系統軟體 作者:陳鍾誠 旗標出版社.

Slides:



Advertisements
Similar presentations
LinkIt ONE開發板的簡介.
Advertisements

第1单元 操作系统概论 第一节 绪论 操作系统定义.
计算机应用基础 项目 3-5 制作个人简历.
广西壮族自治区工商行政管理局 “守重”软件系统操作培训 2015年1月.
玉溪工业财贸学校副校长 示范校建设办公室主任 柏家渭 2014年5月13日
TQC+ JAVA全國教師研習會 PLWeb 程式設計練習平台 簡介.
主題五 CPU Learning Lab.
第 1 章 使用 APP INVENTOR 2 開發 ANDROID APP
C/C++程式設計範例教本 P657 陳會安.
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
臺北市立大學 資訊科學系(含碩士班) 賴阿福
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
第 9 章、虛擬機器 作者:陳鍾誠 旗標出版社.
Java簡介.
物件導向程式設計 CH1, CH2.
Chapter 1 Introduction.
第一篇 Unix/Linux 操作介面 第 1 章 Unix/Linux 系統概論 第 2 章 開始使用 Unix/Linux
JDK 安裝教學 (for Win7) Soochow University
第1章 認識Arduino.
手機作業系統介紹.
第 4 章 電腦的軟體世界.
桌面環境簡介及IDE開發工具 Outline (一)什麼是Linux? (二)桌面環境系統簡介 (三)IDE開發工具.
R教學 安裝RStudio 羅琪老師.
嵌入式系統進階 日期 : 2018/12/4.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
安裝JDK 安裝Eclipse Eclipse 中文化
Word與PowerPoint的結合 建功國小 陳旻杰 健行國小 張慧如.
第 12 章、系統軟體實作 作者:陳鍾誠 旗標出版社.
第1章、系統軟體 作者:陳鍾誠 旗標出版社.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A.
Android App簡介及 App Inventor 2體驗 靜宜大學資管系 楊子青
Unit 04 虛擬機器建構實驗 M. S. Jian Department of Computer Science and Information Engineering National Formosa University Yunlin, Taiwan, ROC.
雲端運算的基石(2) 虛擬化技術實作(XP篇─上)
雲端計算.
课程简介 《计算机应用基础》 与《微机操作》课程组 2019/1/16 课程简介.
Fortran 程式語言 之 編與譯(二) 張基昇.
付款作業錯誤態樣【出納組】 錯誤1~核銷文件備具不齊 錯誤2 ~戶名與系統不同 錯誤3 ~未輸發票號碼日期 錯誤4 ~受款人帳號輸錯
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
VS.NET 2003 IDE.
App Inventor 2初體驗 靜宜大學資管系 楊子青
1 意见反馈与问题解答 4 1.
Linux作業系統 電腦教室Linux使用說明.
TA教育訓練 微處理機系統實習.
網頁程式概論 建國科技大學資管系 饒瑞佶 2015/9 V1 2016/4 V2 2016/9 V3.
第 3 章、組合語言 作者:陳鍾誠 旗標出版社.
Install OpenCV C++ with Visual Studio 2017 on Windows PC
Google協作平台+檔案分享(FileZilla+網路芳鄰)
一用就上手3D列印設計 AUTODESK 123D Tinkercad 3D 設計網站
2004年以后竣工工程工程款支付情况调查系统 演 示 培 训
VS.NET 2003 IDE.
電腦概論考題分析 佛學資訊組 碩一 張榮顯.
取得與安裝TIDE 從TIBBO網站取得TIDE
Unix 安裝過程 使用2個磁片 到 rawwrite bootnet.img drvnet.img 利用rawwrite 將image檔寫入磁片.
Cloud Operating System - Unit 03: 雲端平台建構實驗
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A.
樹莓派安裝流程.
資料擷取與監控應用實務.
系統軟體 作業系統.
安裝JDK 配置windows win7 環境變數
Makefile & Cmake OSLab 蔡冠宏.
第十三章 彩色影像處理.
第 4 章、組譯器 作者:陳鍾誠 旗標出版社.
開發Java程式語言的工具 JDK.
Chapter 4 Multi-Threads (多執行緒).
C++ 程式語言.
Unix指令4-文字編輯與程式撰寫.
Develop and Build Drives by Visual C++ IDE
微 處 理 機 專 題 – 8051 C語言程式設計 主題:階乘計算
Department of Computer Information Science, NCTU
Memory Management 日期 : 2019/11/21.
Presentation transcript:

第1章、系統軟體 作者:陳鍾誠 旗標出版社

第1章、系統軟體 1.1 何謂系統程式? 1.2 系統程式與系統軟體 1.3 本書的章節架構 1.1 何謂系統程式? 1.2 系統程式與系統軟體 1.3 本書的章節架構 1.4 實務案例 (一):Dev C++開發環境 1.5 實務案例 (二):GNU 開發工具

1.1 何謂系統程式? System Software (系統軟體) System Programming (系統程式設計)

System Software (系統軟體) 何謂系統軟體? 設計給程式設計師使用的軟體, 就被稱為系統軟體 設計給一般大眾使用的軟體, 則稱為應用軟體。

系統軟體 v.s 應用軟體 應用軟體 系統軟體 試算表 組譯器 Excel 載入器 排版軟體 連結器 Word 巨集處理器 瀏覽器 編譯器 Internet Explorer Firefox Chrome 系統軟體 組譯器 載入器 連結器 巨集處理器 編譯器 直譯器 虛擬機

系統程式設計 (System Programming) 定義: 系統相關的程式設計技術,其中的系統指的是作業系 統或電腦系統。 作業系統層次的程式設計 Linux 系統程式 Windows 系統程式

作業系統相關的程式設計主題 行程管理 執行緒 行程通訊 並行控制 記憶體管理 檔案輸出入 驅動程式

電腦系統相關的程式設計主題 組合語言 C 語言 嵌入式系統

1.2 系統程式與系統軟體 高階語言  編譯器  組合語言 組合語言  組譯器  目的碼 目的碼  連結器  可執行檔 1.2 系統程式與系統軟體 高階語言  編譯器  組合語言 組合語言  組譯器  目的碼 目的碼  連結器  可執行檔 可執行檔  載入器  記憶體,開始執行

圖 1.1、程式的編譯、組譯、連結、載入之流程 高階語言 編譯器 系統軟體 組合語言 1.編譯器 2.組譯器 3. 連結器 系統程式 記憶體 組譯器 連結器 載入器 組合語言 目的檔 執行檔 系統軟體 1.編譯器 2.組譯器 3. 連結器 4.載入器 系統程式 1. 高階語言 2. 組合語言

從機器語言到組合語言 目的碼 (機器語言) 組譯器 組合語言

各種組合語言的指令 最近 (2000) (精簡指令CPU) 中期 (1990) (複雜指令CPU) 早期 (1980)

從組合語言到高階語言 範例 1.1 C 語言與組合語言的對應關係

C 語言 1972 年貝爾實驗室所發展出來的 C 語言 Ken Thompson 與 Dennis Ritchie (合稱 K & R) K &R 用 C 語言設計出 UNIX 作業系統 C 語言特別適合用來撰寫作業系統等低階程式,因此是當今 系統程式的主要語言。 C 語言可以進行記憶體映射輸出入,這讓 C 語言特別適合用 來撰寫嵌入式的系統程式

1.3 本書的章節架構 第 1 章 系統軟體 第 2 章 電腦的硬體結構 第 3 章 組合語言 第 4 章 組譯器 第 5 章 連結與載入 1.3 本書的章節架構 第 1 章 系統軟體 第 2 章 電腦的硬體結構 第 3 章 組合語言 第 4 章 組譯器 第 5 章 連結與載入 第 6 章 巨集處理器 第 7 章 高階語言 第 8 章 編譯器 第 9 章 虛擬機器 第 10 章 作業系統 第 11 章 嵌入式系統 第 12 章 系統軟體實作 導論 組合語言 高階語言 執行平台 實作『組譯器、編譯器、虛擬機器』

本書的章節導引圖 圖 1.2 本書的章節導引圖 目的檔 (第 5 章) 連結器 (第 5 章) 函式庫 (第 5 章) 連結器 (第 5 章) 函式庫 (第 5 章) 組譯器 (第 4 章) 編譯器 (第 8 章) 直譯器 (第 7 章) 高階 語言 (C) (第 7 章) 其他目的檔 載入器 (第 5 章) 執行 執行檔 (第 5 章) 虛擬機器 (第 9 章) 電腦的硬體結構 (第 2 章) 作業系統 (第 10 章) 組合語言 (第 3 章) 巨集處理器 (第6章) 系統軟體 (第 1 章) 嵌入式系統 (第 11 章) 系統軟體實作 (第 12 章) 圖 1.2 本書的章節導引圖

1.4 實務案例 (一):Dev C++開發環境 Dev C++ : Bloodshed Software 公司所設計的免費的開發工具 下載點:http://www.bloodshed.net/devcpp.html Dev C++ 使用 gcc 作為預設的編譯器。

圖 1.3 單一程式檔的Dev C++ 編譯執行畫面

1.5 實務案例 (二):GNU 開發工具 GNU 開發工具 由 GNU 組織所設計 包含 gcc 編譯器 as 組譯器 ld 連結器 make 專案建置工具 Linux 作業系統也是用 GNU 工具所開發完成的

如何使用 GNU 工具 在 Linux 當中 在 MS. Windows 中 預設就包含了 GNU 工具 安裝 Dev C++ 後就會有 GNU 工具,請參考附錄 D 的安裝方法。 安裝 Cygwin 也可以使用 GNU 工具,請參考附錄 E 的安裝方法。

圖 1.4 GNU工具使用的基本流程 ld gcc ar main.c sum.c printf.c putc.c kprintf.c main.o sum.o ld gcc printf.o putc.o kprintf.o ar libc.a libm.a executable

C 語言程式範例

使用 gcc 編譯 C 語言程式

使用 gcc 產生組合語言 使用 -S 參數可要求 gcc 產生組合語言

將 gcc 當成組譯器使用

同時組譯並連結

習題 請說明何謂系統軟體? 請列出你所知道的系統軟體。 請說明系統軟體與系統程式兩者有何區別。 請說明組合語言在系統軟體學習上的角色。 請說明 C 語言在系統程式上的用途。 請列出您所經常使用的程式語言,並說明其相關的系統軟體之用法。 請從網路下載Dev C++ 軟體,並參照附錄 D 的説明,安裝並使用 Dev C++ 撰寫 C 語言程式,並學習該軟體的用法。 請找出 Dev C++ 當中的GNU工具,並在設定好 PATH 環境變數後, 試用 gcc 指令編譯任意一個 C 語言程式 (設定方法請參考本書附錄 D)。