cht電腦資訊Linux
adm Find login register

是否該用 64-bit / 64位元的作業系統 (Windows or Linux)

eliu
1 是否該用 64-bit / 64位元的作業系統 (Windows or Linux)
Promote 0 Bookmark 12011-01-04quote  

目前大部份的 cpu 都有支援 64-bit 模式,最先由 AMD 發展的,後來授權給 intel,一般稱為 x64 or AMD64。

對使用者來說 64-bit  OS + 64 bit 的程式有以下的明顯好處

  • 與32bit 模式相比,x64 模式可以使用更多的 CPU 暫存器(register),所以速度也更快一些
  • 程式有用到 64位元的運算會更快
  • 程式可用的虛擬記憶體可以超過 2G or 4G bytes (實際的限制看OS而定,一般程式很少會需要這麼多)
  • 可以安裝更多的 DRAM 記憶體 ( > 4GB)

缺點

  • 64 位元模式下,pointer 會由 4-bytes 變成 8-bytes,所以記憶體的需求會增加。像可執行檔就可以看到明顯大了不少。
  • 一般還是會常常用到 32-bit 的程式,所以還是需要 32-bit 的 .dll(windows) .so (Linux),32-bit & 64-bit 同時載入到記憶體,又浪費了一些記憶體。
    • 64-bit Windows 中 64-bit 的 DLL 是放在 \Windows\system32,  32-bit 的 DLL 是放在 \Windows\SysWOW64(Windows 32-bit On Windows 64-bit),看起來很怪。
    • 64-bit Linux 中普遍的做法是分別用 64-bit:/lib64,/usr/lib64 32-bit:/lib,/usr/lib
  • 驅動程式也必須是 64-bit的,值得一提的是 Windows 64-bit (Vista, Windows 7) 的驅動程式 .sys ,必須經過簽名認證才可以執行。否則必須用 Driver Signature Enforcement Overrider 一類的程式開啟測試模式來使用。

結論就是,如果RAM不夠多,也不求快,沒有需要特殊的程式,還是乖乖用 32-bit 的 OS 作業系統吧。

edited: 5
swwei
2
Promote 0 Bookmark 02010-12-26quote  

不過在公元 2038 年 元月 19 日之後,你還是必須改用64位元電腦

所以,雖然不趕,但早日做準備換到64位元系統,還是有好沒壞,

以免到時手忙腳亂。

eliu
3
Promote 0 Bookmark 02010-12-26quote  

UNIX 上只是把 time_t 由 32-bit 轉換成 64-bit,其實是不需要全部轉成 64-bit,這與 cpu 的 32/64 bit 無關。

time_t 換成64-bit之後,儲存的資料也必須轉換。

edited: 1
swwei
4
Promote 0 Bookmark 02010-12-27quote  

eliu

UNIX 上只是把 time_t 由 32-bit 轉換成 64-bit,其實是不需要全部轉成 64-bit,這與 cpu 的 32/64 bit 無關。

time_t 換成64-bit之後,儲存的資料也必須轉換。

個人認為電腦系統CUP從32位元演進到64位元,是不可擋的趨勢,

理由很簡單,CPU製造公司要推陳出新,要逼迫使用者換新系統,

其他週邊硬體廠商及軟體業者也會因應這種思維配合。

因為捨此之外,無他途可以刺激市場更新以便牟利。

就如當年 16 與 32 位元潮流轉換過程類似,

32 與 64 位元會有一段共存期,但64位元系統終究會取得主流地位。

 

eliu
5
Promote 0 Bookmark 02010-12-27quote  
edited: 1
coolcd
6
Promote 0 Bookmark 02010-12-27quote  

eliu

UNIX 上只是把 time_t 由 32-bit 轉換成 64-bit,其實是不需要全部轉成 64-bit,這與 cpu 的 32/64 bit 無關。

time_t 換成64-bit之後,儲存的資料也必須轉換。

所以有可能 32bit 時代存的資料,沒有適當轉換的話,以後用 64bit 系統叫出來時間是不對的?

eliu
7
Promote 0 Bookmark 02010-12-27quote  

coolcd
所以有可能 32bit 時代存的資料,沒有適當轉換的話,以後用 64bit 系統叫出來時間是不對的?

只有 binary 的 data 含有 time_t 的部分會有這個問題。

如果是 postgresql,好像就沒有問題

NameStorage SizeDescriptionLow ValueHigh ValueResolution
timestamp [ (p) ] [ without time zone ] 8 bytes both date and time 4713 BC 5874897 AD 1 microsecond / 14 digits
timestamp [ (p) ] with time zone 8 bytes both date and time, with time zone 4713 BC 5874897 AD 1 microsecond / 14 digits
interval [ (p) ] 12 bytes time intervals -178000000 years 178000000 years 1 microsecond / 14 digits
date 4 bytes dates only 4713 BC 5874897 AD 1 day
time [ (p) ] [ without time zone ] 8 bytes times of day only 00:00:00.00 23:59:59.99 1 microsecond / 14 digits
time [ (p) ] with time zone 12 bytes times of day only, with time zone 00:00:00.00+12 23:59:59.99-12 1 microsecond / 14 digits
edited: 1
ychao
8 是否該用 64-bit / 64位元的作業系統 (OS)
Promote 0 Bookmark 02010-12-28quote  

