Recent Comments

This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

2008年3月10日 星期一

DWORD和dword到底有什麼不同?

DWORD:32bit的 unsigned long

這適合各種作業系統喔

我們開啟「登錄編輯器」或「登錄編輯程式」之後,若我們想增加一個DWORD值,我們可以在右側視窗按下滑鼠右鍵,選"新增"-->"DWORD值",再依自己需要新增DWORD值,這樣新增DWORD值的工作就算是結束了。

可是我們要自己寫一個DWORD值的登錄檔,我們卻必須這樣寫
"新增之DWORD值"=dword:00000001

"新增之DWORD值"=dword:1

但是,我們卻「不可以」這樣寫
"新增之DWORD值"=DWORD:00000001

"新增之DWORD值"=DWORD:1

這是因為Windows Registry只認識dword,卻不認識DWORD的緣故。
所以您若寫一個登錄檔如下
REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoRun"=DWORD:00000000
然後儲存檔案時以reg為副檔名,執行並增加登錄的話。外表看起來,「好像」是已經增加登錄了,可是實際上因為Windows Registry不認識DWORD,所以您的「增加登錄」動作還是「失敗」囉。

請注意:
寫一個dword值的登錄檔時,必須全部用小寫的dword,若其中一個英文字母不是小寫的話,您是無法順利「增加登錄」的。

希望這篇文章能夠讓您進一步認識Windows登錄檔喔。

2008年3月5日 星期三

BCB include 後加不加.h

把.h從header files 拿掉的不是 ANSI C, 而是 ANSI C++。ANSI C++引進 name space 的機制,將所有的全域宣告都放在 std 這個 name space 下;為了要向下相容 C 及非標準 C++ 的程式碼,所以保留了帶有 .h 的 header files。

====@一@=======================
#include
using namespace std;

std::vector test;

====@二@=======================
#include

vector test;

2008年2月25日 星期一

[轉自IThome]IT自救術-處理器想的和你想的不一樣

術-處理器想的和你想的不一樣

文/嚴立群 (記者) 2008-02-14

人類做算術,心智的活動是很自由的,但是處理器不行,處理器一次只能做一步簡單的運算,所以剛接觸電腦的人,大多會覺得難以理解,「這東西的運作方法怎麼這麼怪?」

假設存在一個32位元加法器,要設法讓它幫我們不斷的計算A+B,那只需要讓數字在加法器後面排隊,照順序饋入加法器,加法器就會一個一個把結果算出來。

這是一個典型的「磨坊-穀倉」系統,加法器就是「磨」,不斷饋入的數字是「穀物」,算出的結果就是「穀粉」。這裡要引入一個概念,就是「穀倉」的必要性。


簡單的加法系統

從「加法器」擴展到「處理器」
接著我們來擴展這個系統,想一想處理器會是個怎樣的系統

● 加法器只能做加法,這不夠好,我們得設計個全功能的處理器,能作加法、減法、乘法、除法、各種邏輯運算……,而且都是越快越好。

● 原來的加法器因為只做加法,所以我們放在記憶體裡面的「數字」就只是依序排隊饋入即可──因為反正只有加法動作要做而已。但是既然有了更複雜的處理器,後面排隊的就不能只是數字(不能只有運算子),還得有「運算方式」(運算元),得設計處理器讓它判斷該怎麼處理後面排隊的「穀物」(我是說,數字)。

這裡有個重要的概念,「你不能用人類的想法去操作處理器,你得用處理器的方式」。

人類習慣的做法是,3 + 5 = 8,很單純的計算加法,但處理器沒辦法。

處理器的做法(以80x86為例)是:

MOV AX, 03
ADD AX, 05

第一行的「MOV AX, 03」,就是「把16進位的3搬到AX暫存器裡面」的意思,第二行的「ADD AX, 05」,則是指「把16進位的5和AX目前的值加起來,並把結果存到AX裡面」。

是,有沒有覺得「這真是『微言大義』啊!」,每個處理器都像是筆削春秋的孔子,一個指令就蘊含著多麼深奧的奧義在裡頭啊!
請參考下列的「8086的『3 + 5 = 8』操作過程」。


8086的「3 + 5 = 8」操作過程
1. 執行「命令提示字元」,在命令提示符號下輸入「DEBUG」然後按下Enter

2. 輸入A100(A表示開始組譯程式碼,100表示從100這個位址開始,不要問我為什麼要這樣,反正就是這樣),按下Enter

3. 輸入「MOV AX, 03」後按下Enter

4. 輸入「ADD AX, 05」後按下Enter,然後再按一次Enter表示輸入結束

5. 輸入R並按下Enter,可看一下目前的8086暫存器內容,AX目前內容應該是0(R=Register,DEBUG程式中用來顯示暫存器內容的命令。另,如果你輸入問號「?」後按下Enter,可以看到所有DEBUG的指令)

6. 目前只是輸入完成,請按下「P」(P = proceed,執行的意思)然後按下Enter來執行第一行指令(也就是MOV AX, 03)

7. 請看AX內容,此時果然變成3了

8. 接著再輸入一次P並按下「Enter」,此時執行第二行指令(ADD AX, 05)

9. 再看AX內容,此時果然變成8了(因為3 + 5 = 8啊)

10. 輸入U100 U103(U表示unassemble,反組譯的意思),可以看到兩行程式碼前面有一些數字q,請先看一下,等下會解釋。

處理器的動作
當我們請處理器算「3 + 5 = 8」這麼簡單的算數時,給它的東西得是「MOV AX, 03」和「ADD AX, 05」。

事實上這樣講也不太精確。

處理器實際上是一顆晶片,它只能接受電子訊號。假設低電位是0,高電位是1,所以你真的對它講「MOV AX, 03」,它也不認得,它唯一能認得的,只有電子訊號。

事實上,它認得的,就是剛才的過程中,第10步裡,用U100反組譯出來的機器碼。舉例來說,「MOV AX, 03」的機器碼是「B80300」,「ADD AX, 05」的機器碼是「050500」。你對處理器只能用這樣的形式溝通。事實上,你得在適當的腳位輸入適當的訊號(B80300和050500的二進位形式),然後處理器收到訊號,就會跟據訊號做出對應的動作。

現代處理器系統的運作模式,就是這樣。

所謂的程式,只是充滿了各種人類「表面上看起來難解」的數字,「B80300」、「050500」……在記憶體裡面排隊,這些數字饋入處理器之後,處理器就會跟據這些數字的意義,做適當的動作,把結果算出來,就這樣而已。

至於能夠多快?很簡單,廠商會想辦法。如果MOV AX, 03是「一則運算」,那以前的處理器可能慢些,4.77MHz(一秒鐘做4.77百萬次),現在的處理器可能快些,1GHz應該很快了(一秒鐘做100億次)。而且以效能來看,處理器的效能還因為技術的進步,效能可能高達早期處理器的2000倍?4000倍?總之是快得恐怖,而且還會一路快下去。

Little-Endian和Big-Endian
接著我們來研究一下,機器碼的一個小知識,「Little Endian」和「Big-Endian」。

簡而言之,資料的最小單位假設一般用「byte」,每一個記憶體位址儲存的是1-byte的數字,但處理器一次處理資料的最小單位是「word」,那這一個word裡面,較小的數字放在「較低位址」,較大的數字放在「較高位址」,稱為「Little-Endian」。

