1、下载一个Linux内核源代码文件,将它保存到虚拟机上新安装的系统中去。并解压到/usr/src目录。
2、修改/usr/src/linux-2.6.36/kernel/sys.c文件,在文件末尾增加一个系统调用函数。自行编写一个简单的程序即可,只为测试用。
3、修改/usr/src/linux-2.6.36/arch/x86/kernel/syscall_table_32.S,为新添加的程序配置系统调用号。
4、在/usr/src/linux-2.6.36/arch/x86/include/asm/unistd_32.h中配置系统调用表。
5、首先配置编译信息,使其生成适合当前机器的Makefile,输入make oldconf ig。
6、按回车键进入我们编译的目标内核中,用关键词搜索查看新增加的系统调用“my call”是否已在内核中。
服务器添加永久静态路由
一、Linux添加永久静态路由
方法一:修改 rc.local 配置文件
范围:测试 Ubuntu 14.04、centos 6.4、debian 8.1、redhat 6.4 系统可用
使用方法:
向 linux 系统的 /etc/rc.local文件中添加命令route add -net 192.168.2.0/24 gw 192.168.2.254(服务器的默认路由为192.168.2.254),或者添加命令route add -net 192.168.3.0/24 dev eth0,前者是依赖默认路由进行数据的转发,后者是依赖网卡接口进行数据的转发
reboot重启系统命令生效
用 route -n 命令查看命令是否已经生效
方法二:修改 static-routes 配置文件
范围:测试 centos 6.4、redhat 6.4 系统可用
使用方法(此方法比 rc.local 方法实用,能保证网络链路的通畅):
向系统的 /etc/sysconfig/static-routes 文件(如果系统没有此文件,可以新建此文件)中添加命令 any net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.254(服务器的默认路由为192.168.2.254),或者添加命令 any net 192.168.2.0 netmask 255.255.255.0 dev eth0, 前者是依赖默认路由进行数据的转发,后者是依赖网卡接口进行数据的转发
service network restart 命令重启网络服务
用 route -n 命令查看命令是否已经生效
方法三:修改 interface 配置文件
范围:测试 debian 8.1、Ubuntu 14.04 系统可用
使用方法:
向系统的 /etc/network/interface 文件中添加命令 up route add -net 192.168.2.0/24 gw 192.168.2.254(服务器的默认路由为192.168.2.254),或者添加命令 up route add -net 192.168.3.0/24 dev eth0,前者是依赖默认路由进行数据的转发,后者是依赖网卡接口进行数据的转发
reboot 重启系统命令生效
用 route -n 命令查看命令是否已经生效
注 1:(引用网上内容)如果在 rc.local中添加路由会造成NFS无法自动挂载问题,所以使用 static-routes 的方法是最好的。无论重启系统和 service network restart 都会生效,按照linux启动的顺序,rc.local 里面的内容是在linux所有服务都启动完毕,最后才被执行的,也就是说,这里面的内容是在netfs之后才被执行的,那也就是说在netfs启动的时候,服务器上的静态路由是没有被添加的,所以netfs挂载不能成功。
注 2:以上添加命令可以通过 linux 命令 sed -i ‘2i route add -net 192.168.2.0/24 gw 192.168.2.254’ + 文件路径 命令向相应的文件的第二行添加命令或者用 echo route add -net 192.168.2.0/24 gw 192.168.2.254 >>文件路径向文件的末尾添加命令
Ubuntux系统可以修改vim /etc/NetworkManager/system-connections/Wired\ connection\ 3
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)