当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]系统调用是应用程序和操作系统内核之间的功能接口。其主要目的是使得用户可以使用操作系统提供的有关设备管理、输入/输入系统、文件系统和进程控制、通信以及存储管理等方面的功能,而不必了解系统程序的内部结构和有关硬件细节,从而起到减轻用户负担和保护系统以及提高资源利用率的作用。

一、源码修改

1下载一个与所用系统内核版本接近的内核,放在/usr/src下,解压,作个链接ln -s linux-2.6.18.1 linux

2修改:修改三个地方

1)/usr/src/linux/kerner/sys.c中添加,

asmlinkage int sys_mysyscall(int a)

{

return a;

}

2)定义系统调用号,/usr/src/linux/include/asm-i386/unistd.h

#define _NR_sysmycall 318 //不能与前面已有的重复

#define _NR_syscalls 319//修改系统中所用系统调用数目

3)在系统调用向量表里添加自定义的系统调用函数入口位置,

/usr/src/linux/arch/i386/kernel/syscall_table.S,以前老版本是entry.s

.long sys_mysyscall

二、内核编译

1.在/boot下复制配置文件,到/usr/src/linux下,改名位config,make menuconfig,可以不用修改,直接退出

2.make clean 清空以前的编译痕迹

3.make,编译出来的是bzImage

4.make modules,make modules-install//编译、安装config里配置的模块

如不执行次步骤,对于有的系统,制作不了initrd文件。系统就启动不了

5.如果直接make install,系统会自动制作initrd文件,并复制initrd和bzimage文件到/boot下,修改grub.conf文件,重启系统,选择进入新内核

6.不使用make install命令。复制bzImage到/boot下,改名位vmlinuz-2.6.18.1,手工制作initrd文件,/mkinitrd initrd-2.6.18.1.img 2.6.18.1,initrd文件名位initrd-2.6.18.1

7.修改grub.conf文件,复制原来已有的启动设置,把title和kernel和initrd改名为新制作的即可

三、编写代码测试

int main(void)

{

int a=syscall(318,100);//318是系统调用号,100是参数

printf("%d\n",a);

return 0;

}

syscall是内核提供为用户程序的一个函数,

如果不使用syscall函数,也可以使用宏定义,但是在2.6.20以后的版本里,没有宏定义,需要自己从其他版本里复制过来添加。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

美国旧金山和中国苏州2026年2月8日 /美通社/ -- 信达生物制药集团(香港联交所股票代码:01801),一家致力于研发、生产和销售肿瘤、自身免疫、代谢、眼科等重大疾病领域创新药物的生物制药公司,宣布与礼来制药达成战...

关键字: COM 代码 创始人 控制

香港2026年2月4日 /美通社/ -- 华钦科技集团(纳斯达克代码:CLPS,以下简称"华钦科技"或"集团")今日宣布其董事会已通过一项集团股份回购计划的决议。该决议声明,当集团股价低于每股2美元时,集团可在公开市场上...

关键字: PS BSP 代码 纳斯达克

在Linux系统中,动态库(共享库)是程序运行的重要组成部分。当程序需要调用动态库时,系统必须能够找到这些库文件的位置。

关键字: 动态库 Linux

ATYM是一个轻量级的运行时,用于在Linux边缘设备(如树莓派)上运行WebAssembly应用程序。ATYM不是在系统上部署大型Docker映像或直接运行本机二进制文件,而是运行小型的沙盒程序,这些程序启动速度快,使...

关键字: 树莓派 ATYM Linux 内存

在计算机网络中,端口映射(Port Forwarding)是一项关键的技术,它允许外部网络通过特定端口访问内部网络中的服务。这种技术广泛应用于家庭网络、企业环境以及云计算场景,是实现远程访问、游戏服务器搭建、FTP共享等...

关键字: Linux Windows

在数字世界的底层,操作系统内核如同城市的基础设施,决定了系统的效率、安全性和扩展性。Linux 内核与 Windows 内核代表了两种截然不同的设计哲学:前者是开源社区的集体智慧结晶,强调灵活性与可定制性;后者是商业公司...

关键字: Linux Windows

在本节中使用了列0的SHIM DMA(0,0), MEM Tile(0,1)和Core(0,2)。存储在L3存储器上的一组预定义数据流进入NPU复合体。数据通过MEM内存从SHM DMA路由到Core,然后路由回来。接收...

关键字: L3内存 存储器 Linux

在物联网(IoT),MQTT协议凭借其轻量级、低功耗和发布/订阅模式的优势,已成为设备间通信的核心纽带。然而,当开发者需要在Windows、Linux或macOS上搭建MQTT服务器时,操作系统的底层差异会直接影响部署效...

关键字: MQTT Windows Linux macOS

在数字化浪潮席卷全球的今天,软件开发曾长期被专业编程技能垄断,成为普通人难以触及的“技术高地”。传统开发模式下,一行行代码的编写、复杂逻辑的调试、系统漏洞的排查,不仅需要长期专业积累,更让无数怀揣创意的人望而却步。然而,...

关键字: 软件开发 智能算法 AI

香港2025年12月11日 /美通社/ -- 诺亚控股有限公司(Noah Holdings Limited,以下简称"诺亚"或"公司",纽交所代码:NOAH,港交所代码:6686)...

关键字: AI 代码 AN 操作系统
关闭