亚洲精品成人18久久久久_日韩欧美色_江苏极品身材白嫩少妇自拍_曰本人做爰大片免费观看一老师_久草视频网_最近中文字幕MV高清在线视频

首頁 > 考試輔導 > 計算機考試 > Linux認證 > Linux交流指導 > 升級Linux操作系統內核奮斗記

升級Linux操作系統內核奮斗記

升級linux內核奮斗記

我的piii dell機運行著內核2.4.的redhat,自從linux內核2.6發布以來一直想把該系統升級到內核2.6。經過一番艱辛萬苦,終于成功了。為了體驗一下在linux下編寫多線程程序的步驟,又更新gcc和c語言庫。在此愿和各位朋友共享這段經歷,共享這段成果。(可能有記錄錯誤,僅供參考)。

具體步驟包括以下內容:

1,升級內核的具體步驟

2,更新gcc

3,使用glibc2.3.5

4,使用nptl線程進行編程

在此之前,先簡要地介紹一下linux內核2.6所做的改進及新增功能。linux2.6主要在以下的10個方面作了很大的改進,簡單概括如下,有關詳細情況,請參閱相關資料。

1)通過改善并行處理能力和采用posix線程等,提高了系統的處理能力,從而linux真正具備大型信息系統所要求性能。

2)通過改善文件系統的輸出/輸入能力和提高對大容量內存的利用效率,使得linux能夠更勝任大型信息系統中的數據處理。

3)加強了對數據庫應用程序的支持。

4)提高了抗系統高負荷時能力。

5)提高了系統的可用性,包括對不停機時備份和不停機時更換硬件功能的支持。

6)強化了對網絡的支持,增加了對ipv6, sctp, ipsec,等的支持。

7)通過增加訪問控制和內核暗號化技術,提高了系統的安全性。

8)強化了對電源的管理。

9)強化了對嵌入式cpu和系統的支持。

10)添加了更多的硬件驅動程序。

一.升級內核

1, 下載linux-2.6.3.tar.bz2(可以是更新的版本)到/usr/src

bzcat linux-2.6.3.tar.bz2 | tar xvf – cd linux-2.6.3 閱讀readme及changes 文件,確認必須的工具軟件。因為不是筆記本電腦和筆記本電腦有關的軟件可以忽略。發現module-init-tools需要更新。

2,下載module-init-tools-0.9.13.tar.bz2

bzcat module-init-tools-0.9.13.tar.bz2 | tar xvf – cd module-init-tools-0.9.13 ./configure --prefix=/usr/local/module-init make make moveold make install /usr/local/module-init/sbin/generate-modpobe.conf > /etc/modprobe.conf 成功。

3, 編譯linux內核

cd /usr/src/linux-2.6.3 make menuconfig 一看太麻煩了,而且許多選項不知所云。退出該程序。 執行make oldconfig,對kernel2.6新增的不熟悉的選項作不選或為缺省。

make bzimage make modules modules_install pwd /usr/src/linux-2.6.3 mv arch/i386/boot/bzimage /boot/bzimage2.6.3 mv system.map /boot/system.map-2.6.3 cd /boot mv system.map oldsystem.map ln –s system.map-2.6.3 system.map 4,建立sys目錄

mkdir /sys

5, 修改相關文件,增加對sys的支持

在/etc/rc.d/rc.sysinit文件增加對sys的支持。

1) 找到mount –f /proc的行,在其下面,增加 mount –f /sys

2) 找到 action $ “mounting proc filesystem:” mount –n –t proc /proc /proc 在其下面,增加action $ “mounting sysfs filesystem:” mount –n –t sysfs /sys /sys.

3) 把文件中的 ksyms 改成 kallsyms

在/etc/fstab文件中,增加一行:

none /sys sysfs defaults 0 0

在/etc/rc.d/init.d/halt中,增加對sys的支持,把 awk ‘$2 ~/^/$ | ^/proc | ^/dev / {next} 變為:

awk ‘$2 ~/^/$ | ^/proc | ^/sys | ^/dev / {next}

6,啟動

修改/etc/lilo.conf, 增加下面的設置

… image=/boot/bzimange2.6.3 label=linux2.6.3 read-only root=/dev/hda3(由自己的pc設置決定) 成功。

