学习linux内存和ARM体系架构入门知识

这次总结在于学习linux内存和一丢丢芯片等硬件入门知识 

Linux操作系统虚拟地址空间分布(32位)(0-4G)

内核 栈区 堆区 数据区 文本区。(其中只有堆区由程序员手动管理,其它的由操作系统管理,要想细说的话,也可以说其中的栈区由操作系统和编译器管理)

(tips:这里的栈区和数据结构那的栈不是一个东西。)

虚拟地址空间的来龙去脉 

MMU内存管理单元

MMU通过映射机制将0-4GB的虚拟内存空间分配给用户(一般用户进程占3G,内核占1G)

(32位Linux操作系统)

即这4GB中,除了1GB的内核空间是共享的,每个进程独享0-3GB的虚拟内存空间。

实际物理内存和虚拟内存空间的区别(详情也可见进程那块笔记,后面会发出来):

即使在一个进程中只写了“hello world”,操作系统仍会为该进程开辟一个独立的 0-4GB 的虚拟内存空间(在 32 位系统中)。但是,手机可能只有 6GB RAM,或者电脑的运行内存只有 16GB,当操作系统启动一个新进程时,为每个进程分配完整的 0-4GB 虚拟内存空间,并不代表需要分配相同大小的物理内存。实际上,有时候多个进程(如播放音乐、看电影、浏览网页等)会同时运行,这些进程的总内存需求可能远超系统的物理内存容量。RAM一共可能才6GB,要是每个都开辟0-4G,也不现实,那它是怎么实现的呢,这时候就是这个MMU了。

为了高效利用内存资源,内存管理单元(MMU) 和 按需分页 机制确保操作系统仅在需要时才分配实际的物理内存。例如,当运行“hello world”程序时,虽然其虚拟内存空间为 0-4GB,但实际使用的物理内存可能只有 12 个字节左右。操作系统只会将这个进程实际需要的页映射到物理内存,而不是为其分配整个 4GB。

在多任务环境下,操作系统通过 时间片轮转调度 实现多个进程的并发执行。在一个 CPU 核上,进程实际上是按时间片轮流占用 CPU 时间(虽然看起来是同时运行的)。这确保了每个进程都能得到足够的执行机会。

例如,当 CPU 执行 "hello world" 进程和 "看电影" 进程时,"hello world" 进程只会使用其实际需要的少量内存(如 12 个字节),而剩余的物理内存可被分配给其他进程(如播放电影时需要的画面和音频数据,可能需要 40KB)。通过这种方式,物理内存得到了高效利用,而虚拟内存则提供了每个进程的独立空间。

ARM体系结构

ARM基本介绍

首先,ARM是一家设计RISC内核的cpu公司。它只设计,不生产。生活上涉及到芯片的设备,基本上都会用到ARM的设计图纸,靠技术能够制裁芯片行业的很牛的一家公司,但是美国一个学校还是啥在重启研究RISC-V,试图打断ARM公司一家独大的地位。

关于硬件的一些名词解释

MCU:微控制器;特点:四肢发达-如时钟,电源,内存等四肢人家就在芯片里面,头脑一般(如51单片机,stm32);

MPU:微处理器;特点:没有四肢-如内存条等都四肢接在cpu外,头脑极其发达(如Intel的CPU);

DSP:数字信号处理器;特点:做运算很强大,但也没类似Intel那种cpu厉害;

FPGA:现场可编程门阵列(一种编程语言);门阵列通俗讲就是好多个电路中的逻辑门,FPGA就是用一种语言(如 Verilog 或 VHDL)来控制和配置这些门,从而实现特定的硬件电路功能。

SoC:片上系统;可以理解为一个完整的系统集成在单个芯片上

是一种高度集成的芯片,结合了计算、图形处理、内存管理、通信和特定功能模块,能够实现完整的系统功能。但是现在一个含有小系统功能的也会叫SoC。

之前oppo成立的哲库说自己几年内要设计出SoC,结果最后部门解散了。

ARM结构(这里后续还会补充解释)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值