比方說,以8086處理器而言,它的1個word是16-bit,當我們寫0300,0300是一個word的數字(16位元的16進位數字)。左邊的數字是較高(代表較大)的數字。但是,一般印刷或是螢幕顯示的慣例,從左到右卻是「越來越大」。所以,0300在螢幕上顯示成0003。

所以,「MOV AX, 03」翻譯成機器碼,卻變成「B8 03 00」,B8是MOV AX的機器碼,03其實是0003,但在Debug下顯示卻變成0300。
至於Big-Endian,則是指「處理器一次處理的單位資料,較高位數的資料卻放在較低的位址」。目前世界上,IBM的PowerPC處理器是Big-Endian的典型代表作,Intel x86系列處理器則是Little-Endian的代表作。

組合語言「妙處難與君說」
為何組合語言程式不能更容易些?

老實說,很難。

處理器裡面有很多暫存器,這是因為人類想了很久,都只想到這個辦法,「把數字搬到暫存器,然後對暫存器做出運算的動作」。所以一個「3 + 5」,以8086而言,就得分兩次(先MOV,再ADD)。一旦你習慣了這種「思考模式」,就可以用組合語言寫各種程式。

因此,古時候的人學寫程式,尤其是用某處理器的組合語言寫程式,就得先研究該處理器的「能耐」。處理器有哪些指令?學熟了,才知道怎樣的指令可以運用在什麼場合。處理器能夠怎麼讀取資料?得把所謂的「定址模式」搞清楚,才能夠存取大量資料(畢竟程式是用來處理資料的)。怎樣寫程式才會快?你得知道這處理器的「脾胃」,不然你寫出來的程式會跑得像龜一樣,不能用。你還得熟習各種工具的使用,幫助你寫程式寫得又快又好,又沒有「蟲」。

用組合語言寫的程式,我印象最深刻的,應該就是Lotus 1-2-3這個試算表了。其實Lotus 1-2-3並不是世界上第一個試算表產品。那難道是Microsoft的Excel?那更加不是。目前公認的「試算表之祖」,是丹.布魯克林所寫的VisiCalc。

不過,總之,VisiCalc因為某些原因後來並沒有壯大,後來的PC市場,主要是Microsoft的Multiplan(不是Excel)和 Lotus在爭奪DOS下的試算表市場。但是Lotus 1-2-3因為完全用組合語言撰寫,所以速度快,因此獲得華爾街諸多公司的青睞。Multiplan則為了「跨平臺」,當時使用C語言撰寫,效能普通,因此被打得潰不成軍,早已經不見蹤影。

這故事給我們幾個啟示:

1. Microsoft也有過失敗之作,所以失敗並不可恥
2. 此一時也彼一時也,以前的人用組合語言才厲害,現在則否
3. 組合語言的跨平臺性不佳,但如果你不考慮跨平臺性,可以用用
4. Microsoft的恐怖並不只在於它失敗了還會再爬起來而已,它更恐怖的地方是它爬起來了之後還會試著把敵人幹掉,絕對不是說說而已

本期結語:流動與靜止的藝術
處理器的運作方式很單純,一條指令,一次只能做一個簡單動作而已。就連3 + 5,都只能分兩次做。

在那一瞬間,真是很單純很單純。

但是,工程師的挑戰,就是要不斷的縮短這「一瞬間」,讓電子的流動化為運算的智慧,把很高速很短暫的一瞬間集合起來,這樣就可創造出複雜的結果,運算的結果。

想像一下,你買了一個「吹風機」,吹風機插上電,一打開開關就開始運作,那是電力的作用,讓風扇轉動,這種力量固然厲害,小小的電子驅動各種裝置,但是吹風機沒法告訴你3 + 5等於多少,無論如何沒辦法。

但是一樣是電子的流動,要怎樣的設計才能讓晶片能夠算出3 + 5?這很有趣,我們現在知道,「半導體」的單通特性使它變成一種開關,可以用來模擬演算。人類是走了很長的路才走到今天,這實在是非常有趣的事情。流動的電子,但每一瞬間卻又得維持靜止的狀態,讓人類可以構思各種運算。

處理器的運作原理大致講到這裡,我們下期可以來開始研究一下x86的組織結構,簡單的組合語言程式。

[轉自IThome]IT自救術-數碼系統的轉換

IT自救術-數碼系統的轉換

文/嚴立群 (記者) 2008-01-24

我們可以做一個10進位的電腦,但那會非常困難,而做一個2進位的電腦簡單多了,且它會做的事情和10進位電腦一樣多。

數字,只是人類發明,用來對應數量的符號。

因此,數字可以用不同形式表示,但是其所代表數量的抽象意義是相同的。例如常見的羅馬數字I、II、III、IV、V……,其實和一般的阿拉伯數字1、2、3、4、5……,或是國字的壹、貳、參、肆、伍……,都是一樣的意思。

只因為人類有10根手指頭
既然如此,且讓我們來想想,為何電腦(處理器)只能用「2進位」來做事情?

在解答這個問題之前,請先讓我們來解釋一下「10進位」是什麼。
所謂的10進位,請讓我們看一個簡單的數字:「285」。其中,2是「百位數」,8是「十位數」,5是「個位數」。

用公式表示就是:285 = 2×102 + 8×101 + 5×100。

但是,如果你真的有思考,那我得告訴你,285這符號,僅是為了簡單的描述數量用的符號,事實上,人類也可以把「每一個單一的數量都用一個單一的符號」來表示。

但那會累死人,現代數學就幾乎無法建立了。

如果你夠無聊(至少像我一樣無聊),你從1數到9(1、2、3……9),當你數到「10」的時候,請注意,其實你也可以用一個怪異的符號來代替10(像是, A),這並無損於10的數量意義。只是,10這個符號前面的「1」,實際上我們每個人都知道那其實是「1×101」。如果你硬要用A代表10,行嗎?行,只要你和其他人講話時,人家都聽得懂你說啥就行。你說「魚缸裡有A隻魚」,「我從地上撿到A塊錢」,可以的,只要別人聽得懂就行,只要他知道「原來此時A =10」就可以了。

「電子」是節能快速的基礎
表示數字,基本上是個簡單的事情。但要這些數字做運算,就牽涉複雜多的因素了。以前講過,用「算盤」做數字運算,其實是「人腦」在做運算,但至少算盤簡化了數字的記錄。後來的科學家打算做更精巧的機器,用齒輪、連桿等機械,製造一個「10進位運算機器」。當時的機械製造精密程度不足,因此這類的製造嘗試失敗了。科學家花了很長的時間才了解幾件事:

● 用「機械」的方式製造運算機器,不是不可能,但要做到極端的精密十分困難。

● 製造「10進位」的計算機器也不是不可能,但會造成這機器的設計極端複雜,同樣也幾乎不可能被製造出來。

科學家最後的結論是,「可以製造一臺最省能源、速度最快的計算機器,並且用2進位的設計即可」。

後來這個結論就是「電子計算機」。用電力驅動計算機器,是最省能源的方式(相對於科學家早早就想用的「純機械」的方法來說,電子計算機是超省能源了)。

選擇2進位只是因為「這是必要的」為何選擇「2進位」?
因為,「計算加減乘除」這些運算,事實上都是人類為了處理數量所發明出來的「動作」,這些動作用哪種數字系統來做,結果都是一樣的。選擇2進位只是因為,用來處理運算的「電子計算機」,用2進位的方式(低電位表示0,高電位表示1)來設計是最簡單的方式罷了。

