亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 4551 | 回復(fù): 3
打印 上一主題 下一主題

[Cassandra] Linux移植到64位系統(tǒng) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2014-08-02 01:58 |只看該作者 |倒序?yàn)g覽
將 Linux 應(yīng)用程序移植到 64 位系統(tǒng)上
平滑遷移的技巧和技術(shù)

Linux 是可以使用 64 位處理器的跨平臺(tái)操作系統(tǒng)之一,現(xiàn)在 64 位的系統(tǒng)在服務(wù)器和桌面端都已經(jīng)非常常見了。很多開發(fā)人員現(xiàn)在都面臨著需要將自己的應(yīng)用程序從 32 位環(huán)境移植到 64 位環(huán)境中。隨著 Intel? Itanium? 和其他 64 位處理器的引入,使軟件針對 64 位環(huán)境做好準(zhǔn)備變得日益重要了。
與 UNIX? 和其他類 UNIX 操作系統(tǒng)一樣,Linux 使用了 LP64 標(biāo)準(zhǔn),其中指針和長整數(shù)都是 64 位的,而普通的整數(shù)則依然是 32 位的。盡管有些高級語言并不會(huì)受到這種類型大小不同的影響,但是另外一些語言(例如 C 語言)卻的確會(huì)受到這種影響。
將應(yīng)用程序從 32 位系統(tǒng)移植到 64 位系統(tǒng)上的工作可能會(huì)非常簡單,也可能會(huì)非常困難,這取決于這些應(yīng)用程序是如何編寫和維護(hù)的。很多瑣碎的問題都可能導(dǎo)致產(chǎn)生問題,即使在一個(gè)編寫得非常好的高度可移植的應(yīng)用程序中也是如此,因此本文將對這些問題進(jìn)行歸納總結(jié),并給出解決這些問題的一些方法建議。
64 位的優(yōu)點(diǎn)
32 位平臺(tái)有很多限制,這些限制正在阻礙大型應(yīng)用程序(例如數(shù)據(jù)庫)開發(fā)人員的工作進(jìn)展,尤其對那些希望充分利用計(jì)算機(jī)硬件優(yōu)點(diǎn)的開發(fā)人員來說更是如此。科學(xué)計(jì)算通常要依賴于浮點(diǎn)計(jì)算,而有些應(yīng)用程序(例如金融計(jì)算)則需要一個(gè)比較狹窄的數(shù)字范圍,但是卻要求更高的精度,其精度高于浮點(diǎn)數(shù)所提供的精度。64 位數(shù)學(xué)運(yùn)算提供了這種更高精度的定點(diǎn)數(shù)學(xué)計(jì)算,同時(shí)還提供了足夠的數(shù)字范圍,F(xiàn)在在計(jì)算機(jī)業(yè)界中有很多關(guān)于 32 位地址空間所表示的地址空間的討論。32 位指針只能尋址 4GB 的虛擬地址空間。我們可以克服這種限制,但是應(yīng)用程序開發(fā)就變得非常復(fù)雜了,其性能也會(huì)顯著降低。
在語言實(shí)現(xiàn)方面,目前的 C 語言標(biāo)準(zhǔn)要求 “l(fā)ong long” 數(shù)據(jù)類型至少是 64 位的。然而,其實(shí)現(xiàn)可能會(huì)將其定義為更大。
另外一個(gè)需要改進(jìn)的地方是日期。在 Linux 中,日期是使用 32 位整數(shù)來表示的,該值所表示的是從 1970 年 1 月 1 日至今所經(jīng)過的秒數(shù)。這在 2038 年就會(huì)失效。但是在 64 位的系統(tǒng)中,日期是使用有符號的 64 位整數(shù)表示的,這可以極大地?cái)U(kuò)充其可用范圍。
總之,64 位具有以下優(yōu)點(diǎn):
64 位的應(yīng)用程序可以直接訪問 4EB 的虛擬內(nèi)存,Intel Itanium 處理器提供了連續(xù)的線性地址空間。
64 位的 Linux 允許文件大小最大達(dá)到 4 EB(2 的 63 次冪),其重要的優(yōu)點(diǎn)之一就是可以處理對大型數(shù)據(jù)庫的訪問。

