2009年10月12日 星期一
KVM
KVM是Linux底下的Kernel-based Virtual Machine,而在用KVM前,要先知道CPU本身是否支援硬體VM,否則不能用KVM:
Intel CPU:
grep vmx /proc/cpuinfo
AMD CPU:
grep svm /proc/cpuinfo
如果沒有就不支援kvm啦,不過在執行的時候會被轉成qemu執行,並且出現以下錯誤:
open /dev/kvm: No such file or directory
Could not initialize KVM, will disable KVM support
接著載入kvm.ko,並且根據CPU是Intel還是AMD分別載入kvm-intel.ko或kvm-amd.ko。
相關的套件可以使用以下指令一次安裝:
sudo apt-get install kvm libvirt-bin ubuntu-vm-builder bridge-utils
接著使用kvm-img建立disk,或者直接使用硬碟的partition(/dev/sdaX)。
完整的指令如下:
/usr/bin/kvm -M pc -m 2000 -smp 8 -localtime -boot c -hda /var/lib/libvirt/images/linux.img -hdb /dev/sda2
接著就開始安裝您的guest OS嚕。
標籤:
tools - vm
2009年10月8日 星期四
AJAX - Asynchronous JavaScript And XML
AJAX算是一個不算是一個新的技術,利用非同步的方式,提供互動式的網頁,AJAX面對最大的問題就是各個Browser之間對Java Script的標準與設計不一,常常寫好的能在FireFox上執行,在IE卻不能執行,所以在設計AJAX的時候最好考慮一下相容性的問題。
簡單的來說,AJAX提供XMLHttpRequest送出request給Web Server,接著等待回應,並處理回應的資料。
XMLHttpRequest
由於Browser之間對Java Script的標準與設計不一,所以下面的寫法可以用於大多數的形況。// Provide the XMLHttpRequest class for IE 5.x-6.x:
// Other browsers (including IE 7.x-8.x) ignore this
// when XMLHttpRequest is predefined
if (typeof(XMLHttpRequest) == "undefined")
{
XMLHttpRequest = function() {
try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); }
catch(e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP.4.0"); }
catch(e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); }
catch(e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP"); }
catch(e) {}
try { return new ActiveXObject("Microsoft.XMLHTTP"); }
catch(e) {}
throw new Error("This browser does not support XMLHttpRequest.");
};
}
xmlHttpRequest = new XMLHttpRequest();
有了XMLHttpRequest之後,我們就可以送出request並且處理資料xmlHttpRequest.onreadystatechange = function () { //處理來自Server的回應
if(xmlHttpRequest.readyState==4) {
alert(xmlHttpRequest.responseText); // Server回應的內容
// 如果回傳的是XML資料可以使用responseXML
}
}
xmlHttpRequest.open("GET","my.php", true);
// 設定送出的method(GET/POST), 以及對象(URL)
// 基於安全考量,你不能呼叫不同網域的網頁。如果網域不同時會出現「權限不足,拒絕存取」的錯誤。
// 第三個參數設定此request是否不同步進行,如果設定為TRUE,則即使伺服器尚未回傳資料,也會繼續執行其餘的程式。
xmlhttp.send(null); // 送出request
State | Description |
---|---|
0 | The request is not initialized |
1 | The request has been set up |
2 | The request has been sent |
3 | The request is in process |
4 | The request is complete |
標籤:
JavaScript
2009年10月6日 星期二
vmware server on Linux(ubuntu 9.04)
VMware Server現在也正式成為VMware的一個免費產品。所以記得前往官方網站下載註冊碼,VMware Server提供Linux和Windows兩個平台,下載後解壓縮,執行sudo ./vmware-install.pl,基本上一直按enter就會用default值安裝。 常遇到的問題就是出現找不到linux的header file(因為要編譯module): What is the location of the directory of C header files that match your running kernel? 解決方法就是安裝heade file嚕sudo apt-get install linux-headers-`uname -r`。移除時,執行sudo vmware-uninstall即可。 vmware server 2.0是以web方式呈現,https://server:8333,然後輸入之前設定時的admin account即可進入修改(必須是存在系統的帳號)。
標籤:
tools - vm
訂閱:
文章 (Atom)
熱門文章
-
轉自 http://www.wretch.cc/blog/redsonoma/14021073 基本概念: 1> tty(終端設備的統稱): tty一詞源於Teletypes,或者teletypewriters,原來指的是電傳打字機,是通過串行線用打印機鍵盤通過閱...
-
Work queue提供一個interface,讓使用者輕易的建立kernel thread並且將work綁在這個kernel thread上面,如下圖[1]所示。 由於work queue是建立一個kernel thread來執行,所以是在process context...
-
(V)將介紹file operations中的ioctl。ioctl的prototype為: int (*ioctl) (struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg); ...
-
這兩天電腦的word忽然都不能存檔,即便是另存新檔也不行,最後都只能放棄修改檔案,即便重新安裝過或者更新成2007也都不能存檔,最後就乖乖的google一下,原來是暫存的資料夾不存在,按照以下方式就可以解決了。 資料來源: word 2003不能存檔問題 編輯機碼的(reg...
-
System Call在HW和user space提供一層抽象層,主要目的有: 為user space提供硬體抽象層。比如,讀取檔案時,不用管檔案所在的媒體類型與檔案儲存類型。 System call能確保系統的安全與穩定。避免user space的無意或惡意的破壞。 ...
-
在kernel中建立thread可以使用kthread_create(),建立一個task,然後在調用wake_up_process(task)讓task真正的運行,如果要kill一個kthread可以使用kthread_stop()。 在kernel中,將kthread_cr...
-
Linux module練習手札I紀錄如何撰寫一個簡單的module,並且編輯它,以及load和unload一個module。 write a module #include <linux/init.h> #include <linux/module.h...
-
幾乎任何使用 TCP,UDP或UNIX-domain socket的動作都可以用nc來達成,常見的功能如。 simple TCP proxies shell-script based HTTP clients and servers network daemon testi...
-
很多人心中都有過一個問題 What is the difference between Platform driver and normal device driver? ,簡單的來說Platform devices就non-discoverable,也就是device本身沒辦法...
-
組成元件 要能正確顯示資料,必須包含資料倉儲(Store),資料欄位的定義(ColumnModel)。 首先我們先定義資料欄位: var cm = new Ext.grid.ColumnModel({ {header: 'Name', dataIndex...