kernel_thread简析
1.3.100
static inline pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
{
    long retval;
__asm__ __volatile__(
        "movl %%esp,%%esi\n\t"
        "int $0x80\n\t"        /* Linux/i386 system call */
        "cmpl %%esp,%%esi\n\t"    /* child or parent? */
        "je 1f\n\t"        /* parent - jump */
        "pushl %3\n\t"        /* push argument */
        "call *%4\n\t"        /* call fn */
        "movl %2,%0\n\t"    /* exit */
        "int $0x80\n"
        "1:\t"
        :"=a" (retval)
        :"0" (__NR_clone), "i" (__NR_exit),
         "r" (arg), "r" (fn),
         "b" (flags | CLONE_VM)
        :"si");
    return retval;
}
1. 执行系统调用 __NR_clone
2. 父进程走1f,子进程调fn
3. fn完成后执行__NR_exit系统调用
4.注:%eax=__NR_clone, %ebx是参数,flags带上了CLONE_VM
kernel_thread简析的更多相关文章
- 简析.NET Core 以及与 .NET Framework的关系
		
简析.NET Core 以及与 .NET Framework的关系 一 .NET 的 Framework 们 二 .NET Core的到来 1. Runtime 2. Unified BCL 3. W ...
 - 简析 .NET Core 构成体系
		
简析 .NET Core 构成体系 Roslyn 编译器 RyuJIT 编译器 CoreCLR & CoreRT CoreFX(.NET Core Libraries) .NET Core 代 ...
 - RecycleView + CardView 控件简析
		
今天使用了V7包加入的RecycleView 和 CardView,写篇简析. 先上效果图: 原理图: 这是RecycleView的工作原理: 1.LayoutManager用来处理RecycleVi ...
 - Java Android 注解(Annotation) 及几个常用开源项目注解原理简析
		
不少开源库(ButterKnife.Retrofit.ActiveAndroid等等)都用到了注解的方式来简化代码提高开发效率. 本文简单介绍下 Annotation 示例.概念及作用.分类.自定义. ...
 - PHP的错误报错级别设置原理简析
		
原理简析 摘录php.ini文件的默认配置(php5.4): ; Common Values: ; E_ALL (Show all errors, warnings and notices inclu ...
 - Android 启动过程简析
		
首先我们先来看android构架图: android系统是构建在linux系统上面的. 所以android设备启动经历3个过程. Boot Loader,Linux Kernel & Andr ...
 - Android RecycleView + CardView 控件简析
		
今天使用了V7包加入的RecycleView 和 CardView,写篇简析. 先上效果图: 原理图: 这是RecycleView的工作原理: 1.LayoutManager用来处理RecycleVi ...
 - Java Annotation 及几个常用开源项目注解原理简析
		
PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 一.Annotation 示 ...
 - 【ACM/ICPC2013】POJ基础图论题简析(一)
		
前言:昨天contest4的惨败经历让我懂得要想在ACM领域拿到好成绩,必须要真正的下苦功夫,不能再浪了!暑假还有一半,还有时间!今天找了POJ的分类题库,做了简单题目类型中的图论专题,还剩下二分图和 ...
 
随机推荐
- css的再深入4(更新中···)
			
两种居中的方式: Margin:0 auto;和text-align:center; Margin的居中是对自身,text-align对元素内部的文本来说. 隐藏的两种方式: visibility:h ...
 - 从0开始安装fedora23的笔记-- 以及使用fedora的常规问题
			
关于安装过程中的笔记本 触摸板 和鼠标的问题? 在安装过程中, 系统只认从usb接口插入的鼠标和触摸板上的 "左键和右键"按钮. 触摸板上的鼠标只支持"移动"的 ...
 - Docker 使用Dockerfile构建redis镜像
			
Dockerfile实现: FROM centos: MAINTAINER hongdada "hongdaqi159505@gmail.com" WORKDIR /home RU ...
 - How to know the directory size in CENTOS 查看文件夹大小
			
Under any linux system, you want to use the command du. (Disk Usage) Common usage is : du -sh file(s ...
 - CF1137C Museums Tour
			
思路 强连通分量的好题 对于每个博物馆,因为时间的限制条件,不好直接统计, 发现d很小,可以建出d层分层图,原图<u,v>的边变成<u,i>到<v,i+1>的边,& ...
 - 17秋 软件工程 团队第三次作业 预则立&他山之石
			
题目:团队作业-预则立&&他山之石 团队: 我说嘻(xì)哈(hà)你说侠 17秋 软件工程 团队第三次作业 预则立&他山之石 1.确立团队选题,建立和初步熟悉团队git的协作 ...
 - Javascript 高级程序设计(第3版) - 第02章
			
2017-05-10 更新原文: http://www.cnblogs.com/daysme 在 html 中使用 js 把js代码写在 <script type="text/java ...
 - bash:command not found解决方法
			
先用:echo $PATH 查看path是否含有:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin如果没有先用临时环境变量(重启 ...
 - 【Python】【函数式编程】
			
#[练习] 请定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程: ax2 + bx + c = 0 的两个解. 提示:计算平方根可以调用math.sqrt()函数: & ...
 - _itemmod_description
			
物品额外描述 表说明: `entry` 物品entry `description` 额外描述