今天把在公司使用的計算機更換了一臺,原來是Dell的780,換成了Dell的790,機箱的樣子變化比較大,但是里面硬件的配置變換并不大,最明顯的變化就在于CPU,其他像內存、硬盤等等的配置與原來的計算機基本上一致。
作為開發人員,每次更換計算機的過程都會比較痛苦,因為需要把里面存儲的很多資料都要移動到新的計算機中,而且很多軟件都需要重新安裝和配置,上次因為更換系統,差不多一天的時間就耗費進去了。
因為這次看到型號上相差不大,只差了10嗎,哈哈,所以就像是否可以直接通過更換硬盤的方式來做,這樣就不需要折騰了。有人對此表示質疑,因為他有過一次失敗的經歷,直接就藍屏了,但是不試怎么知道,而且就算失敗了,花費的也只有差不多一個小時,而如果成功,節省的將是大半天的時間,所以衡量一下風險和收益,還是值得試一下的。
說干就干,拆開機箱,把兩塊硬盤都拆下來,然后把舊硬盤換到新機器里面,開機,啟動失敗。
想到BIOS里面好像有個硬盤的設置,修改一下,然后啟動,直接進入到安全模式,之后硬盤一頓狂閃,估計是把能夠自動安裝上的驅動程序都驅動上了,然后順利進入了系統。再次重啟,用U盤復制了新機器的驅動程序,重新安裝一下,全部OK了。計算一下時間,不到一個半小時,竟然就成功更換了。
由此想到前幾天看到的一個話題,就是軟件和硬件之間的分離,如果說軟件和硬件之間耦合非常嚴重,一些軟件只能夠在特定的硬件上運行,那么必定會大大限制軟件的使用。相反,如果軟件可以和硬件分離,沒有耦合的關系,那么就可以達到到處運行的目的。
當年的Java正是通過虛擬機的技術實現了軟硬件的解耦,甚至于是軟件與操作系統之間的解耦,也正是因為Java號稱的“一處編譯,到處運行”,才使得它能夠有今日的成功。
然而,如果不能夠做好這個用來解耦的中間層的話,我們就需要付出性能或者可用性方面的代價,甚至于可能對于一些特殊的情況不得不采用針對專門硬件的軟件,才能夠真正達到特定的需求。然而,對于大多數情況來說,達到軟硬件的解耦,益處還是要大于壞處的。
當前的移動開發方面也是一樣,很多native的應用都無法實現軟件與硬件或者說操作系統很好的解耦,我們不得不針對每種硬件都開發專門的應用來適應它,而不是開發一種程序就可以在各個移動終端或者設備上運行。而HMTL5的出現,似乎給大家帶來了一些福音,畢竟所有操作系統上的瀏覽器都采用了相同的協議,這樣只要是符合這個標準的web應用就都可以在瀏覽器中平滑地運行。從而在某種程度上達到開發一次,到處運行的效果。
其實,在軟件和硬件的歷史上,總是有人糾結在耦合、分離(解耦)的問題上,總是希望能夠找到比較好的解決方案來解放開發人員,也正是因為如此,我們的技術才會不斷地進步和提升,呵呵。