day10-内核实验项目概述与内核信号

news2024/12/24 1:15:47

1.在系统中什么是信号,都有什么信号

2.在系统接收到信号后,他是如何处理的

3.信号作用

信号处理流程:

_system_call:

          call _sys_call_table(,%eax,4)

                sys_signal

 sys_signal

int sys_signal(int signum, long handler, long restorer)
{
    //分配一个信号结构体
	struct sigaction tmp;
    //确定信号的范围
	if (signum<1 || signum>32 || signum==SIGKILL)
		return -1;
    //指定信号处理句柄
	tmp.sa_handler = (void (*)(int)) handler;
    //设置屏蔽码
	tmp.sa_mask = 0;
    //将该信号设置为执行一次就恢复
	tmp.sa_flags = SA_ONESHOT | SA_NOMASK;
    //保存回复函数指针
	tmp.sa_restorer = (void (*)(void)) restorer;
	handler = (long) current->sigaction[signum-1].sa_handler;
	current->sigaction[signum-1] = tmp;
	return handler;
}

do_signal函数

void do_signal(long signr,long eax, long ebx, long ecx, long edx,
	long fs, long es, long ds,
	long eip, long cs, long eflags,
	unsigned long * esp, long ss)
{
	unsigned long sa_handler;
	long old_eip=eip;
	struct sigaction * sa = current->sigaction + signr - 1;
	int longs;
	unsigned long * tmp_esp;

	sa_handler = (unsigned long) sa->sa_handler;

	/*
		mark #define SIG_DFL		((void (*)(int))0)	default signal handling 
		mark #define SIG_IGN		((void (*)(int))1)	ignore signal
	*/
	if (sa_handler==1)
		return;
	if (!sa_handler) {
		if (signr==SIGCHLD)
			return;
		else
			do_exit(1<<(signr-1));
	}
	if (sa->sa_flags & SA_ONESHOT)
		sa->sa_handler = NULL;
	*(&eip) = sa_handler;
	longs = (sa->sa_flags & SA_NOMASK)?7:8;
	*(&esp) -= longs;
	verify_area(esp,longs*4);
	tmp_esp=esp;
	put_fs_long((long) sa->sa_restorer,tmp_esp++);
	put_fs_long(signr,tmp_esp++);
	if (!(sa->sa_flags & SA_NOMASK))
		put_fs_long(current->blocked,tmp_esp++);
	put_fs_long(eax,tmp_esp++);
	put_fs_long(ecx,tmp_esp++);
	put_fs_long(edx,tmp_esp++);
	put_fs_long(eflags,tmp_esp++);
	put_fs_long(old_eip,tmp_esp++);
	current->blocked |= sa->sa_mask;
}

主要作用:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1180610.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

打造工业数字基础设施坚实底座,麒麟信安参展2023工业软件生态大会

11月5日&#xff0c;2023工业软件生态大会在深圳揭开帷幕。以“共建新一代工业软件体系&#xff0c;引领制造业高质量发展”为主题&#xff0c;本次大会邀请政府、高校、行业专家和企业代表齐聚一堂&#xff0c;展示工业全产业链前沿技术、创新产品和解决方案&#xff0c;围绕核…

零代码编程:用ChatGPT批量合并文件夹

一个文件夹里面有很多个子文件夹&#xff0c;其中一些是互相配对的&#xff0c;比如&#xff1a; 动物寓言王国_合作力量大 &#xff08;上&#xff09;国英语版 动物寓言王国_合作力量大 &#xff08;下&#xff09;国英语版 动物寓言王国-狮子与猎狗 &#xff08;上&#…

出现 Daemons using outdated libraries 的解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 使用apt安装某些包的时候,弹出如下界面: Daemons using outdated libraries的选择框 并问我需要重启的服务,which services should be restarted? 不知什么情况,选择esc之后,所安装的包并没有成功!于是深入剖析 2.…

falsk框架中安装flask-mysqldb报错解决方案

错误示例 我的是py37版本&#xff0c;无法直接安装flask-mysqldb pip install flask-mysqldb报错如下 解决方案 先去第三方库 https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient 下载mysqlclient 这个是我的版本 mysqlclient-1.4.6-cp37-cp37m-win_amd64.whl 下…

麒麟信安协办 | 2023工业控制系统产业大会隆重举办

11月3日&#xff0c;由中国高科技产业化研究会、湖南省科学技术协会、国防科技大学、湖南大学、中南大学共同主办&#xff0c;工业控制系统产业联盟、长沙经济技术开发区管委会等单位共同承办&#xff0c;麒麟信安等单位协办的“2023 工业控制系统产业大会”在长沙召开。此次会…

中创|多家AI大模型获批上线,“百模”大战已打响,掀起新一轮AI风暴!

9个AI大模型获批上线 “百模”大战已正式打响 拼算法、争数据、卷算力...... 大模型们到底该比拼什么&#xff1f; 它们将给生活和产业变革 带来哪些惊喜和挑战&#xff1f; 今年8月&#xff0c;8家大模型备案通过&#xff0c;百度、字节、智谱华章、商汤、中科院、百川智…

Mach Systems—总线接口转换工具

