一.前置知识 正常触发系统调?时,?户态通过syscall指令触发系统调?, 跳转到系统调???的汇编代码。syscall指令触发entry_SYSCALL_64并以sysret或iret返回系统调? 系统调?陷?内核态,从?户态堆栈转换到内核态堆栈,然后把相应的CPU关键的现场栈顶寄存器、指令指针 ...
分类:
系统相关 时间:
2020-06-13 23:26:02
阅读次数:
87
一、以fork和execve系统调用为例分析中断上下文的切换 1.fork系统调用 fork系统调用可以建立一个新进程,把当前的进程分为父进程和子进程,新进程称为子进程,而原进程称为父进程。fork调用一次,返回两次,这两个返回分别带回它们各自的返回值,其中在父进程中的返回值是子进程的PID,而子进 ...
分类:
系统相关 时间:
2020-06-13 21:19:48
阅读次数:
76
Synchronized关键字可以用来修饰方法或者代码块。对于同步方法,JVM 采用 ACC_SYNCHRONIZED 标记符来实现同步。 对于同步代码块。JVM 采用 monitorenter、monitorexit 两个指令来实现同步。 在JDK1.6之后对对synchronized锁进行了升级 ...
分类:
其他好文 时间:
2020-06-13 19:33:47
阅读次数:
219
一、fork系统调用 fork系统调用用于创建一个新进程,称为子进程,它与进程(称为系统调用fork的进程)同时运行,此进程称为父进程。创建新的子进程后,两个进程将执行fork()系统调用之后的下一条指令。子进程使用相同的pc(程序计数器),相同的CPU寄存器,在父进程中使用的相同打开文件。调用fo ...
分类:
系统相关 时间:
2020-06-13 19:06:04
阅读次数:
68
1,预处理指令(预处理指令提供按条件跳过源文件中的节、报告错误和警告条件,以及描绘源代码的不同区域的能力。) #include<stdio.h> 包含 #include<stdio.h> 到配置目录找; #include “stdio.h”,从当前目录找,无则从配置目录找。 #define (宏定义 ...
分类:
其他好文 时间:
2020-06-13 12:57:28
阅读次数:
68
1. 打开命令行; 2. 输入如下指令(确保数据库是开着的,下面的数据库名称和集合名称以及域的名称可以根据需求修改) mongoexport -d myDB -c user -f _id,name,password,adress --csv -o ./user.csv 3. 说明: mongoexp ...
分类:
数据库 时间:
2020-06-13 12:37:35
阅读次数:
69
crontab系统自带的调度命令,通过crontab命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。 crontab服务的重启关闭,开启 $sudo /et ...
分类:
其他好文 时间:
2020-06-13 11:28:34
阅读次数:
78
OllyDbg https://www.cnblogs.com/onepixel/p/7468343.html 优缺点 Big-Endian 优点:靠首先提取高位字节,你总是可以由看看在偏移位置为0的字节来确定这个数字是正数还是负数。你不必知道这个数值有多长,或者你也不必过一些字节来看这个数值是否含 ...
分类:
其他好文 时间:
2020-06-13 11:00:51
阅读次数:
199
计算机通常只有一个 CPU,在任意时刻只能执行一条机器指令,每个线程只有获得 CPU 的使用权才能执行指令.所谓多线程的并发运行,其实是指从宏观上看,各个线 程轮流获得 CPU 的使用权,分别执行各自的任务.在运行池中,会有多个处于就绪状 态的线程在等待 CPU,JAVA 虚拟机的一项任务就是负责线 ...
分类:
编程语言 时间:
2020-06-13 10:26:15
阅读次数:
73
段寄存器 8086 CPU有四个段寄存器: CS, DS, SS, ES 段寄存器用来提供段地址 CS和IP CS: 代码段寄存器 IP: 指令指针寄存器 修改CS,IP: jmp 段地址:偏移地址 仅修改IP的内容: jmp 某一合法寄存器 jmp ax 用ax中的值修改IP 下面的3条指令执行后 ...
分类:
编程语言 时间:
2020-06-13 00:33:38
阅读次数:
78