posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          2009年1月29日

          http://blog.yxwang.me/

          posted @ 2009-12-30 09:48 ZelluX 閱讀(470) | 評論 (0)編輯 收藏

          寫了好幾天的代碼因?yàn)檫€有bug沒de掉,沒commit到svn上

          然后不知怎么的在make的時候生成的kernel沒變化,于是直接make world,然后發(fā)現(xiàn)linux kernel目錄被清空了。。。

          只能明天靠記憶慢慢補(bǔ)了,皚皚。

          posted @ 2009-04-02 01:38 ZelluX 閱讀(894) | 評論 (3)編輯 收藏

          yifanw大牛半個月前發(fā)在c++版上的,怕以后忘了看先放在這備個忘吧

          白話入門
          http://www.newsmth.net/bbscon.php?bid=335&id=250203

          白話解決方案
          http://www.newsmth.net/bbscon.php?bid=335&id=250237

          白話參考文獻(xiàn)
          http://www.newsmth.net/bbscon.php?bid=335&id=250260

          posted @ 2009-03-25 22:14 ZelluX 閱讀(846) | 評論 (2)編輯 收藏

          最近有點(diǎn)忙,今天總算在某個課題deadline前把論文憋出來交上去了。跑這兒來推薦兩篇上個月看到的比較有意思的paper,都比較偏理論,也很老。

          今天寫介紹下第一篇,劍橋大學(xué)的A Logic of Authentication,中了SOSP '89,整理后發(fā)在1990年的ACM Transactions on Computer Systems上。
          http://www.csie.fju.edu.tw/~yeh/research/papers/os-reading-list/burrows-tocs90-logic.pdf

          (另一篇是Safe Kernel Extensions Without Run-Time Checking,改天再寫點(diǎn)介紹)

          這篇paper的主要工作是通過構(gòu)造一種多種類的模態(tài)邏輯(many-sorted model logic),來檢查網(wǎng)絡(luò)中驗(yàn)證協(xié)議的安全性。

          基礎(chǔ)的邏輯分三部分:
          原語,如驗(yàn)證雙方A和B,以及服務(wù)器S,下文用P Q R泛指
          密鑰,如K_ab代表a和b之間的通訊密鑰,K_a代表a的公鑰,{K_a}^{-1}代表對應(yīng)的私鑰,下文用K泛指
          公式(或者陳述),用N_a, N_b等表示,下文用X Y泛指

          接下來定義以下約定(constructs)
          P 信任 X: 原語P完全信任X
          P 看到 X: 有人發(fā)送了一條包含X的信息給P,P可以閱讀它或者重復(fù)它(當(dāng)然通常是在做了解密操作后)
          P 說了 X: 原語P發(fā)送過一條包含X的信息,同時也可以確定P是相信X的正確性的
          P 控制 X: P可以判定X的正確與否。例如生成密鑰的服務(wù)器通常被默認(rèn)為擁有對密鑰質(zhì)量的審核權(quán)。
          X 是新鮮的: 在此之前X沒有被發(fā)送過。這個事實(shí)可以通過綁定一個時間戳或者其他只會使用一次的標(biāo)記來證明。
          P <-K-> Q: P和Q可以通過共享密鑰K進(jìn)行通訊,且這個K是好的,即不會被P Q不信任的原語知道。
          K-> P: P擁有K這么一個公鑰,且它對應(yīng)的解密密鑰K^{-1}不會被其他不被P信任的原語知道。
          P <=X=> Q: X是一個只被P和Q或者P和Q共同信任的原語知道的陳述,只有P和Q可以通過X來相互證明它們各自的身份,X的一個例子就是密碼。
          {X}_K: X是一個被K加密了的陳述
          <X>_Y: 陳述X被Y所綁定,Y可以用來證明發(fā)送X的人的身份

          好了,總算把這些約定列完了,然后來看看通過這些約定能推出一些什么東東:
          如果 P 相信 (P <-K-> Q), 且 P 看到 {X}_K,那么 P 相信 Q 說了 X。
          這個例子很簡單,既然P Q有安全的密鑰K,那么P看到通過K加密后的X肯定認(rèn)為就是Q發(fā)出的。

          又比如,
          如果 P 相信 Q 控制 X,P 相信 (Q 相信 X),那么 P 相信 X
          也很容易理解,既然 P 相信 Q 的判斷,那么 Q 相信什么 P 自然也就相信了。

          再舉一個例子
          如果 P 相信 Y 是新鮮的,那么 P 相信 (X, Y) 也是新鮮的。
          這里(X, Y)表示 X 和 Y 的簡單拼接,也很容易理解,既然 Y 之前沒出現(xiàn)過,那么 X 和 Y 的組合自然也沒出現(xiàn)過。

          一個協(xié)議要被定義為安全,最起碼要滿足
          A 相信 A <-K->B,B 相信 A <-K->B
          即雙方要互相信任密鑰是安全的

          再健壯一點(diǎn)的協(xié)議,還要滿足
          A 相信 (B 相信 (A 相信 A <-K->B)),反之一樣
          即A B不僅相信密鑰,也相信對方相信自己對密鑰的信任。

          有了這些簡單卻強(qiáng)大的工具后,接下來這篇paper開始著手分析一些協(xié)議,包括Kerberos協(xié)議,Andrew Secure RPC 握手協(xié)議等,還指出了其中的一些問題和改進(jìn)措施,例如CCITT X.509 協(xié)議中可以通過重復(fù)發(fā)送一條老的信息來模仿成加密雙方中的一員。

          具體的分析不貼上來了,一方面對于我這個不熟悉TeX的人來說碼公式實(shí)在麻煩,另一方面我實(shí)在困死了 =_=

          建議有興趣的朋友好好看看這篇經(jīng)典paper

          posted @ 2009-03-18 03:10 ZelluX 閱讀(2514) | 評論 (0)編輯 收藏

          Some notes on lock-free and wait-free algorithms

          http://www.audiomulch.com/~rossb/code/lockfree/

          ?

          NOBLE - a library of non-blocking synchronization protocols

          http://www.cs.chalmers.se/~noble/

          ?

          An optimistic approach to lock-free FIFO queues (Distributed Computing 2008)

          http://people.csail.mit.edu/edya/publications/OptimisticFIFOQueue-journal.pdf

          ?

          High performance dynamic lock-free hash tables and list-based sets

          http://portal.acm.org/citation.cfm?id=564870.564881

          ?

          Concurrent Programming Without Locks

          http://www.cl.cam.ac.uk/research/srg/netos/papers/2007-cpwl.pdf

          ?

          Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms

          http://www.research.ibm.com/people/m/michael/podc-1996.pdf

          posted @ 2009-03-17 20:48 ZelluX 閱讀(2729) | 評論 (0)編輯 收藏

          抓抓大牛的博客(http://www.cnblogs.com/JeffreyZhao)上看到的鏈接,原文地址是
          http://blog.objectmentor.com/articles/2009/02/26/10-papers-every-programmer-should-read-at-least-twice

          貌似我只讀過那篇Reflections on Trusting Trust,水木的Programming版搜索作者為modico的帖子的前四篇就是介紹這篇paper的。

          先貼個列表,改天好好讀一讀
          1. On the criteria to be used in decomposing systems into modules – David Parnas
          2. A Note On Distributed Computing – Jim Waldo, Geoff Wyant, Ann Wollrath, Sam Kendall
          3. The Next 700 Programming Languages – P. J. Landin
          4. Can Programming Be Liberated from the von Neumann Style? – John Backus
          5. Reflections on Trusting Trust – Ken Thompson
          6. Lisp: Good News, Bad News, How to Win Big – Richard Gabriel
          7. An experimental evaluation of the assumption of independence in multiversion programming – John Knight and Nancy Leveson
          8. Arguments and Results – James Noble
          9. A Laboratory For Teaching Object-Oriented Thinking – Kent Beck, Ward Cunningham
          10. Programming as an Experience: the inspiration for Self – David Ungar, Randall B. Smith

          作者博客后面還新增了對它們的簡要評論

          posted @ 2009-03-02 18:24 ZelluX 閱讀(783) | 評論 (0)編輯 收藏

          2009-01-08

          以前碰到這個問題都得先重啟PieTTY然后用screen -x恢復(fù)到原來的工作界面,今天不知怎么的emacs里C-x C-s按了就掛起,只能google。

          傳說中,早期的終端會遇到顯示字符的速度慢于接收字符的速度,為了解決這個問題,C-s用于先掛起當(dāng)前終端,在數(shù)據(jù)傳輸之后用C-q恢復(fù)顯示。所以最簡單的解決方法就是在掛起后按C-q。

          不過我的WinXP中C-q已經(jīng)和快速啟動工具(寢室里是Turbo Launcher,實(shí)驗(yàn)室的是Launchy)綁定了,也懶得為了這么個問題改操作習(xí)慣,于是再次google,終于找到一個一勞永逸的方法,以bash為例,在~/.bashrc中加入一行

          stty -ixoff -ixon

          即可。另外這樣設(shè)置后似乎恢復(fù)了C-s在bash中正向增量查找的功能。恩。


          posted @ 2009-02-17 12:12 ZelluX 閱讀(2147) | 評論 (0)編輯 收藏

          今年的ASPLOS '09上zhou yuanyuan也有一篇關(guān)于如何concurrent program中發(fā)現(xiàn)隱藏的atomicity violation bugs的paper,里面提到了這篇paper

          2008-11-30

          OSDI '08上MSR發(fā)的paper,針對并發(fā)編程中難以發(fā)現(xiàn)的bug問題。

          paper的內(nèi)容主要分兩大塊。

          一是如何在發(fā)現(xiàn)bug的時候記錄下線程的運(yùn)行先后(thread interleaving),途徑是在線程API和用戶程序多寫一層wrapper functions,這里還有一些其他的問題,比如只記錄下了thread interleaving的話出現(xiàn)data race怎么解決等。

          另外一塊內(nèi)容是如何遍歷出給定程序運(yùn)行后所能產(chǎn)生的結(jié)果的集合,加入這個能實(shí)現(xiàn)的話那就能把所有隱藏的bug都找出來了。但是這個搜索空間很大,是 指數(shù)級的,的一個結(jié)論就是:給定一個程序有n個的線程,所有線程共完成k條指令,那么c次占先調(diào)度后線程的排列情況數(shù)的復(fù)雜度是k^{c}的,所以在實(shí)現(xiàn)遍歷代碼的時候必須有效的降低k和c的值。

          posted @ 2009-02-17 11:30 ZelluX 閱讀(633) | 評論 (0)編輯 收藏

          問題現(xiàn)象:上校內(nèi)、一些國內(nèi)論壇時經(jīng)常出現(xiàn)連接重置(Connect reset)錯誤,而上google baidu等網(wǎng)站卻沒什么問題。ping那些有問題的網(wǎng)站的結(jié)果很正常。

          google了一堆關(guān)鍵詞后終于發(fā)現(xiàn)問題出在MTU上,至少在偶的本本上運(yùn)行
          sudo ifconfig eth1 mtu 1412
          就沒問題了(eth1是無線網(wǎng)卡)

          p.s 多謝萬熊? XD

          posted @ 2009-01-29 00:30 ZelluX 閱讀(884) | 評論 (2)編輯 收藏

          主站蜘蛛池模板: 万荣县| 仁布县| 四子王旗| 佛学| 察哈| 安溪县| 峡江县| 伽师县| 古交市| 成安县| 类乌齐县| 沅陵县| 白城市| 玛沁县| 凭祥市| 上饶县| 图片| 万载县| 康乐县| 富阳市| 松潘县| 尉犁县| 文成县| 驻马店市| 新民市| 石台县| 临湘市| 宁远县| 曲水县| 泽库县| 汾阳市| 阿巴嘎旗| 普陀区| 拜泉县| 金山区| 徐水县| 夏河县| 济源市| 凤阳县| 台北市| 云龙县|