⑴ linux 32位和64位的區別
第一、設計初衷不同
64位是為視頻、繪畫、高性能應用程序所設計開發的;32位是為普通用戶開發的。
第二、配置要求不同
64位操作系統只能安裝在64位電腦上,32位操作系統可以安裝在64位電腦上。
32位操作系統安裝在64位電腦上,其硬體恰似大車拉小車,這樣64位硬體性能會大打折扣。
第三、運算速度不同
64位CPU的數據寬度為64位,64位指令集可以運行64位數據指令,也就是說處理器一次可提取64位數據。比32位提高了一倍,理論上性能會相應提升1倍。
第四、定址能力不同
在Linux下32位系統不打開PAE的情況下,只能支持4G內存。
32位系統最大隻能支持3.2g左右內存,而64位系統支持高達128g的物理內存和多達16TB的虛擬內存。
第五、軟體普及不同
64位軟體相較32位軟體少。
⑵ 32位linux能支持的最大物理內存有多少
32位linux不打開PAE,則最多隻能識別出4GB內存,若打開PAE,則最多可以識別出64GB內存。但是 32位系統下的進程一次最多隻能定址4GB的空間。
64位linux則沒有32位系統的限制。因此對於內存大於4GB的機器來說,最好安裝64位系統。
簡單介紹下如何讓redhat 5-32位支持4G以上內存。
步驟1:
安裝kernel-PAE.i686 內核包,讓系統內核支持PAE物理地址擴展。
rpm-ivh kernel-PAE-2.6.18-53.el5.i686.rpm 安裝的時候會報如下警告。
⑶ 詳解Linux系統內存知識及調優方案
內存是計算機中重要的部件之一,它是與CPU進行溝通的橋梁。計算機中所有程序的運行都是在內存中進行的,因此內存的性能對計算機的影響非常大。內存作用是用於暫時存放CPU中的運算數據,以及與硬碟等外部存儲器交換的數據。只要計算機在運行中,CPU就會把需要運算的數據調到內存中進行運算,當運算完成後CPU再將結果傳送出來,內存的運行也決定了計算機的穩定運行。對於整個操作系統來說,內存可能是最麻煩的的設備。而其性能的好壞直接影響著整個操作系統。
我們知道CPU是不能與硬碟打交道的,只有數據被載入到內存中才可以被CPU調用。cpu在訪問內存的時候需要先像內存監控程序請求,由監控程序控制和分配內存的讀寫請求,這個監控程序叫做MMU(內存管理單元)。下面以32位系統來說明內存的訪問過程:
32位的系統上每一個進程在訪問內存的時候,每一個進程都當做自己有4個G的內存空間可用,這叫虛擬內存(地址),虛擬內存轉化成物理內存是通過MMU來完成的。為了能夠從線性地址轉換成物理地址,需要page table(頁表)的內存空間,page table要載入到MMU上。為了完成線性地址到物理地址的映射,如果按照1個位元組1個位元組映射的話,需要一張非常大的表,這種轉換關系會非常的復雜。因此把內存空間又劃分成了另外一種存儲單元格式,通常為4K。在不同的硬體平台上,它們的大小一般是不一樣的,像x86 32位的有4k的頁;而64位的有4k頁,2M頁,4M頁,8M頁等等,默認都是4k的。每一個進程一般而言都有自己的頁路徑和頁表映射機制,不管那一個頁表都是由內核載入的。每一個進程只能看到自己的線性地址空間,想要增加新的內存的時候,只能在自己的線性地址空間中申請,並且申請後一定是通過操作系統的內核映射到物理地址空間中去找那麼一段空間,並且告訴線性地址空間准備好了,可以訪問,並且在page table中增加一條映射關系,於是就可以訪問物理內存了,這種叫做內存分配。但是新的申請一定是通過操作的內核到物理內存中去找那麼一段空間,並且告訴線性地址空間好了,可以建設映射關系,最終page table建立映射關系。
這反映了上述描述過程的大體情況。可以看到每一個用戶程序都會有自己的頁表,並且映射到對應的主存儲器上去。
根據上述文字和圖表的描述可以發現2個問題:
1.每個進程如果需要訪問內存的時候都需要去查找page table的話,勢必會造成伺服器的性能底下
2.如果主存儲器的內存滿了以後,應用程序還需要調用內存的時候怎麼辦
對於第一個問題,我們就需要藉助TLB(Translation Lookaside Buffer)翻譯後備緩沖器。TLB是一個內存管理單元,它可以用於改進虛擬地址到物理地址轉換速度的緩存。這樣每次在查找page table的時候就可以先去TLB中查找相應的頁表數據,如果有就直接返回,沒有再去查找page table,並把查找到的結果緩存中TLB中。TLB雖然解決了緩存的功能,但是在那麼page table中查找映射關系仍然很慢,所以又有了page table的分級目錄。page table可以分為1級目錄,2級目錄和偏移量
但是一個進程在運行的時候要頻繁的打開文件,關閉文件。這就意味著要頻繁的申請內存和釋放內存。有些能夠在內存中緩存數據的那些進程,他們對內存的分配和回收更多,那麼每一次分配都會在頁表中建立一個對應項。所以,就算內存的速度很快,大量頻繁的同一時間分配和釋放內存,依然會降低伺服器的整體性能。當然內存空間不夠用的時候,我們稱為oom(out of memory,內存耗盡)。當內存耗盡的時候,,整個操作系統掛了。這種情況下我們可以考慮交換分區,交換分區畢竟是由硬碟虛擬出來的內存,所以其性能與真正的內存相比,差了很多,所以要盡力避免使用交換分區。有物理內存空間的時候盡量保證全部使用物理內存。cpu無論如何是不能給交換內存打交道的,它也只能給物理內存打交道,能定址的空間也只能是物理內存。所以當真正物理內存空間不夠用的時候,會通過LRU演算法把其中最近最少使用的內存放到交換內存中去,這樣物理內存中的那段空間就可以供新的程序使用了。但是這樣會引發另外的一個問題,即原來的進程通過page table尋找的時候,那一段空間的數據已經不屬於它了。所以此刻cpu發送通知或者異常告訴這個程序,這個地址空間已不屬於它,這個時候可能會出現2種情況:
1.物理內存有可用的空間可用:這個時候cpu會根據以前的轉換策略會把交換分區中的那段內存重新送到物理內存中去,但是轉換過來的空間地址不一定會是以前的那一段空間地址,因為以前的那一段空間地址可能已經被別人使用了。
2.物理內存沒有可用的空間可用:這個時候依然會使用LRU算發把當前物理地址空間上最近最少使用的空間地址轉換到交換內存中去,並把當前進程需要的這斷在交換空間中的內存送到物理內存空間中去,並且重新建立映射關系。
上述通知或者異常出現的情況,通常叫做缺頁異常。缺頁異常也分為大異常和小異常兩種。大異常就是訪問的數據內存中沒有,不的不去硬碟上載入,無論是從交換內存中還是直接從磁碟的某個文件系統上,反正需要從硬碟上去載入,這種異常載入需要很長時間。小異常就是進程之間通過共享內存,第二個進程訪問的時候,查看本地的內存映射表沒有,但是其它進程已經擁有了這個內存頁,所以可以直接映射,這種異常載入需要的時間一般很短。
在操作系統開機的時候,每一個io設備都會像cpu申請一些列的隨機埠,這種埠叫做io埠。在IBM PC體系結構中,I/O地址空間一共提供了65,536個8位的I/O埠。正是這些io埠的存在,cpu可以與io設備進行讀寫交互的過程。在執行讀寫操作時,CPU使用地址匯流排選擇所請求的I/O埠,使用數據匯流排在CPU寄存器和埠之間傳送數據。I/O埠還可以被映射到物理地址空間:因此,處理器和I/O設備之間的通信就可以直接使用對內存進行操作的匯編語言指令(例如,mov、and、or等等)。現代的硬體設備更傾向於映射I/O,因為這樣處理的速度較快,並可以和DMA結合起來使用。這樣io在和內存傳數據的時候就不需要通過cpu,cpu把匯流排的控制權交給DMA,每次io傳數據的時候就調用DMA一次,就把cpu給解放了出來。當數據傳輸完了以後,DMA通知給cpu中斷一次。DMA在運行的時候對整個匯流排有控制許可權,當cpu發現有其它進程需要使用匯流排的時候,二者就會產生爭用。這個時候,在匯流排控制權的使用上,CPU和DMA具有相等的許可權。只要CPU委託給了DMA,就不能隨意的收回這個委託,就要等待DMA的用完。
如果沒有其它進程可以運行,或者其它進程運行的時間非常短,這個時候CPU發現我們的IO仍然沒有完成,那就意味著,CPU只能等待IO了。CPU在時間分配裡面有個iowait的值,就是CPU在等待IO花費的時間。有些是在同步調用過程中,CPU必須要等待IO的完成;否者CPU可以釋放IO的傳輸在背後自動完成,CPU自己去處理其它的事情。等硬碟數據傳輸完成以後,硬碟只需要像CPU發起一個通知即可。CPU外圍有一種設備,這個設備叫做可編程中斷控制器。每一個硬體設備為了給CPU通信,在剛開機的時候,在BIOS實現檢測的時候,這個設備就要到可編程中斷控制器上去注冊一個所謂的中斷號。那麼這個號碼就歸這個硬體使用了。當前主機上可能有多個硬體,每一個硬體都有自己的號碼,CPU在收到中斷號以後,就能夠通過中斷相量表查找到那個硬體設備進行中斷。並且就由對應的IO埠過來處理了。
CPU正在運行其它進程,當一個中斷請求發過來的時候,CPU會立即終止當前正在處理的進程,而去處理中斷。當前CPU掛起當前正在處理的進程,轉而去執行中斷的過程,也叫做中斷切換。只不過,這種切換在量級別上比進程切換要低一些,而且任何中斷的優先順序通常比任何進程也要高,因為我們指的是硬體中斷。中斷還分為上半部和下半部,一般而言,上半部就是CPU在處理的時候,把它接進來,放到內存中,如果這個事情不是特別緊急(CPU或者內核會自己判斷),因此在這種情況下,CPU回到現場繼續執行剛才掛起的進程,當這個進程處理完了,再回過頭來執行中斷的下半部分。
在32位系統中,我們的內存(線性地址)地址空間中,一般而言,低地址空間有一個G是給內核使用的,上面3個G是給進程使用的。但是應該明白,其實在內核內存當中,再往下,不是直接這樣劃分的。32位系統和64位系統可能不一樣(物理地址),在32位系統中,最低端有那麼10多M的空間是給DMA使用的。DNA的匯流排寬度是很小的,可能只有幾位,所以定址能力很有限,訪問的內存空間也就很有限。如果DMA需要復制數據,而且自己能夠定址物理內存,還可以把數據直接壯哉進內存中去,那麼就必須保證DMA能夠定址那段內存才行。定址的前提就是把最低地址斷M,DA的定址范圍內的那一段給了DMA。所以站在這個角度來說,我們的內存管理是分區域的。
在32位系統上,16M的內存空間給了ZONE_DMA(DMA使用的物理地址空間);從16M到896M給了ZONE_NORMAL(正常物理地址空間),對於Linux操作系統來說,是內核可以直接訪問的地址空間;從896M到1G這斷空間叫做"Reserved"(預留的物理地址空間);從1G到4G的這段物理地址空間中,我們的內核是不能直接訪問的,要想訪問必須把其中的一段內容映射到Reserved來,在Reserved中保留出那一段內存的地址編碼,我們內核才能上去訪問,所以內核不直接訪問大於1G的物理地址空間。所以在32位系統上,它訪問內存當中的數據,中間是需要一個額外步驟的。
在64位系統上,ZONE_DAM給了低端的1G地址空間,這個時候DMA的定址能力被大大加強了;ZONE_DAM32可以使用4G的空間;而大於1G以上給劃分了ZONE_NORMAL,這段空間都可以被內核直接訪問。所以在64位上,內核訪問大於1G的內存地址,就不需要額外的步驟了,效率和性能上也大大增加,這也就是為什麼要使用64位系統的原因。
在現在的PC架構上,AMD,INTER都支持一種機制,叫做PEA(物理地址擴展)。所謂PAE。指的是在32位系統的地址匯流排上,又擴展了4位,使得32位系統上的地址空間可以達到64G。當然在32為系統上,不管你的物理內存有多大,單個進程所使用的空間是無法擴展的。因為在32位的系統上,線性地址空間只有4個G,而單個進程能夠識別的訪問也只有3個G。
linux的虛擬內存子系統包含了以下幾個功能模塊:
slab allocator,zoned buddy allocator,MMU,kswapd,bdflush
slab allocator叫做slab分配器
buddy allocator又叫做buddy system,叫做夥伴系統,也是一種內存分配器
buddy system是工作在MMU之上的,而slab allocator又是工作在buddy system之上的。
設置為小於等於1G,在資料庫伺服器應該勁量避免使用交換內存
3.在應用伺服器上,可以設置為RAM*0.5,當然這個是理論值
如果不的不使用交換內存,應該把交換內存放到最靠外的磁軌分區上,因為最外邊的磁碟的訪問速度最快。所以如果有多塊硬碟,可以把每塊硬碟的最外層的磁軌拿一小部分出來作為交換分區。交換分區可以定義優先順序,因此把這些硬碟的交換內存的優先順序設置為一樣,可以實現負載均衡的效果。定義交換分區優先順序的方法為編輯/etc/fstab:
/dev/sda1 swap swap pri=5 0 0
/dev/sdb1 swap swap pri=5 0 0
/dev/sdc1 swap swap pri=5 0 0
/dev/sdd1 swap swap pri=5 0 0
四.內存耗盡時候的相關調優參數
當Linux內存耗盡的時候,它會殺死那些佔用內存最多的進程,以下三種情況會殺死進程:
1.所有的進程都是活動進程,這個時候想交換出去都沒有空閑的進程
2.沒有可用的page頁在ZONE_NORMAL中
3.有其它新進程啟動,申請內存空間的時候,要找一個空閑內存給做映射,但是這個時候找不到了
一旦內存耗盡的時候,操作系統就會啟用oom-kill機制。
在/proc/PID/目錄下有一個文件叫做oom_score,就是用來指定oom的評分的,就是壞蛋指數。
如果要手動啟用oom-kill機制的話,只需要執行echo f>/proc/sysrq-trigger即可,它會自動殺掉我們指定的壞蛋指數評分最高的那個進程
可以通過echo n > /proc/PID/oom_adj來調整一個進程的壞蛋評分指數。最終的評分指數就是2的oom_adj的值的N次方。假如我們的一個進程的oom_adj的值是5,那麼它的壞蛋評分指數就是2的5次方。
如果想禁止oom-kill功能的使用可以使用vm.panic_on_oom=1即可。
五.與容量有關的內存調優參數:
overcommit_memory,可用參數有3個,規定是否能夠過量使用內存:
0:默認設置,內核執行啟發式的過量使用處理
1:內核執行無內存的過量使用處理。使用這個值會增大內存超載的可能性
2:內存的使用量等於swap的大小+RAM*overcommit_ratio的值。如果希望減小內存的過度使用,這個值是最安全的
overcommit_ratio:將overcommit_memory指定為2時候,提供的物理RAM比例,默認為50
六.與通信相關的調優參數
常見在同一個主機中進行進程間通信的方式:
1.通過消息message;2.通過signal信號量進行通信;3.通過共享內存進行通信,跨主機常見的通信方式是rpc
以消息的方式實現進程通信的調優方案:
msgmax:以位元組為單位規定消息隊列中任意消息的最大允許大小。這個值一定不能超過該隊列的大小(msgmnb),默認值為65536
msgmnb:以位元組為單位規定單一消息隊列的最大值(最大長度)。默認為65536位元組
msgmni:規定消息隊列識別符的最大數量(及隊列的最大數量)。64位架構機器的默認值為1985;32位架構機器的默認值為1736
以共享內存方式實現進程通信的調優方案:
shmall:以位元組為單位規定一次在該系統中可以使用的共享內存總量(單次申請的上限)
shmmax:以位元組為單位規定每一個共享內存片段的最大大小
shmmni:規定系統范圍內最大共享內存片段。在64和32位的系統上默認值都是4096
七.與容量相關的文件系統可調優參數:
file-max:列出內核分配的文件句柄的最大值
dirty_ratio:規定百分比值,當臟數據達到系統內存總數的這個百分比值後開始執行pdflush,默認為20
dirty_background_ratio:規定百分比值,當某一個進程自己所佔用的臟頁比例達到系統內存總數的這個百分比值後開始在後台執行pdflush,默認為10
dirty_expire_centisecs:pdlush每隔百分之一秒的時間開啟起來刷新臟頁,默認值為3000,所以每隔30秒起來開始刷新臟頁
dirty_writeback_centisecs:每隔百分之一秒開始刷新單個臟頁。默認值為500,所以一個臟頁的存在時間達到了5秒,就開始刷新臟
八.linux內存常用的觀察指標命令:
Memory activity
vmstat [interval] [count]
sar -r [interval] [count]
Rate of change in memory
sar -R [interval] [count]
frmpg/s:每秒釋放或者分配的內存頁,如果為正數,則為釋放的內存頁;如果為負數,則為分配的內存頁
bufpg/s:每秒buffer中獲得或者釋放的內存頁。如果為正數則為獲得的內存頁,為負數。則為釋放的內存頁
campg/s:每秒cache中獲得或者釋放的內存頁。如果為正數則為獲得的內存頁,為負數。則為釋放的內存頁
Swap activity
sar -W [interval] [count]
ALL IO
sar -B [interval] [count]
pgpgin/s:每秒從磁碟寫入到內核的塊數量
pgpgout/s:每秒從內核寫入到磁碟的塊數量
fault/s:每秒鍾出現的缺頁異常的個數
majflt/s:每秒鍾出現的大頁異常的個數
pgfree/s:每秒回收回來的頁面個數
⑷ linux32位系統不能完全使用4GB內存,加了PAE就可以顯示,而64位系統直接完全使用4GB,為什麼
因為人家就是這么來設計的源。首先現在的操作系統,對於程序來說,內存地址都是「虛擬」的。
32 位系統雖然定址是 4G ,但其實 3G+ 部分是系統特殊內存位置,是對一些硬體和驅動的存儲區域模擬以及系統共享的程序代碼內存的位置轉接。
所以 32 位系統就有了 PAE 定址功能,也就是另外有 4bit 的內存定址寄存器實現 64G 內存的支持。
但 PAE 定址需要系統和軟體的同時支持才行。因為這部是本身的基礎設計,而是針對技術發展的擴展。所以原先的 3G+ 位置特殊用途的設計是保留的,PAE 用特殊的方法繞過了 3G+ 的內存訪問。保留 3G+ 特殊用途的特點從而實現兼容原先不支持 PAE 的軟體。
所以不支持 PAE ,系統就沒辦法3G+那部分內存做定址提供使用。
至於 x86-64 位系統,本來他的寄存器就是 64 位的,所以實際理論是 4G x 4G = 16EB 的內存可以進行支持。但實際現在的 64 位只使用了 64 位內存位置中的 48 位。也就是 256TB 的內存支持。
對於 256T 的內存支持水平來說,64G 不過是小菜一碟而已。
⑸ Linux進程內存如何管理
Linux內存管理
摘要:本章首先以應用程序開發者的角度審視Linux的進程內存管理,在此基礎上逐步深入到內核中討論系統物理內存管理和內核內存的使用方法。力求從外到內、水到渠成地引導網友分析Linux的內存管理與使用。在本章最後,我們給出一個內存映射的實例,幫助網友們理解內核內存管理與用戶內存管理之間的關系,希望大家最終能駕馭Linux內存管理。
前言
內存管理一向是所有操作系統書籍不惜筆墨重點討論的內容,無論市面上或是網上都充斥著大量涉及內存管理的教材和資料。因此,我們這里所要寫的Linux內存管理採取避重就輕的策略,從理論層面就不去班門弄斧,貽笑大方了。我們最想做的和可能做到的是從開發者的角度談談對內存管理的理解,最終目的是把我們在內核開發中使用內存的經驗和對Linux內存管理的認識與大家共享。
當然,這其中我們也會涉及到一些諸如段頁等內存管理的基本理論,但我們的目的不是為了強調理論,而是為了指導理解開發中的實踐,所以僅僅點到為止,不做深究。
遵循「理論來源於實踐」的「教條」,我們先不必一下子就鑽入內核里去看系統內存到底是如何管理,那樣往往會讓你陷入似懂非懂的窘境(我當年就犯了這個錯誤!)。所以最好的方式是先從外部(用戶編程范疇)來觀察進程如何使用內存,等到大家對內存的使用有了較直觀的認識後,再深入到內核中去學習內存如何被管理等理論知識。最後再通過一個實例編程將所講內容融會貫通。
進程與內存
進程如何使用內存?
毫無疑問,所有進程(執行的程序)都必須佔用一定數量的內存,它或是用來存放從磁碟載入的程序代碼,或是存放取自用戶輸入的數據等等。不過進程對這些內存的管理方式因內存用途不一而不盡相同,有些內存是事先靜態分配和統一回收的,而有些卻是按需要動態分配和回收的。
對任何一個普通進程來講,它都會涉及到5種不同的數據段。稍有編程知識的朋友都能想到這幾個數據段中包含有「程序代碼段」、「程序數據段」、「程序堆棧段」等。不錯,這幾種數據段都在其中,但除了以上幾種數據段之外,進程還另外包含兩種數據段。下面我們來簡單歸納一下進程對應的內存空間中所包含的5種不同的數據區。
*代碼段*:代碼段是用來存放可執行文件的操作指令,也就是說是它是可執行程序在內存中的鏡像。代碼段需要防止在運行時被非法修改,所以只准許讀取操作,而不允許寫入(修改)操作——它是不可寫的。
*數據段*:數據段用來存放可執行文件中已初始化全局變數,換句話說就是存放程序靜態分配[1]的變數和全局變數。
BSS*段<a href="https://link.segmentfault.com/?enc=DcwhqnvkYMxrvWKNSDlpjw%3D%3D.%2BTVdR37FrzpDlx30Od%2F227j%2FFcDXfhqFymFBWKvF4UA%3D%3D">*[2]**:BSS段包含了程序中未初始化的全局變數,在內存中 bss段全部置零。
堆(heap*)*:堆是用於存放進程運行中被動態分配的內存段,它的大小並不固定,可動態擴張或縮減。當進程調用malloc等函數分配內存時,新分配的內存就被動態添加到堆上(堆被擴張);當利用free等函數釋放內存時,被釋放的內存從堆中被剔除(堆被縮減)
*棧*:棧是用戶存放程序臨時創建的局部變數,也就是說我們函數括弧「{}」中定義的變數(但不包括static聲明的變數,static意味著在數據段中存放變數)。除此以外,在函數被調用時,其參數也會被壓入發起調用的進程棧中,並且待到調用結束後,函數的返回值也會被存放回棧中。由於棧的先進先出特點,所以棧特別方便用來保存/恢復調用現場。從這個意義上講,我們可以把堆棧看成一個寄存、交換臨時數據的內存區。
進程如何組織這些區域?
上述幾種內存區域中數據段、BSS和堆通常是被連續存儲的——內存位置上是連續的,而代碼段和棧往往會被獨立存放。有趣的是,堆和棧兩個區域關系很「曖昧」,他們一個向下「長」(i386體系結構中棧向下、堆向上),一個向上「長」,相對而生。但你不必擔心他們會碰頭,因為他們之間間隔很大(到底大到多少,你可以從下面的例子程序計算一下),絕少有機會能碰到一起。
⑹ LINUX對硬體支持有上限么最大多少內存多大硬碟容量
有上限,32
位內核是
4G
,32
位開
PAE
支持到
64G
,不過傳說
PAE
在
4G
內存以下會有性能損失。64
位現在其實只有
48
位,也就是
256T
,所以
Linux
同樣也只能支持到這么大。
硬碟容量看分區大小,ext3
我記得是
16T
,ext4
需要用新版的
e2fsprog
,最高支持
1E
,不然好像還是
16T
。其餘的文件系統看各自的支持情況了。不過這么大的硬碟,可能就不單單是用
ext
文件系統了。而是一些集群試的文件系統。
⑺ Linux可以識別多少GB的內存
32位的Linux的內存最大支持到4GB,64位的Linux的最大支持內存在EB級別上。實際上最大支持多大的內容跟操作系統的種類無關,而是跟操作系統是32位還是64位有關。
32位的Linux和32位的Windows支持的最大內存是4GB,2的32次方位元組=4294967296位元組
64位的Linux和Windows支持的最大內存=16EB,2的64次方位元組=18446744073709551616位元組
⑻ 64位linux和32位linux的區別是什麼
64位linux和32位linux使用是一樣的,但是唯一不一樣的就是64位linux的速度更快點。如果是你個人使用的話我可以這樣說你感覺不出來。而且64位的linux更占內存(如果你內存足夠大的話就另當別論),我想現在的個人的電腦估計也就是2G左右吧。
至於說的32位的資源多,我感覺這句話應該用在windows下吧。因為linux是開源的,所以它裡面的軟體也大部分是開源的。所以也就沒有32位資源更多之說。
我個人建議使用32位的,建議使用centos linux。
謝謝。
⑼ linux系統多少位
查看linux機器是32位還是64位的方法:
方法一:file /sbin/init 或者 file /bin/ls結果如下:/sbin/init: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
如果顯示 64-bit 則為64位;
file /sbin/init
/sbin/init:
ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux
2.2.5, dynamically linked (uses shared libs), stripped
如果顯示為32 bit 則為32bit;
方法二:uname -a:uname -aLinux pmx002**.**.** 2.6.32-71.el6.x86_64 #1 SMP Wed Sep 1 01:33:01 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
x86_64表示64位機器uname -aLinux pmx0**.**.** 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:30:39 EST 2005 i686 i686 i386 GNU/Linux
i686表示32位機器
方法三:也是看linux是32位還是64位最簡單的方法:
getconf LONG_BIT
在32位和64位機器上運行如下命令,結果如下:
[b@002 ~]$ getconf LONG_BIT64[root@pmx4 /]# getconf LONG_BIT32
⑽ 為什麼有些linux發行版32位比64位鏡像還要大
32位操作系統的定址空間最大是4GB,但是實際上達不到4G,因為系統要保留一部分內存內部使用。但即使是這樣,也是在PAE的時候,PAE可以說是一個中間層,等於再轉換一次地址,這樣對32位系統就可以支持更大的內存,但缺點是效率降低了。 如果是64位系統,支持的內存就多了,而且更適合伺服器操作系統。 一般的電腦還真的看不出來,但只要對伺服器(硬體)有了解,就知道,現在的高端伺服器動輒就能支持32G的內存,而8G似乎也成了標配。所以對伺服器,都選擇了64位的版本。更重要的,現在的64位CPU怎樣才能將性能發揮到極致,也就得64位操作系統了。 對1G內存、2.2G單核的低端伺服器,我建議還是採用32位的操作系統,因為32位操作系統經過這些年的發展明顯比64位的要成熟,支持方面有保證。詳細了解linux,多看看《linux就該這么學》這本書。