在自由軟體技術網看到的新聞,原文連結來自Desktoplinux.com
主要是Dell推出了一部PC還有一部Notebook,其預載的作業系統是Ubuntu Linux,其實在台灣這種銷售方式一直都有,雖然非常地少,而且說實在的沒什麼搞頭,因為台灣一般的電腦使用者還是使用Windows,加上一些特定軟體以及遊戲都綁在Windows上,要這些使用者改變他們的習慣去重新學習使用Linux,是不太可能的事,或許電腦新手能夠很容易的學習,但這畢竟是少數.而一些習慣使用非windows的人呢?不管他們買的是搭載什麼作業系統的電腦,都有能力能夠把它變成他們想要的,這麼一來,又何必特別去購買搭配Linux的電腦呢?
此外,發展Linux的是各個社群,並非有商業行為的公司行號(Red Hat公司賣的是服務,並非Linux軟體),所以要把它拿來跟Windows或是Mac作比較,我個人是覺得不太合適,因為他們的定位跟本是不一樣的,常聽到有人會說什麼幾年後Linux會打敗Windows這種鬼話,這至少要等到Linux作業系統本身商業化後再來談論,目前來講是不可能的.當然,並不是Linux差,而是它本身在作業系統的市場中,並不是扮演一個產品的角色,而是一個自由發展的系統,所以也不用去管它到底贏不贏了.
2007年5月21日 星期一
2007年5月18日 星期五
虛擬化技術簡介
以下文章部分內容參考自Run!PC160期,”x86伺服器虛擬化的進度/何信達”一文
----------------------------------------------------------------------------------------------------------------------------------
前陣子買Notebook時作了一點功課,在比較CPU效能時,發現Intel有一項新的賣點,就是虛擬化技術(Virtualization Technology).而許多人花了錢,買了俱有VT的CPU,真的能增加效能嗎?事實上大部分的User根本用不到VT,那麼VT到底是什麼呢?
在伺服器的領域當中,常為了節省硬體成本,而在一部server利用虛擬機器軟體,模擬出數台虛擬伺服器,達到一機多用的結果,但是這樣所帶來的缺點,就是效能大大地降低,而VT技術就是在CPU裡動手腳,使得虛擬系統可以更快速的使用硬體,這樣不僅能讓可以增加VM數量,提高伺服器使用率,也帶來更大的效能.
目前x86伺服器的虛擬化技的發展,大概有三種不同的架構
以往在x86的protected mode下,有四種優先權的處理模式:Ring0~Ring3,Ring0是最大的權限,可以直接存取硬體,而Ring3就是應用層軟體的權限.一般CPU加上虛擬化軟體的架構下,Hypervisor/VMM擁有Ring0,虛擬機器擁有Ring1,而Ring1要存取硬體需要經過一些轉換,降低了效能,所以VT技術就被提出,用來解決此問題,概念上就是設計一個特殊權限讓虛擬機器可以直接存取硬體,用來管理這個的元件,在Intel CPU上稱作Virtual Machine Extensions,這麼一來,虛擬機器就直接以Ring0執行,而不需經過轉換,效能就可以提升很多.
----------------------------------------------------------------------------------------------------------------------------------
前陣子買Notebook時作了一點功課,在比較CPU效能時,發現Intel有一項新的賣點,就是虛擬化技術(Virtualization Technology).而許多人花了錢,買了俱有VT的CPU,真的能增加效能嗎?事實上大部分的User根本用不到VT,那麼VT到底是什麼呢?
在伺服器的領域當中,常為了節省硬體成本,而在一部server利用虛擬機器軟體,模擬出數台虛擬伺服器,達到一機多用的結果,但是這樣所帶來的缺點,就是效能大大地降低,而VT技術就是在CPU裡動手腳,使得虛擬系統可以更快速的使用硬體,這樣不僅能讓可以增加VM數量,提高伺服器使用率,也帶來更大的效能.
目前x86伺服器的虛擬化技的發展,大概有三種不同的架構
- Hosted-Base
不變更作業系統及硬體,虛擬化軟體以應用程式的角色在系統上執行,這樣效能最差,而且其它應用程式亦會影響其效能.
- Hypervisor-Based
Hypervisor-Based是目前的主流發展,常見的VMWare,Microsoft及Xen皆屬於這種,概念上就是簡化及加速虛擬化軟體使用硬體,實作的方式大概又分為兩種,一種將虛擬機所需要的driver內建於原作業系統中,這麼一來,作業系統就會變的很龐大,另一種方式就是由各虛擬機器管理各自的driver,這樣可以達到比較好的效能,例如WinHEC裡提到的MicroKernelize架構,使得虛擬機器可以直接使用硬體.
- Kernel-Based
這是目前許多人在探討的一項新技術,像是Qumranet所提出的KVM(Kernel-based Virtual Machine)概念,讓作業系統的kernel可以直接使用Intel VT或AMD-V的虛擬化技術,在kernel上需要搭配QEMU的CPU模擬程式,讓虛擬機器可以直接使用硬體.
以往在x86的protected mode下,有四種優先權的處理模式:Ring0~Ring3,Ring0是最大的權限,可以直接存取硬體,而Ring3就是應用層軟體的權限.一般CPU加上虛擬化軟體的架構下,Hypervisor/VMM擁有Ring0,虛擬機器擁有Ring1,而Ring1要存取硬體需要經過一些轉換,降低了效能,所以VT技術就被提出,用來解決此問題,概念上就是設計一個特殊權限讓虛擬機器可以直接存取硬體,用來管理這個的元件,在Intel CPU上稱作Virtual Machine Extensions,這麼一來,虛擬機器就直接以Ring0執行,而不需經過轉換,效能就可以提升很多.
2007年4月19日 星期四
新一代 C++ Standard Library 2.0 : Boost
Boost 是新一代的 C++ Standard,最初由熱心的 C++ 標準委員會所創立,加上 C++ 社群的努力開發,組成了 Boost 程式庫.這些開發者對於 C++ 的發展頗大,都是核心級的人物,所以 Boost 想當然而,將會是 C++ 新一代的 Standard.目前已有10個 Boost Library 被收錄至 C++ Standard Library Technical Report (TR1),下一個階段將有更多程式庫被收錄至 TR2 內,然而發展成成熟的 C++ Standard Library 2.0.
為了體驗這個嶄新的標準,我就在我的電腦上裝上 Boost,利用 Visual Studio 2005 來搭配使用,(當然,你也可以使用其它常見的工具),其支援的 Compiler 如官網示 http://www.boost.org/more/getting_started.html#Tools
1. 先到Boost首頁,然後點取下載頁面
2. 下載 boost 以及 boost-jam 兩個套件:將 boost 解開放至某個目錄下(如 C:\ ),再將 boost-jam 裡頭的 bjam.exe 放至 boost 目錄中 (如 C:\boost_1_33_1 )
3. 開個 cmd 到 C:\boost_1_33_1,先將 VS8 的環境變數設定好(可以執行 C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat )
4. 最後執行 bjam -sTOOLS
5. 打開 VS8,把 include 目錄及 lib 目錄設定好,即可開始使用 Boost 所提供的便利
目前 Boost TR1 所提供的組件:
為了體驗這個嶄新的標準,我就在我的電腦上裝上 Boost,利用 Visual Studio 2005 來搭配使用,(當然,你也可以使用其它常見的工具),其支援的 Compiler 如官網示 http://www.boost.org/more/getting_started.html#Tools
1. 先到Boost首頁,然後點取下載頁面
2. 下載 boost 以及 boost-jam 兩個套件:將 boost 解開放至某個目錄下(如 C:\ ),再將 boost-jam 裡頭的 bjam.exe 放至 boost 目錄中 (如 C:\boost_1_33_1 )
3. 開個 cmd 到 C:\boost_1_33_1,先將 VS8 的環境變數設定好(可以執行 C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat )
4. 最後執行 bjam -sTOOLS
=vc-8_0 install 開始編譯,經過一段時間後,就把 Boost Library 編譯好了5. 打開 VS8,把 include 目錄及 lib 目錄設定好,即可開始使用 Boost 所提供的便利
目前 Boost TR1 所提供的組件:
String and text processing
Containers
Iterators
Algorithms
Function Objects and higher-order programming
Generic Programming
Template Metaprogramming
Preprocessor Metaprogramming
Concurrent Programming
Math and numerics
Correctness and testing
Data structures
Input/Output
Inter-language support
Memory
Parsing
Programming Interfaces
Miscellaneous
Broken compiler workarounds
2007年3月31日 星期六
VB.NET 裡的 ListView 自定排序
在VB.NET,或者說是 .Net Framework 2.0 裡ListView,提供了一個排序的 member function:Sort( ),但是這個sort預設的排序方法,是根據第一個subitem中的string來作排序,這麼一下來排數字的時候就相當的不便,在此,VB.NET提供了一個可以自定排序的方法,就好像C++裡的,我們會override "<" 這個 operator 一樣.
於是,我們就在專案裡新增一個class來實作IComparer這個interface:
Public Class Mysort : Implements IComparer
End Class
然後,把要排序的ListView,裡面的排序準則設成這個class的一個實體,再呼叫Sort,就會依我們方式來排序了
於是,我們就在專案裡新增一個class來實作IComparer這個interface:
Public Class Mysort : Implements IComparer
Function Compare(ByVal a As Object, ByVal b As Object) As Integer Implements IComparer.CompareDim c1 As Integer = Integer.Parse(CType(a, ListViewItem).SubItems(0).Text)
Dim c2 As Integer = Integer.Parse(CType(b, ListViewItem).SubItems(0).Text)
If (c1 > c2) ThenReturn 1
End If
If (c1 < c2) ThenReturn -1
ElseReturn 0
End If
End Function
End Class
然後,把要排序的ListView,裡面的排序準則設成這個class的一個實體,再呼叫Sort,就會依我們方式來排序了
Dim mysort As New Mysort
Me.ListView1.ListViewItemSorter = mysort
Me.ListView1.Sort()
2007年3月25日 星期日
Vista 開發技術 - WPF
WPF 是 Windows Presentation Foundation的縮寫,簡單來說,可以想成是vista上的Windows API,具有新的外觀以及圖型效果,而且有新的設計哲學,由於是Microsoft下一代的開發技術,必定是未來開發Windows應用程式重要一環,雖然Microsoft在Visual Studio .NET 2007裡才會內建WPF,不過現在只要去MSDN網站上抓一些extension下來,一樣能使用WPF.
我的測試環境如下:
裝好 Extension 後打開 Visual Studio,新增專案一下,多出了WPF的選項