電子計算機(電腦,或是處理器)實際上只是一個「運算的『模擬器』」,選擇2進位只是因為「製造技術上的需求」而已。如果你夠無聊,打算做一臺「3進位的電子計算機」,行嗎?行的,但這3進位的機器能做的事情不會多於2進位的計算機。而2進位計算機所做的任何運算,都可以同等於10進位運算。因為,設計處理器的人會設法讓它「模擬的就像是人類運算一樣」。

這稱為「超越工程學」。

所以,無論是當初還是現在,你就知道:為何學電腦,學處理器,學計算機概論,學院派的教學總是要你去學「數碼系統的轉換」,其實那只是因為:用2 進位設計電腦是「目前人類已知唯一的選擇」。會不會火星人其實用9進位來設計電腦?天曉得,雖然不無可能,但你得去問火星人才知道答案就是。

由於可用高低電位來代表0與1,人類便可據此設計模擬一般數學運算的邏輯電路。因此現代計算機科學的基礎,可說完全建立在這種「二進位運算」和「二元性電路」的特性上。幾乎所有的計算機科學相關教科書,也都假設讀的人了解這件事。當然,這個結論可能不是鐵律,你也可以辯稱這種方式的電腦無效率(什麼,只能用二進位?)。不過,到目前為止,所有的商業電腦都是用「電路和數字的二元性」來設計。如果閣下只是想了解電腦,那也暫時別去管為什麼了,先記下來就是了。想了解「為什麼二元性這麼重要」,得慢慢學,學熟了才有點概念。

常用數碼系統的介紹
但是,用2進位的方式,數字的紀錄會過於冗長,因此學電腦,學處理器的原理,我們都得先學「數碼系統的轉換」。

在此介紹一個名詞:基底(base)。

人類常用的數字是10進位,我們通常就說這是以10為基底的數字表示方式。比方說「285」,我們就知道這是二百八十五,2×102 + 8×101 + 5×100。有時候,我們會寫成(285)10,下標的10就是說這數字的基底為10,也就是說「這是10進位數字」。

一個數字可以任選基底來表示,不會影響所表現的數量意義。例如(1111)2 = (15)10。首先現在來介紹一下,一般常見的數碼系統有哪些:

● 2進位:0,1,10,11,100,101,110,111,……
● 8進位:0,1,2,3,4,5,6,7,10,11,……
● 10進位:0,1,2,3,4,5,6,7,8,9,10,11,……
● 16進位:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10,11,……

顧名思義,數碼系統是「以2為底」,那就是2進位。逢2進1。而「以16為底」是比較特殊的系統,因為你得用15個不同的符號來代表整個數碼系統,因此「9」後面接的是「A、B、C、D、E、F」,分別代表原先十進位的10、11、12、13、14、15。剛開始,面對數碼系統中夾雜英文,初學者大多不太習慣。不過這也沒什麼,只要看多了就習慣了。

可以有其他不同的進位系統嗎?五進位?十二進位?可以的,選擇任何數當作基底都可以。可是選擇其他的基底並沒有太大用途,相當罕用,我們就不花太多力氣在這方面的說明了。

怪異的符號只是因為他是16進位
不過,我對數碼系統的說明,打算介紹到這裡就好了。大家可以看一下「各種基底數字對照表」,就可以知道,各種基底不同的數字,雖然是表示同樣的數量,但是所謂的符號卻是不同。比方說:你突然看到「10」,但若是16進位的10,其實是等於10進位的16,也就是:(10)16 = (16)10。又或者說,(12)10 = (1100)2 = (14)8 = (C)16。

當你看到Debug裡面的奇怪的符號,其實,只不過,那都是用16進位表示的數字罷了。為何選16進位?因為用2進位表示數字太冗長。那為何一定要用2進位設計處理器?只是因為電子計算機用2進位(電位高低)的方式最容易設計。

本期結語:最後,請熟記「類比」和「數位」的真實意義
講到這裡,我們用倒推的邏輯來想:什麼是「類比」?什麼是「數位」?常聽到有人說「數位計算機」、「數位電腦」,為何不是「類比計算機」?

數位這個詞,其實只是指「用數字來表示數量」罷了。比方說,大多數手錶用指針(所指的角度)來表示時間數量,不是用數字,但是所謂的電子錶就直接顯示數字時間,簡單省事直接。

換句話說,「類比」是所謂的「依類相比」,為了表示數量,你得有個依據,用角度,用其他的物件,用繩結,用各種適合的東西來表示數字,都是類比。而「數位」只不過是用類比方式表示出來的數字本體罷了。

事實上,世界上只有類比的數字表示方式,沒有什麼絕對的數位化數字表示方式。

「這很怪哩!」

但就是如此。

手錶上的數字,實際上也是由晶片的電子訊號記錄並顯示,電子訊號就是類比的訊號(電位高低)。光碟上的訊息,是用溝槽的高低變化記錄的,這「高低變化」就是類比的。硬碟上的訊息,是用磁極的南極北極記錄的,磁極的南極北極就是類比的。

懂了這概念,你接下來的處理器理解之路,又邁進了一大步。

[轉自IThome]IT自救術-x86處理器的運作概念

IT自救術-x86處理器的運作概念

文/嚴立群 (記者) 2008-01-17

處理器並不是一開始就像今天這樣的、一顆晶片的樣子,工程師摸索了很久,才找到最有效率的處理器設計──現代處理器的「可程式」設計。

最早的電腦,使用的是「純電路」的設計。這種純電路設計的概念就是:一種用途,一種設計。如果你的電腦有了新的用途,就得有一個新的設計。

比方說,想要讓電腦計算圓周率的小數點後一千位,好的,工程師就會針對這件工作,用真空管和其他電子裝置做出一個電路,設法計算出圓周率小數點後的一千位數字。雖然早期電腦有著速度不快、不夠穩定、發熱量高、耗電量大以及佔用大量空間的問題,但這樣的工作應該還算是可以勝任。

但是,如果打算換個功能,像是,「讓電腦計算自然對數表」,好的,那工程師得另外設計一個全新的電路,重新組裝零件,以進行全新的運算。這當然不是一件很容易的事情,成本也高得驚人。

另外一個重要概念,則是「電腦乃是一種循序電路」的設計概念。
各位可以把電流想像成看得見的水流,並且以極慢極慢的慢動作流動,我們在電腦的這頭輸入電流,電流依序流經各晶片之後,會在另一頭跑出答案來。

處理器是個只接受電子訊號的可程式循序電路
專屬電路設計的電腦缺乏彈性,實用性不高,因此後來工程師們發現,設計一種萬用電路——也就是上期講的「處理器」,處理器裡面有著「暫存器」,這是可以用來進行各種運算的機構。記憶體裡面則存放等著被饋入暫存器裡面的程式碼和資料,依序執行各種運算。這樣的好處是:只要使用不同的指令和資料組合成「程式」,電腦將可以執行各種複雜的運算,大大提高實用性。

但是,就電路的角度來看,晶片只能接受高低電位不同的電流訊號輸入,並根據自身的設計,再輸出適當的電位訊號(運算結果)而已。

這概念很重要,請讓我重複再講清楚一點:

