Wednesday, May 28, 2008

Linux High Priority Kernel Thread

Warning: This post contains only kindergarten level techniques about Linux kernel.

I met a problem that a real-time user space program with many threads has higher priority than my computation intensive kernel thread.

I have to adjust the priority of this kernel thread. But unfortunately, I found that the kthread_run doesn't provide me any way to set the priority of my kernel thread. So I wondered how to do it? Fortunately, I found the way to set the priority of a kernel thread. Using

struct sched_param param;
param.sched_priority = ;
if (sched_setscheduler(current, SCHED_FIFO, &param) != 0)
printk("set scheduler and its priority failed\n");

This effectively sets the process's scheduler to FIFO and priority to .

However, when I try insmod .ko, it complains the symbol sched_setscheduler is not found. The module insertion fails just like that. However, I tried to cat /proc/kallsyms, sched_setscheduler is right there, so I don't know what's wrong here.

If you are a newbie like me, you might be scratching your head or starts gazing the ceiling and think, why?

After one hour of trying, I eventually noticed in sched.c, after the function body is declared

int sched_setscheduler(struct task_struct *p, int policy,
struct sched_param *param)
{
...
}
EXPORT_SYMBOL_GPL(sched_setscheduler);

The key is EXPORT_SYMBOL_GPL limits the functions to be linked by modules using GPL.
And my module just didn't contain any license statement. So I added

MODULE_LICENSE("GPL");

Now, everything works like a charm!
可抵扣稅率與股利

今年的報稅快要截止了, 還沒報的, 忘了的, 趕快去搞定一下吧。

趁現在還可以用網路報稅/二維條碼報稅先報, 過了期就只能填書面的, 可能會累死人。今年用二維條碼, 我家的印表機到最後印出來八頁洋洋灑灑一疊。(還不含要附上的證明文件)

不知道如果用手算這樣的量真的有人可以算出來嗎?

不過這不是重點, 重點是原本今年要交一筆稅的, 去年投資中鋼...等幾間公司幾張小股票, 結果今年發現核算下來, 可抵扣的稅額已經替我繳掉了, 而且還可以獲得退稅, 對於慘白的經濟狀況算是一個大好消息。

但是什麼是 "可抵扣的稅額" 與 "可抵扣稅率" 呢?

可抵扣稅額根據該公司所繳的稅金額乘以可抵扣稅率的乘積。至於可抵扣稅率到底是什麼呢? 在奇摩知識上找到了一篇淺顯易懂的說明, 即使不是學商業的人也應該可以看懂, 特此貼過來做為自己以後的參考。

這裡有人列出今年可以參考的表: URL

這是以下摘錄轉貼內容的原始網址: URL

---------- 以下為轉貼內容 ---------------------------------

由於兩稅合一,即個人所得稅和營利事業所得稅合而為一,消除重複繳稅的問題。


情況1,這個國家都要繳營利事業所得稅,但不能抵扣,也要繳個人所得稅

甲公司今年賺了100萬,繳了30萬的營利事業所得稅,假設你擁有甲公司10%的股票,你分配到7萬(100萬-30萬)*10%的股利。你要繳6%,即要繳所得稅4,200元

情況2,這個國家都要繳營利事業所得稅,但可扣抵稅個人所得稅