.NET Framework 3.0 與 2.0 有個很大的不同,就是3.0是採用XAML來描述有關視覺的部分,也就是傳統的Form部分,而邏輯部分就用VB或C#來處理,在新增WPF專案後,在IDE裡也多出了一個XAML的視窗:

XAML與C#的關係,就好像Apollo裡的MXML與Action Script一樣, 所有程式都可以只利用C#開發出來,而只有少部分的程式可以僅利用XAML開發,看來還是由C#主導一切,深入一點看,所有XAML的描述,都會在編譯時被轉成程式碼,只是扮演一個輔助的角色吧?
WPF的釋出,顯然是要與Apollo競爭,但它們仍有各自適合的地位,像是要開發Windows Vista程式時當然就是用Visual Studio + WPF,而有需要跨平台時,就可以考慮使用Apollo囉.
我的測試環境如下:
Windows XP SP2 CHT
Visual Studio .NET 2005 CHT
.NET Framework 3.0
Visual Studio Extention for .NET Framework 3.0
裝好 Extension 後打開 Visual Studio,新增專案一下,多出了WPF的選項
.NET Framework 3.0 與 2.0 有個很大的不同,就是3.0是採用XAML來描述有關視覺的部分,也就是傳統的Form部分,而邏輯部分就用VB或C#來處理,在新增WPF專案後,在IDE裡也多出了一個XAML的視窗:
XAML與C#的關係,就好像Apollo裡的MXML與Action Script一樣, 所有程式都可以只利用C#開發出來,而只有少部分的程式可以僅利用XAML開發,看來還是由C#主導一切,深入一點看,所有XAML的描述,都會在編譯時被轉成程式碼,只是扮演一個輔助的角色吧?
WPF的釋出,顯然是要與Apollo競爭,但它們仍有各自適合的地位,像是要開發Windows Vista程式時當然就是用Visual Studio + WPF,而有需要跨平台時,就可以考慮使用Apollo囉.
2007年3月17日 星期六
Intel 將推出 802.11n 晶片組
IEEE所制定的802.11n規格目前只到2.0版的草案,而Intel似乎等不及3.0版(預計今年六月寄出,八月確定),以2.0為基礎,發起connect with Centrino計畫,原因專案代號為Kedron的802.11n技術,正式命名為Intel Next-Gen Wireless-N.之前宣稱要在年初推出的Santa Rosa平台,至今仍未上市(有謠言說在今年五月才會正式推出),無論如何,下一代Intel平台上市後,就能夠使用擁有五倍以上的傳輸效能了
2007年3月15日 星期四
用wiimote來代替滑鼠及簡報器
由於wiimote本身是用藍芽與主機溝通,所以是不是只要寫個driver,就能拿來當作滑鼠使用呢?