二,更新gcc (因為gcc2.95.3無法編譯glibc-2.3.5)

下載gcc-3.4.4.tar.bz2

bzcat gcc-3.4.4.tar.bz2 | tar xvf – cd gcc-3.4.4 ./configure –prefix=/usr/local/gcc344 –enable-shared –enable-threads –enable-threads=posix –enable-languages=c,c++,f77 make bootstrap (因為使用cflags選項時,出錯了,所以省略) make install ln –s /usr/local/gcc344/bin/gcc /usr/bin/gcc 三,使用glibc-2.3.5

1)、通過調查發現要編譯glibc-2.3.5,要求binutils在2.13以上。所以必須安裝binutils-2.14

下載binutils-2.14.tar.gz

tar zxpvf binutils-2.14.tar.gz mkdir binutils-build cd binutils-build ../binutils-2.14/configure –prefix=/usr –enable-shared make tooldir=/usr make check make tooldir=/usr install cp ../binutils-2.14/include/libiberty.h /usr/include 2) 安裝glibc-2.3.5

下載 glibc-2.3.5.tar.gz 和 glibc-2.3.5-fix_test-1.patch

tar zxpvf glibc-2.3.5.tar.gz patch –np1 –i ../glibc-2.3.5-fix_test-1.path mkdir glibc-build cd glibc-build ../glibc-2.3.5/configure –prefix=/usr/local/glibc235 –enable-add-ons=linuxthreads –enable-kernel=2.6.0 (若安裝在/usr目錄下,很危險,可能會損壞你的系統) make make check (必須執行的一步) make localedata /install-locales (對應各國文字) mkdir /usr/man/man3(man的安裝路徑) make –c ../glibc-2.3.5/linuxthreads/man install 上面的安裝完成以后,最好把/usr/local/glibc235/lib和/usr/local/glibc235/include加入到系統的路徑中,這樣在編譯程序時,就不必指定庫和header文件的路徑了。

四、使用nptl進行線程編程

#include #include #include #include void thread_fun(void * arg); char message[] = “i am created thread”; int main() { int rnt; pthread_t new_thread; void *thread_result; rnt=pthread_create(&new_thread,null, thread_fun, (void*) message); if (rnt != 0) { perrer (“thread creation failed”); exit(exit_failure); } printf(“waiting for other thread to finish…”); rnt = pthread_join(new_thread, &thread_result); if (rnt != 0) { perrer (“thread join failed”); exit(exit_failure); } printf(“thread join, it returned %s ”, (char*) thread_result); printf(“message now %s”, message); exit(exit_success); } void *thread_fun (void * arg) { printf(“the new thread is running. argument was %s”,(char*)arg); sleep(3); strcpy(message, “bye”); pthread_exit(“thank you for the test”); } 編譯

gcc -d_reentrant test_thread.c -o test_thread -lpthread ./test_thread 成功了。

主站蜘蛛池模板: 成人a∨欧美大片 | 精品久久人人做人人爽综合 | 日本黄视频网站 | 日韩黄色毛片 | 亚洲国产精品区 | 一区二区三区四区在线视频 | 精品91在线 | 国产精品亚洲а∨天堂123bt | 亚洲一区二区三区写真 | 欧美狠狠爱 | 福利视频一区二区三区 | 很黄很爽的视频网站 | 麻豆精品久久久久久中文字幕无码 | 日韩精品一区二区免费 | 在线观看免费国产小视频 | 国产一级免费大片 | 国产精品亚洲精品一区二区三区 | 日本一区二区三区在线不卡 | 韩日中文字幕第一页 | av簧片 | 国产在线国偷精品免费看 | 中文字幕人妻无码一夲道 | av片网站在线观看 | 欧美日本一区视频免费 | 国产激情久久久久老熟女亚洲 | 91精品一区二区三区蜜臀 | 一级黄色片久久 | 国产亚洲午夜 | 成年无码av动漫网站天堂网 | 伊人网在线视频 | 精品人妻系列无码天堂 | 天堂亚洲精品 | 九九在线播放 | 午夜裸体女人视频网站在线观看 | 九九视频免费在线 | 国产精品午夜一区 | 国产一区二区三区黄视频 | 亚洲AV无码久久三宫椿系列 | 99在线精品视频免费观看软件 | 日韩欧美国产视频 | 久草婷婷 |