- 博客(9)
- 收藏
- 关注
原创 KVM/QEMU2.3.0 虚拟机动态迁移分析(一)
1 迁移源端QEMUmigrate命令 –> hmp_migrate –> qmp_migrate –> qemu_savevm_state_blocked判断当前虚拟机状态适不适合迁移 –> migrate_init迁移初始化 –> 根据uri来选择迁移函数,如表1所示。 Uri 跳转函数 Tcp: tcp_start_outgoi...
2018-07-27 12:20:27 4707 3
原创 高精度整数加法、减法与乘法
1 大数加法#include<stdio.h>#include<string.h>int judge(char *num){ char *p = num; int c = 0; while(*(p + c)){ if(*(p + c) < '0' || *(p + c) > '
2018-07-20 16:03:15 2411
原创 从程序员角度来看ELF文件(二)
接上篇从程序员角度来看ELF文件 5 GCC、GNU链接器和Linux对于ELF的支持5.1 共享C库文件首先使用gcc -fPIC -O -c libbar.c来生成位置无关的中间代码,然后使用gcc -shared -o libbar.so libbar.o来根据上述位置无关的代码生成共享链接库。 使用共享链接库的方式如下: # gcc -O -c baz.c ...
2018-07-09 10:05:56 2394
原创 linux线程栈与进程栈
1 线程使用方法pthread_create用于创建一个线程,pthread_join用于等待线程执行完毕,简单应用如下:#include<stdio.h>#include<pthread.h>#include&
2018-07-07 17:09:00 3674
原创 malloc()函数有始有终
1 malloc()malloc()函数是申请一块堆区内存的常用函数,简单应用如下:#include<stdio.h>#include<stdlib.h>int main(int argc, char *argv[]){ char *test = (char *)malloc(100); te
2018-07-05 19:43:10 2754
原创 fork()之父子进程页表权限的设置
1 fork()系统调用fork()系统调用用来生成子进程,而现有Linux系统运行在写时拷贝的机制下,于是fork()函数在为子进程建立内核中各种管理结构的时候,并没有将真实的物理资源分配给子进程,而只是将父进程的物理资源共享给子进程,比如:fork()函数会将父进程的物理内存共享给子进程,即将父进程多级页表的内容复制到子进程新建立的多级页表中。然而在这种机制下,对于父进程中那些原本可读可写...
2018-07-05 15:02:57 3873
原创 linux系统编程之signal信号处理程序
1 信号处理程序1.1 概述信号,软中断信号,用来通知进程发生了某些事件,是一种软件层面上对中断机制的一种模拟。信号本身是一段非常小的信息,一般都只是一个整数。信号的目的有两个:(1)通知进程一个特定的事件发生了;(2)让进程执行一个信号处理函数。 使用kill -l查看系统支持的信号类型如下:其中,1-31是定期信号,32-64是实时信号。两者的区别在于:内核不支持定期信号的...
2018-07-01 19:04:50 5222
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人