答案是肯定的,而且已經有人寫出driver了,要做到這件事情,你必需要有
接著我們開始把wiimote與電腦 ”接” 在一起吧:
1. 首先我們先下載 GlovePIE,目前最新版本為0.29 載點
2. 把你的藍芽設備弄好,並搜尋電腦附近的藍芽裝置 (就是你的wiimote) ,同時,按下wiimote上的1,2鍵,這樣電腦就可以找到wiimote了




3. 連接上之後,我們解開剛下載的GlovePIE,並執行GlovePIE.exe

4. 選擇 File -> Open,先打開 WiimoteScripts\WiiMouse 0.1.PIE

5. 如此一來,便可以使用wiimote來操控滑鼠,A鍵就是右鍵,B鍵就是左鍵
但是WiiMouse這個script實在是不好控制,因為它只根據mote中的感測速度的sensor來做出反應,所以各位可以試試其它的script,像是WiiMouse IR.PIE,可以搭配wii所附的紅外線裝置來做定位,使mote更加準確
答案是肯定的,而且已經有人寫出driver了,要做到這件事情,你必需要有
1. wiimote,就是wii的手把
2. 電腦,而且有藍芽設備
3. Internet
接著我們開始把wiimote與電腦 ”接” 在一起吧:
1. 首先我們先下載 GlovePIE,目前最新版本為0.29 載點
2. 把你的藍芽設備弄好,並搜尋電腦附近的藍芽裝置 (就是你的wiimote) ,同時,按下wiimote上的1,2鍵,這樣電腦就可以找到wiimote了
3. 連接上之後,我們解開剛下載的GlovePIE,並執行GlovePIE.exe
4. 選擇 File -> Open,先打開 WiimoteScripts\WiiMouse 0.1.PIE
5. 如此一來,便可以使用wiimote來操控滑鼠,A鍵就是右鍵,B鍵就是左鍵
但是WiiMouse這個script實在是不好控制,因為它只根據mote中的感測速度的sensor來做出反應,所以各位可以試試其它的script,像是WiiMouse IR.PIE,可以搭配wii所附的紅外線裝置來做定位,使mote更加準確
firefox2 好用的 extensions
IEtab 快速IE的工具,可以以分頁形式在firefox裡用IE看網頁
tab catalog 分頁預覽,功能同IE7裡的分頁預覽
plainoldfavorites 共享IE我的最愛,上方選單會多出IE裡的”我的最愛”
noscript 擋住script
tab catalog 分頁預覽,功能同IE7裡的分頁預覽
plainoldfavorites 共享IE我的最愛,上方選單會多出IE裡的”我的最愛”
noscript 擋住script
2007年3月7日 星期三
[ubuntu] 在ubuntu中使用WPA加密的無線網路
實驗用的AP是FON,作業系統是ubuntu 6.10
先設定驗證資料
#wpa_passphrase SSID WPA_Key > /etc/wpa_supplicant/fonera.conf
#wpa_supplicant -BDwext -ieth1 -c/etc/wpa_supplicant/fonera.conf
再DHCP取得ip就可以了
#dhclient eth1
先設定驗證資料
#wpa_passphrase SSID WPA_Key > /etc/wpa_supplicant/fonera.conf
#wpa_supplicant -BDwext -ieth1 -c/etc/wpa_supplicant/fonera.conf
再DHCP取得ip就可以了
#dhclient eth1
2007年3月2日 星期五
[ubuntu] 安裝gcin
ubuntu站台上的gcin已經很舊了,所以我們要加入新的站台
重開X即可
$sudo vim /etc/apt/sources.list加入deb http://www.calno.com unstable main
deb-src http://www.calno.com unstable main
$sudo apt-get update
$sudo apt-get install gcin im-switch
$im-switch -s gcin
重開X即可
訂閱:
文章 (Atom)