回頁首
Linux 64 位體系結(jié)構(gòu)
不幸的是,C 編程語言并沒有提供一種機(jī)制來添加新的基本數(shù)據(jù)類型。因此,提供 64 位的尋址和整數(shù)運(yùn)算能力必須要修改現(xiàn)有數(shù)據(jù)類型的綁定或映射,或者向 C 語言中添加新的數(shù)據(jù)類型。
表 1. 32 位和 64 位數(shù)據(jù)模型
  ILP32 LP64 LLP64 ILP64
char 8 8 8 8
short 16 16 16 16
int 32 32 32 64
long 32 64 32 64
long long 64 64 64 64
指針 32 64 64 64
這 3 個(gè) 64 位模型(LP64、LLP64 和 ILP64)之間的區(qū)別在于非浮點(diǎn)數(shù)據(jù)類型。當(dāng)一個(gè)或多個(gè) C 數(shù)據(jù)類型的寬度從一種模型變換成另外一種模型時(shí),應(yīng)用程序可能會(huì)受到很多方面的影響。這些影響主要可以分為兩類:
數(shù)據(jù)對象的大小。編譯器按照自然邊界對數(shù)據(jù)類型進(jìn)行對齊;換而言之,32 位的數(shù)據(jù)類型在 64 位系統(tǒng)上要按照 32 位邊界進(jìn)行對齊,而 64 位的數(shù)據(jù)類型在 64 位系統(tǒng)上則要按照 64 位邊界進(jìn)行對齊。這意味著諸如結(jié)構(gòu)或聯(lián)合之類的數(shù)據(jù)對象的大小在 32 位和 64 位系統(tǒng)上是不同的。

基本數(shù)據(jù)類型的大小。通常關(guān)于基本數(shù)據(jù)類型之間關(guān)系的假設(shè)在 64 位數(shù)據(jù)模型上都已經(jīng)無效了。依賴于這些關(guān)系的應(yīng)用程序在 64 位平臺(tái)上編譯也會(huì)失敗。例如,sizeof (int) = sizeof (long) = sizeof (pointer) 的假設(shè)對于 ILP32 數(shù)據(jù)模型有效,但是對于其他數(shù)據(jù)模型就無效了。
總之,編譯器要按照自然邊界對數(shù)據(jù)類型進(jìn)行對齊,這意味著編譯器會(huì)進(jìn)行 “填充”,從而強(qiáng)制進(jìn)行這種方式的對齊,就像是在 C 結(jié)構(gòu)和聯(lián)合中所做的一樣。結(jié)構(gòu)或聯(lián)合的成員是根據(jù)最寬的成員進(jìn)行對齊的。清單 1 對這個(gè)結(jié)構(gòu)進(jìn)行了解釋。
清單 1. C 結(jié)構(gòu)
struct test {
int i1;
double d;
int i2;
long l;
}
表 2 給出了這個(gè)結(jié)構(gòu)中每個(gè)成員的大小,以及這個(gè)結(jié)構(gòu)在 32 位系統(tǒng)和 64 位系統(tǒng)上的大小。
表 2. 結(jié)構(gòu)和結(jié)構(gòu)成員的大小
結(jié)構(gòu)成員 在 32 位系統(tǒng)上的大小 在 64 位系統(tǒng)上的大小
struct test {   
int i1; 32 位 32 位
    32 位填充
double d; 64 位 64 位
int i2; 32 位 32 位
    32 位填充
long l; 32 位 64 位
}; 結(jié)構(gòu)大小為 20 字節(jié) 結(jié)構(gòu)大小為 32 字節(jié)
注意,在一個(gè) 32 位的系統(tǒng)上,編譯器可能并沒有對變量 d 進(jìn)行對齊,盡管它是一個(gè) 64 位的對象,這是因?yàn)橛布䲡?huì)將其當(dāng)作兩個(gè) 32 位的對象進(jìn)行處理。然而,64 位的系統(tǒng)會(huì)對 d 和 l 都進(jìn)行對齊,這樣會(huì)添加兩個(gè) 4 字節(jié)的填充。

