当前位置:Linux教程 - Linux资讯 - Linux Kernel 2.6 核心线程尝鲜

Linux Kernel 2.6 核心线程尝鲜

  (1)安装redhat9.0,如果你能够把glibc更新到2.3,其他老版本的rh也可以. (2)到kernel.org下载最新的kernel 2.6.0-test4 (3)编译内核,2.6内核编译命令变化不大,只是不用make dep了,而且屏幕显示也简捷了好多: # make menUConfig # make # make modules_install # make install 这样就可以了 然后运行lilo (4)2.6内核的module改变很大,所以要安装更新过的modutils,否则lsmod/modprobe都不能用了 地址: FTP://ftp.kernel.org/pub/Linux/kernel/peo.../rusty/modules/ 我是拉了个src rpm, #rpmbuild --rebuild modutils-xxx-.src.rpm 然后到/usr/src/redhat/RPMS/i386下面去找哪个rpm文件升级就可以. (5)重新起动~~,选择新的内核 开始祈祷~~念 "剥落菠萝密" 100遍就够了. (6)看看起动的时候有什么错误,因地制宜的解决之~~~一般多是模块问题,我为了偷懒,重要的模块都编译到核心了. (7)现在你的rpm可能用不来了,没关系,在运行rpm之前 eXPort LD_ASSUME_KERNEL=2.2.5 就可以了.也可以加入/etc/profile,一劳永逸. (8)接下来转换/etc/modules.conf文件了 generate-modprobe.conf /etc/modprobe.conf (基本没用,如果你都编译到核心了的话) (9)创建Sysfs,抄袭自老外的,基本也是可有可无,因为偶还不知道Sysfs是什么di干活~~~. Sysfs file system Step 1: Create Directory /sys. Step 2: Where it says: mount -f /proc in /etc/rc.sysinit, add: mount -f /sys on the next line. Step 3: Where it says: action $"Mounting proc filesystem: " mount -n -t proc /proc /proc in /etc/rc.sysinit, add: action $"Mounting sysfs filesystem: " mount -n -t sysfs /sys /sys on the next line. Step 4: Add: none /sys sysfs defaults 0 0 to /etc/fstab. Step 5: In function halt_get_remaining in file /etc/init.d/halt, change awk '$2 ~ /^\/$^\/proc^\/dev/{next} into awk '$2 ~ /^\/$^\/proc^\/sys^\/dev/{next} (10)tmd辛辛苦苦做这么多干什么?用kernel2.6的核心线程支持功能!! 赶快写个程序测试一把~~ [myPHP] #include <stdio.h> #include <pthread.h> void task(void* p){ // ?while(true){ int i; for(i = 0;i <100;i ++){ ?sleep(2); ?printf("Thread running!\n"); ?} } int main(){ #define THREAD_COUNT 100 ?pthread_t thread[THREAD_COUNT];
[1] [2] 下一页 

?int i; ?for(i = 0;i < THREAD_COUNT;i++){ ? ?if(pthread_create(&thread[i],NULL,task,NULL) != 0){ ? ? ?fprintf(stderr,"Thread[%d] create failed!\n",i); ? ?} ?} ?for(i=0;i<THREAD_COUNT;i++){ ? ?if(pthread_join(thread[i],NULL)!=0) ? ? ?fprintf(stderr,"Thread[%d] Join Error\n", i); ? ?else{ ? ? ?fprintf(stdout,"Thread[%d] exited ok!\n",i); ? ?} ?} ?return 0; } [/myphp] 编译: gcc testThread.c -lpthread -Wall -o testThread 运行: ./testThread 测试: ps aux grep testThread 应该只有一个process ps -Am 应该显示一大堆thread!!!! 现在总算可疑用上真正的核心线程喽~~~~ 赶快编译apache,用worker模块好爽啊~~~~ (10.5) 如果你要编译其他的程序,记得改动/usr/include/linux # cd /usr/include # mv linux linux.orig # ln -s /usr/src/linux/include/linux linux 否则apache什么的编译了,运行会出错 (11)顺便说一下,用2.6核心跑xwindow顺畅多了,为什么??kernel2.6支持竞争式的进程调度规则了!!就是说,有点象windows了. 这个功能可以在编译内核的时候选择的. (12) 等其他人来补充~~~

(出处:http://www.sheup.com)


上一页 [1] [2] 

(出处:http://www.sheup.com/)


上一页 [1] [2] [3]