11 13 |
|
10 13 |
|
08 19 |
|
小弟其實一直很想跟大家介紹這篇文章"Linux File Systems in 45 minutes”,原文出處是在2006的Linux symposium的open conference,由NFS和Samba的作者Steve French執筆,而其主要的內容是把linux VFS和file system之間的函式呼叫和使用到的資料結構做一個簡單的介紹
07 16 |
|
最近因為工作的關係,碰到一些加解密的問題,所以藉由這個機會,好好的回頭看了openssl這個只有編過但完全沒用過的library,還好有網友把整個openssl剖析的很透徹,在學習的過程中幾乎沒碰到太多的問題,因為openssl每組API的使用方式實在太固定了,所以md5 api試過後,後面的數位簽章和RSA都不會太困難,而在openssl裡,SSL framework是我覺得包裝相當漂亮的函式,所以下面的內容都著重在TCP SSL的使用介紹
使用http ssl基本上有幾個流程
1. Initial socket
2. Connect socket
3. Initial SSL
<1>SSL_library_init:initial SSL library
<2>SSL_CTX_new:create a new SSL_CTX object to enable SSL connection
<3>SSL_new: create SSL data stucture
<4>SSL_set_fd:bind ssl and socket fd
<5>SSL_connect:connect to server
4. ssl_read or ssl_write: read ssl information
04 29 |
|
下星期就要出差去美國了,擔心的反而不是豬流感,而是未來一星期的IOT會不會出問題,雖然測試好幾遍了,但工作那麼多年,根據經驗,只要是正式的測試場合,平常不會出trouble的地方全部都會在那時出現,不過這種東西是危機也是轉機,看個人造化
NAPI的相關資料可查尋此網站,它推出的目的就是為了在interrupt和polling之間取得一個效能平衡,interrupt的缺點就是當封包數目多且中斷頻繁發生時,可能會有upper layer skb queue starvation的情況,嚴重者會造成其它的driver無法取得中斷資源,而polling會耗費大量的cpu time,為了終結以上兩個情況,在2.6的kernel已經把NAPI的相關函式提供給driver programmer,NAPI會在中斷時提供一polling函式把drvier queue裡面的skb一口氣讀出(假設weight為64,就是一次讀取64個skb),這樣不但減輕interrupt對系統造成的負擔,也間接解決drvier資源相競的問題
04 21 |
|
博客來最近都在促銷Orielly的書,只要買足3本,就可享75折的優惠,所以我這次一口氣買了三本雖然之前看過但很想收藏的書,自從出社會後,幾乎每個月都會買個幾本技術相關的書籍典藏,雖然網路上都抓得到,但總覺的缺了一份質感,沒有翻書的感覺,就好像沒在看書
這次要介紹東西很簡單,但這種技巧很常見,不論是hotplug會是kernel init,都會發現這個函式的蹤影,當安裝plug&play裝置時,kernel會呼叫hotplug執行device setup script,而從kernel呼叫user space的API,就是user modehelper,簡單的程式我列如下
程式的重點在於envp和argv的設定,envp是環境設定的變數,而argv是user application的執行參數
03 31 |
|
03 26 |
|
有碰過kernel code的人大概多少都瞭解我標題的意思,kernel code很迷人,但很危險,稍不小心,就會被kernel panic拖進地獄
拿我最近review的code當例子,截取某一段code如下,這是一段相當簡單的kernel threading code,當kernel module被insert時,會開啟kernel thread執行thread_main這個function,當remove module時,會呼叫delete_thread把kernel thread砍掉,可以仔細看看thread_kill這段function,有沒有什麼問題