回頁首
從 32 位系統(tǒng)移植到 64 位系統(tǒng)
本節(jié)介紹如何解決一些常見的問題:
聲明
表達(dá)式
賦值
數(shù)字常數(shù)
Endianism
類型定義
位移
字符串格式化
函數(shù)參數(shù)
聲明
要想讓您的代碼在 32 位和 64 位系統(tǒng)上都可以工作,請注意以下有關(guān)聲明的用法:
根據(jù)需要適當(dāng)?shù)厥褂?“L” 或 “U” 來聲明整型常量。
確保使用無符號整數(shù)來防止符號擴(kuò)展的問題。
如果有些變量在這兩個(gè)平臺(tái)上都需要是 32 位的,請將其類型定義為 int。
如果有些變量在 32 位系統(tǒng)上是 32 位的,在 64 位系統(tǒng)上是 64 位的,請將其類型定義為 long。
為了對齊和性能的需要,請將數(shù)字變量聲明為 int 或 long 類型。不要試圖使用 char 或 short 類型來保存字節(jié)。
將字符指針和字符字節(jié)聲明為無符號類型的,這樣可以防止 8 位字符的符號擴(kuò)展問題。
表達(dá)式
在 C/C++ 中,表達(dá)式是基于結(jié)合律、操作符的優(yōu)先級和一組數(shù)學(xué)計(jì)算規(guī)則的。要想讓表達(dá)式在 32 位和 64 位系統(tǒng)上都可以正確工作,請注意以下規(guī)則:
兩個(gè)有符號整數(shù)相加的結(jié)果是一個(gè)有符號整數(shù)。
int 和 long 類型的兩個(gè)數(shù)相加,結(jié)果是一個(gè) long 類型的數(shù)。
如果一個(gè)操作數(shù)是無符號整數(shù),另外一個(gè)操作數(shù)是有符號整數(shù),那么表達(dá)式的結(jié)果就是無符號整數(shù)。
int 和 doubule 類型的兩個(gè)數(shù)相加,結(jié)果是一個(gè) double 類型的數(shù)。此處 int 類型的數(shù)在執(zhí)行加法運(yùn)算之前轉(zhuǎn)換成 double 類型。
賦值
由于指針、int 和 long 在 64 位系統(tǒng)上大小不再相同了,因此根據(jù)這些變量是如何賦值和在應(yīng)用程序中使用的,可能會(huì)出現(xiàn)問題。下面是有關(guān)賦值的一些技巧:
不要交換使用 int 和 long 類型,因?yàn)檫@可能會(huì)導(dǎo)致高位數(shù)字被截?cái)。例如,不要做下面的事情?br /> int i;
long l;
i = l;

不要使用 int 類型來存儲(chǔ)指針。下面這個(gè)例子在 32 位系統(tǒng)上可以很好地工作,但是在 64 位系統(tǒng)上會(huì)失敗,這是因?yàn)?32 位整數(shù)無法存放 64 位的指針。例如,不要做下面的事情:
unsigned int i, *ptr;
i = (unsigned) ptr;

不要使用指針來存放 int 類型的值。例如,不要做下面的事情;
int *ptr;
int i;
ptr = (int *) i;

如果在表達(dá)式中混合使用無符號和有符號的 32 位整數(shù),并將其賦值給一個(gè)有符號的 long 類型,那么將其中一個(gè)操作數(shù)轉(zhuǎn)換成 64 位的類型。這會(huì)導(dǎo)致其他操作數(shù)也被轉(zhuǎn)換成 64 位的類型,這樣在對表達(dá)式進(jìn)行賦值時(shí)就不需要再進(jìn)行轉(zhuǎn)換了。另外一種解決方案是對整個(gè)表達(dá)式進(jìn)行轉(zhuǎn)換,這樣就可以在賦值時(shí)進(jìn)行符號擴(kuò)展。例如,考慮下面這種用法可能會(huì)出現(xiàn)的問題:
long n;
int i = -2;
unsigned k = 1;
n = i + k;
從數(shù)學(xué)計(jì)算上來說,上面這個(gè)黑體顯示的表達(dá)式的結(jié)果應(yīng)該是 -1 。但是由于表達(dá)式是無符號的,因此不會(huì)進(jìn)行符號擴(kuò)展。解決方案是將一個(gè)操作數(shù)轉(zhuǎn)換成 64 位類型(下面的第一行就是這樣),或者對整個(gè)表達(dá)式進(jìn)行轉(zhuǎn)換(下面第二行):

n = (long) i + k;
n = (int) (i + k);

