2014年2月20日 星期四

上課投影片

親愛的各位同學,本課程的完整投影片可在此下載。本投影片所引用之材料其一切權利均屬各原作者所有,而非引用材料之原創部分採創用CC授權(姓名標示─非商業性88x31.png),歡迎大家流通、分享。如內容有任何疏漏、錯誤,並請惠予指教(對投影片修改等有建議的同學可酌情加分,同時您的姓名將出現於未來投影片之致謝頁面(如您不願署名,煩請告知))。


  • 注意:投影片將不定時更新增補內容及修正錯誤,更新後檔名版本將會遞增,煩請各位同學注意。
  • Lecture 1: Introduction  Slides
  • Lecture 2: Routine commands  Slides
  • Final project proposal template can be downloaded HERE.
  • Lecture 3: Shell scripting (1)  Slides   
  • Lecture 4: More on text processing (AWK)  Slides
  • Lecture 5: Regular expression (regex)  Slides
  • Lecture 6: System programming (I)  Slides
  • Lecture 7: System Programming Basics (II)  Slides (投影片太晚公布,故不考)
  • Lecture 8: Discussion of final project proposals
  • Lecture  9: Interrupts Slides
  • Lecture 10: Interrupts (II) Slides
  • Lecture 11, 12: VFS (I)  Slides  (II)  Slides
  • 6/11 停課一次。

重要公告

  • 歡迎各位同學來到CS312: UNIX系統概論的課程網頁,以下為本課程之最重要資訊,供各位同學參考:
  • 授課老師:黃柏鈞 助理教授
  • 老師信箱/辦公室:pchuang@saturn.yzu.edu.tw/R3312B
  • Office Hours: 周二下午12~16點
  • 助教:TBA
  • 上課時間/地點:周四 5, 6, 7節/1304
  • 期中考成績(未完):下載
  • 期末考時間:TBA
  • 點名紀錄在此可下載:檔案
  • 提醒:6/11因老師外出開會,停課一次。
  • 提醒:6/25由徐皓講師代課,講解 make tool。
  • 提醒:請在 6/24 中午前寄信給老師預約 demo 時間,一組有 30 分鐘之 demo 時間,以下時間以外均可,造成不便敬請見諒:
    • 6/22 (一) 下午三點半以前
    • 6/23 (二) 下午兩點以前
    • 6/24 (三) 中午十二點到三點
    • 6/25 (四) 晚上九點以前
    • 6/26 (五) 晚上九點以前
    • 6/27 (六) 全天(老師要赴台中送別彥中同學)
    • 6/29 (一) 下午三點半以前
    • 6/30 (二) 及 7/1 (三) 尚未確定,目前均可先預約
    • 7/2 (四) 課堂 demo 時間
  • 若第一次 demo 不理想同學,可依照老師建議強化程式後,統一於 7/2 再 demo 一次。如未預約 7/1 之前的時間,視為放棄補 demo 機會。
  • 有參加 6/26 三課聯展同學,至少加 20% 分數。未參加者預估將會當掉一半,敬請注意。如要參加三課聯展同學,請於 6/22 午夜前寄海報給老師信箱,並且於信中提供 Skype 帳號以便和老師討論海報細節修改事宜(老師會為各位修改海報)。

答客問(同學的疑問與討論)

  • 首次上課:
    • 如各位同學有任何問題、建議、或是單純不曉得老師在講什麼,除了上課時間歡迎隨時打斷我外,也可:
      • 在office hours直接來3312B找老師
      • 寄信給老師約時間討論。
    • 要是作業遇到困難,也歡迎找老師討論。
  • 重導向符號 > 及 >>
    • some-command > file-name: 將some-command的結果寫到file-name裡(覆蓋檔案原來內容)。
    • some-command >> file-name: 將some-command的結果附加到file-name檔尾,不覆蓋原本資料。
  • Permissions on directories
    • The execution permission of a directory allows users/programs to "pass through" the directory.
    • The read permission of a directory allows users/programs to read the contents of the directory.
    • So, if we want to read the contents of a file /a/b/c.txt, we need the execution permission of /a and /a/b, and the read permission of /a/b/c.txt
    • If we want to list the files in /a/b, we need the execution permission of /a and the read permission of /a/b.
    • It is possible that we can list the files within a directory (since we have the read permission), but cannot read a file in that directory (since we don't have execute permission). Vice versa, it is also possible that we can read a file in a directory, but cannot list the files within that directory.