對處理器而言,它只是被設計成「接受電位變化不同的電流訊號之後,輸出對應的結果」。處理器其實並不懂所謂的「程式」、「數字」什麼的,那都是人類才懂的東西。工程師才是那個要設計處理器、晶片和電路,並設法讓代表程式的電位訊號輸入處理器後,跑出正確結果的人。

舉個例子,如果你對著Intel 8086說「MOV AH, 02」,它不懂的。但我們使用DEBUG這個小工具輸入這行指令時,這一小行字最後會化為電位高低不等的電流訊號,流到處理器裡面的電路,這段訊號會請處理器把02搬移到AH暫存器暫存著(當然,這些動作也是以一種電子訊號的形式被執行),並等待下一段指令的進行。

所以,「處理器是個只接受電子訊號的可程式循序電路」,是本期本欄內容的第一個重點,請牢記之。如果要廣義的引申,你認為「電腦就是個只接受電子訊號的可程式循序電路」也未嘗不可。

程式執行的「過程」簡介
所以,工程師設計處理器之時,一方面必須要想像,程式設計師會希望處理器有什麼樣的運算能力(通常就是「算術與邏輯運算」的能力啊!加、減、乘、除、且、反、或、互斥或……),一方面要想像,如何用循序電路做出這些運算的功能,讓程式設計師使用。

除此之外,整臺電腦還包括了其他附屬電路裝置。像是儲存待執行程式的「記憶體」,其實也只是將資料用電子訊號的方式存在晶片裡面,等待著往處理器「傳送」。有時候,處理器裡面暫存器的演算結果,也會寫回記憶體裡面儲存。這些「概念上」的演算,全都以電子訊號的方式,在組成電腦的電路裡面流動著。

反過來說,程式設計師不可能操作「電子訊號」來寫程式,所以早期的程式設計師大多只能熟記處理器的指令名稱和指令格式,用指令組合而成程式,再用「組譯器(Assembler)」將程式轉譯成「可執行檔」,這可執行檔就可由作業系統載入(處理器)並得到程式執行的結果(通常會顯示於螢幕上)。

DEBUG就是一個功能很少,但是還算夠用的迷你組譯器。

舉例來說,當你執行Windows,在「IE」瀏覽器的圖示上「連續按兩下滑鼠左鍵」時,程式會從硬碟載入到記憶體,然後部份程式碼會依序饋入處理器裡面,程式碼會由各種「處理器」能辨識的指令組成。等程式碼送入處理器中,利用暫存器執行完各種運算指令後,通常會有對應的結果顯示在螢幕上(通常是如此,只是程式有可能跑不出結果,或是當掉)。

不過,同樣的,其實這些運算,形式上都只是高低電位不同的電子訊號在電路上流動而已。

而且,其實程式設計師完全不懂所謂的電子訊號的流動也無妨,他們只需要研究「程式怎麼寫」就可以了。至於電子訊號怎麼流動才會跑出正確的結果,就是硬體工程師的事情了。

有哪些「基礎」得先打好
所以,從專業分工的角度來看,電腦工程師有兩種,一種是硬體工程師,一種是軟體工程師。

不過,各位並不是立志要當工程師而收看本欄內容(如果是,請不要看下去了,我不是工程師還能把你教到變成工程師,那我該改行當魔術師了),我們只是要研究處理器的原理而已。所以請各位看了上面的說明之後,來想想,要對處理器稍微有點了解,要學學哪些東西?

數碼系統的轉換
剛重複講了好幾次,處理器只能處理「電位高低不同的電子訊號」,也就是說,如果我們用0代表低電位,用1代表高電位,那處理器只能接受10110100這樣的電流訊號而已。

但是,一般人看到10110100這樣的符號,通常是看不懂的,所以一般的電腦專科教育,會教你做所謂的「10、16、8、2進位之間的互換」。通常來說, 2進位、8進位和16進位之間的互換相當容易,但偏偏人類是生了十根手指頭,所以為了要理解數位電路的常用符號,得學習不同數碼系統之間的轉換。

常用單位和常用符號
處理器用來處理大量的資料,但如果都只用2進位表示資料,紀錄時會變得相當冗長(你會看到諸如像是 10110100101010010100101010……的資料,看都看不完)。所以我們得用一些「科學記號」來表示資料。比方說,一個資料的最小單位(0或1)是Bit,8個Bit等於1個Byte,1000個Byte通常縮寫成1KB,1000個KB縮寫成1MB,1000個MB縮寫成1GB……,這些習慣寫法牢記之後才能搞清楚各種裝置的數量關係。

2進位算術運算
人類習慣用10進位演算,而電腦又只能接受2進位訊號,那我們能設計出一個方法,來二元的電腦電路模擬出10進位的演算嗎?

當然可以!

簡單的說,用電路模擬自然數的相加,方法倒是不難;但是如果要用電路設計出減法,就稍微困難一點了。乘法?除法?或是浮點數的四則運算?這些都可以用電路設計出來,但光是了解「理論上要怎麼做」就頗要費一番工夫就是。

數位邏輯運算
AND、OR、NOT、XOR……這些邏輯運算,也是電腦程式的運算中常用的。事實上,電腦能做的所有的其他運算,都是用幾個基本的邏輯運算去拼湊出來的。

一些基礎的原理
為何可以用數位邏輯運算模擬加法運算?甚至是模擬整個人類常用的四則運算,整數運算,以及浮點運算?因為這些都可說僅是機械運算,而根據「杜林機」的概念,這些演算都可以用模擬器的方法來完成,工程師會負責想出精巧、有效率的方式做出適當的電路模擬之,而我們要說明的就是這「工程」的部份。又或者,光是一個「數位」和「類比」的概念,很多人都還是分不清楚,這都是值得研究的內容。

電子電路設計
要怎樣才能實作出進行演算工作的電子電路?那就得學很多東西啦!從固態物理、電子學電路學、半導體與積體電路設計……,牽涉的相關專業學問可是不少。不過這門學問可說是臺灣的「顯學」(至少,在OEM或是Foundry的部份是吧!),好的電子電路設計(像是──iPod啊!)可以賺很多錢!

組譯器/編譯器使用
利用組譯器或編譯器工具,撰寫程式碼,並利用程式執行的反應,設法了解處理器的運作原理。

至少學習兩種語言
要寫程式,使用組譯器或是編譯器,你至少得學兩種語言,一種是組合語言,一種是高階語言(我會建議學C或C++語言)。不過,這裡不是要訓練你成為專業程式設計師,只是利用這些語言的執行結果去觀察處理器的行為模式。

本期結語:練拳不練功,到老一場空
我曾看過成龍的一部老電影,根據我殘缺不全的記憶,電影名喚《一招半式闖江湖》。電影裡面的老師父對成龍說,「你沒聽過嗎?『練拳不練功,到老一場空』。」呵呵,這話拿來對玩電腦的人來說,也是挺合適的。

要知道,今日這麼複雜的一臺電腦,像是家電一樣的電子產品,並非瞬間演化的結果,而是經過多年的進化而成。如今想要研究其原理,很多基本的「理論」往往不容易說的清楚──除非你有耐性慢慢學。

不過,老實說,如果真有耐心把上面講的這些單位、符號、演算、原理記熟了,面對於其他更複雜的產品問題,就會容易理解得多。因為,你已經知道這些產品的底層,也就是由這些元件和原理所組成。如果你願意「有耐性慢慢學」,這些原理有朝一日就可以變成你的「武器」。

