linux进程的加载和启动过程分析

我们的源代码通过预处理,编译,汇编,链接后形成可执行文件,那么当我们在终端敲下指令$ ./a.out argv1 argv2 后,操作系统是怎么将我们的可执行文件加载并运行的呢?

首先知道,计算机的操作系统的启动程序是写死在硬件上的,每次计算机上电时,都将自动加载启动程序,之后的每一个程序,每一个应用,都是不断的 fork 出来的新进程。那么我们的可执行文件,以linux 系统为例,也是由shell 进程 fork 出一个新进程,在新进程中调用exec函数装载我们的可执行文件并执行。

可执行文件格式ELF

可执行文件需要被内核运行,自然需要遵守一定的规范。

Linux下标准的可执行文件格式是ELF。ELF(Executable and Linking Format)是一种对象文件的格式,用于定义不同类型的对象文件(Object files)中都放了什么东西、以及都以什么样的格式去放这些东西。它自最早在 System V 系统上出现后,被 UNIX 世界所广泛接受,作为缺省的二进制文件格式来使用。

但是linux也支持其他不同的可执行程序格式, 各个可执行程序的执行方式不尽相同, 因此linux内核每种被注册的可执行程序格式都用linux_bin_fmt来存储, 其中记录了可执行程序的加载和执行函数。

在这里插入图片描述

  • st

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/20693.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python第五次作业

1.请实现一个装饰器,每次调用函数时,将函数名字以及调用此函数的时间点写入文件中 # 导入datetime模块,用于获取当前时间并格式化输出 import datetime# 定义一个装饰器工厂函数log_funcName_time,它接受一个参数time def log_fu…

红外听力教学考试系统-红外语音听力广播在大学英语四六级听力考试中应用

红外听力教学考试系统-红外语音听力广播在大学英语四六级听力考试中的应用 由北京海特伟业科技有限公司任洪卓发布于2024年6月1日 红外语音听力广播(即红外听力教学考试系统)在英语四六级听力考试的应用正日益凸显出其重要性和优越性。在当前的高等教育…

xcode删除依赖包package,删除不必要的依赖项

点击项目,然后点击PROJECT项里面的Package DepenDependencies: 选中一个依赖项,然后点击减号,就可以把依赖项删除掉了,左侧项目下面的Package已经没有了这个依赖项 TARGET下面的package也要删除:在这里删除…

【C++】【Windows】程序加载DLL库时依次查找哪些目录

搜索的顺序通常如下: 应用程序目录:首先,系统会在包含可执行文件(EXE)的目录中查找DLL。系统目录:接下来,系统会在Windows系统目录中查找,比如 C:\Windows\System32。16位系统目录&…

人工智能与未来工作:未来已来,你准备好了吗?

1. 引言 随着人工智能技术的飞速发展,它正在逐渐渗透到我们生活的方方面面,尤其是工作领域。本文将探讨人工智能的基本概念,它在不同行业的应用,以及它对未来就业市场和教育体系可能带来的影响。 2. 人工智能的基本概念 2.1 定…

ESP32S3外设学习笔记

GPIO ESP32的GPIO(通用输入输出)引脚非常灵活,支持多种工作模式。这些模式可以通过编程来配置,以适应不同的应用需求。以下是ESP32 GPIO引脚的主要工作模式: 1. 输入模式 普通输入模式:在这种模式下&…

dubbo复习:(14)通过上下文传递附加数据

服务调用和响应时,除了请求的方法和返回的响应,还可以通过上下文(Context)传递更多的数据(附加数据) 一、接口定义 package cn.edu.tju.service;public interface ContextService {String invoke(String param); }二、服务端接口实现&#x…

OA前端用什么开发:深入探索技术选型与最佳实践

OA前端用什么开发:深入探索技术选型与最佳实践 在开发OA(办公自动化)系统的前端时,技术选型是至关重要的一步。它不仅决定了系统的外观和用户体验,还直接影响到系统的性能、安全性和可维护性。本文将从四个方面、五个…

nuxt3 api如何透传(不引第3方库)

背景: nuxt做为一个vue的服务端渲染框架,本身就具备服务端的功能,理论上可以完整做一个系统功能,包括对数据库等等操作,但更合理的做法是nuxt应该定位只做服务端渲染的事情,更偏向ui层面,而非数…

