顯示具有 過程 標籤的文章。 顯示所有文章
顯示具有 過程 標籤的文章。 顯示所有文章

2009年9月23日 星期三

忙碌

這幾天好忙碌,明天行程也是,我想應該會忙到十一月底吧,唉唉

為自己的未來打拚,想靜下心念書卻又想賺點錢能夠買摩托車,替人工作,時間就是別人的啊。原本還羨慕別人有工讀,等到有了其他的打工,才煩惱沒時間做自己的事。我想以後出社會領人薪水也是這樣吧!(以上這段話我聽我爸講過XD)

所謂有得必有失,就是在講這種情形!


選課煩完了,目前重要的就是準備資料、專題和CCNA的課,go and fight! XX系統要等到十月份機器來才驗收,實在是無心也無力維護啊~~少少報酬 .....

2009年6月26日 星期五

深夜有感

和某水果聊天,談到的話題。這是小弟我的想法,應不足以當他人的解決方法,但至少可以解決我的疑惑。

學期結束了,應該不會有相關人士想繼續看我寫blog吧!可以寫些有的沒的囉~~

-----正文開始-----


疑問:
為什麼考試時我覺得寫得很順,考出來的成績不如預期?
為什麼考完出場後,說要爆了的人往往都安全過關?


因為,他們可能讀很多遍考試範圍,雖稱不上熟透,但至少看到考題時,他們知道題目在問些什麼。

因為知道在問什麼、陷阱在哪,可是無法確定自己寫的答案對不對,就覺得無法安心,出場後才感到不安,一直跟人說要爆了要爆了之類的話。

這是我自己想出來的答案,就當作是安慰自己吧。


結論:不能用應試時的順利,預期未來的成績良好。畢竟別人考得再好,也不關我的事,重要的是,我學到了多少,我是不是能夠對得起自己。



在資工系考了三年試的心得啦,各人有各人的不同領略之處,而且我常常驕傲,像龜兔賽跑裡面的兔子,以為考某些科易如反掌,結果翻船;反而戰戰競競、全心全意的準備,讓我置之死地而後生。

------正文結束-----------


2009年6月19日 星期五

OS_hw6

●完成目標

1.以創立thread方式改寫原程式碼以forklocalhost傳送和接收訊息,並加上傳遞和接收檔案之功能。

2.了解建立thread比建立process的成本低。

●程式測試及運作環境

系上csie1工作站

●測資,已附在壓縮檔內

1. 中時電子報首頁原始碼

2. 自訂測資test.txt

●此程式分成六個部分

1. main program

2. TCPecho

3. Send function

4. Listen function

5. GetFileLength function

6. Unsigned long to string

Main program 創立一個socket,設定開啟port和最大連線數,並進入TCPecho

TCPecho設立兩個thread,分別執行SendListen function

Send function使用創立的socket,可以送訊息,也可以送檔案。送檔案時必須先告訴對方檔案大小和名稱,所以會用到GetFileLength function。同時因為使用系統的write function,所以要將檔案大小unsigned long 型態轉換成string,才能傳,此時就需要Unsigned long to string function

Listen function使用創立的socket,可以收訊息,也可以收檔案。收檔案時對方會告訴自己檔案大小和名稱,會使用系統的read function,如果同意則開始收,即收即寫入本地端同名的檔案;若不同意則雙方回到一般傳訊息模式。

Send functionListen function送收檔案時,是採用送訊息的方式,所以和一般送純文字訊息一樣。

●測試方式

1.使用ServerClient所在資料夾的make重新編譯程式,輸入make即完成編譯和呼叫程式之動作。

2.傳送訊息:

2.1server端輸入欲傳送之訊息,並查看client端是否收到。

2.2client端以同樣方法傳送訊息,並查看在server端是否收到。

3.傳送檔案:

在任意一端(ClientServer),輸入SendFile:[yourfile],即可詢問對方是否要接收檔案,例如要傳送壓縮檔內的測資mainpage.htm,請輸入SendFile:mainpage.htm

如同意接收,接收端必須回答兩次yes才能接收檔案,發送端才開始傳資料;若不同意接收,則雙方回到傳訊息模式。

如欲終止程式,請按ctrl+c,即可結束程式。

2009年6月18日 星期四

OS_hw5

此用於kernel 2.6.25以上,略過部分步驟,例如要clone host system for producing target system


我用的OSFedora10gcc4.3.2Linux kernel 2.6.29

由於kernel 2.6.25以後,kgdb已附在裡面,所以不用下載kgdbpatch,用不到助教投影片給的patch方法,但仍有一些設定需要按照投影片的做法。

要先對目前的Fedoraclone,然後到linux網站下載2.6.29kernel,要打開target systemyield CPU on pollVMTargethost都要設定serial port,一個設client,一個設server


其他步驟和舊版本kernel 差不多,請參照其他人寫的舊版本使用方法。
此方法經證實可在2.6.29上使用
感謝yungshin提供方法


0.安裝ncurses-devel
sudo yum install ncurses-devel

1.linux kernel 2.6.25以上 已藏有 kgdb,不用再下載kgdb的source code
輸入make menuconfig,選擇特定選項,啟用kgdb

設定.config檔
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_RODATA=n

2.將host system和 target system 的vm 開啟serial port,做server and client設定

3.host 切為root權限,這步不用在target system上做
make
make modules
make modules_install
make install

4.複製三個重要檔案到target system的 /boot/
vmlinuz-(uname -r)
System.map-(uname -r)
initrd-(uname -r).img

5.修改target system的 /boot/grub/menu.lst
若timeout=0,將它改為五

新增
title Fedora (OOXXkgdb)
root (hd0,0)
kernel /vmlinuz-(uname -r) ro kgdboc=ttyS0,115200 kgdbwait
initrd /initrd-(uname -r).img

5.1
設定target system的kernel.sysrq為一
這樣target就會在開機的時候等host的gdb進來
請vim /etc/sysctl.conf



6.將target system reboot,並把host system 切換到root 權限和linux source
code 的資料夾(自己下載的檔案解壓縮)。

host system 要在target system 重開機時馬上輸入兩行指令
gdb vmlinuz
target remote /dev/ttyS0


7.差不多結束


Reference:

http://blog.linux.org.tw/~jserv/archives/002045.html

http://linux.chinaunix.net/bbs/archiver/tid-1045674.html

http://www.penna.cn/blog/article.asp?id=179

http://bbs.driverdevelop.com/htm_data/12/0807/112490.html


心得:

感謝同學互相幫忙,不然因為新版本核心,不是助教投影片上寫的fedora8,要找的資料很多很雜,很擔心沒有太多時間看資料一個一個方法測試。做的過程當中,重做好幾次,覺得很煩,而且不知道自己做得對不對,因此沒有拍照記錄過程。

2009年6月12日 星期五

期末project

因為前兩個作業弄KGDB升到新的版本2.6.27,
今天要做project時發現,打stap command, shell 會說找不到這個指令。

於是我重安裝systemtap和相關的package(kernel-devel,...etc),
但是呢,安裝完之後,連基本的hello probe測試都不會過。
我不知道是什麼原因啦,目前打算拿舊的核心來做。



如果有人試出來2.6.27上面可以跑systemtap,和通過hello probe測試,
麻煩通知我一下,讓我知道,謝謝。(六月份過後就不用跟我說了XD)

--
灌了兩次 0rz,整個晚上都耗在這邊=.=