eliu

目前大部份的 cpu 都有支援 64-bit 模式,最先由 AMD 發展的,後來授權給 intel,一般稱為 x64 or AMD64。

這裡其實有故事的... 話說intel跟hp早年有合作開發64bit的處理器itenium,一般稱為ia64。但很不幸的ia64與ia32(也就是x86系列)的指令集不相容,在32位元模式下還得犧牲效能,再加上開發延期等種種的原因,結果幾乎沒有人用。

當時,AMD另外發展了一套64位元的處理器,採用的指令集可以同時相容在64位元模式下執行ia32的軟體,沒有明顯效能損失。軟體開發商自然樂於接受,很快就被多個大廠採用了(ex. m$)。這個一般稱為AMD64或x86-64,有別於ia64。後來intel見大勢已去,只好讓自己的處理器以模擬的方式支援相同的指令集,稱為EM64t。後來又很鴕鳥的叫intel 64。但這不是ia64喔。

當CPU的暫存器變長了(64bit),許多原本要透過記憶體指標的運算,都可以直接使用暫存器送,當然速度更快。對原先32位元長度的指令,甚至還可以一次抓取多個送進處理器。

不過64位元的機器碼指令長度,是不是都是32位元的兩倍長,我就不清楚了?只是為了相容性,似乎64位元的作業系統,都會同時安裝32跟64位元版本的函式庫,這樣子自然需要兩倍多以上的空間來存放。

eliu
9
Promote 0 Bookmark 02010-12-28quote  

處理器itenium
應該是 Itanium。

SGI 某些很貴的 server 還有在用 Itanium。HP 也有,RAM 的 size 可以到 1.5 TB,很驚人。

印象中 Itanium 好像 die 的面積很大,可是好像速度沒有很快,用了別人兩倍的 core performace 還是輸給 IBM 的 Power?。Itanium 不知道是不是 Intel 的賠錢貨。

底下就可以看出 Itanium 命運真的是錢途無亮

However, Windows Server 2008 R2 will be the last version of Windows Server to support the Itanium and Red Hat Enterprise Linux 5 will be the last version to support the Itanium.[14][15] Likewise, Canonical's Ubuntu 10.04 LTS will be the last supported Ubuntu on Itanium.

edited: 6
eliu
10
Promote 0 Bookmark 02011-03-24quote  

eliu
底下就可以看出 Itanium 命運真的是錢途無亮

However, Windows Server 2008 R2 will be the last version of Windows Server to support the Itanium and Red Hat Enterprise Linux 5 will be the last version to support the Itanium.[14][15] Likewise, Canonical's Ubuntu 10.04 LTS will be the last supported Ubuntu on Itanium.

Oracle 也將停止支援 Itanium.   有人說是 Itanic → Titanic (鐵達尼號) Laughing

HP 的 server 會全部改成 X86 ? HP 說 Oracle 這樣做很無恥。可能是想推自家的 Sparc

edited: 1
eliu
11
Promote 0 Bookmark 02011-06-16quote  

HP 控告 Oracle 說 Oracle 停止對 Itanium 的支援是違反合約。Oracle 反擊說 Intel 將會停止 Itanium的開發,HP也知道這一點。

eliu
12
Promote 0 Bookmark 02012-03-04quote  

今天試用 ubuntu 11.10 amd64 在 3年前的便宜 acer 5738zg NB,原本 neverball 在 i386 最高解析度會有點卡,在 amd64 似乎有比較順。

玩 game 的人似乎很值得用 amd64(x64)

flash player 在 chrome i386 有內建,amd64 要去 adobe download

edited: 2
eliu
13 是否該用 64-bit / 64位元的作業系統 (Windows or Linux)
Promote 0 Bookmark 02012-03-11quote  

eliu
64-bit Linux 中普遍的做法是分別用 64-bit:/lib64,/usr/lib64 32-bit:/lib,/usr/lib

在 debian ubuntu 中, 32/64-bit .so 主要還是放在 /lib /usr/lib,

有需要區分的就分別放在 /usr/lib/i386-linux-gnu, /usr/lib/x86_64-linux-gnu

例如 gcin 的 64-bit gtk2 im module 是放在

/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-gcin.so

期待 amd64 能 dominate,有一天 cpu 可以丟掉 i386 的包袱,這樣可以更精簡&便宜。

edited: 3
eliu
14 ubuntu 11.10 32/64 bit 開機速度比較
Promote 0 Bookmark 02012-03-24quote  

比較開機速度,使用 auto login,到 panel icon 出現

