linux连接器脚本前奏-基于x86(一)

news2024/9/26 1:26:25

从今天开始进入正文,和讲解liteos一样,我们先从连接器脚本开讲。我们知道连接器脚本描述了编译输出程序的布局,那么linux内核编译输出的布局是怎么样的呢?听我慢慢道来,关于连接器脚本的大概使用用途,可以参见
liteos链接器脚本一
liteos链接器脚本二
这里先说明一下对于linux的所有讲解都是基于x86的,像arm他会有自己的连接器脚本,但是大致类似,包括后面分享的内存管理,任务调度等等和硬件相关的是少数,大多还是通用的。

在开始连接器脚本之前,由于后面的连接器脚本部分以及内核解压启动部分的代码分析,会有一些比较重要的知识点,我这里需要提前宣贯普及一下。叫做知识可能不太确切,应该叫做猜测理解。可能做编译器的会更加的明确,不过按照理解不会有逻辑冲突,应该是合理猜测。就是c语言的指针对应的地址是什么地址。

我们知道x86是支持分段和分页的,分段是一定使能的,分页是可以关闭的功能。我们看下图的cpu怎么找到存储

在这里插入图片描述
其中绿色部分的分页单元在启动的初期是关闭的,系统可以通过程序使能或者关闭分页单元。分页单元是现代处理器很重要的一个功能模块,它使得物理地址的寻址更加灵活,也增加了系统的安全性

逻辑地址:逻辑地址是通过段寄存器和偏移地址表示的

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

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

相关文章

Python进行异步请求,实现多开任务

前言 本文是该专栏的第5篇,后面会持续分享python的各种干货知识,值得关注。 在工作中,你可能或多或少会接到这样一个任务需求。 给你一个任务队列,需要你进行多任务去实现处理,尤其在爬虫项目或者是使用selenium,pyppeteer等任务中比较常见,至于多线程和多进程那些,笔…

OpenCL 是什么

OpenCL 创建Program对象|极客笔记 文章目录 OpenCL标准什么是OpenCL OpenCL全称为Open Computing Language(开放计算语言),先由Apple设计,后来交由Khronos Group维护,是异构平台并行编程的开放的标准,也是…

antd 时间类组件的国际化 locale 设置不生效 解决方案汇总

antd 时间类组件的国际化 locale 设置不生效,踩坑之路和解决办法 问题 如图所示,antd 时间类组件中英文混合显示: 初始配置代码如下: import ./index.css; import ./global.less;import { ConfigProvider } from antd; import…

excel表格制作如何设置?新手必备教程!

Excel是一种专门用于制作表格、输入数据和统计分析的办公软件,日常办公中它带给我们极大的便利。下面我们一起来看看excel表格制作如何操作?为了方便理解,下面分为详细的六个步骤。你可以根据下面的操作顺序来操作(里面有些顺序是…

Windows版本Tomcat升级openssl版本

本次教程适用于windows版本安装Tomcat调整openssl版本。 下载Tomcat Native Tomcat native提供让Tomcat以APR模式运行,APR的全称是Apache Portable Runtime,它是一个高度可移植的库,它是Apache HTTP Server 2.x的核心。APR有许多用途&#…

element ui Form 自定义校验规则,验证手机号

网站快速成型工具 Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库 指南 了解设计指南,帮助产品设计人员搭建逻辑清晰、结构合理且高效易用的产品。 查看详情 组件 使用组件 Demo 快速体验交互细节;使用前端框架…

@开发者:个推小程序消息推送解决方案来了

随着小程序技术和应用场景的不断完善,越来越多的开发者搭建了小程序平台,为用户带来更“轻量”的服务。在小程序用户迅猛增长的同时,开发者对于小程序用户精细化触达的需求也愈加强烈。近日,个推消息推送上线了小程序推送功能&…

Python量化交易05——基于多因子选择和选股策略(随机森林,LGBM)

参考书目:深入浅出Python量化交易实战 在机器学习里面的X叫做特征变量,在统计学里面叫做协变量也叫自变量,在量化投资里面则叫做因子,所谓多因子就是有很多的特征变量。 本次带来的就是多因子模型,并且使用的是机器学习的强大的非…

Linux系统下的组管理和权限管理

Linux系统下的组管理和权限管理 组管理 在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。 对于一个文件而言,有以下几种说法:1)所有者;2)所在组;3)其它组&#…