不過,上期不是說要介紹DEBUG的用法嗎?很抱歉,我想,得等到適當的時間再介紹了!幸好,我們有得是時間呢!

[轉自iThone]IT自救術-保護電腦你「定期」該做的所有事

文/嚴立群 (記者) 2007-12-06

很多人平常不保養電腦,等到電腦壞了再來怨天尤人,其實,這是錯誤的態度,正確的作法是:你該定期保養電腦。

很久以前看過一個知名工具程式的廣告,內容主要是張照片,一個老人的臉,照片上的他牙齒稀稀落落的,都快掉光了。

請問「牙齒快掉光的人」和「工具程式」有啥關聯性?

原來,工具程式強調的是,「電腦沒使用工具程式定期保養,就好像人沒有每天刷牙一樣,是很不衛生的行為,遲早要『壞光光』的啊!」

問題是,如果你是一個電腦新手,如果要讓你的電腦安全、穩定,你知道定期保養電腦該做哪些事?

我建議的項目包括了:

●「Windows Update」或是「Microsoft Update」
●更新病毒碼
●掃描電腦病毒
●磁碟重組
●掃描硬碟健康

定期更新作業系統
Windows(或是其他作業系統)安裝好之後,會有許多的漏洞,而所謂的「駭客」會利用這些漏洞,輕則癱瘓你的電腦,重則損毀你的資料。幸好,作業系統的開發廠商並未坐視此事,他們不斷地修補這些破洞,並定期發布在網站上。

以Windows來講,在開始功能表裡面的「Windows Update」就可以讓使用者連到Microsoft官方網站,進行修補工作。這種修補方式,或可稱為「主動式修補」。使用者得主動開啟網頁,才能進行檢查和修補的工作。

另外一種修補方式,則是Microsoft主動「push」修補程式到你的電腦?面,此時電腦右下角「系統匣」裡面會出現一個黃色盾牌,這時候使用者必須在盾牌上,按下滑鼠鍵,把自動下載回來的修補程式安裝好。

我個人的習慣是,凡是有任何的修補程式,就把它裝上(即使我可能用不到)。不過,這個Windows Update還包括硬體的驅動程式更新,但是此功能有時會造成問題(安裝成舊版的驅動程式),所以關於硬體的部份,我就不太敢用這種方式來修正,而寧可選擇自己去原廠找新版驅動程式。

此外,Microsoft在你連上網路更新時,會執行「正版真品驗證(Windows Genuine Advantage,WGA)」,若你的Windows被驗證不是正版(但是不見得一定是盜版,有可能是安裝過程的錯誤置入序號),將會不能執行「主動式」的修補,但為了避免病毒橫行,Windows還是會選擇性的(依據設定)將某些重要的更新,用push的方式硬推到你電腦裡,以避免你電腦整個被癱瘓。

所以,看到系統匣的黃色盾牌,請不要忽視,裝一下吧!

如果我不是正版Windows使用者怎辦?
如果你不是正版的Windows使用者,並因此不能修補Windows的漏洞,怎麼辦?

當然是趕快去購買正版軟體,還能怎麼辦?

不過,有人也對於上網更新Windows的行為感到擔心,深怕Microsoft會竊取電腦裡面的資料。關於這點,我不能代替微軟公司來聲明「絕無此事」,但我個人意見只能說:我不擔心這點。畢竟,竊取他人資料是違法行為,我想Microsoft應該不會做這種事情。但是不更新Windows,會造成系統安全的問題。不一定是「事實」的事情,與其擔心,還不如解決「真的會造成問題」的問題。

有時候,安裝了新版的Windows修補,會導致一些軟體的執行「可能」會遇到問題。或者說,「使用者沒有確認我要安裝這些修補,別人不能代替我決定事情啊?」因此,使用者可以用Windows裡面的選項,來決定你要不要「接收來自Windows Update的更新」。

由於Microsoft不只一套產品需要修補,所以後來網站上還有所謂的「Microsoft Update」可取代Windows Update,像是Office也可以一併更新。關於這點,我的態度也還是「只要有更新,最好都安裝上去,免得電腦出事情」。

定期更新病毒碼無論是病毒的「特徵」還是「行為模式」,防毒軟體都需要不斷地更新,才能防堵最新的病毒。此外,防毒軟體的核心也偶爾需要修正,這些動作統稱「病毒碼的更新」。

上期其實已經講過,病毒碼的更新十分重要,在此就不再多言。但有一點要再強調:很多使用者用到防毒軟體都過期了,不知道要去「續購」病毒碼更新的時間延展,導致病毒碼很久都沒更新了,這當然是不好的事情,嚴重點就會讓你電腦「掛點」。

至於病毒碼的「定期」更新這件事情,倒是很容易,幾乎每一套防毒軟體都會自動更新病毒碼,只要你一上網(Internet),病毒碼就自動更新了。防毒軟體也可以讓使用者調整定期更新的頻率,一般而言都會每日更新。

定期掃描電腦病毒
按理來說,電腦裝上防毒軟體之後,所有存取的檔案都會在防毒軟體的監控之下,你就會一切安全了。

是這樣的嗎?

不,不完全是。

很多時刻,還有些漏網之魚,會鑽到你系統裡面,所以總有必要進行所謂的「徹底掃毒」,讓防毒軟體把電腦上所有儲存媒體(主要是硬碟)的每個檔案都檢查一遍。

多久一次才合理?

保險的作法,是一周一次。如果你嫌麻煩,我建議你一個月至少做一次。

我這裡要說明一下:完整掃描很花時間,通常都要花個「若干小時」才能做完,所以我通常的建議是,你把電腦開著,然後讓防毒軟體進行「完整掃描」以後,就可以去睡覺了(或是去進行你可以好幾個小時不使用電腦要做的事情)。尤其現在大家的硬碟容量都很大,掃個四到八小時也是家常便飯。

而且,就算是「病毒掃描」,也還有很多種類,使用者得視情況選擇。

有些軟體可以做「地毯式掃描」,即使是那些「不太可能有毒」的檔案也要照掃(像是,影片檔案大多不會有病毒,但是確實有些RMVB檔案傳說可以有漏洞加以利用),這個掃描方式會掃最久;有的則是「智慧掃描」,只掃描最必要的幾種檔案類型,這方式的掃描時間則是「適中」,也應該是大部分防毒軟體的預設掃描設定;還有一種「只掃描核心檔案」的方式,最省時間。一般而言,看你打算花多少時間做完整掃描而選擇掃描種類,越完整的掃描,安全性越高,但花的時間也越久。

定期磁碟重組
一般人常會抱怨電腦越跑越慢,而電腦變慢的其中一個原因乃是磁碟的「磁區碎裂」。但所謂的「磁區碎裂」,並不是指磁碟會像玻璃杯一樣,掉到地上就破碎了。磁區碎裂是一種狀態,不是真的有東西碎了。

當你儲存檔案,檔案的內容會占用硬碟的磁區。通常,Windows會盡量用連續的磁區儲存一個檔案的內容。但是,當你刪除一些檔案,並且再度儲存其他的檔案之後,問題就來了。

檔案的大小很少有「每個都一樣」的情況,因此當你刪檔、存檔的動作多了之後,Windows不再有辦法用連續磁區去儲存檔案的內容,檔案就被迫存在一些不連續的磁區,這就被稱作「磁區碎裂」或是「硬碟碎裂」。

