Posts

Showing posts from July, 2009

[Anroid] Animation

Android的animation由四種類型組成 XML alpha: 透明度0.0~1.0 scale: 尺寸縮放 translate: x,y軸形變-100~100 rotate: 旋轉dgree JavaCode AlphaAnimation: 透明度 ScaleAnimation: 尺寸縮放 TranslateAnimation: 形變 RotateAnimation: 旋轉

[Virtual] Intel Virtualization Technology VT-x

為了解決權限問題,Intel使用VT-x的技術,x就是x86的意思,另一個VT代號為VT-i就是Itanium,通常使用在伺服器上,但技術上是很接近的。 先前提到VMM的問題: http://jaysoftwarenote.blogspot.com/2009/07/virtual-virtualization.html VT-x的作用就是在原本的ring外面再加了一曾權限。分別為VMX Root與VMX Non-root,Non-root為原本的ring權限,而Root則可以使用VMX(Virtual Machine Extensions)的指令集,裡面包括了十個指令VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUCH, VMRESUME, VMXOFF and VMXON,這些指令包括,開始指令、得到此VMM的使用權指令、結束指令等等。運用這些指令,可以快速執行GDT, IDT, LDT and TSS,也就是ring 0指令,減少這些指令所花的時間。 簡介一下這些指令: GDT: (Global Descriptor Table, 全域描述器表)用來紀錄屬於系統全域的記憶體區段描述資料 IDT:(Interrupt descriptor table) LDT: (Local Descriptor Table, 區域描述器表) TSS: (Task-State Segment) 詳細的內容可以參考: http://stenlyho.blogspot.com/2009/01/vt-xvt-d-intel.html

[Virtual] Virtualization

虛擬化系統早年是用在大型伺服器上,公司為了節省成本,將許多不常用的小型的Server OS裝在同一個實體伺服器裡,大量的節省成本。 如今要裝在laptop or netbook上,其實它的架構是很類似的 VMM (Virtual Machine Monitor) VMM是架在原始的Hardware與OS之間的軟體程式,對於Harware來講,VMM提供了原本OS對硬體的控制,所以VMM必須有所有的硬體驅動程式。而對於OS方面,VMM必須提供虛擬的Hardware,包括CPU、記憶體、硬碟與IO,並且讓OS使用這些虛擬的Hardware系統,而VMM還要控制這些OS對於實體硬體的使用時間和大小。 看起來很完美,但是裡面藏了一個大問題,就是權限問題,我們把CPU權限分為四種,ring 0~ ring 3,ring 0權限最大,本來OS的權限為ring 0,但現再多了一個VMM,因此必須要把OS的權限提高,將ring 0的權限讓給VMM,因此VMM就必須模擬出ring 0的指令,尤其是GDT、IDT、LDT、TSS指令,會消耗掉10%~30%的CPU資源,因此降權的方法則會損耗許多的資源。 此問題可以用Hardware來解決,Intel在這方面有提供Virtualization Technology,簡稱VT,可參考Intel Virtualization Technology: http://jaysoftwarenote.blogspot.com/2009/07/virtual-intel-virtualization-technology.html

[Virtual] Instant OS

最近要報告 Virtualization,所以先從根源Instant OS談起。 何謂Instant OS,就是一個能夠快速開機的作業系統,至於這個作業系統需要什麼功能,先針對使用族群做分類。 商務人士: 在不插電的情況下,能夠使用很長的時間,並且One-Click就可以上網,收Email,在系統當機時能夠迅速的恢復開機時的狀態,還必須維護資料的安全。 家庭: 較高的安全性,針對家庭帳戶資料與滋旅的個人資料作保護,還有家長的監護系統與網站保護機制。 學生: 快速上網、Email、Web以及多媒體播放器,並且能夠自動備份與快速回復機制。 老年人: 簡單One-Click就能使用網路、Email、Web、多媒體播放器。One-Click就能回覆開機狀態。 總結Instant OS所需要的六大功能: 快速開機時間 不插電時,更長的使用時間 IM Browser 在另一個OS存取檔案 多媒體播放器 但是我們還是要Wndows OS 使用者經驗 Windows功能強大 3rd party的應用程式支援 IE的 安全性 所以我們還是需要使用Windows,因此我們可以使用Virtualization... 可參 考: http://jaysoftwarenote.blogspot.com/2009/07/virtual-virtualization.html

[Linux] Policy 權限

權限的參數 rw: read-write 可讀寫 ro: red-only 唯讀 sync: 資料同步寫到記憶體與硬碟中 async: 資料暫存於記憶體中 no_root_squash: 若NFS分享目錄使用者是root,這目錄具有root權限,且及不安全 root_squash: 若NFS分享目錄使用者是root,使用者會壓縮成為匿名使用者,UID和GID會變成nobody(nfsnobody) anonouid: anon是anonymous,就是匿名者,通常為nobody anongif: 同anonuid,但變成group id 也可以按入man exports來參考

[Linux] NFS Client

Install apt-get install mount Check showmout -e IP 把server 提供的分享路徑掃瞄出來 Start mount mount -t nfs 192.168.1.1:/home/jay/nfs ConnectedFolderName/ or mount.nfs 192.168.1.1:/homt/jay/nfs ConnectedFolderName/

[Linux] NFS Server

Install apt-get install nfs-common apt-get install nfs-kernel-server Setting apt-get install vim (若位安裝vim,vim比vi好用) vim /etc/exports 加入/home/jay/nfs *(rw,sync) (ro: read only, rw: read write) Start nfs server /etc/init.d/nfs-kernel-server start Check $ showmount -e localhost 成功的話可以看到此訊息: Export list for localhost: /mnt/iso *

[Windows] Disable Switch User

最近寫一個應用程式,因為會用到固定的port,所以一台電腦只能有一個程式,而使用者最好不要使用"切換使用者",所以將此功能封住。 修改regedit, HKEY_LOCAL_MACHINE.Software.Microsoft.Windows NT.CurrentVersion.Winlogon. AllowMultipleTSSessions 將其值改成0,即可。

[Windows] Start application when windows start 開機時即呼叫應用程式

開機時即開起應用程式,這個方法還分為開機及開啟,或登入使用者後即開啟 開機即開啟,在做install shell時,將執行檔放入啟動資料夾,則啟動時則會執行此檔。但是此執行者則是使用local user,並不是登入的user。 另一個方法則是註冊regedit,HKEY_CURRECNT_USER.Software.Microsoft.Windows.run裡註冊一個路徑即可,當然當使用者登入時,就會執行此路徑的程式。 若要每一個user登入都會執行的話,要改成,HKEY_LOCAL_MACHINE.Software.Microsoft.Windows.run裡註冊一個路徑即可,當然當使用者登入時,就會執行此路徑的程式。 AllowMultipleTSSessions