數(shù)字常量
16 進(jìn)制的常量通常都用作掩碼或特殊位的值。如果一個(gè)沒有后綴的 16 進(jìn)制的常量是 32 位的,并且其高位被置位了,那么它就可以作為無符號整型進(jìn)行定義。
例如,常數(shù) OxFFFFFFFFL 是一個(gè)有符號的 long 類型。在 32 位系統(tǒng)上,這會(huì)將所有位都置位(每位全為 1),但是在 64 位系統(tǒng)上,只有低 32 位被置位了,結(jié)果是這個(gè)值是 0x00000000FFFFFFFF。
如果我們希望所有位全部置位,那么一種可移植的方法是定義一個(gè)有符號的常數(shù),其值為 -1。這會(huì)將所有位全部置位,因?yàn)樗捎昧硕M(jìn)制補(bǔ)碼算法。
long x = -1L;
可能產(chǎn)生的另外一個(gè)問題是最高位的設(shè)置。在 32 位系統(tǒng)上,我們使用的是常量 0x80000000。但是可移植性更好的方法是使用一個(gè)位移表達(dá)式:
1L << ((sizeof(long) * - 1);
Endianism
Endianism 是指用來存儲(chǔ)數(shù)據(jù)的方法,它定義了整數(shù)和浮點(diǎn)數(shù)據(jù)類型中是如何對字節(jié)進(jìn)行尋址的。
Little-endian 是將低位字節(jié)存儲(chǔ)在內(nèi)存的低地址中,將高位字節(jié)存儲(chǔ)在內(nèi)存的高地址中。
Big-endian 是將高位字節(jié)存儲(chǔ)在內(nèi)存的低地址中,將低位字節(jié)存儲(chǔ)在內(nèi)存的高地址中。
表 3 給出了一個(gè) 64 位長整數(shù)的布局示例。
表 3. 64 位 long int 類型的布局
  低地址             高地址
Little endian Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
Big endian Byte 7 Byte 6 Byte 5 Byte 4 Byte 3 Byte 2 Byte 1 Byte 0
例如,32 位的字 0x12345678 在 big endian 機(jī)器上的布局如下:
表 4. 0x12345678 在 big-endian 系統(tǒng)上的布局
內(nèi)存偏移量 0 1 2 3
內(nèi)存內(nèi)容 0x12 0x34 0x56 0x78
如果將 0x12345678 當(dāng)作兩個(gè)半字來看待,分別是 0x1234 和 0x5678,那么就會(huì)看到在 big endian 機(jī)器上是下面的情況:
表 5. 0x12345678 在 big-endian 系統(tǒng)上當(dāng)作兩個(gè)半字來看待的情況
內(nèi)存偏移量 0 2
內(nèi)存內(nèi)容 0x1234 0x5678
然而,在 little endian 機(jī)器上,字 0x12345678 的布局如下所示:
表 6. 0x12345678 在 little-endian 系統(tǒng)上的布局
內(nèi)存偏移量 0 1 2 3
內(nèi)存內(nèi)容 0x78 0x56 0x34 0x12
類似地,兩個(gè)半字 0x1234 和 0x5678 如下所示:
表 7. 0x12345678 在 little-endian 系統(tǒng)上作為兩個(gè)半字看到的情況
內(nèi)存偏移量 0 2
內(nèi)存內(nèi)容 0x3412 0x7856
下面這個(gè)例子解釋了 big endian 和 little endian 機(jī)器上字節(jié)順序之間的區(qū)別。
下面的 C 程序在一臺(tái) big endian 機(jī)器上進(jìn)行編譯和運(yùn)行時(shí)會(huì)打印 “Big endian”,在一臺(tái) little endian 機(jī)器上進(jìn)行編譯和運(yùn)行時(shí)會(huì)打印 “Little endian”。
清單 2. big endian 與 little endian
#include <stdio.h>
main () {
int i = 0x12345678;
if (*(char *)&i == 0x12)
printf ("Big endiann";
else if (*(char *)&i == 0x7
      printf ("Little endiann";
}
Endianism 在以下情況中非常重要:
使用位掩碼時(shí)
對象的間接指針地址部分
在 C 和 C++ 中有位域來幫助處理 endian 的問題。我建議使用位域,而不要使用掩碼域或 16 進(jìn)制的常量。有幾個(gè)函數(shù)可以用來將 16 位和 32 位數(shù)據(jù)從 “主機(jī)字節(jié)順序” 轉(zhuǎn)換成 “網(wǎng)絡(luò)字節(jié)順序”。例如,htonl (3)、ntohl (3) 用來轉(zhuǎn)換 32 位整數(shù)。類似地,htons (3)、ntohs (3) 用來轉(zhuǎn)換 16 位整數(shù)。然而,對于 64 位整數(shù)來說,并沒有標(biāo)準(zhǔn)的函數(shù)集。但是在 big endian 和 little endian 系統(tǒng)上,Linux 都提供了下面的幾個(gè)宏:
bswap_16
bswap_32
bswap_64
類型定義
建議您不要使用 C/C++ 中那些在 64 位系統(tǒng)上會(huì)改變大小的數(shù)據(jù)類型來編寫應(yīng)用程序,而是使用一些類型定義或宏來顯式地說明變量中所包含的數(shù)據(jù)的大小和類型。有些定義可以使代碼的可移植性更好。
ptrdiff_t:
這是一個(gè)有符號整型,是兩個(gè)指針相減后的結(jié)果。

size_t:
這是一個(gè)無符號整型,是執(zhí)行 sizeof 操作的結(jié)果。這在向一些函數(shù)(例如 malloc (3))傳遞參數(shù)時(shí)使用,也可以從一些函數(shù)(比如 fred (2))中返回。

int32_t、uint32_t 等:
定義具有預(yù)定義寬度的整型。

intptr_t 和 uintptr_t:
定義整型類型,任何有效指針都可以轉(zhuǎn)換成這個(gè)類型。
例 1:
在下面這條語句中,在對 bufferSize 進(jìn)行賦值時(shí),從 sizeof 返回的 64 位值被截?cái)喑闪?32 位。
int bufferSize = (int) sizeof (something);
解決方案是使用 size_t 對返回值進(jìn)行類型轉(zhuǎn)換,并將其賦給聲明為 size_t 類型的 bufferSize,如下所示:
size_t bufferSize = (size_t) sizeof (something);
例 2:
在 32 位系統(tǒng)上,int 和 long 大小相同。由于這一點(diǎn),有些開發(fā)人員會(huì)交換使用這兩種類型。這可能會(huì)導(dǎo)致指針被賦值給 int 類型,或者反之。但是在 64 位的系統(tǒng)上,將指針賦值給 int 類型會(huì)導(dǎo)致截?cái)喔?32 位的值。
解決方案是將指針作為指針類型或?yàn)榇硕x的特殊類型進(jìn)行存儲(chǔ),例如 intptr_t 和 uintptr_t。
位移
無類型的整數(shù)常量就是 (unsigned) int 類型的。這可能會(huì)導(dǎo)致在位移時(shí)出現(xiàn)被截?cái)嗟膯栴}。
例如,在下面的代碼中,a 的最大值可以是 31。這是因?yàn)?1 << a 是 int 類型的。
long t = 1 << a;
要在 64 位系統(tǒng)上進(jìn)行位移,應(yīng)該使用 1L,如下所示:
long t = 1L << a;
字符串格式化
函數(shù) printf (3) 及其相關(guān)函數(shù)都可能成為問題的根源。例如,在 32 位系統(tǒng)上,使用 %d 來打印 int 或 long 類型的值都可以,但是在 64 位平臺(tái)上,這會(huì)導(dǎo)致將 long 類型的值截?cái)喑傻?32 位的值。對于 long 類型的變量來說,正確的用法是 %ld。
類似地,當(dāng)一個(gè)小整數(shù)(char、short、int)被傳遞給 printf (3) 時(shí),它會(huì)擴(kuò)展成 64 位的,符號會(huì)適當(dāng)?shù)剡M(jìn)行擴(kuò)展。在下面的例子中,printf (3) 假設(shè)指針是 32 位的。
char *ptr = &something;
printf (%xn", ptr);
上面的代碼在 64 位系統(tǒng)上會(huì)失敗,它只會(huì)顯示低 4 字節(jié)的內(nèi)容。
這個(gè)問題的解決方案是使用 %p,如下所示;這在 32 位和 64 位系統(tǒng)上都可以很好地工作:
char *ptr = &something;
printf (%pn", ptr);
函數(shù)參數(shù)
在向函數(shù)傳遞參數(shù)時(shí)需要記住幾件事情:
在參數(shù)的數(shù)據(jù)類型是由函數(shù)原型定義的情況中,參數(shù)應(yīng)該根據(jù)標(biāo)準(zhǔn)規(guī)則轉(zhuǎn)換成這種類型。
在參數(shù)類型沒有指定的情況中,參數(shù)會(huì)被轉(zhuǎn)換成更大的類型。
在 64 位系統(tǒng)上,整型被轉(zhuǎn)換成 64 位的整型值,單精度的浮點(diǎn)類型被轉(zhuǎn)換成雙精度的浮點(diǎn)類型。
如果返回值沒有指定,那么函數(shù)的缺省返回值是 int 類型的。
在將有符號整型和無符號整型的和作為 long 類型傳遞時(shí)就會(huì)出現(xiàn)問題?紤]下面的情況:
清單 3. 將有符號整型和無符號整型的和作為 long 類型傳遞
long function (long l);
int main () {
int i = -2;
unsigned k = 1U;
long n = function (i + k);
}
上面這段代碼在 64 位系統(tǒng)上會(huì)失敗,因?yàn)楸磉_(dá)式 (i + k) 是一個(gè)無符號的 32 位表達(dá)式,在將其轉(zhuǎn)換成 long 類型時(shí),符號并沒有得到擴(kuò)展。解決方案是將一個(gè)操作數(shù)強(qiáng)制轉(zhuǎn)換成 64 位的類型。
在基于寄存器的系統(tǒng)上還有一個(gè)問題:系統(tǒng)采用寄存器而不是堆棧來向函數(shù)傳遞參數(shù)?紤]下面的例子:
float f = 1.25;
printf ("The hex value of %f is %x", f, f);
在基于堆棧的系統(tǒng)中,這會(huì)打印對應(yīng)的 16 進(jìn)制值。但是在基于寄存器的系統(tǒng)中,這個(gè) 16 進(jìn)制的值會(huì)從一個(gè)整數(shù)寄存器中讀取,而不是從浮點(diǎn)寄存器中讀取。
解決方案是將浮點(diǎn)變量的地址強(qiáng)制轉(zhuǎn)換成一個(gè)指向整型類型的指針,如下所示:
printf ("The hex value of %f is %x", f, *(int *)&f);