大数据分析统计

大数据分析统计 from datetime import datetimeimport pandas as pd import matplotlib.pyplot as pltpm25files [PM2.5_2021.csv, PM2.5_2022.csv, PM2.5_2023.csv] pm10files [PM10_2021.csv, PM10_2022.csv, PM10_2023.csv]def read_csv_file(files):# 每个文件都有表头…

C++之类(class)的三种成员修饰符(public、private、protected)总结

1、背景介绍 在C中,类(class)中成员的三种访问修饰符(access specifiers)用于控制类的成员(属性和方法)的访问权限。这些修饰符决定了类成员在类的外部和内部是否可以被访问。以下是这三种访问…

macOS上编译android的ffmpeg及ffmpeg.c

1 前言 前段时间介绍过使用xcode和qt creator编译调试ffmepg.c,运行平台是在macOS上,本文拟介绍下android平台如何用NDK编译链编译ffmepg库并使用。 macOS上使用qt creator编译调试ffmpeg.c macOS上将ffmpeg.c编译成Framework 大体思路: 其…

信息学奥赛初赛天天练-18-挑战程序阅读-最长公共子序列、字符串与数组越界的巧妙应用

PDF文档公众号回复关键字:20240601 1 2023 CSP-J 阅读程序2 阅读程序(程序输入不超过数组成字符串定义的范围:判断题正确填√,错误填;除特殊说明外,判断题1.5分,选择题3分,共计40分&#xff…

从创意到成功:创业全过程详解

目录 创业目标市场的选择和分析用户画像的描绘软件产品的核心功能和价值主张竞争对手分析及自身竞争优势目标用户的具体需求调研初步的产品设计思路或框架技术栈的选择基于哪些考量如何规划产品的迭代路线图预计的商业模式 1. 创业目标市场的选择和分析 市场选择的重要性 创…

YOLOv10涨点改进:IoU优化 | Powerful-IoU更好、更快的收敛IoU,效果秒杀CIoU、GIoU等 | 2024年最新IoU

💡💡💡本文独家改进:Powerful-IoU更好、更快的收敛IoU,是一种结合了目标尺寸自适应惩罚因子和基于锚框质量的梯度调节函数的损失函数 💡💡💡MS COCO和PASCAL VOC数据集实现涨点 《YOLOv10魔术师专栏》将从以下各个方向进行创新: 【原创自研模块】【多组合点优…

spark SQL优化器catalyst学习

一、Catalyst 概述 Catalyst 是 Spark SQL 的优化器,它负责将 SQL 查询转换为物理执行计划。Catalyst 优化器的目标是生成高效的执行计划,以最小化查询的执行时间。它使用了多种优化技术,包括基于规则的优化、基于代价的优化和动态规划等。我…

Dijkstra求最短路篇二(全网最详细讲解两种方法,适合小白)(python,其他语言也适用)

前言: Dijkstra算法博客讲解分为两篇讲解,这两篇博客对所有有难点的问题都会讲解,小白也能很好理解。看完这两篇博客后保证收获满满。 第一篇博客讲解朴素Dijkstra算法Dijkstra求最短路篇一(全网最详细讲解两种方法,适合小白)(p…

openstack 中如何检查VLAN 配置: 确保正确配置了两个 VLAN,并且两个 VLAN 之间进行了正确的路由。

在 OpenStack 中检查 VLAN 配置并确保两个 VLAN 之间进行了正确的路由,可以按照以下步骤进行操作: 查看网络配置: 登录到 OpenStack 控制节点上的命令行界面。使用 neutron net-list 命令查看当前存在的网络列表。找到与你关注的 VLAN 相关的…

计网ppt标黄知识点整理第(2)章节——谢希仁版本、期末复习自用

物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。4 个特性: 机械特性:指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等。 电气特性:指明在接口电缆的各条线上出现…

如何在 JS 中快速读取文件

本文翻译自 How to read files quickly in JavaScript,作者:Daniel Lemire, 略有删改。 假设你需要在服务器上使用JavaScript读取多个文件。在像Node.js这样的运行时环境中,JavaScript有多种读取文件的方式。哪一种是最好的呢&…