Ubuntu 11.10 32-bit: 39.83 seconds

Ubuntu 11.10 64-bit: 37.44 seconds

64-bit 有快一點,主要原因是這台 acer 5738 zg NB 的 disk 速度很慢,所以是 disk read dominate 了開機的時間。而且 64-bit 的 EXE file 比較大。

edited: 2
eliu
15 標題: ubuntu 11.10 32/64 bit 休眠/回復 速度比較
Promote 0 Bookmark 02012-03-24quote  

grub Enter 按下 & 輸入密碼畫面出現需要的時間

Ubuntu 11.10 32 bit 64-bit
休眠(hibernate) 21.56s 20.87s
回復(resume) 24.85s 27.07s
edited: 1
ychao
16
Promote 0 Bookmark 02012-04-02quote  

直接比休眠及回復時間其實不是很準確,因為主要的瓶頸在I/O上,要看實際寫入的image大小,而且64-bit系統記憶體應該用量較大。

建議用tux-on-ice,有支援快速壓縮image,log也很詳細方便benchmark。

eliu
17
Promote 0 Bookmark 02012-04-04quote  

compiling gcin with ./gen-deb, Ubuntu 11.10,連續compile 三次

amd64 沒有快很多 囧。可能 amd64 是後來 install 的,所在的 partition( disk 內圈) 速度比較慢。 gcin source 所在的 /home 是相同的。

amd64: 168, 138, 138 seconds
i386: 162, 139, 140 seconds 

edited: 2
eliu
18
Promote 0 Bookmark 02012-04-11quote  

在 64-bit 的環境,gcc 內定會把 structure pack 成 8的倍數,所以這邊有時候會造成一點 memory 的浪費。

為什麼要這樣?AMD64 在 long long(int64_t) or pointer(void *) 時如果沒有 align 到 8-byte 應該會造成 bus error ? 就算不會 bus error,沒有 align to 8-byte 會造成 cpu 必須 read 兩次,效率比較差。

eliu
19 Physical Address Extension (PAE)
Promote 0 Bookmark 02012-11-16quote  

Physical Address Extension (PAE) 實體位置延伸是在 64-bit 的 CPU 執行32-bit 的OS,還是可以用到超過 4G memory 的一種方法。這種 > 4G 是指系統的總mermory,單一 process 的 virtual address 由於還是 32-bit,所以還是受到 4G memory 的限制。

Windows 32-bit 由於協力廠商 driver 可能有 PAE 不相容的問題,內定是不開啟 PAE的。

Ubuntu Linux 32-bit 是一律用PAE kernel,所以在比較舊的 PC 無法安裝,雖然 RAM size 沒超過 4G。是有人把 Ubuntu 重新包裝成不用 PAE 的版本。

MacOS 10.6 以後是用 64-bit 的 kernel,所以不需要用 PAE。

edited: 1
eliu
20
Promote 0 Bookmark 02013-08-19quote  

Windows 7 & 8 大部份是用 64-bit 版本,因為很多 PC/NB RAM 是 4G 起跳,32-bit 的 Windows 只能用到 3G 的 RAM,有1G浪費掉了。

何震邦
21
Promote 0 Bookmark 02013-09-10quote  

64 位元才有 KVM (Kernel-based Virtual Machine)

eliu
22
Promote 0 Bookmark 02013-09-22quote  

邦邦
64 位元才有 KVM (Kernel-based Virtual Machine)

這好像不對,我在 Ubuntu 12.04 32-bit 有用過 Android x86 kvm 的 emulator. 速度真的快很多。

Windows 7 32-bit 也一樣有 Intel x86 Emulator Accelerator (HAXM) for android driver ,我也有用過。不知道 Bluestacks 是不是也是用這一個。

edited: 1
eliu
23 x32 ABI
Promote 0 Bookmark 02013-12-25quote  

x32 ABI

是說用 64-bit 的 CPU instructions set, 但是用 32-bit 的 memory pointer,這時候 cpu 的 memory 使用會比 64-bit pointer 的 x64 少,一般的程式很少用超過3G的 memory。由於 memory 使用較少,據說x32 平均速度會比x64快 5-8%,最多可到 40%。

目前 Linux 還沒有 distribution 用 x32,因為等於在 i386 & x64 外又要 compile 一套 x32,增加維護的麻煩。

eliu
24
Promote 0 Bookmark 02014-07-28quote  

從 Apache access.log 大約統計,gcin Ubuntu Linux 2/3 以上已經採用 AMD64 64-bit 的 Ubuntu。

由於很多新的desktop/NB 的標準配備 dram 的 size 是 4G+,所以現在大部份的 Windows 8 是 64-bit。Windows 只有 64-bit 版才能完全使用到 4G以上 的 RAM。

本站已經升級 64-bit Ubuntu Linux 8G RAM,走向 64-bit OS 的懷抱。Laughing

edited: 1

CC: Windows
cht電腦資訊Linux
adm Find login register
views:109769