Ìí¼ÓLinuxϵͳµ÷ÓÃ
¡¾ÊµÑé»·¾³¡¿
Fedora£¬ÄÚºË2.6.21.6
¡¾ÊµÑé²½Öè¡¿
1. cd /usr/src/linux
2. vi kernel/sys.c
ÔÚ×îºóÌí¼ÓÈçÏ´úÂ룺
asmlinkage long sys_processinfo(void)
{
int num=0;
unsigned long state;
struct task_struct *p;
for_each_process(p)
{
printk("pid=%-5d,name=%-20s",p->tgid,p->comm);
printk("prio=%-5d,",p->prio);
state=p->state;
if(state==-1)
printk("state: Z\n");
else if (state==1)
printk("state: R\n");
else printk("state: S\n");
num++;
}
return num;
}
ÉÏÊö´úÂëʵÏÖ±éÀúÕû¸öÈÎÎñÁÐ±í£¬²¢½«½ø³Ìid£¬name ¼°state ´òÓ¡ÔÚÆÁÄ»ÉÏ£¬·µ»Ø½ø³Ì×Ü
7
Êý¡£
3. vi arch/i386/kernel/syscall_table.S
ÔÚ×îºó¼ÓÈë .long sys_processinfo
4. vi include/asm/unistd.h
ÔÚÖмäÌí¼Ó #define __NR_process 322 ·ÖÅäϵͳµ÷ÓúÅ
½«ÏÂÃæ¸ÄΪ #define NR_syscalls 323
5. vi /usr/include/asm/unistd.h
ÔÚ×îºóÌí¼Ó #define __NR_process 322
6. ¿ªÊ¼ÖØÐ±àÒëÄÚºË
cd /usr/src/linux
make mrproper
make menuconfig
make
make modules_install
make install
reboot
7. ½øÈëÐÂÄںˣ¬±àд²âÊÔ³ÌÐòtest.c
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <asm/unistd.h>
#include <syscall.h>
int main()
{
syscall(322);
printf("the total number is: %d",syscall(322));
return 0;
}
8. gcc –o test test.c
9. ./test ÏÔʾ½á¹û
Ïà¹ØÎĵµ£º
Ò»)ANSI clockº¯Êý
1)¸ÅÊö:
clock º¯ÊýµÄ·µ»ØÖµÀàÐÍÊÇclock_t,Ëü³ýÒÔCLOCKS_PER_SECÀ´µÃ³öʱ¼ä,Ò»°ãÓÃÁ½´Îclockº¯ÊýÀ´¼ÆËã½ø³Ì×ÔÉíÔËÐеÄʱ¼ä.
ANSI clockÓÐÈý¸öÎÊÌâ:
1)Èç¹û³¬¹ýÒ»¸öСʱ,½«Òªµ¼ÖÂÒç³ö.
2)º¯ÊýclockûÓп¼ÂÇCPU±»×Ó½ø³ÌʹÓõÄÇé¿ö.
3)Ò²²»ÄÜÇø·ÖÓû§¿Õ¼äºÍÄں˿ռä.
ËùÒÔclockº¯ÊýÔÚlinuxϵͳÉϱäµÃ ......
Èç¹ûÄãºÜÏëÖªµÀÕû¸ö²Ù×÷ϵͳÄÚµÄÿ¸öĿ¼ÄÚ¶¼ÓÐЩʲô£¬Ö´ÐÐÃüÁ
cd / && tree >> ~/filesystem.tree
Õ⽫ÊÇÒ»¸ö¶à´ï8MµÄÎļþ£¬ÀïÃæ»áÃèÊöÕû¸öÎļþϵͳµÄĿ¼¼°ÆäÎļþ½á¹¹£¬ÏÖÔÚ¾ÍÕûÌå¶øÑÔÀ´¸ÅÊöһϣº
Ò»¼¶»ù±¾Ä¿Â¼½á¹¹£º
/
Îļþϵͳ¸ùĿ¼£¬Î»ÓÚÕû¸öÎļþϵͳµÄ×î¶¥¼¶
/boot
´æ·Å×ÅÆ ......
ÉÏÒ»´ÎÓÃlinuxÊÇ2002ÄêÓÃkdevelop¼°qt¿â¿ª·¢¶àýÌåÈí¼þ¡£
ʱ¸ô8ÄêÔÙÒ»´ÎÔÚlinuxϸ㿪·¢£¬ÒÀÈ»²ËÄñ£¬»¹ÊÇÉúÊè¡£
¸Ð¾õ×Ô¼ºµÄ´óÄԵĴ洢¿Õ¼ä£¬Ëæ×ÅÄêÁäµÄÔö¼ÓÔÚ±äС£¬ºÜ¶àŪ¹ýµÄ£¬ÓÖÖ»ÄÜ´ÓͷѧÆð¡£
²»¹ýÓо仰“»îµ½ÀÏ£¬Ñ§µ½ÀÏ”¹þ£¡
²ÑÀ¢£¬²ÑÀ¢¡£
1¡¢±àд¶¯Ì¬¿âµÄc++Îļþ
cvpnlib.cpp cv ......
¼ÌÐøÊáÀíÒÔǰѧϰµÄ֪ʶ£¬µ±³õѧϰ¡¶Linux and Open Source¡·Ê±ºòµÄ×÷Òµ£¬Äں˱àÒë¡£
¡¾ÊµÑé»·¾³¡¿
Fedora£¬ÄÚºË2.6.21.6
¡¾ÊµÑé²½Öè¡¿
Ò»¡¢ ±àÒëÄÚºË
1. ´Ówww.kernel.org ÏÂÔØÔ´´úÂë linux-2.6.21.6.tar.bz2 ÖÁ /usr/src
2. cd /usr/src £¬½øÈë/usr/src Ŀ¼
3. tar xvjf linux-2.6.21.6.tar.bz2 ½âѹԴÂë°ü
4. l ......