2011年8月2日 星期二

全新時代到來! Linux Kernel 3.0 正式發佈

Linus Torvalds 2011/07/23 發佈了備受矚目的 Linux Kernel 3.0 新一代系統內核的正式版本,一個新的時代也由此開啟。

Linux Kernel 的上一個版本是 2.6.39,也是 2.6 系列的第 39 次升級維護。從改進幅度上看,Linux Kernel 3.0 其實完全可以叫做 2.6.40,但這年頭版本號為王,3.0 要好看得多。

Linus Torvalds在發佈聲明中說:“2.6 的日子結束了,3.0 來了。這也為下一個內核版本敞開了大門,也就是 3.1。穩定升級版會取第三位小數,所以第一個穩定更新將是 3.0.1。”

Linux Kernel 3.0 經過了七個 RC 候選版才完成正式版本,主要新特性有:

- Btrfs 檔案系統自動磁碟重組、性能改進和檢查
- 支援 sendmmsg() 函式呼叫,UDP 發送性能提升20%,介面發送性能提升約 30%
- 支持 XEN dom0
- 支援應用緩存清理 (CleanCache)
- 支持柏克萊封包篩檢程式 (Berkeley Packet Filter) 即時過濾,配合 libpcap/tcpdump 提升包過濾規則的運行效率
- 支援無線局域網 (WLAN) 喚醒
- 支援非特殊授權的 ICMP_ECHO 函數
- 支持高精度計時器 Alarm-timers
- 支援 setns() syscall,更好地命名空間管理
- 支援微軟 Kinect 體感設備
- 支援 AMD Llano APU 處理器
- 支援 Intel iwlwifi 105/135 無線網卡
- 支援 Intel C600 SAS 控制器
- 支援雷淩 Ralink RT5370 無線網卡
- 支援多種 Realtek RTL81xx 系列網卡
- 大量新驅動
- 大量 bug 修正和改進

常用的Windows 7快速鍵

用表格分類以供速查
類 別按 鍵功 能說明
管理視窗
Alt+F4
關閉目前作用中的視窗
Alt+Tab
顯示視窗以切換作用中的視窗
Ctrl+Alt+Tab
固定式視窗選擇,選擇視窗顯示後能用←、→鍵移動(上下與滾輪皆無效)
Win+Tab
以Flip 3D顯示切換視窗,Alt按著不放再按Tab或方向鍵或滑鼠滾輪可以顯示下一個視窗
Ctrl+Win+Tab
固定式Flip 3D,3D畫面顯示後可以按方向鍵或滑鼠滾輪切換視窗
Alt+Esc
輪流顯示已開啟視窗
Win+M
所有視窗最小化(Minimized)
Win+Shift+M
取消最小化
Win+D
切換顯示桌面(Desktop)
Win+↑
目前視窗最大化
Win+↓
目前視窗最小化或回復原來大小
Win+←
讓目前視窗依下列順序顯示:佔據桌面左半部、佔據桌面右半部、回復原來大小
Win+→
讓目前視窗依下列順序顯示:佔據桌面右半部、佔據桌面左半部、回復原來大小
Win+Home
除了目前視窗外,其餘視窗最小化
Win+Shift+←
多螢幕操作:移動目前視窗到左邊螢幕
Win+Shift+→
多螢幕操作:移動目前視窗到右邊螢幕
執行程式
Win+數字1-9
對應快速啟動區圖示的順序,例如第 5個是IE瀏覽器則按Win+5則執行IE
Win+B
滑鼠游標移動至System Tray(通知區域)的圓形按鈕上,接著便可用方向鍵移游標
Win+E
開啟檔案總管(Explorer)
Win+F
開啟搜尋視窗(Find)
Win+R
開啟命令執行視窗(Run)
Win+U
開啟Windows【控制台→輕鬆存取→輕鬆存取中心】 
(XP是開啟公用程式管理員,內有放大鏡與螢幕小鍵盤)
Win+X
開啟行動中心
Win+Pause
XP:開啟【系統內容】
Vista:開啟【控制台→系統及維護→系統】
Win 7:開啟【控制台→系統及安全性→系統】
Ctrl+Shift+Esc
開啟工作管理員
登入登出
Win,→,Enter
關機
Win,→,→,R
重新啟動
Win,→,→,S
睡眠
Win,→,→,H
休眠
Win,L
鎖定電腦(Lock)
檔案總管
Alt+↑
至上層資料夾
Alt+←
回上個資料夾
Alt+→
至下個資料夾
Alt+D
移動到位置列(Address bar)
Alt+Enter
顯示檔案或資料夾的「內容」視窗
Ctrl+滾輪
切換檢視狀態
Ctrl+E
選取搜尋欄位
Win 7
新功能
Win+P
選擇簡報顯示模示
Win+T
把目前視窗變透明
Win+=
目前視窗進入放大狀態
Shift+Click
工作列圖示上按Shift+Click再開啟另一個該圖示的程式

2011年7月27日 星期三

printf 顏色設置

以下是VT100終端中printf顏色設置,終端類型可以在SecureCRT中設置。
echo也能加顏色,只是必須要用echo -e ""(後面同printf)

