作業一: 安裝Linux於btrfs上 中正大學 作業系統實驗室 指導教授:羅習五

Slides:



Advertisements
Similar presentations
陋室銘 劉禹錫 立人國中小丹老師編製 劉禹錫二三事 司空見慣 劉禹錫才氣縱橫,卻恃才傲物,一生落拓時候 多,當他貶為蘇州刺史時,司空李紳請他喝酒, 並請了一個貌美清秀的歌妓獻唱,他大為心動 寫了一首詩:「高髻雲鬢新樣妝,春風一曲杜 韋娘,司空見慣渾閒事,斷盡蘇州刺史腸。」 李紳明白其中寓意,便將歌妓送給他。而「司.
Advertisements

Linux 环境及 Shell 程序 操作系统实验 1. 二、 Shell 编程与进程通信 常用 shell 命令 文件及文件属性操作 ls 、 cp 、 mv 、 rm ln 、 ln –s 、 chmod 、 groupadd 、 useradd 输入输出操作 echo 、 cat >> 、
辅导老师:隋秀峰 2008年10月22日 Lab3:MPI Programming 辅导老师:隋秀峰 2008年10月22日.
第1单元 操作系统概论 第一节 绪论 操作系统定义.
林森國小一年8班班親會 葉宛婷老師 103年9月19日 晚上7:00-8:30 地點:108教室.
行程(process).
第七章 操作系统接口 7.1 联机用户接口 7.2 Shell命令语言 7.3 系统调用 7.4 UNIX系统调用 7.5 图形用户接口.
技术支持部 张新凤( ) 并行机群系统安装、使用和管理 技术支持部 张新凤( )
中国科大新创校友基金会 揭牌仪式暨运作九周年工作汇报 秘书长 刘志峰
操作系统原理 Principles of Operating System
信息系统 应急解决方案 北京神州讯安科技有限公司
自由軟體SFS3 SFS3 學務系統是採用開放原始程式碼所架構的校務行政電腦化系統,目標是希望使各中小學校能擁有一個自由開放強大的校務E化平台。 本系統採用 Apache+PHP+MySQL,具備強大的模組功能,並且跨平台支援 Linux/FreeBSD/Windows等作業環境。 最大的特色是:自由、開放、模組化、高度可擴展能力。
网御网络审计系统后台维护培训.
Chapter 6 時序.
資訊安全與系統管理 2013/3/13 Chien wei lin.
基于操作系统的编程复习 张玉宏
UNIX系統與資料庫安裝 Why UNIX 常用的工具程式介紹 資料庫的安裝.
计算机系统安全 第10章 常用攻击手段.
心理的力量 --兼谈教师心理压力的调适
第 5 章 文件I/O操作.
Linux 的進階檔案處理.
第8章 Linux系统管理.
嵌入式Linux开发快速入门 迟思堂工作室 李迟
Linux.
第8章 字元與字串處理 8-1 C語言的字元檢查函數 8-2 C語言的字串 8-3 字串的輸入與輸出 8-4 指標與字串
第 2 章 上機使用 Unix/Linux 內容: 操作介面 主機連線 登入主機 認識系統環境 使用者常用命令.
南京天石软件技术有限公司 陈锺 (QQ: Solaris 10 C编程 南京天石软件技术有限公司 陈锺 (QQ:
台灣大學計算機及資訊網路中心 教學研究組 張傑生
Compilers Flex & Bison 的安裝使用
C的發展史 C程式初體驗 C程式設計基本注意事項 上機實習課程
chapter 1-Introduction
編譯環境介紹.
第7章 Linux环境编程.
助教:胡光能,解定宝 编译原理讲师:戴新宇
磁碟掛載.
Linux server 連線軟體: 主機:kitty.cs.pu.edu.tw 帳號:dar 密碼:n….w.
程序设计期末复习 黎金宁
第12章 從C到C++語言 12-1 C++語言的基礎 12-2 C++語言的輸出與輸入 12-3 C++語言的動態記憶體配置
Linux基本操作 程設實習課 ( 2/25 ).
伺服器探索營 Day 1 指導老師: 張啟中 (JohnAxer) 教學助理:
Windows與Linux資源共享 SAMBA
作業系統實習課(四) -檔案管理- 實驗室:720A 助教:鄧執中.
THE C PROGRAMMING LANGUAGE
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab3.
Struct結構 迴圈
序及第0章.
C++ 程式設計 基礎篇 張啟中 Chang Chi-Chung.
第二章 UNIX系统安装与常用命令.
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A Lab3.
第 3 章、組合語言 作者:陳鍾誠 旗標出版社.
C语言环境配置.
C標準輸出入函數庫 與 作業系統.
開放電腦計劃 報告人:陳鍾誠 2011 年 8 月 20 日 台灣開源人年會 COSCUP 2011 – 中研院
实验一:编译运行Linux内核并使用gdb进行调试
本节内容 文件读写 视频提供:昆山爱达人信息技术有限公司.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab7.
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
第八节 算术运算符和算术表达式.
实验二:添加Linux系统调用及熟悉常见系统调用
Linux网络配置管理.
第6章 嵌入式软件开发基础.
实验三 Linux文件目录操作 一、目的 二、要求 了解并掌握Linux文件目录结构。 了解Linux文件系统与目录操作:
劉庠宏、林合治編著 國立高雄大學應用數學系 2005年3月1日
第六章 文件系统与文件管理 6.4 Linux文件管理 1、比较MS DOS 与 Linux的目录结构 一、Linux文件系统的树形结构
Introduction to the C Programming Language
函式庫補充資料 1.
《操作系统设计与实现》 第5章 文件系统.
《操作系统设计与实现》 Linux系统编程.
隨機函數.
Presentation transcript:

作業一: 安裝Linux於btrfs上 中正大學 作業系統實驗室 指導教授:羅習五 http://wap.yesky.com/gameonline/405/11790405.shtml 作業一: 安裝Linux於btrfs上 中正大學 作業系統實驗室 指導教授:羅習五

前言: 版本:0.1 假如你想收到最新的作業系統資訊,請填寫底下表格,這份投影片每半年到一年會有一 次大更新,我會將更新資訊寄給您 https://goo.gl/GzqoXo 台灣的資訊教育較為特別,幾乎所有資工系的學生都要「考」研究所,因此無法直接使 用國外的教材 目前網路上看到大部分的教材都是pdf形式,無法修改,授課老師無法依照學生的需求, 增減資料 我希望能用幾年的時間,完成沒有版權問題,涵蓋恐龍本基本觀念,並以Linux為基礎的 作業系統簡介投影片 作業系統非常龐大,很多地方是我沒接觸過的、沒研究過的,因此投影片當中可能會有 不少錯誤

前言: 這份投影片對讀者(學生)的設定如下 由於計算機結構是研究所的內容,因此相關的部分會在投影片內交代清楚 (大學部只修過計算機組織) 略懂資料結構、演算法 「真的」會寫程式 約略看懂組合語言 了解Linux system programming,例如基本的fork、pipe、signal等等 由於計算機結構是研究所的內容,因此相關的部分會在投影片內交代清楚 (大學部只修過計算機組織) 恐龍本中涵蓋,但不重要的部分我放在投影片最後面的「補充的名詞解釋」 這份投影片依然以介紹概念為主,與恐龍本不同的是以Linux為例介紹概念

接下來的規劃 橋接恐龍書和Linux上,讓到業界的新鮮人可以透過這份投影片 快速了解整個Linux架構 更加模組化,教師可以選擇自己喜歡的部分,組成一個章節 每個章節都提供一個夠有代表性的實作 每個章節提供一系列的課後問題 提供更進階的部分

作業目標及負責助教 作業目標: 負責助教: 了解Linux kernel的系統呼叫處理機制 了解x86的除錯機制 了解如何於PC上對kernel進行追蹤(trace) trace二個system call 負責助教:

作業一:作業概要 請安裝Linux 18.04.1 檔案系統請選用btrfs 安裝gcc-8.0、g++-8.0、make、cmake hint:sudo apt install XXX 作業主幹 操作btrfs檔案系統

問題一:列出所有的btrfs的sub-volume shiwulo@vm:~$ sudo btrfs subvolume list / [sudo] password for shiwulo: ID 257 gen 9665 top level 5 path @ ID 258 gen 9654 top level 5 path @home

列出fstab $ sudo vim /etc/fstab # <file system> <mount point> <type> <options> <dump> <pass> # / was on /dev/sda1 during installation UUID=6eb65616-fe51-4230-a800-f92210075ace / btrfs defaults,subvol=@ 0 1 # /home was on /dev/sda1 during installation UUID=6eb65616-fe51-4230-a800-f92210075ace /home btrfs defaults,subvol=@home 0 2 /swapfile none swap sw 0 0

問題二: 請問/etc/fstab內各個欄位的意思為何?

撰寫一支程式不斷的印出時間 clocktime.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <unistd.h> int timespec2str(char *buf, uint len, struct timespec *ts) {     int ret;     struct tm t;     tzset();     if (localtime_r(&(ts->tv_sec), &t) == NULL)         return 1;     ret = strftime(buf, len, "%F %T", &t);     if (ret == 0)         return 2;     len -= ret - 1;     ret = snprintf(&buf[strlen(buf)], len, ".%09ld", ts->tv_nsec);     if (ret >= len)         return 3;

撰寫一支程式不斷的印出時間 clocktime.c     return 0; } int main(int argc, char **argv) {     clockid_t clk_id = CLOCK_REALTIME;     char timestr[1000];     struct timespec ts;     FILE *a, *b;     a = fopen("./a.time", "w+");     b = fopen("./b.time", "w+");     while(1) {         clock_gettime(clk_id, &ts);         timespec2str(timestr, sizeof(timestr), &ts);         fprintf(a, "time=%s\n", timestr);         fprintf(b, "time=%s\n", timestr);         sync();     }

編譯clocktime.c $ cd ~ $ gcc clocktime.c -o clocktime $ ./clocktime /*請在一個terminal不斷地執行./clocktime,不要停止*/

備份方法一 建立備份目錄方法一: 問題三: shiwulo@vm:~$ sudo mkdir /backup shiwulo@vm:~$ sudo chmod 777 /backup sudo tar -jc -f /backup/home1.tar.bz2 /home 解開/backup/a.time及/backup/b.time(可以使用檔案管理員解開即可) 問題三: a.time和b.tme的內容一樣嗎?

使用snapshot,建立備份 $ sudo mkdir /snapshot $ sudo chmod 777 /snapshot $ sudo btrfs subvolume snapshot /home /snapshot/home-$(date +"%Y-%m-%d-%H:%M:%S") $ sudo tar -jc -f /backup/home2.tar.bz2 ./home- 2018-10-09-07\:43\:12/ /*請特別注意,你的日期時間可能跟我的不一樣*/ 問題四: 解壓縮以後a.time和b.tme的內容一樣嗎?(可以使用檔案管理員解開即可)

刪除snapshot image shiwulo@vm:/snapshot$ sudo btrfs subvolume delete ./home-2018-10-08-19-51/ /*注意,你的目錄名稱可能跟我不一樣*/

思考 如果只使用tar進行備份,除非進行offline的備份,例如:將系統停 機,對資料夾進行備份,否則檔案備份的時候會有時間差 某些檔案會有相關性,利如:資料庫的「data file」和「index file」,就有相 關性,如果不是「同時」備份,還原以後可能會產生錯誤 以oracle而言,支援online backup,即使data file和index file在不同時間點 備份,oracle也可以維持資料庫的正確性 https://docs.oracle.com/cd/A57673_01/DOC/server/doc/SCN73/ch23.htm 問題五:參考上面文章,或其他網路文章,說明資料庫的online backup和 offline backup的差別 對其他資料庫而言,如:mySQL等等,並不支援online backup,因此 備份時,mySQL必須停機 問題六:如果使用Btrfs的話,可以在不停機的情況下備份mySQL嗎? 申論題,無對錯

Data file and index file https://slideplayer.com/slide/3190551/

Btrfs的copy-on-write機制 在我們的檔案系統中,常常會做檔案的複製,複製以後的檔案也常 常並沒有做任何修改。 因此系統中會有些檔案的內容是一樣的,但隨著複製的次數增加, 佔據磁碟的空間也跟著增加 為了解決上述問題,btrfs引入copy-on-write機制 https://unix.stackexchange.com/questions/219280/why-does-cp-r-reflink-always-perform-a-standard-copy-on-a-btrfs- filesystem

Btrfs的copy-on-write機制 time cp --reflink=always a.time a1.time time cp a.time a1.time time ln a.time a2.time 問題七:上述三個指令的時間 vim a1.time /*任意修改a1.time*/ 問題八:a.time是否會隨之改變內容 vim a2.time /*任意修改a1.time*/ 問題九:a.time是否會隨之改變內容

延伸閱讀 ZFS 如果使用的作業系統是BSD、sun solaris可以使用ZFS https://en.wikipedia.org/wiki/ZFS Btrfs的概念幾乎都是從zfs借用過來

作業繳交 針對「問題一」到「問題九」,簡答之 繳交pdf檔案,檔名必須是你的學號 作業請繳交到ecourse 期限:2018-10-19 23:59:59 不能遲交,遲交一律零分