日前,美国一名 39 岁的男子宣布财务自由并退休,他持有的特斯拉股票价值已经接近 1200 万美元(约合人民币 7700 万元)。   其名叫杰森·德伯特,退休前是一名亚马逊员工。他在 Twitter 发帖称“今天,39 岁的我从企业界退休。在可预见的未来,我不会出售任何特斯拉股票。”   据了解,他曾在 2013 年首次买入 2500 股特斯拉股票,当时特斯拉股价只有 7.5 美元,这些股票目前市值约 220 万美元。   后来又不断买入,平均持股成本为 58 美元。目前总计持有 14850 股,身价已达到近 1200 万美元。   德伯特说:&ld...... Last article READ

从0学ARM——什么是位置无关码?

一、为什么需要位置无关码?

首先我们需要了解一下ARM板子的启动流程。

1. exynos 4412启动流程首先看一下 exynos 4412 memory map :

可知:iROM基地址是0x00000000iRAM基地址是0x02020000

这两块内存都在 SOC中。

查看exynos 4412 Booting Sequence:

位于第五章。

上图是exynos4412上电复位时的启动流程,大致如下:

<1>执行内部只读存储器iROM中的一段代码(厂家固化在里面的),这段代码主要是初始化一些系统的基本配置,比如初步时钟配置、堆栈、启动模式(对应图中的标志①)。

<2>iROM中的代码根据阶段一获取的启动模式(OM_STAT寄存器),从相应的存储介质中拷贝BL1镜像到内部静态随机存储器SRAM,BL1主要是完善系统时钟的初始化工作、内存控制器一些时序的配置。做完这些工作后把OS镜像拷贝到内存中(对应图中标志②③)。

<3>跳转到OS中执行。

SRAM只有256KB,而uboot镜像一般是超过这个大小的,也就是说它不能把完整的uboot镜像拷贝到SRAM中,因此,推测这里的拷贝方式应该还是:「BL1拷贝的仅仅是uboot的一部分」,这一部分除了能设置好基本的硬件运行环境外,「还能把其自身(uboot镜像)完整的拷贝到内存中」,然后uboot在内存中运行,完成OS镜像的拷贝和引导

一般情况下两者的地址并不相同,程序在DRAM中的地址重定位过程必须由程序员来完成。

这样就有了「位置无关代码」的概念,指代码不在连接时指定的运行地址空间,也可以执行,它一段加载到任意地址空间都能执行的特殊代码。

uboot搬移到DRAM中,然后跳转到DRAM继续运行uboot剩下的代码,那么在搬移之前的这段代码必须是位置无关,而且不能使用绝对寻址指令,否则寻址就会出错。

处理器+操作系统,是计算机系统的核心,也是产业生态的核心,更是这个时代安全的基石,涉及每一个单位、每一个个体,甚至上升到国家层面。多样性计算、、大数据、云计算等新兴技术正在驱动下一代操作系统创新发展,新基建、数字经济进一步加大基础技术自主创新的研发投入,中国的操作系统产业迎来发展新机遇。70年来,操作系统的的产品形态和商业模式在不断演进,先后经历了大小型机时代的硬件附属阶段、PC时代的独立软件产品阶段、“互联网+”时代的“软件即服务”阶段,以及数字经济时代的“软件定义”阶段,泛在计算的普及导致操作系统无处不在,到处都在用。操作系统在很多地方都会有泛在存在,这是传统操作系统的泛化也是延伸,而本质......Next article READ