Saturday, April 30, 2005

整理舊東西

因為家裡在重新裝潢
所以今天再把所有的舊東西全部整理一次
找到了好多許久沒見到的東西

以前看過的書
重考時買的CD
聯考成績單 ( <-這個最虎爛 我完全不記得我有留下來)
國中畢冊 ( 那時候還蠻可愛的 :$ 可是也很欠打 )
一些久遠的雜誌
- linux journal中文版 可惜停刊了
- linuxer
- palmtop!!!!!!!!!!!!!!!!!
(昨天才找某個從良的敗家男聊天的說..今天就找到回憶了..XD)
可口可樂的Call機 ( 喝了好多罐可樂才換到的...:$ )

還有很多要收起來的東西
人越大 不想去回想到的東西越多...

Wednesday, April 27, 2005

塞格門佛特,摳鄧普, 與 克諾盤尼克

這幾天為了接待幾位好朋友弄到快瘋了
一開始只是老板要我加個新數據 (=.= 明明就很麻煩 還硬是要我弄)
我很開心的想到了一個好方法然後把程式寫好就開始生數據了

這時 第一個好朋友來找我了 =.=
這個好朋友相信也很很多人跟他瞞熟的
他很愛跟別人裝熟
可是大家都很討厭他
他就是"塞格門佛特"(Segment Fault)

他帶著他的問題來找我
我卻也束手無策
只好找來另一個好朋友叫做
"摳鄧普" (Core Dump)
來幫忙解決問題
於是乎這幾日我都跟他們兩個在一起 (我也不想ㄚ)
每天都要看他們兩個看個幾十次

終於
剛剛我把塞格們的問題解決了
正在高興的時候
另一個好朋友又來了

這個好朋友叫做.....




"克諾盤尼克" (Kernel Panic)




..................
雖然兩個都不好
可是我還是比較喜歡塞格門....
盤尼克幹嘛來ㄚ....棍....><

--

哀 bug 滴不盡...春風吹又生...

Thursday, April 21, 2005

Linux Kernel Socket

這陣子由於某些特殊需要
所以找了些資料如何在kernel寫socket programming...
(其實在kernel作這種事情是不道德的...小孩子千萬不要亂用喔...叔叔是有練過的)
大致上是要利用kernel裡面的struct sock直接使用

sock_create(PF_INET, SOCK_DGRAM, IPPROTO_UDP, &sock);
sock->ops->bind ( sock, (struct sockaddr*) &sin2, sizeof(cmdsin));
sock_release(sock);
上面是幾個比較簡單的setup function
然後要send的話就使用
struct msghdr msg;
struct iovec iov;

iov.iov_base=buf;
iov.iov_len=count;
msg.msg_iov=&iov;
msg.msg_iovlen=1;
msg.msg_control=NULL;
msg.msg_controllen=0;
msg.msg_name = (struct sockaddr*)&sin;
msg.msg_namelen = sizeof(sin);
msg.msg_flags = 0;//MSG_DONTWAIT;

sock_sendmsg(sock,&msg,count);
如果想要送的東西並不是從user level傳下來的...
就必須改成
oldseg= get_fs();
set_fs (KERNEL_DS);

// send process.......

set_fs (oldseg);

至於recieve我還在檢查packet究竟掉在那裡...orz