想像一下,當你的一個很大的檔案被存在好幾個不連續的磁區,當硬碟在讀取檔案時,磁頭就得「來回奔波」,導致讀取檔案的速度就變慢了。因此,就有所謂的「磁碟重組軟體」可幫你把檔案盡量的恢復成連續的狀態,這會加快電腦的效能。

Windows作業系統本身就有內建磁碟重組軟體,不過,系統送你的功能總是少一點。目前最知名的軟體是Raxco公司的PerfectDisk,目前最新版本是8.0,另一套則是O&O Defrag 10,有興趣的讀者可以到網站找找試用版,直接用看看。

定期掃描硬碟的「健康程度」
硬碟的「健康程度」其實有兩種,只是一般人並不清楚。

「真的假的,『健康程度』還有兩種?」

是的,而且,嚴格的分法還不只兩種,我會認為有三種,但先講比較淺的兩種就好。

硬碟是用來儲存檔案的,所以「檔案結構的健康程度」算一種,而硬碟的「磁區表面健康程度」也算一種。各位切記,這兩種健康程度「都重要」,即使你不是初學者,你可能也該知道一下。

由於「檔案結構的健康程度」這種東西是和作業系統相關的,所以要檢查檔案系統的健康程度,目前我只依靠Windows內建的工具。以前的 Windows 95/98/Me時代,玩家還可以使用Norton系列的磁碟檢查工具(聽過「NDD」嗎?Norton Disk Doctor),那是因為FAT16/FAT32檔案系統比較「簡單」,所以還有工具軟體可以用,但NTFS「小複雜」,不再有比較知名的檢測軟體了(就算有,我也沒用過,不好意思讓各位失望了)。

我的習慣,會到檔案總管裡,在磁碟圖示上按滑鼠右鍵選內容,然後選「工具」標籤底下的「檢查錯誤」(這是Vista的圖片,Windows XP不知是否名稱不同)。不過,這個檢查頗花時間,一樣,請選你不用電腦的一段長時間來作磁碟檢測,會比較好。

注意到這裡有兩個項目,一個是「自動修正檔案系統的錯誤」,這就是指我說的「檔案結構的健康程度」;另一個是「掃描和嘗試恢復損毀的磁區」,這個就是要檢測我說的「磁區表面健康程度」。

一般而言,電腦出問題(不穩定,怪異的連續當機,開不了機……),我都會先做磁碟健康的檢修,而且是兩種檢測都做。不過,你在C:磁碟做這兩種檢測的其中一種,Windows應該都會跳出一個對話盒,跟你說它「無法在磁碟使用中檢查磁碟」。

這怎麼辦?

其實這是合理的狀況,尤其是C:磁碟通常作為「開機磁碟」,有很多檔案是在使用中,無法檢測它是否正常,所以你只要「排定磁碟檢查」,重開機後,系統會在所謂的「命令列模式」(或稱為console模式)做檢查。雖然沒有美美的畫面,但這可是救命的事情,非這麼做不可。

本期結語:平常做好保養電腦才能久活
那如果,因為平常你沒有定期檢查,導致「我已經開不了機了」,怎麼辦?

如果是我,我通常會先加以嘲諷之(你看你看,平常不刷牙吧!牙齒掉光了才來後悔……),這通常於事無補。不過,還是有一些比較複雜的方法,可以用來拯救你的電腦(主要就是你的硬碟)。

不過,方法很多、很雜,也不是很好懂。有時只是需要特殊的工具(得花錢買),有時你得懂DOS指令(在命令列模式工作),有時你甚至得找一些「灰色的工具」才行。

灰色的工具我不會教你用,但下期我會教你用一些「正常顏色,但是小複雜」的工具。

18種傷害電腦的方式

18種傷害電腦的方式

1、大力敲擊Enter鍵
  這個恐怕是人所共有的通病了,因為Enter鍵通常是我們完成一件事情時,最後要敲擊的一個鍵,大概是出於一種勝利的興奮感,每個人在輸入這個Enter鍵時總是那大力而爽快地敲擊。本人的多個鍵盤就是這樣報廢的,最先不看見字的是AWSD(呵呵,心知肚明),最先不能使用的按鍵卻是Enter。
  解決辦法:解決方法有兩個,第一是控制好你的情緒,第二是準備好你的錢包。我選的第二個,有時候好心情是錢買不來的,你呢?

2、在鍵盤上面吃零食,喝飲料
  這個習慣恐怕是很普遍了,我看到很多人都是這樣的,特別是入迷者更是把電腦台當成飯桌來使用。我想你要是拆一回你的鍵盤,也許同樣的行為就會減少的,你可以看到你的鍵盤就像水積岩一樣,因你平時的習慣,保留了很多的“化石”,飯粒、餅乾渣、頭髮等等比比皆是,難怪有人說:公用機房裏的鍵盤比公廁還髒。同時這樣的碎片還可能進入你的鍵盤裏面,堵塞你鍵盤上的電路,從而造成輸入困難。飲料的危害就更加厲害了,一次就足以毀滅你的鍵盤。就是你的鍵盤僥幸沒有被毀滅,恐怕打起字來,也是粘粘糊糊很不好過。
  解決方法:避免在鍵盤上吃東西,要不然像我一樣買一個防水的PHILIPS鍵盤,然後每過一段時間就給他打掃衛生,擦澡(雖然這樣還是很髒的);你要是腰包更加飽的話,可以考慮半年換一個鍵盤(我從來不建議用差的鍵盤,那可是關乎健康的問題)試試,應該情況會好一些。還有記得給你房間買一個飯桌了。  

3、光碟總是放在光碟機裏(還有看VCD時,暫停後出玩或吃飯)
  很多人總是喜歡把光碟放在光碟機裏,特別是CD碟,其實這種習慣是很不好的。光碟放在光碟機裏,光碟機會每過一段時間,就會進行檢測,特別是刻錄機,總是在不斷的檢測光碟機,而高倍速光碟機在工作時,電機及控制部件都會生很高的熱量,此光碟機廠商們一直在極力想辦法解決。
  雖然現在已有幾種方法能將光碟機溫度控制在合理的範圍內,但如果光碟機長時間處於工作狀態,那麼,即使再先進的技術也仍無法有效控制高溫的發生。熱量不僅會影響部件的穩定性,同時也會加速機械部件的磨損和激光頭的老化。所以令光碟機長時間工作,實在是不智之舉,除非你想把你的光碟和光碟機煮熟。
  解決方法:盡量把光碟上的內容轉到硬碟上來使用,比如把CD轉化為MP3的,如果你是一個完美主義者,那就用虛擬光碟機的形式管理你的常用CD碟吧;遊戲則盡量使用硬碟版的;大多數光碟版的遊戲,都可以在網上找到把光碟版轉化硬碟版的軟體;不然就同樣采用虛擬光碟機的形式。網上有很多虛擬光碟機可以下載,怕麻煩的話可以用國的《東方光碟機魔術師3》或《VirtualDrive7.0》, 界面很簡單,而且沒有了E文的問題,很好上手。

