- Nov 01 Sun 2009 08:08
我的主打歌
- Oct 30 Fri 2009 19:10
MBR to ubuntu usb install key
簡介
x86的開機流程為BIOS->POST->MBR->Boot sector->OS,先介紹MBR。MBR是硬碟的第一個sector,每個sctor是512 bytes。這 512 bytes由3個部分組成:
1. Boot Partition Loader (Pre-loader or Pre-boot): 共446 bytes,其功能就是將可啟動的作業系統分割區 (boot sector)載入,並將控制權交給其boot sector,多重開機選單就是在這邊做的。
2. partition table: 共64 bytes,4個partition,每個16 bytes,這也限制了一顆硬碟只能有4個partition。每個byte代表的意義見最註1。
3. 結束符號: 共2 bytes,其值為55AA,用來讓BPL驗證是否為MBR。
- Oct 27 Tue 2009 18:53
[轉貼] 抗鋸齒功能---Anti-Aliasing - Removing The 'Jaggies'
來源: http://www.tomshardware.tw/436,review-436-24.html
去年,當3dfx全力推廣這個在Voodoo5上面唯一有用的抗鋸齒功能時,抗鋸齒功能在3D影像界裡是一個很大的議題。 NVIDIA為了不輸場面,也加入了這種功能,但是提供的方法,卻大大的犧牲了3D表現的性能。 雖然3dfx的犧牲T-buffer緩衝記憶體方式的確是要比NVIDIA的超取樣方式要聰明的多,但一個是阿呆,一個是阿瓜,兩者的抗鋸齒功能實在是華而不實。 想要有高畫面更新率的電腦玩家根本不會去開啟抗鋸齒功能,因為隨之而來的3D效能真是慘不忍睹。
如果你不知道什麼是抗鋸齒功能,請回頭看看這篇文章link,在2000年四月份的GeForce2文章裡我有詳細的解說全螢幕抗鋸齒的功能。
上圖你所看到那些礙眼的小階梯狀,其實是因為兩兩不同角度的三角形交接而成的。 現在的紋理材質圖片及性質相近的圖像表面上,你已經很難看到這種礙眼的小階梯狀,因為都已經有先二次或是三次線性過濾過了。
- Oct 26 Mon 2009 14:57
Linux 的3D加速--DRI
- Oct 20 Tue 2009 14:06
chroot後共用display
我的兄弟部落格經過一翻幹譙之後,總算有點東西產出了,follow ramdisk大師/eee share 達人/parent control始祖的腳步後,留下一點足跡。
問題是這樣,有了base system之後,是可以chroot進去,但要執行ap時(例如xeyes),就會得到這樣的錯誤訊息:
root@latrell-ubuntu:/# xeyes
No protocol specified
- Oct 19 Mon 2009 14:27
[轉貼] DVD 相關名詞
來源:http://www.myav.com.tw/bbs/showthread.php?threadid=2389&pagenumber=0
新手寶典
在DVD的領域中,不難發現有些新出現的詞彙,有些或許已經知道這是什麼意思了,但由於技術成熟的發展,相對的會出現新的名詞,所以站長特別挑選了近七十個專有名詞以簡單的話來解釋 ,往後如有更新的字彙,本網將隨時更新
- Oct 15 Thu 2009 11:52
Video BIOS
從Wiki上的解說,bios的功能是提供一些function,讓軟體來控制硬體。而video bios (vbios)也是一樣,提供一些控制顯示卡的function。然而,存取bios是很慢的,相對於ram/cache,所以才有所謂的bios shadow/cacheable,來將bios load到memory或是cache,以提升存取的速度。系統bios較少存取,而vbios較常存取,所以將vbios load到cache理論上效能會有一定的提升(bios shadow通常只對老舊的Dos電腦比較有幫助)。
現在的cpu的L2 cache多半蠻大(超過1M),對於只有幾k的vbios不會有問題。
- Oct 13 Tue 2009 08:39
do ... while(0) for 多語句的macro
玩linux多多少少會看到一個用法 do xxx while(0)。從邏輯上來看,似乎沒什麼特別的,甚至會懷疑是否多此一舉 (while 0不就是直接跳出嗎?)。事實上,這是有一定用途的,主要是避免文法錯誤。在define macro時,只有一個語句,如#define foo(x) bar(x); 這樣多半不會有問題。但較複雜的macro搭配if else等flow control時,就會產生文法上的問題,看下例:
#define foo(x) bar(x); qoo(x);
int main(int argc, char* argv[])
{
if(1)