回頁首
結(jié)束語
主流的硬件供應(yīng)商最近都在擴(kuò)充自己的 64 位產(chǎn)品,這是因?yàn)?64 位平臺(tái)可以提供更好的性能、價(jià)值和可伸縮性。32 位系統(tǒng)的限制,特別是 4GB 的虛擬內(nèi)存上限,已經(jīng)極大地刺激很多公司開始考慮遷移到 64 位平臺(tái)上。了解如何將應(yīng)用程序移植到 64 位體系結(jié)構(gòu)上可以幫助我們編寫可移植性更好且效率更高的代碼。
參考資料
學(xué)習(xí)
您可以參閱本文在 developerWorks 全球站點(diǎn)上的 英文原文。

64-Bit Programming Models: Why LP64? 介紹了有關(guān)各種 64 位編程模型的更多細(xì)節(jié)知識和有關(guān) LP64 的爭論。

請?jiān)?Wikipedia 上了解 32 位系統(tǒng)所具有的 2038 年問題。

請閱讀 “將企業(yè)應(yīng)用程序從 UNIX 移植到 Linux”(developerWorks,2005 年 2 月),了解有關(guān)將大型多線程應(yīng)用程序移植到 Linux 上的技巧和內(nèi)幕。

“Porting Intel applications to 64 bit Linux PowerPC” 討論了在將 Linux 從 IA32 移植到 PowerPC 上時(shí)所要考慮的一些問題。

Linux Online(linux.org) Linux distributions site 提供了有關(guān)發(fā)行版的豐富信息,包括 64 位系統(tǒng)上的發(fā)行版。

developerWorks Linux on Power Architecture developer's corner 是為在基于 POWER 硬件的 Linux 上運(yùn)行的應(yīng)用程序的程序員和開發(fā)人員準(zhǔn)備的參考資料。

penguinppc.org 是專為 PowerPC 系統(tǒng)上的 Linux 用戶準(zhǔn)備的一個(gè)社區(qū)站點(diǎn)。

在 developerWorks Linux 專區(qū) 中可以找到為 Linux 開發(fā)人員準(zhǔn)備的更多參考資料。

隨時(shí)關(guān)注 developerWorks 技術(shù)事件和網(wǎng)絡(luò)廣播。

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2014-08-02 17:25 |只看該作者
哈哈。。。很好很強(qiáng)大。。。

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2014-08-03 02:49 |只看該作者
頂個(gè)~ 真是不錯(cuò) 哈哈!

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2014-08-03 12:15 |只看該作者
值得學(xué)習(xí) 謝謝提供,繼續(xù)努力啊
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP