添加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 显示结果
相关文档:
总览
用iptables -ADC 来指定链的规
则
,-A添加 -D删除 -C 修改
iptables - [RI] chain rule num rule-specification[option]
用iptables - RI 通过规则的顺序指定
iptables -D chain rule num[option]
删除指定规则
iptables -[LFZ] [chain][option]
用iptables -LFZ 链名 [选项]
iptables -[NX] chain
用 -NX ......
linux/unix下没有WaitforMultipleObjects,也没有类似的API,同样基于BSD Unix内核的Mac OS 也没有相似功能的函数,这是大家都知道并且郁闷的。如果要将一个多线程程序从windows下移植到使用Posix多线程的系统下,最好先在心中默念十遍“no have WaitforMultipleObjects... ...”然后只能看你的RP如何尿娃.
......
Linux环境进程间通信(五): 共享内存(下)
文档选项
打印本页
将此页作为电子邮件发送
级别: 初级
郑彦兴 (mlinux@163.com), 国防科大攻读博士学位
2003 年 5 月 01 日
在共享内存(上)中,主要围绕着系统调用mmap()进行讨论的,本部分将讨论系统V共享内存,并通过实验结果对比来阐述两者的异同。系 ......
想知道到Linux分区方案的真相么,想知道Linux分区方案中藏有的内在奥义么,只有我来给大家全面讲解介绍Linux分区方案
最新Linux分区方案
我的服务器是500G。最重要的是/var分区一定要大(不论postfix邮件,还是LAMP的WEB 服务器等)。最好是400G以上。具体的/boot 只要100M就足够了。下面是我的分区方案:硬盘500G
服 ......
上一次用linux是2002年用kdevelop及qt库开发多媒体软件。
时隔8年再一次在linux下搞开发,依然菜鸟,还是生疏。
感觉自己的大脑的存储空间,随着年龄的增加在变小,很多弄过的,又只能从头学起。
不过有句话“活到老,学到老”哈!
惭愧,惭愧。
1、编写动态库的c++文件
cvpnlib.cpp cv ......