printf輸出顏色和ANSI控制碼(高亮,下劃線,閃爍,光標位置,清屏等)
給printf的輸出加上些特效比如顏色,可以讓打印信息更鮮明,在debug的時候特別有用。
顏色:
#define NONE "\033[m"
#define RED "\033[0;32;31m"
#define LIGHT_RED "\033[1;31m"
#define GREEN "\033[0;32;32m"
#define LIGHT_GREEN "\033[1;32m"
#define BLUE "\033[0;32;34m"
#define LIGHT_BLUE "\033[1;34m"
#define DARY_GRAY "\033[1;30m"
#define CYAN "\033[0;36m"
#define LIGHT_CYAN "\033[1;36m"
#define PURPLE "\033[0;35m"
#define LIGHT_PURPLE "\033[1;35m"
#define BROWN "\033[0;33m"
#define YELLOW "\033[1;33m"
#define LIGHT_GRAY "\033[0;37m"
#define WHITE "\033[1;37m"
比如:
printf("\033[31m ####----->> \033[32m" "hello\n" "\033[m")
int main()
{
printf( CYAN "current function is %s " GREEN " file line is %d\n" NONE,
__FUNCTION__, __LINE__ );
fprintf(stderr, RED "current function is %s " BLUE " file line is %d\n" NONE,
__FUNCTION__, __LINE__ );
return 0;
}
顏色分為背景色和字體色,30~39用來設置字體色,40~49設置背景:
背景色字體色
40: 黑30: 黑
41: 紅31: 紅
42: 綠32: 綠
43: 黃33: 黃
44: 藍34: 藍
45: 紫35: 紫
46: 深綠36: 深綠
47: 白色37: 白色
記得在打印完之後,把顏色恢復成NONE,不然再後面的打印都會跟著變色。
另外,還可以加一些ANSI控制碼。加顏色只是以下控制碼中的一種:
\033[0m 關閉所有屬性
\033[1m 設置高亮度
\033[4m 下劃線
\033[5m 閃爍
\033[7m 反顯
\033[8m 消隱
\033[30m -- \033[37m 設置前景色
\033[40m -- \033[47m 設置背景色
\033[nA 光標上移n行
\033[nB 光標下移n行
\033[nC 光標右移n行
\033[nD 光標左移n行
\033[y;xH設置光標位置
\033[2J 清屏
\033[K 清除從光標到行尾的內容
\033[s 保存光標位置
\033[u 恢復光標位置
\033[?25l 隱藏光標
\033[?25h 顯示光標

2011年7月25日 星期一

STUN (Simple Traversal of UDP Through Network Address Translators - RFC 3489 )

STUN (Simple Traversal of UDP Through Network Address Translators - RFC 3489 ), 是最著名和最常被使用的VoIP穿越NAT防火牆的解決辦法。STUN 利用位於 Internet 上的伺服器幫助防火牆內的UA獲知他們被NAT 轉換過的外部位址, 並協助他人的VoIP呼叫穿透防火牆送達牆內的UA。
很多應用層的 VoIP程式必須仰賴 UA 主動提供自身的IP 位址及port number, 讓VoIP兩端的UA 彼此知道對方的IP 位址及port number, 才能互送封包, 建立雙向的通話。但是如果UA 是在NAT 後面, 在沒有外部的協助下,一個UA 無法看到 它自己被NAT 轉換過的外部位址,就無法提供此項資訊,讓 VoIP順利運作。



圖 9.10 UA 與STUN 溝通獲知外部位址
STUN 伺服器可作為中介者協助UA 看到自己被轉換過的外部位址,如圖9.10所示。 UA 送一個message 給STUN 伺服器,而STUN 伺服器可從封包中挖出來該 UA 的外部位址,並將此資訊回傳給UA。 此外,STUN 伺服器也可透過一系列的測試封包獲知NAT 的型態,並提供 相對應的穿越方法,圖9.11及9.12顯示STUN 伺服器探測NAT型態之架構與流程。 可惜的是,STUN無法穿透Symmetric NAT, 而偏偏這種NAT已經成為NAT市場上的主流。 以下是公眾STUN 伺服器的位址。
  • stun.fwdnet.net
  • stun.fwd.org (no DNS SRV record)
  • stun01.sipphone.com (no DNS SRV record)
  • stun.softjoys.com (no DNS SRV record)
  • stun.voipbuster.com (no DNS SRV record)
  • stun.voxgratia.org (no DNS SRV record)
  • stun.xten.com
  • stun1.noc.ams-ix.net (DNS SRV record on domain ams-ix.net not noc.ams-ix.net)
  STUN 伺服器探測NAT型態之架構

STUN 伺服器探測NAT型態之流程

2011年7月22日 星期五

指定 Linux 網路卡連線速度

指定 Linux 網路卡連線速度,除了在載入 module 時以參數指定外,亦可使用以下指令 

  • ifconfig
  • mii-tool
  • ethtool

Example: ifconfig eth0 media 100baseTX


若出現 port: SIOCSIFMAP: Operation not supported ,可以改用 mii-tool,ethtool指令


mii-tool -F 100baseTx-FD eth0

ethtool -s eth0 speed 100 duplex full autoneg on

How to repair and clone disk with ddrescue

  ddrescue  is a tool that can be used to repair and clone disks on a  Linux system . This includes hard drives, partitions, DVD discs, flas...