`
memorymyann
  • 浏览: 271080 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

execve函数

 
阅读更多

fork创建出来的子进程的PCB是复制了父进程的PCB,进程的4个资源中,我们可以控制了3个资源,系统堆栈和户口pcb已经被创建,还有虚存空间也是可以从新声请(通过COPY_ON_WRITE),但是我们看到代码段寄存器没有被改,2个进程采用仍然是同一个剧本,关于代码段在内存中是只读的,因此页面表项会被复制,代码段内存是不会重新分配的。整体效果看上去就是父子进程做的是同一件事。这样创建出来的子进程的意义将会大打折扣。(同时子进程的PCB是复制父进程而来,信号处理表,页面表这些都是复制过来。)execve就是用来改变这一情况的。

 

他通过改变进程的上下文,从而达到和父进程分开的目的。

 

 

分享到:
评论

相关推荐

    linux内核hook系统调用execve函数

    功能:hook系统调用execve函数,在系统调用dpkg命令时返回。 这样系统无法安装软件,以及删除软件。 1.下载后 解压直接 make编译 2. sudo insmod hook.ko 进行安装 3. sudo dmesg --follow 查看内核调试信息 4....

    (12.2)--可执行文件的加载1

    1. 调用execve系统调用函数:在shell命令行提示符后输入命令 `$ ./hello`,shell进程会调用fork函数来创建一个新的进程,然后调用execve函数来加载可执行文件。execve函数的原型形式如下:`int execve(char *...

    哈工大计算机系统安全作业1

    execve函数用于执行可执行文件,并将可执行文件变量filename字符串所代表的文件路径传递给执行文件。execve函数的参数包括filename、argv和envp等。 4. exit函数 exit函数用于退出当前进程,并将状态值返回给父...

    对比C语言中execv相关的执行文件的三个函数

    在C语言中,`execv`、`execve`和`execvp`是三个用于执行新程序的函数,它们属于进程控制的一部分。这些函数的作用是在当前进程中替换当前的执行映像,而不是创建新的进程,因此如果成功执行,原始程序将不再存在。 ...

    《操作系统》2015年期末考试分析 张慕晖的博客1

    在本题中,需要了解ucore操作系统中do_execve函数的工作流程,包括初始化进程所使用的栈、在栈上准备argc和argv的内容、将argc和argv作为用户main函数的参数放到栈上、设置EIP为用户main函数的地址等。 2. 内存管理...

    hw01报告1

    target_code函数的源代码中,printf函数会输出[HACKED],然后execve函数会执行/bin/sh,exit函数会退出程序。 实验结果 实验结果表明,我们可以通过缓冲区溢出获取shell。pwntools库提供了一个远程连接到47.99.80....

    2018-计算机系统-期末试题1

    2. **execve函数**:`execve`是Linux系统中的一个系统调用,它的主要任务是替换当前进程的内存映像,用新的可执行文件来填充进程空间。`argv`数组就是`execve`的参数之一,它包含了用户输入的命令和参数,比如`argv...

    在Windows下创建进程和线程的API

    在 Linux 系统下,可以使用 execve 函数来执行其他程序,而在 Windows 下,可以使用 CreateProcess 函数来执行其他程序。例如,以下代码使用 CreateProcess 函数来执行 launch 测试程序: 代码 1: int main(int ...

    UNIX实验一 实现带参数的简单shell.doc

    2. **构造execve函数的参数**: - 用户输入的命令及其参数存储在一个字符数组`buf`中。为了构造`execve()`函数的参数,需要解析`buf`,将其分解成命令名和参数列表。这通常可以通过遍历`buf`数组并使用空格作为分隔...

    Android启动流程分析总结.doc

    内核态的1号进程(通常是init)是由0号进程创建的,它负责系统配置和内核初始化,然后通过调用execve函数执行init程序,转变为用户态的1号进程,即init进程。 init进程是用户空间的第一个进程,其进程ID为1,由内核...

    计算机中断系统的理解

    进程创建通常通过fork函数来分离出子进程(线程),而execve函数负责从不同格式的可执行文件加载可执行文件到内存。load_binary函数实现查找不同可执行文件的解析器,并利用解析器加载可执行文件到内存。当装载二...

    execo-源码.rar

    在Unix/Linux系统中,这通常是通过fork和execve函数完成;在Windows系统中,可能使用CreateProcess函数。源码中会有对应的操作系统适配层,实现跨平台的命令执行。此外,execo还提供了读取命令输出、错误输出的接口...

    程序定时重启小助手

    在Windows上,可以使用CreateProcess函数,而在Unix/Linux系统中,可能需要使用fork和execve函数族。 4. 参数传递:在设定定时重启时,可能需要向重启的程序传递参数。这需要了解命令行参数的处理,比如在Python中...

    main函数调用子函数堆栈解析

    这里,execve(2) 负责为进程代码段和数据段建立映射,并将 bss 段清零。进程用户空间的最高位置用于存放程序运行时的命令行参数及环境变量,在这段地址空间的下方和 bss 段的上方留有一个很大的空洞,其中堆栈和堆栈...

    linx函数库大全函数库

    系统调用也是Linux编程中的重要部分,如open()用于打开文件,read()和write()进行文件读写,fork()创建子进程,execve()执行新程序。这些调用直接与内核交互,功能强大且效率高。 Linux还有一系列用于系统管理的库...

    C语言系统函数大全,包含所有系统函数

    6. **进程控制函数**:如`fork`创建子进程,`execve`执行新的程序,`wait`和`waitpid`等待子进程结束。还有信号处理函数`signal`。 7. **时间管理函数**:`time`获取当前时间,`ctime`和`asctime`将时间戳转换为可...

    linux c函数实例

    根据提供的文件信息,“Linux C函数实例”,我们了解到这是一篇关于在Linux环境下使用C语言进行编程的文章,重点在于介绍各种C函数的应用实例。下面将基于这个主题,详细展开相关的知识点。 ### Linux C函数概述 #...

Global site tag (gtag.js) - Google Analytics