剛剛午睡醒後,在茶水間遇到主管,於是我趁機跟主管說禮拜五我要請公假,然後主管一臉狐疑的問我?公假?你是有什麼事嗎?我說,沒啦,就跟一群朋友去爬山,接著我回到座位才發現,我剛說錯了啦!我是要說請年假的,怎嘴巴說出來變成公假了,害我本來不想說請假原因,這下子全都招出來了,難怪主管當時表情怎不大一樣,害我以為主管不准假咧!笨到死了我!阿呆!
另外跟大家預告,我這週五六日要去爬嘉明湖啦!
剛剛午睡醒後,在茶水間遇到主管,於是我趁機跟主管說禮拜五我要請公假,然後主管一臉狐疑的問我?公假?你是有什麼事嗎?我說,沒啦,就跟一群朋友去爬山,接著我回到座位才發現,我剛說錯了啦!我是要說請年假的,怎嘴巴說出來變成公假了,害我本來不想說請假原因,這下子全都招出來了,難怪主管當時表情怎不大一樣,害我以為主管不准假咧!笨到死了我!阿呆!
另外跟大家預告,我這週五六日要去爬嘉明湖啦!
今天下班後我去剪個頭髮,老闆跟我聊了起來,聊到明天 8/30 剛好有嗆馬的遊行,然後老闆就越說越氣,說什麼人家馬英九才做一百多天而已,就要去嗆他,阿扁都有機會做了八年,那馬英九才做一百多天,大家再給他機會嘛,做不好再換掉阿,浪費這麼多資源去遊行,那些人真的是吃飽沒事做。
我當時還跟老闆說,就大家表達一下心聲嘛,這也合情合理。不過老闆越說越氣,他手上拿著剪刀揮來揮去的,也真的讓我有點小害怕,不過我也大概得知他是深藍的,所以後來我都不敢插嘴,免得我被他插個幾刀。
今天早上正在買早餐時,聽到男老闆跟一個女客人的對話:
老闆:小姐,你有沒有 45 公斤阿?
小姐:當然有阿!
老闆:是喔!我覺得你好像隨時都會被風吹走耶!
聽到這裡,我在竊笑老闆還真會把妹呢...
為 Fedora 8 裝上 kernel source
March 26th, 2008 by Chuan-Hsien Lin
Last Modified on March 26th, 2008
Fedora 8 裝好之後,會發現 kernel source 目錄是個空殼,只留下一堆 Makefile 卻不見 source code,當想要看 kernel source 時才驚覺 code 到用時方恨少,所以本文在此介紹如何在 Fedora 8 下安裝 kernel source。
首先,先確認一下系統裡的 Linux kernel 版本,
[root@chtest i386]# uname -r 2.6.23.1-42.fc8 [root@chtest i386]#
然後再到 http://download.fedora.redhat.com/pub/fedora/ linux/releases/8/Fedora/source/SRPMS/ (請自行將網址接起來) 尋找我們要的 kernel source rpm。接著在這網頁可以發現到 kernel-2.6.23.1-42.fc8.src.rpm 這個檔案存在,大約 46MB,確定了版本無誤之後,將它下載。
接著,使用 rpm 工具將它安裝,過程中會看到一堆 warning: group kojibuilder does not exist - using root 訊息,不用去理會它。
[root@chtest i386]# rpm -ivh kernel-2.6.23.1-42.fc8.src.rpm
接著執行 rpmbuild -bp --target=$(uname -m) /usr/src/redhat/SPECS/kernel.spec, kernel source 就會安裝到 /usr/src/redhat/BUILD/kernel-2.6.23 了,在這個目錄裡面有兩個子目錄 linux-2.6.23.i686 及 vanilla,vanilla 這目錄是存放原始的 kernel source, 而 linux-2.6.23.i686 則是 Fedora 團隊為原始的 kernel source 上些 patch 及 updates。
經過以上動作後,如此一來就有一份完整的 kernel source,以便要 trace 或是要寫些 driver 使用。
參考資料,Personal Fedora 8 Installation Guide , http://www.mjmwired.net/resources/mjm-fedora-f8.html。Hello world by Assembly
March 25th, 2008 by Chuan-Hsien Lin
Last Modified on March 25th, 2008
不免俗地,也要來寫個 Hello world 組合語言版本,本範例是使用 DOS INT 21h/AH=09h 去顯示字串,只要將字串的 offset 帶給 dx,將 09h 帶給 ah,再呼叫 DOS INT 21h 即可,要注意的是,字串要用 $ 符號來表示字串結尾,完整程式如下,
.MODEL TINY
.CODE
ORG 100h
begin: jmp show
message db 'Hello, world!$'
show: mov dx, offset message
mov ah, 09h
int 21h
mov ah, 4ch
int 21h
END begin
執行 ml /AT hello.asm 編譯後,執行程式結果如下,
C:\masm>hello Hello, world! C:\masm>
關於 DOS INT 21h/AH=09h 的介紹,可以參考 Ralf Brown's Interrupt List 裡的 http://www.ctyme.com/intr/rb-2562.htm 這篇文章。
最簡單的一個 Assembly 程式
March 24th, 2008 by Chuan-Hsien Lin
Last Modified on March 25th, 2008
本篇介紹寫一個最簡單的 Assembly 程式,首先你得有 Assembler 以及 Linker,才能將你的組合語言程式組譯及連結成執行檔,本文中是使用 Microsoft 的 MASM 6.11。
本範例是以使用 DOS INT 21h/AH=02h 中斷去顯示一個字元 'A' 來作為練習,接下來使用文字編輯軟體將下列幾行程式編寫並存檔成 test.asm,
.MODEL TINY
.CODE
ORG 100h
begin: mov dl, 41h
mov ah, 02h
int 21h
.STACK
END begin
然後執行 ml /AT test.asm 就會將程式組譯並且連結成執行檔了,
C:\masm>ml /AT test.asm Microsoft (R) Macro Assembler Version 6.11 Copyright (C) Microsoft Corp 1981-1993. All rights reserved. Assembling: test.asm Microsoft (R) Segmented Executable Linker Version 5.31.009 Jul 13 1992 Copyright (C) Microsoft Corp 1984-1992. All rights reserved. Object Modules [.obj]: test.obj/t Run File [test.com]: "test.com" List File [nul.map]: NUL Libraries [.lib]: Definitions File [nul.def]:
可以看的出來已經產生出 object file 以及 .COM 格式的執行檔了,
C:\masm>dir test*
Volume in drive C is system
Volume Serial Number is 9488-6570
Directory of C:\masm
2008/03/24 ?? 05:17 218 test.asm
2008/03/24 ?? 05:32 6 TEST.COM
2008/03/24 ?? 05:32 123 test.obj
3 File(s) 347 bytes
0 Dir(s) 5,750,042,624 bytes free
這就來執行看看,果然執行成功,正常顯示出我們欲顯示的字元 'A'。
C:\masm>test A
但是別高興的太早了,因為你可以發現剛剛的程式一執行後就當掉停住了,一動也不動,這是因為 DOS 下執行的程式,都還需要呼叫一個 DOS INT 21h/AH=4ch 這個中斷來告訴 DOS 作業系統該程式已經結束了,這樣執行完程式後,才會把控制權交還給 DOS,所以完整的程式如下:
.MODEL TINY
.CODE
ORG 100h
begin: mov dl, 41h
mov ah, 02h
int 21h
mov ah, 4ch
int 21h
.STACK
END begin
這次執行果然程式正常結束,而且返回 DOS 的提示符號下,可以繼續別的動作了,
C:\masm>test A C:\masm>
附帶一提,可以看到 .COM 格式的執行檔可真是小巧精美,以上的程式只佔用 10 bytes 空間呢!下面即在 Cygwin 的環境下來顯示該執行檔內容。
$ od -t x1 test.com 0000000 b2 41 b4 02 cd 21 b4 4c cd 21 0000012
關於 DOS INT 21h/AH=4ch 的介紹,可以參考 Ralf Brown's Interrupt List 裡的 http://www.ctyme.com/intr/rb-2974.htm 這篇文章。
HTTP 方式安裝 Fedora 8
March 19th, 2008 by Chuan-Hsien Lin本文將介紹如何使用 HTTP 方式來安裝 Fedora 8,先來說明為什麼我需要這樣做,因為主管抱了一台 Pentium III 等級的舊電腦給我用,我打算將 Fedora 8 裝在這台機器上,但是這舊電腦上的光碟機是 CD-ROM 而不是 DVD,而我手上僅有一片 Fedora 8 的光碟片,以及它的原始 ISO 檔 Fedora-8-i386-DVD.iso。
既然沒辦法使用 CD-ROM 來吃 Fedora 8 的 DVD 光碟,只好用別的方式來安裝了,依稀記得以前有用過網路來安裝 Redhat,當時是透過 FTP 方式來安裝的,這次就來依樣畫葫蘆,改用 HTTP 試試。可能有人會說為什麼不把這台電腦的 CD-ROM 拆下來,換上一台 DVD 就好了,因為,一來我懶,二來不喜歡照著既有的方式去做,有時喜歡嘗試別的路線,就像平常回家的路有很多條,但有時你會故意走別條看看,尋找些驚奇。
不多說廢話了,直接來看整個過程吧,首先得去網路上抓 Fedora 8 救援光碟 ISO 檔 Fedora-8-i386-rescuecd.iso,將之燒成一般 CD,然後用它來開機,開機後會出現 boot:,然後輸入 linux askmethod 或 linux text askmethod,前者是圖形模式安裝,後者是文字模式安裝,接著就會有一個選單是問你要用何種方式安裝,有 NFS, HTTP, FTP 等等,再選擇了 HTTP 方式之後,會詢問你 HTTP Server 的位址及路徑。
這時候,我先到別台 Server 把 Fedora-8-i386-DVD.iso Mount 起來,放在我個人網頁空間底下,路徑像是這樣 /home/chlin/public_html/fedora,然後將 Apache 的設定,改成可以瀏覽檔案,然後再回到正在安裝 Linux 的那台機器上,將 HTTP Server 位址填入後,再將目錄路徑輸入像是 ~chlin/fedora/ 就可以了,至於其他的安裝設定,比照一般的安裝情況即可。
最後,建議大家多使用網路安裝的方式,就可以不用燒一堆光碟,以響應環保。
後來發現舞台前有幾個佈告,原來描寫著她是個街頭藝人,名叫張瓊玉,罹患罕見的病 - 馬凡氏症候群,導致一眼全盲,另一眼視力 0.1,而且這病會讓她手長腳長的,真的是件 "麻煩事",也因為這病讓她求職一直不順利,後來有人邀約,於是踏唱街頭藝人一途。
另外,她唱的歌剛好都是我蠻喜歡聽的歌,應該說我們聽歌的調調還蠻近的呢!還有唱蘇打綠的 "小情歌" 耶!超開心的!這可是我這陣子一直猛聽的歌!要不是還要趕去別的地方,不然真想找坐在地上聽完整場呢!希望下次去台北,還可以再遇到,再聽她的歌,也希望她身體可以健健康康的。
對了,她的 blog 在 http://tw.myblog.yahoo.com/ihug-seven/,也空可去逛逛喔!要是在街上遇到她演唱的話,大家也別吝嗇自己的荷包喲!
雖然我的 Canon 860 相機有防手震,但是現場亮度還是不夠,我又不敢打閃光燈,所以拍了幾張都糊糊的了!另外我也有用錄影模式拍了兩首歌喔!只是尚不知怎麼分享出來給大家看就是了。