4、關了機又馬上重新啟動
  經常有人一關機就想起來光碟沒有拿出來,或者還有某個事情沒有完成等等,筆者就是其中一個,可以說有同樣毛病的人還是很多的。很多人反應迅速,在關閉電源的剛剛完成就能想起來,然後就伸出手來開機;更有DIY好手,總是動作靈敏,關機,十秒鍾處理完故障,重新開機;殊不知這樣對電腦危害有多大。
  首先,短時間頻繁脈沖的電壓沖擊,可能會損害電腦上的集成電路;其次,受到傷害最大的是硬碟,現在的硬碟都是高速硬碟,從切斷電源到盤片完全停止轉動,需要比較長的時間。如果盤片沒有停轉,就重新開機,就相當於讓處在減速狀態的硬碟重新加速。長此下去,這樣的沖擊一定會使得你的硬碟一命歸西的。
  解決辦法:關機後有事情忘了做,也就放下他;一定要完成的,請等待一分鍾以上再重新開機,要不就在機子沒有斷開電源的時候按下機箱上的熱動鍵。要是你以上的方法都做不到,為了你愛機的健康,我建議你在電腦桌上係一個繩子,以便用來綁住你的手一分鍾以上。

5、開機箱蓋運行
  開機箱蓋運行一看就知道是DIY們常幹的事情。的確開了機箱蓋,是能夠使得CPU涼快一些,但是這樣的代價是以犧牲其它配件的利益來實現的。因為開了機箱蓋,機箱裏將失去前後對流,空氣流將不再經過內存等配件,最受苦的是機箱前面的光碟機和硬碟們,失去了對流,將會使得他們位於下部的電路板發生的熱量變成向上升,不單單散不掉,還用來加熱自己,特別是刻錄機,溫度會比平時高很多。
  不信你比較一下開不開機箱蓋的光碟機溫度。開機箱蓋還會帶來電磁輻射,噪音等危害,而且會使得機箱中的配件更加容易髒,帶來靜電的危害,並阻礙風扇的轉動。同時,讓其他隱患有機可乘,比如你在電腦前邊喝茶邊觀看一部片子,一個爆笑的鏡頭使你將口中的清茶悉數噴進了敞開的機箱內……
  解決辦法:很簡單,給你機箱蓋鎖上鎖頭,然後把鑰匙寄給我。要是怕超頻不穩定,就不要超頻了,現在的CPU夠快了,在市場上的主流CPU就夠用了。要是你用的是老掉牙的CPU,我建議你還是換一個的好,換一個也就是幾百元左右(賽揚D或P4、AMD也都不錯)何必受提心吊膽和電磁輻射、噪音的苦?還是那句話:快樂是用錢買不到的。

6、用手摸屏幕
  其實無論是CRT或者是LCD都是不能用手摸的。電腦在使用過程中會在元器件表面積聚大量的靜電電荷。最典型的就是顯示器在使用後用手去觸摸顯示屏幕,會發生劇烈的靜電放電現象,靜電放電可能會損害顯示器,特別是脆弱的LCD。
  另外,CRT的表面有防強光、防靜電的AGAS(Anti-GlareAnti-Static)塗層,防反射、防靜電的ARAS(Anti- ReflectionAnti-Static)塗層,用手觸摸,還會在上面留下手印,不信你從側面看顯示器,就能看到一個個手印在你的屏幕上,難道你想幫公安局叔叔們的忙,提前提取出傷害顯示器“凶手”的指紋嗎?同時,用手摸顯示器,還會因為手上的油脂破壞顯示器表面的塗層。
  LCD顯示器比 CRT顯示器脆弱很多,用手對著LCD顯示屏指指點點或用力地戳顯示屏都是不可取的,雖然對於CRT顯示器這不算什麼大問題,但LCD顯示器則不同,這可能對保護層造成劃傷、損害顯示器的液晶分子,使得顯示效果大打折扣,因此這個壞習慣必須改正,畢竟你的LCD顯示器並不是觸摸屏。
  解決方法:在你的顯示器上貼一個禁止手模的標志,更不能用指甲在顯示器上劃道道;想在你的屏幕上“指點江山”,就去買一個激光指定筆吧。強烈的沖擊和振動更應該避免,LCD顯示器中的屏幕和敏感的電器元件如果受到強烈沖擊會導致損壞;顯示器清洗應當在專門的音像店裏買到相應的清洗劑,然後用眼鏡布等柔軟的布輕輕擦洗。

7、一直使用同一張牆紙或具有靜止畫面的螢保   無論是CRT或者是LCD的顯示器,長時間顯示同樣的畫面,都會使得相應區域的老化速度加快,長此下去,肯定會出現顯示失真的現象。要是你有機會看看機房裏的電腦,你就會發現,很多上面已經有了一個明顯的畫面輪廓。何況人生是多姿多彩的,何必老是用同一副嘴臉呢?
  解決措施:每過一定的時間就更換一個主題,最好不要超過半年。平時比較長時間不用時,可以把顯示器關掉。要是你沒有這樣的習慣,可以在顯示屬性的屏幕保護那裏設定好合適的時間,讓WINDOWS幫你完成。

8、把光碟或者其他東西放在顯示器上。
  顯示器在正常運轉的時候會變熱。為了防止過熱,顯示器會吸入冷空氣,使它通過內部電路,然後將它從頂端排出。不信你現在摸摸你放在上面的光碟,是不是熱熱的象烙餅?若你總是把光碟或紙張放在顯示器上頭;更加誇張的是讓你家貓咪冬天時在上頭蜷著睡覺,當顯示器是溫床,這會讓熱氣在顯示器內部累積的。那色彩失真、影像問題、甚至壞掉都會找上你的顯示器。
  解決辦法:如果你想讓顯示器保有最好的畫質,以及延長它的壽命,趕快叫醒你的貓咪,讓它到別處去睡吧。並把你的“烙餅”收到光碟袋裏去。

9、拿電腦主機來墊腳
  如果想要殺死你的台式電腦,那麼開車帶它去越野兜風,或是背著它去爬山、蹦迪,那樣會更快一些;你的這種方法震動太小了,要比較長的時間才能出成績。如果你願意堅持下去,估計取得的第一個成績就是發生一出個圓滿歸西的是硬碟吧,死因是硬碟壞道。
  解決方法:把你把腳架在電腦上的照片作為你的桌面,讓你看看那一個姿勢有多難看,這樣你就不會把腳再次伸向主機;要不然就把你的電腦發票貼在顯示器上,看著發票上的金額,你應該不會無動於衷吧。如果上面的方法都不能制止你的行的話,我想你就該考慮去買一個帶有腳扣的椅子了。

10、電腦與空調、電視機等家用電器使用相同的電源插座
  這是因為帶有電機的家電運行時會生尖峰、浪湧等常見的電力汙染現象,會有可能弄壞電腦的電力系統,使你的系統無法運作甚至損壞。同時他們在動時,也會和電腦爭奪電源,電量的小幅減少的後果是可能會突然令你的系統重置或關機。
  解決方法:為了你的電腦不挨餓或者是吃的“食物(電力)”不幹淨,首先應使用品質好的電腦開關穩壓電源,如長城等品牌。其次,對於一些電力環境很不穩定的用戶,建議購買UPS或是穩壓電源之類的設備,以保證為電腦提供潔淨的電力供應。還有就是優化布線,盡量減少各種電器間的影響。  

