添加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 显示结果
相关文档:
redhat9下安装VMware Tools
下面是安装步骤:
1.启动Rad Hat 9.0(图形界面方式登陆),并且以管理员的身份登陆。
2.在VMware虚拟机的菜单中点击:虚拟机->安装VMware 工具->install。
3.Red Hat 9.0自动挂载VMware Tools的虚拟光驱,并显示在桌面。
4.进去VMware Tools的虚拟光驱里,把VMwareTools-5.5.1-19175.tar ......
1、vi /etc/resolv.conf
增加以下内容:
nameserver DNSserver_ip_address1
nameserver
DNSserver_ip_address2
如下:
[root@REDHATAS5 /]# cat /etc/resolv.conf
nameserver 192.168.88.1
2、测试DNS是否生效
[root@Develop-Server ~]# nslookup www.baidu.com
Server: &nb ......
想知道到Linux分区方案的真相么,想知道Linux分区方案中藏有的内在奥义么,只有我来给大家全面讲解介绍Linux分区方案
最新Linux分区方案
我的服务器是500G。最重要的是/var分区一定要大(不论postfix邮件,还是LAMP的WEB 服务器等)。最好是400G以上。具体的/boot 只要100M就足够了。下面是我的分区方案:硬盘500G
服 ......
上一次用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 ......