TypeScript中的类 Class

公共属性的修饰符: public:公共,默认修饰符,外部和内部都能使用private:私有的,只能内部类用,外部不能读写protected:当前类和派生类(子类)可访问readonly:外部只能读不能写static&…

快速上手 Docker 最新 WebAssembly 技术预览版

本文为译文,原文见:https://nigelpoulton.com/getting-started-with-docker-and-wasm/ 轻松体验 Docker 和 Wasm ——编写一个应用,将其编译为 Wasm,将其打包为 OCI 镜像,将之存储在 Docker Hub 中,使用 Do…

4 JMeter 参数化常用方式

文章目录2.4 JMeter 参数化常用方式2.4.1 用户定义的变量2.4.2 用户参数2.4.3 CSV数据文件设置 CSV Data Set Config2.4.4 函数(_counter)2.4 JMeter 参数化常用方式 2.4.1 用户定义的变量 应用场景:全局参数 添加方式: 测试计划->线程组->配置…

【AcWing每日一题】4366. 上课睡觉

有 N 堆石子,每堆的石子数量分别为 a1,a2,…,aN。 你可以对石子堆进行合并操作,将两个相邻的石子堆合并为一个石子堆,例如,如果 a[1,2,3,4,5],合并第 2,3 堆石子,则石子堆集合变为 a[1,5,4,5]。 我们希望…

LeetCodeday02

977.有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例 1: 输入:nums [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后&am…

Java开发学习(三十五)----SpringBoot快速入门及起步依赖解析

一、SpringBoot简介 SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。 使用了 Spring 框架后已经简化了我们的开发。而 SpringBoot 又是对 Spring 开发进行简化的,可想而知 SpringBoot 使用的简…

做报表要用什么插件?

Excel 作为大家最熟悉的报表工具,很多表哥表姐每天都在使用,为了加强 Excel 的报表功能,市面上有非常多的 Excel 增强插件,为 Excel 增加了千奇百怪的能力。今天给大家介绍一款专门用来做中国式复杂报表的Excel 插件:思…

【不一样的递归大法】

🎁递归🎅递归🦌定义🎅何时用递归:递归三板斧🦌递归递归🦌递归大法:三板斧🎅如何快速写出递归函数:宏观的角度🎅解题突破🦌整数序列相关…

一文了解什么是NFT

一、什么是NFT NFT 是我们可以用来代表独特物品所有权的代币。他们让我们对艺术品、收藏品甚至房地产等事物进行代币化。资产的所有权由以太坊区块链保护——没有人可以修改所有权记录或复制/粘贴新的 NFT。 NFT 代表不可替代的代币。Non-fungible 是一个经济学术语&#xff…

伪操作和混合汇编

目录 一、伪操作: 二、C和汇编的混合编程 三、ATPCS协议(ARM-THUMB Procedure Call Standard) 一、伪操作: 不会生成代码,只是在编译之前告诉编译器怎么编译 GNU的伪操作一般都以‘.’开头 .global symbol 将symbo…

WEB 安全,浅谈 XSS 攻击(附简单实例)

什么是 XSS XSS(Cross-Site-Scripting),跨站脚本攻击,因为缩写和 CSS 重叠,被别人抢先了,所以只能叫做 XSS。 攻击者可以利用这种漏洞在网站上注入恶意的客户端代码。若受害者运行这些恶意代码,攻击者就可以突破网站…