首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Linux的signal信号机制

将父进程暂停下来,等待SIGUSR1信号到来 pause(); //将父进程暂停下来,等待SIGCHLD信号到来 printf("------此时程序会停下来等待,请按ctrl...------此时程序会停下来等待,请按ctrl+c送出SIGINT信号------- 已经接收到了SIGINT信号,程序将退出!...缺省情况该Signal会被忽略 SIGCONT 当被stop的进程恢复运行的时候,自动发送 SIGEMT 和实现相关的硬件异常 SIGFPE 数学相关的异常,如被0除,浮点溢出,等等 SIGFREEZE...中国) http://www.linux-cn.com/html/linux/system/20070505/27605.shtml Linux 信号signal处理函数(CSDN) http://blog.csdn.net.../Sunboy_2050/archive/2010/10/16/5945535.aspx Linux 信号signal处理机制(CSDN) http://blog.csdn.net/Sunboy_2050

3.9K20

Linux进程机制】从一道面试题谈linuxfork的运行机制

今天一位朋友去一个不错的外企面试linux开发职位,面试官出了一个如下的题目: 给出如下C程序,在linux使用gcc编译: 1 #include "stdio.h" 2 3 #include...明显这道题的目的是考察linuxfork的执行机制。下面我们通过分析这个题目,谈谈linuxfork的运行机制。...预备知识       这里先列出一些必要的预备知识,对linux进程机制比较熟悉的朋友可以略过。       1、进程可以看做程序的一次执行过程。在linux,每个进程有唯一的PID标识进程。...解这个题的关键,一是要对linux进程的机制有一定认识,二是抓住上文提到的几个关于fork的关键点。...希望本文能帮助朋友们对fork的执行机制有一个明晰的认识。

98921

浅谈 Linux的零拷贝机制

本文主要讨论的就是该方式的零拷贝机制。...③ copy-on-write(写时复制技术):在某些情况Linux操作系统的内核空间缓冲区可能被多个应用程序所共享,操作系统有可能会将用户空间缓冲区地址映射到内核空间缓存区中。...注意,对于各种零拷贝机制是否能够实现都是依赖于操作系统底层是否提供相应的支持。...传统I/O产生了2次无用的CPU拷贝,即内核空间缓存中数据与用户空间缓冲区间数据的拷贝;而sendfile最多只产出了一次CPU拷贝,即内核空间内之间的数据拷贝,甚至在底层操作体系支持的情况,sendfile...后记 本文是通过视频学习以及大量资料查询后对零拷贝机制进行的一个非常肤浅的知识梳理,至少个人是这么觉得。

2.3K81

Linux,使用nm命令输出可执行文件的符号表

可执行文件的符号表(symbol table)记录了某个可执行文件中的函数名、全局变量、宏定义等符号信息,这些信息对于我们调试十分重要。...目前,我正在DragonOS上开发内核栈traceback程序,因此需要导出内核文件的符号表.这个时候就需要用到Linux的nm命令。...nm命令属于GNU binutils的功能,能够输出可执行文件的符号表。它的用法是这样的: 用法:nm [选项] [文件] 列举 [文件] 中的符号 (默认为 a.out)。...对于不记录符号大小的目标文件格式,此选项不起作用,除非使用了--size sort,在这种情况,将显示计算的大小 -s, --print-armap 当列出库中成员的符号时,同时列出索引。...只有在启用插件支持的情况构建了工具链时,此选项才可用 --size-sort 按符号大小排列 --special-syms 显示目标相关的具体特殊含义的符号。

2.3K30

linux机制

参考: 浅谈 Linux的零拷贝机制 TCP TCP的TIME_WAIT有两个作用: 防止前一个TCP连接的残留数据(在序列号恰好正确的情况)进入后续的TCP连接中 防止TCP挥手过程发出去的最后一个...默认情况,每个网卡都会分配一个pfifo_fast类型的QDisc 。 第二个是与QDisc紧密相关的class。独立的QDisc 可能会实现class来处理其不同的流量。...可以看到reno算法在发生拥塞避免时不会将cwnd变为1,这样提高了传输效率,快速重传和快速恢复机制也有利于更快探测到拥塞。 ?...下面2张图,第一张为reno算法的拥塞避免,第二张为cubic算法的拥塞避免,可以看到cubic的拥塞窗口逼近速度更快 ? ?...为了方式这种情况导致创建和传输大量符合MTU要求的报文,Linux实现了TSO,USO和GSO,参见下面描述 In order to avoid the overhead associated with

2.6K40

工具分享|分享几个在线SQL可执行网站(

今天请务必打开你沉甸甸的收藏重新回顾,分享一那些曾让你拍案叫绝的好东西吧!...我百度了,看了大家都在使用什么工具,再看看我的收藏夹,存放了什么工具。...下面跟我一起来分享吧在线SQL执行 1.6 tutorialspointtutorialspoint 是一个教程网站,单是在数据库方面,它就提供了将近 30 种数据库的教程,并且还提供 SQL 模拟器给我们做练习...尽管以上诸多警告,如果你仍决定在生产环境使用db4free.net数据库,所有风险将由您自行承担。(强烈建议定时备份)随时可能发生数据丢失及损坏。...(没有文件上传机制)此外:db4free.net 所提供的服务仅供测试,不提供运行正式网站。我们将不定时清空超过200MB的资料库,而不另行通知。

57230

linux的缓存机制及清理buffercacheswap的方法梳理

1)缓存机制介绍 在Linux系统中,为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先去缓存区找是否有请求的数据,有就直接返回,如果没有则通过驱动程序直接操作磁盘...缓存机制优点:减少系统调用次数,降低CPU上下文切换和磁盘访问频率。...因为有了缓存机制,具体算法如下: 空闲内存=free(141)+buffers(74)+cached(6897) 已用内存=total(7866)-空闲内存 由此算出空闲内存是7112M,已用内存754M...-- 上面操作在大多数情况都不会对系统造成伤害,只会有助于释放不用的内存。...因此,这里不得不提一/proc/sys/vm/vfs_cache_pressure这个文件,告诉内核,当清理inoe/dentry缓存时应该用什么样的优先级。

