= 2009-05-08 = * [午餐] [http://www.ipeen.com.tw/shop/shop.php?id=15102 聯合泰國小吃店] * 拉票喔!! !SourceForge 2009 Community Choice Awards[[BR]][[Image(wiki:jazz/09-05-08:sf.net_cca09.jpg, width=400)]] == File System : Lustre == * Lustre 2.0 Alpha 已經釋出了。下載點: * 在 Lustre User Meeting 2009 的議程中,Peter Bojanic 提到了 Lustre 的 Roadmap,我比較注意的兩點是:(1) Write Back Cache 跟 (2) pNFS exports * [[Image(wiki:jazz/09-05-08:lustre_roadmap.png,width=400)]] * 目前全球 HPC 前十大有七個採用 Lustre 1.6 版本。而 I/O 最高紀錄保持者為 190 GB/s,這也意味著先前測試到 2 GB/s 算是小 case 啦!! * [[Image(wiki:jazz/09-05-08:lustre_io_record.png,width=400)]] * 1.6 版將於 2010 四月停止維護,因此想要玩的可以開始轉換到 1.8 了。 * [[Image(wiki:jazz/09-05-08:lustre_eol.png,width=400)]] * [觀念] [http://www.wretch.cc/blog/pgl/13634634 什麼是 Write Through ?? 什麼是 Write Back ??] == Linux Programming ==  * [專案] 在 Windows 底下常用的 inportb() 跟 outportb(),在 Linux 底下可以用 port I/O (有很多種 outb(), outw(), outl(), outsb(), outsw(), outsl(), inb(), inw(), inl(), insb(), insw(), insl() ) 來實現。而在 !VxWorks 則用 sysInByte() 跟 sysOutByte() 來實現 {{{ #!C static int outportb(unsigned int port, unsigned int val, int size) { static int iopldone = 0; #ifdef DEBUG printf("outportb(0x%04x)<=0x%02x\n", port, val); #endif if (port > 1024) { if (!iopldone && iopl(3)) { fprintf(stderr, "iopl(): %s\n", strerror(errno)); return 1; } iopldone++; } else if (ioperm(port,size,1)) { fprintf(stderr, "ioperm(%x): %s\n", port, strerror(errno)); return 1; } if (size == 4) outl(val, port); else if (size == 2) outw(val&0xffff, port); else outb(val&0xff, port); return 0; } static int inportb(unsigned int port, int size) { static int iopldone = 0; unsigned int val=0; if (port > 1024) { if (!iopldone && iopl(3)) { fprintf(stderr, " iopl(): %s\n", strerror(errno)); return 0; } iopldone++; } else if (ioperm(port,size,1)) { fprintf(stderr, " ioperm(%x): %s\n", port, strerror(errno)); return 0; } if (size == 4) { val=inl(port); #ifdef DEBUG printf("Read_port:(0x%04x)=>0x%08x\n", port, val); #endif } else if (size == 2) { val=inw(port); #ifdef DEBUG printf("Read_port:(0x%04x)=>0x%04x\n", port, val); #endif } else { val=inb(port); #ifdef DEBUG printf("Read_port:(0x%04x)=>0x%02x\n", port, val); #endif } return(val); } }}} == Fast Boot == * [http://www.debian-administration.org/articles/629 Concurrent boot sequence] - 一些快速開機的參考資料 * [http://translate.google.com/translate?hl=en&sl=ja&u=http://www.lineo.co.jp/products-services/services/warp.html&sa=X&oi=translate&resnum=1&ct=result&prev=/search%3Fq%3Dsite:http://www.lineo.co.jp/%2Bwarp!!%26hl%3Den%26client%3Diceweasel-a%26rls%3Dorg.debian:en-US:unofficial 日本研發的 Wrap 2 技術,讓 Linux 休眠的復原時間更短] - [http://www.linuxdevices.com/news/NS5185504436.html 原始新聞] * Fred's blog: [http://fred-zone.blogspot.com/2008/11/blog-post.html 快速開機實作瓶頸簡記] * [http://www.debian-administration.org/articles/620/print Booting Debian in 14 seconds]  * [http://moblin.org/projects/fast-boot Moblin Fast Boot in 5 seconds] * [http://lwn.net/Articles/299483/ LPC: Booting Linux in five seconds]