甲公司今年賺了100萬,但繳了30萬的營利事業所得稅,假設可扣抵稅率30%,你擁有甲公司10%的股票,你只分配到7萬(100萬-30萬)*10%的股利,也分配3萬(30萬*10%)的抵稅金,所以實際的股利也是10萬(7萬+3萬的抵稅金,你要繳6%,10萬*6%-3萬的抵稅金=你可退稅24,000元

最後結果:

差了28,200元

Tuesday, May 27, 2008

My First Kernel Program

This blog post doesn't actually share any techniques.

If "modification" is not included, I just wrote my first Linux kernel program few days ago. It is a ring-buffer-duo program for buffering periodical data between a user-mode process and another kernel thread.

It is a small task, but means a lot to me. It is the first complete kernel program I've ever written. I learned how to build a Linux kernel module alone the way. And made a unit-test for this little program using both user-space and kernel-space ways.

Though trivial and easy. It took me some time to read document and write it from scratch. (About 1.5 days, including unit-test.) I hope I can do it faster with this experience.

Reference: Kernel Driver Model
我們家很窮系列之一

我的女兒們, 從小就被教育一件不爭的事實: 我們家很窮。

女兒們常常得替自己謀福利, 最近小0小1認識了一個鄰居的三歲小朋友 "寶寶", 寶寶的特色是: 不愛吃飯。(好吧, 台灣可能還有幾十萬個小朋友有這個特色...) 他的奶奶於是乎每天隨身攜帶一個背包, 裡面滿滿的是餅乾糖果等各類零食。

因為我們家很窮, 所以沒辦法買很多零食很小0和小1吃。於是她們常常處於零食饑餓狀態中, 這位奶奶呢, 就對一直在旁邊打轉的小0 (因為發現這位奶奶會給她零食) 給很多的零食。

這些零食有些會被小0吃下肚, 但有更多的時候呢, 會被媽媽制止 "呆會晚餐會吃不下" 而沒辦法享受剩下的零食, 媽媽會說要帶回家之後再給她吃, 不過呢, 實際上很多都進了我的肚子。

難怪當爸爸的人會胖........

會覺得我們對小0太嚴格了嗎? 事實是, 她最近在零食上被媽媽管的比較嚴, 吃的少, 小1當然也是一樣受到保護管束 (不過小0會主動跑去找鄰居要食物這點實在是ooxx....), 但是這兩位女兒最近反而變胖了, 因為零食吃的少 -> 正餐吃的好 -> 晚上睡的飽 -> 變胖。

小0小1, 妳們還有許多文章會被爆料的, 等著看吧。將發表在我們家很窮系列中。

Sunday, May 25, 2008

我的名字叫紅 (My Name is Red)

這本書是在某網路書店上偶然看到的, 那陣子買書買得很勤, 不多加思索就敗了下去. 從2007到2008年之間, 利用隔星期六晚上的半至兩個小時慢慢的看它, 用了約半年總算讀完了這位Nobel Prize winner的大作.

這本書帶給我最大的震撼來自在土耳其這塊土地上的回教文化表面上的強烈制約力與實際人性的背離。書中一再提到許多畫師雞姦他們的年輕學徒, 似乎這在工匠坊中是種不公開的常態。在許多冗長的對話中也可以看到對話者在試探彼此心中真實的想法, 但最後得到的結論也常只是蒙蔽在對阿拉的敬意之下的場面話。

前陣子看到新聞報導至今在土耳其某些地方仍有一些陋習, 是頗令人匪夷所思的, 那篇報導中講到三個男人綁架了一個年輕女子, 目的是要女子首肯嫁給其中一位男子, 有沒有聽錯? 綁架? 不只是這樣, 他們綁架她當然是於法不容, 不過要是這個女子同意嫁了就沒罪, 因此他們便照三餐毆打這位女子, 要讓她屈打成親, 只要屈打成親, 也就沒有法律問題。這樣的習俗實在是很難理解呀~~

所以最後是好的結局收場: 一隻熊出現將三個男子嚇的拔腿就跑, 被揍的慘不忍睹的女子還被束縛著, 身上也有傷, 當然也理所當然的無法跑走。不過熊在嚇跑了三個男子後便靜靜的坐下一直到搜尋女子的幫手來了才離去。

嗯, 女孩子如果要去土耳其還是不要亂逛比較好~~

Wednesday, May 21, 2008

老年人的生活

最近一個朋友告訴我, 她正替一間start-up工作, 這間公司的生意針對的客群是50歲以上, 主動性高的新一代老年人. 在剛聽到時馬上就覺得這是一個不容易的生意, 但也是一個對社會有正面意義的生意.

非常佩服他們的勇氣, 也為了替他們打打氣, 所以替他們打個廣告, 網址是:

** http://www.ez66.com.tw/ 樂齡網 **

跟朋友要了他們公司內的一份投影片, 翻翻之後才發現原來自己對老年人的世界的確是一點都不懂.

以前台灣稱為銀髮族 Google -> 772,000 hits, yahoo: 1,254,597, msn: 212,000 hits
現在也有人稱熟齡族 Google -> 273,000 hits, yahoo: 1,891, msn: 332 hits
新加坡則叫做樂齡族 Google -> 911 hits, yahoo: 632 hits, msn: 101 hits

這三個詞指的是一個族群, 也就是50歲以上的這一個族群.

銀髮族的生活, 隨著身體, 心理, 及週圍的人的觀感的改變, 而隨之改變, 因此生活用品的需求確實也會有所改變. 朋友工作的這間公司提供的商品服務就是鎖定生活用品這個層面.

據觀察, 目前針對熟齡族的用品還是不夠廣泛, 至少就看不出可以針對四季有一整系列的生活用品的整理出來.

但我覺得心理及生理的轉變是較用品更為需要社會共同提高這種認知的. 只是這部份不知道目前社會上到底有多少資源.

政府方面提供的資源目前看起來是台北是最多, 網站也最活躍.

底下是全省各地的老人福利單位:

http://61.60.79.3/gfweb/QandA/q00.htm

多半是些科或課級單位, 雖然我不懂政府機關的組織, 但感覺就是還應該再投入更多的人力在建設台灣成為一個幸福的島.