中山大學 West BBS-西子灣站

『主選單』
分類佈告
分類精華
休閒聊天
個人郵件
個人設定
重新登入
『應數系組合語言(楊昌彪老師)』一般區佈告
←回列表  ↑上一篇  ↓下一篇        張貼  回應       
發信人: yehwh (若林)    看板:math-asm
日期: Sun Aug 17 16:46:00 1997
標題: 期末程式報告(反刪除程式)
來源: 中山大學 Formosa BBS Client


學生:葉韋宏
學號:8424009
系級:88級
目的:藉由撰寫反刪除程式以徹底了解Dos的檔案結構

問題:
     在學期中,我們終於開始學到有關Dos的系統架構,諸如記憶體的配置,
     Com&Exe兩種檔案格式的差別,以及Dos的磁碟格式..等等,在所有這些
     有關系統的課程中,最吸引我的就是File system,因為現今的作業系統
     其File system真是五花八門,例如Dos的FAT,Windows95的VFAT,WindowsNT
     的NTFS以及OS/2的HPFS..等等,它們的運作方式每每令我覺得嘆為觀止,
     如今雖然只在Dos上略作一些研究,卻也蠻花心思的,看到市面上一堆系統
     方面的工具,不論是Dos還是Windwos95,總讓我心理覺得癢癢的,真想跟前
     輩們一樣寫出一套有關系統方面的程式來,因此在略知Dos的檔案格式之後,
     就想仿照Dos裡的反刪除程式(undelete.exe),寫一個較為精簡的"迷你版",
     就因為這樣單純的想法,讓我開始陷入痛苦的寫程式生涯了.

方法:
     想要寫反刪除程式,必須先知道FDB,FAT的串列方式,PSP等細節,並且了解Dos
     建立,刪除一個檔案或目錄時所做的工作,這樣就可以知道如何製作反刪除程
     式,概略的將程式執行過程描述如下:

          從FDB內找出跟想救回檔案檔名一致的節區,從找到的FDB內知道檔案

          第一個FAT位於何處,然後從FDB的資料內計算檔案的長度,以算出檔案

          檔案到底佔有多少clusters,接著修改FAT的內容,就是將FAT作串列,這

          樣就可以救回檔案了.

感想:
     藉由撰寫這個簡單的反刪除程式,我對Dos的檔案架構有著更深的了解,也對Dos
     感到由衷的欽佩,真是麻雀雖小,五臟俱全啊.在研發的過程中,我也偷偷的研究
     Windows95的檔案架構,幸運的發現VFAT,可惜手邊的資料不夠齊全,所以無法繼
     續探討下去.我一直想朝系統程式設計的方向走下去,雖然光是Dos的架構就已經
     讓我一個頭兩個大,但卻沒有讓我覺得灰心,希望有朝一日能剖析微軟的作業系統,
     將它的假面具揭發於大眾.

參考資料:
          組合語言實務(旗標 施威銘)

          技術手冊(一),(二),(三) (旗標 施威銘)

          Computer Organization and Assembly Language with IBM PC (楊昌彪老師開的教科書)





--
           我心裡難過,因為我沒有鞋子,
               當我走在街上,遇見一位沒有腳的人.




←回列表  ↑上一篇  ↓下一篇        張貼  回應