11、給你的電腦抽二手煙
  就像香煙、雪茄或微小煙粒會傷害你的肺一樣,煙也可能會跑進你的軟碟並危及資料。煙霧也可能會覆蓋CD-ROM、DVD驅動器的讀取頭,造成讀取錯誤。煙頭煙灰更有可能使得你的打印機和掃描儀質量大大的下降。
  解決方法:要保護你的系統和你自己的最佳方式,就是不要抽煙。如果你就是戒不掉抽煙這個習慣的話,到外面去抽,或在電腦四周打開空氣清新器吧!當然更不要把你的鍵盤當煙灰缸用。  
  看完了硬件方面的問題,我們來看看在軟體方面的問題吧。

12、不停的更換驅動程序
  很多的DIY很喜歡不斷的更新驅動程序,雖然更新驅動程序有可能提升性能和兼容性,但是不適當的新版本可能會引起硬件功能的異常,在舊版本運轉正常的時候建議不要隨意升級驅動。
  先仔細閱讀驅動的README文件,對你有好處。就是像顯卡這樣更新換代迅速的硬件最好不要總是追新,不要隨便使用最新版的驅動程序,應該使用適合自己硬件情況的驅動程序,因每一代的驅動程序都是針對當時市面上最流行的顯卡芯片設計,老芯片就不要隨便使用新的驅動,更不要隨便使用測試版的驅動,測試版的驅動就先留給網站的編輯們去測試他們的系統。
  解決方法:到專業的網站上去看看新驅動的介紹,我覺得最保險的辦法是:顯卡最多用芯片推出半年後的驅動;主板最多用芯片組推出6-9個月的驅動;聲卡等最多用推出一年後的驅動;再往後的驅動就不要用了(除非你試過前面的驅動統統有問題)。

13、裝很多測試版的或者共享版的軟體
  追新一族總是喜歡在自己的機子用上最新的軟體,和驅動程序一樣,更新程序有可能提升性能、增加功能和兼容性,但是不適當的新版本可能會引起系統的異常。特別是測試版的程序,更是害處更多,既然沒有推出正式版,就說明該軟體還存在著很多不確定的BUG,這些小蟲就像定時炸彈一樣,隨時可能在你的系統中爆炸,損壞你的系統。
  共享版的軟體有一些過一段時間(或次數)就會失效,要是你的系統通過共享版軟體更改了某方面的功能,而共享版軟體又因失效而無法運行,那麼你的系統就不能回到你想要的狀態了;還有就是使用了共享版的軟體來建立的資料或者文檔,因共享版軟體失效,而無法打開。所以安裝共享版時應當注意共享版提供使用的次數或者時間,以免無法還原系統和丟失資料。
  解決辦法:如果不是一定要使用新版本才能解決問題的話,盡量使用最新的正式版的軟體,測試的工作就留給專家們去完成吧。盡可能注冊你的共享版軟體,不然就要注意共享版軟體的限制,以免丟失重要的文件或者損害系統。

14、在系統運行中進行非正常重
  在系統運行時,進行非正常重開(包括按機箱上的重置鍵、電源鍵和Ctrl Alt Del),可能使得系統丟失系統文件、存盤錯誤以及丟失設置等。本來windows是提供了磁盤掃描工具,可以糾正部分出錯的文件,但是因為掃描需要一段比較長的時間,很多人都會中斷他的工作,經常出現這樣的情況,還有可能使得硬碟上的數據的出錯幾率和次數大大增加,從而使得整個系統崩潰。
  解決方法:盡量使用比較穩定的系統,建議CPU頻率在750MHz和內存在256M以上的用戶使用WINXP的系統,其他的可以考慮WIN2000,還有就是最好把硬碟轉化NTFS的格式,它比FAT32的格式要更加安全,不容易出錯。還有就是FAT32和FAT16的用戶,最好讓磁盤掃描工具執行完它的工作。當然最好的辦法是找出死機的原因,杜絕此類現象的出現。

15、不掃描和整理硬碟
  經常看到很多人的硬碟裏充滿了錯誤和碎片,總是覺得很不好受,其實那些東西不但會使得你的系統出錯的幾率加大,還有可能讓你的系統變的很慢,甚至無法運行。其實很好理解這樣的壞處,就像你的房間東西到處扔,還有的纏在一起、甚至損壞了,當然找起東西來效率很低,碰到纏住的,還要先解開;甚至找到了也用不了,因為他們是壞的。
  解決方法:平時記得給你硬碟打掃衛生,每過一段時間就應該清理一下硬碟,並且進行整理。如果是添加刪除操作比較多的用戶,應當一個月整理一次,普通的用戶可以三個月整理一次。WINDOWS自帶的磁盤整理工具效率很低,可以使用VoptXP、諾頓等工具來提高速度。  
16、虛擬內存不指定範圍
  虛擬內存顧名思義就是在硬碟上用硬碟的空間模擬內存,以保證大過系統內存的內存請求,保證程序的運行。一般WINDOWS默認是由WINDOWS自己管理虛擬內存的大小,這樣的話有兩個壞處:首先每次請求的數值並不一致,所以系統會隨意在硬碟分區上劃出一個地方,存放臨時文件,過後又沒有及時刪除,使得硬碟上的碎片增多,從而影響系統的效率。其次,一般WINDOWS都是指定自己所在的硬碟做為虛擬內存的存放的默認盤,但是由於很多的用戶總是把程序裝在同一個分區下,使得該分區的空間越來越小,也就是說虛擬內存能使用的空間在減少,少於一定的程度時,將不能執行大型的軟體,甚至無法進入系統。
  解決方法:應當手動指定虛擬內存的位置和大小,原則上指定系統虛擬內存的大小512M以上好(最小和最大空間一樣,以保證WINDOWS不會改變位置),位置看看那個分區有多余的空間就行了。

17、不用卸載,而是直接刪除文件夾
  很多的軟體安裝時會在注冊表和SYSTEM文件夾下面添加注冊信息和文件,如果不通過軟體本身的卸載程序來卸載的話,注冊表和SYSTEM文件夾裏面的信息和文件將永遠殘留在裏面。他們的存在將會使得你的系統變得很龐大,效率越來越低下,超過你的忍耐限度,你就不得不重裝你的系統了。
  解決辦法:刪除程序時,應當到控制面板中的刪除添加程序去執行(你可以做一個快捷方式在桌面上就方便多了),或者在開始菜單欄中找到程序的目錄裏的刪除快捷方式,通過它來刪除程序。還有就是盡量使用綠色免安裝的軟體。

18、加載或者安裝太多同樣功能的軟體
  同樣功能的軟體勢必會行使相同功能的職責,從而引起爭端。我認相同功能的軟體應當有所取捨,選擇最適合自己使用習慣的軟體。特別防病毒軟體應當選擇一個就可以了,而不是同時加載很多個在系統後台,加載太多會生消耗太多的系統資源、軟體沖突的弊端,在發現病毒時,還有可能出現因“爭殺”病毒而引起系統崩潰的麻煩;就單單對著多個彈出的窗口,分別進行處理,也是一個麻煩。
  解決方法:盡可能“從一而終”,不要太花心,選擇一個適合自己使用習慣的軟體,其他的可以卸載掉;正確對待防病毒軟體,應當選擇一個病毒庫更新速度快的防病毒軟體,並及時將自己的病毒庫更新到最新的病毒庫,而不是安裝多個防病毒軟體。  
  人無完人,知錯就改就是好同志。我們要改正平時的一些不良的用機習慣,畢竟電腦是我們的好夥伴,不要因為某些錯誤習慣而一再傷害我們的朋友。