4.7K80

Linux保护机制

RELRO(RELocation Read Only) 在Linux中有两种RELRO模式:Partial RELRO 和 Full RELRO。Linux中Partical RELRO默认开启。...NX(windows中得DEP) NX:No-eXecute DEP:Data Execute Prevention 也就是数据不可执行,防止因为程序运行出现溢出而使得攻击者的shellcode可能会在数据区尝试执行的情况...GCC默认开启(可选项如下) gcc -o test test.c // 默认情况,开启NX保护 gcc -z execstack -o test test.c // 禁用NX保护 gcc...ret2gets、ret2syscall) gadget:virtualprotect、jmp esp、mona.py PIE(ASLR) PIE:Position-Independent Excutable 可执行程序得基址随机...一般进程也会加载没有随机化的模块,可以找到JMP ESP指令的跳板直接调用) 替换EIP一部分(找到没有随机化的模块然后使用利息泄漏确定EIP的位置,再算出模块的基地址,最后算出要跳的函数地址) NOP喷射(DEP没开的情况

5.1K00

linux装载和启动可执行程序的过程

罗军 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 基础知识 编译程序的过程 预处理...) 通过调用链接器ld来链接程序运行需要的一大堆目标文件,以及所依赖的其它库文件,最后生成可执行文件 静态链接和动态链接 静态链接是指在编译阶段直接把静态库加入到可执行文件中去,这样可执行文件会比较大。...在编译链接时,链接器并不能控制执行从一个可执行文件或者共享文件中转移到另一个中(这时候函数的地址还不能确定),因此,链接器将控制转移到PLT中的某一项。...在实际的可执行程序或者共享目标文件中,GOT表在名称为.got.plt的section中,PLT表在名称为.plt的section中。   ELF文件符号动态解析的过程 ?   ...load_elf_binary代码 load_elf_binary(struct linux_binprm *bprm) { …… if(elf_interpreter) //使用动态链接

3K40

Linux系统创建可执行文件软链接

这里我们使用的案例是通过TMalign这个蛋白质打分文件,在编译好可执行文件之后,可以使用建立软链接的方法快捷的使用该可执行文件。...Mac可能需要去掉static): $ g++ -static -O3 -ffast-math -lm -o TMalign TMalign.cpp 编译之后就会在当前路径下生成一个名为TMalign的可执行文件...,有时候会遇到想把可执行文件放在特定的路径的问题,比如放到/usr/bin目录下,这样可以全局可调用,又不需要手动添加各种乱七八糟的系统路径。...这就需要使用到Linux中的软链接的功能,通常使用ln -s的指令即可。...本文顺带介绍了蛋白质结构评分软件TMalign的源码下载和安装使用的基本方法,编译成一个可执行文件后,可以建立一个软链接,在系统各处都可以使用,是一个比较基础的操作。

2.8K20

Linux缓存机制bufferscached

缓存机制Linux引入了buffers和 cached机制,buffers与cached都是内存操作,用来保存系统曾经打开过的文件以及文件元数据,这样当操作系统需要读取某些文件时,首先在buffers...为了方便查找文件,linux引入目录项(dentry)描述目录与文件的关系树,Linux为每一个目录建立一个目录项,也为每个文件建立一个目录项。...根据Linux虚拟内存管理机制,这种行为是正常的。要理解为什么缓存会变得如此之高,以及为什么这不是一个问题,就必须了解I/O在Linux上是如何工作的。...系统在内存使用达到一定阀值的情况会自动启动回收机制回收buffer/cached,也可以进行手动的buffer/cached回收,由于buffer/cache主要是用于文件的读写使用,所以进行文件回收时...从Linux缓存机制来说,buffers和cached都是系统可用内存,通常情况看到bufferes和cached占用内存多,这是一个正常现象,它不是一个问题,所以在看到物理内存快要耗尽时,不要惊慌,

4.7K10

linux epoll机制详解

linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。在linux新的内核中,有了一种替换它的机制,就是epoll。...epoll IO多路复用模型实现机制 由于epoll的实现机制与select/poll机制完全不同,上面所说的 select的缺点在epoll上不复存在。...epoll实现机制 当某一进程调用epoll_create方法时,Linux内核会创建一个eventpoll结构体,这个结构体中有两个成员与epoll的使用方式密切相关。...当创建好epoll句柄后,它就是会占用一个fd值,在linux如果查看/proc/进程id/fd/,是能够看到这个fd的,所以在使用完epoll后,必须调用close()关闭,否则可能导致fd被耗尽。...总结 以上就是本文关于linux epoll机制详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

3.7K34
领券