产品概述 在汽车研发过程中&#xff0c;需要大量的总线数据支持&#xff0c;总线转换工具可以将总线数据转换为我们计算机常见接口&#xff0c;达到总线监视、采集、仿真等目的。MACH SYSTEMS来自于捷克的一家公司&#xff0c;专注于嵌入式和车载网络转换&#xff0c;为LIN、S…

麒麟信安加入“工业操作系统创新伙伴计划”,并亮相2023第三届工控中国大会新品发布会

11月1日-3日&#xff0c;2023第三届工控中国大会在苏州太湖国际会议中心举办。本届大会以“生态链接 智控未来 筑基新型工业化”为主题&#xff0c;由中国电子信息产业发展研究院、中国工业经济联合会、国家智能制造专家委员会、国家产业基础专家委员会、江苏省工业和信息化厅、…

【23真题】易!题源全部定位!带讲解!

今天分享的是23年长春理工大学808的信号与系统试题及解析。 本套试卷难度分析&#xff1a;22年长春理工808考研真题&#xff0c;我也发布过&#xff0c;若有需要&#xff0c;戳这里自取&#xff01;本套试题内容难度中等偏下&#xff0c;题量较少&#xff0c;没有选择填空题&a…

基于FPGA的模板匹配红外目标跟踪算法设计

为什么要写这篇文章 我写这篇文章的原因是一天在B站看到了一个大神发的视频是关于跟踪一个无人机的&#xff0c;看到作者跟网友的回复说是用的图像匹配算法&#xff0c;我就在网上搜索相关资料&#xff0c;最终找到一篇文献。文献中对该算法的评价很高&#xff0c;满足制导系统…

React进阶之路(一)-- JSX基础、组件基础

文章目录 React介绍React开发环境搭建项目目录说明以及相关调整 JSX基础JSX介绍JSX中使用js表达式JSX列表渲染JSX条件渲染JSX样式处理JSX注意事项 组件基础组件的概念函数组件类组件事件绑定如何绑定事件获取事件对象传递额外参数 组件状态状态不可变表单处理受控表单组件非受控…

structure needs cleaning结构需要清理

以Centos7&#xff0c;xfs文件系统为例进行验证&#xff0c;理论适用于其他 在使用rm命令执行删除/root下某个文件时提示rm无法删除&#xff0c;structure needs cleaning&#xff08;即结构需要清理&#xff09; 在网上搜索一下&#xff0c;你会发现千篇一律的卸载磁盘挂载&…

小程序+spring boot疫起买菜平台99212-计算机毕业设计项目选题推荐(附源码)

摘 要 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;疫起买菜平台小程序被用户普遍使用&#xff0c;为方便用户…

「Verilog学习笔记」求两个数的差值

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 timescale 1ns/1ns module data_minus(input clk,input rst_n,input [7:0]a,input [7:0]b,output reg [8:0]c );always (posedge clk or negedge rst_n) begin if (~rst_…

16、Python的常用标准库介绍

文章目录 Python被誉为“胶水语言”,这在很大程度上归功于其庞大而全面的标准库。标准库是一组预先打包的、可直接使用的模块集合,无需安装额外的包即可使用。这些库跨越了编程的各个领域,几乎每个Python开发者都会在他们的编程生涯中用到它们。这篇文章将介绍50个常用的Pyt…

爆火的正规号卡推广分销 流量卡分销代理平台

正规号卡推广和流量卡分销代理可以通过“聚量推客”申请 聚量推客上的号卡单价高 数据及时 结算快&#xff0c;你还可以搭配平台上的拉新产品各种推广场景&#xff0c;更值得拥有哦

【T690 之十二】基于方寸EVB2开发板(T690芯片)构建基于GMSSL的文件系统的方式

备注&#xff1a; 1&#xff0c;假设您已对方寸微电子的T690系列芯片的使用方式都有了一定的了解&#xff0c;然后需要构建基于GMSSL的文件系统&#xff0c;此文才对您有意义&#xff1b; 2&#xff0c;若您对方寸微电子的T690芯片不了解&#xff0c;但想进一步了解它&#xff…

Modbus入门

Modbus入门 ModbusModbus模拟工具模拟工具使用配置Slave配置Poll C#使用ModBus通讯 Modbus modbus使用范围广泛&#xff0c;广泛应用于各类仪表&#xff0c;PLC等。它属于应用层协议&#xff0c;底层硬件基于485/以太网。 Modbus的存储区有&#xff1a;输入线圈&#xff08;布尔…

[Day1]工业网络智能控制:三层交换机与防火墙

基础知识点 什么是内网? 内网就是我们平常说的局域网。局域网就是在固定的一个地理区域内由2台以上的电脑用网线和其他网络设备搭建而成的一个封闭的计算机组。它可以是邻居之间的2台电脑&#xff0c;也可以是一幢100层大楼里的1000台电脑。局域网可以是独立封闭运行的&…

CSS 显示、定位、布局、浮动

一、CSS 显示&#xff1a; CSS display属性设置元素应如何显示&#xff1b;CSS visibility属性指定元素应可见还是隐藏。隐藏元素可以通过display属性设置为“none”&#xff0c;也可以通过visibility属性设置为“hidden”。两者的区别&#xff1a;visibility:hidden可以隐藏某…