Ìí¼Ó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 ÏÔʾ½á¹û
Ïà¹ØÎĵµ£º
LinuxÄں˵÷ÊÔ
1 printk
[1] ʹÓ÷¶Î§
³ýÔÚϵͳÆô¶¯¹ý³ÌÖÐ,ÖÕ¶Ëδ³õʼ»¯Ö®Ç°, ÆäËûÈκÎʱºò,Èκεط½¶¼¿ÉÒÔµ÷ÓÃËü.
[2] ¼Ç¼µÈ¼¶
KERN_EMERG, KERN_ALERT, KERN_CRIT, KERN_ERR, KERN_WARNING, KERN_NOTICE, KERN_INFO, KERN_DEBUG.
Èô²»Ö¸¶¨¼Ç¼µÈ¼¶,º¯Êý»áÑ ......
ÏëÖªµÀµ½Linux·ÖÇø·½°¸µÄÕæÏàô£¬ÏëÖªµÀLinux·ÖÇø·½°¸ÖвØÓеÄÄÚÔÚ°ÂÒåô£¬Ö»ÓÐÎÒÀ´¸ø´ó¼ÒÈ«Ãæ½²½â½éÉÜLinux·ÖÇø·½°¸
×îÐÂLinux·ÖÇø·½°¸
ÎҵķþÎñÆ÷ÊÇ500G¡£×îÖØÒªµÄÊÇ/var·ÖÇøÒ»¶¨Òª´ó(²»ÂÛpostfixÓʼþ£¬»¹ÊÇLAMPµÄWEB ·þÎñÆ÷µÈ£©¡£×îºÃÊÇ400GÒÔÉÏ¡£¾ßÌåµÄ/boot Ö»Òª100M¾Í×ã¹»ÁË¡£ÏÂÃæÊÇÎҵķÖÇø·½°¸£ºÓ²ÅÌ500G
·þ ......
Linux ftpÃüÁîµÄ¹¦ÄÜÊÇÓÃÃüÁîµÄ·½Ê½À´¿ØÖÆÔÚ±¾µØ»úºÍÔ¶³Ì»úÖ®¼ä´«ËÍÎļþ
Linux ftpÃüÁîµÄÒ»°ã¸ñʽÈçÏ£º
$ ftp Ö÷»úÃû/IP
×î³£ÓõÄÃüÁîÓУº
ls ÁгöÔ¶³Ì»úµÄµ±Ç°Ä¿Â¼
cd ÔÚÔ¶³Ì»úÉϸı乤×÷Ŀ¼
lcd ÔÚ±¾µØ»úÉϸı乤×÷Ŀ¼
ascii ÉèÖÃÎļþ´«Ê䷽ʽΪASCIIģʽ ......