首页 > 系统相关 >嵌入式Linux 内核的内存管理方法

嵌入式Linux 内核的内存管理方法

时间:2024-03-18 20:04:14浏览次数:30  
标签:嵌入式 物理地址 地址 内存 Linux 进程 内核

内存管理的主要工作就是对物理内存进行组织,然后对物理内存的分配和回收。但是Linux引入了虚拟地址的概念。

虚拟地址的作用

如果用户进程直接操作物理地址会有以下的坏处:

1、 用户进程可以直接操作内核对应的内存,破坏内核运行。

2、 用户进程也会破坏其他进程的运行

CPU 中寄存器中存储的是逻辑地址,需要进行映射才能转化为对应的物理地址,然后获取对应的内存。

通过引入逻辑地址,每个进程都拥有单独的逻辑地址范围。

当进程申请内存的时候,会为其分配逻辑地址和物理地址,并将逻辑地址和物理地址做一个映射。

所以,Linux内存管理涉及到了以下三个部分:

1、物理内存

物理内存的组织

Linux 中内存分为 3 个级别,从下到上依次为:

1、Page: 一个 page 的大小为 4k, Page 是内存的一个最基本的单位。

2、Zone: Zone 中提供了多个队列来管理 page。

Zone分为 3 种

 2.1、 ZONE_DMA:用来存放 DMA 读取 IO 设备的数据,内核专用

 2.2、 ZONE_NORMAL:用来存放内核的相关数据,内核专用

 2.3、 ZONE_HIGHM

标签:嵌入式,物理地址,地址,内存,Linux,进程,内核
From: https://blog.csdn.net/weixin_41114301/article/details/136819465

相关文章

  • Linux命令大全(快速入门)第二部分
    Linux文件基本属性显示文件属性ls命令        Linuxls(英文全拼:listfiles)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。参数:-a显示所有文件及目录(.开头的隐藏文件也会列出)-l除文件名称外,亦将文件型态、权限、拥有......
  • Linux命令大全(快速入门)第一部分
    Linux概述Linux内核最初只是由芬兰人林纳斯·托瓦兹1991年在赫尔辛基大学上学时出于个人爱好而编写的。Linux的各个发行版本Linux的发行版说简单点就是将Linux内核与应用软件做一个打包。1RedHatLinux2UbuntuLinux界面桌面系统3SuSELinux......
  • linux中一些常见的测验题2.haha
    01.DNS配置文件是?resolv.conf/etc/resolv.conf02.统计/var/log/secure文件中所有的Failed出现的总行数grep'Failed'/var/log/secure|wc-lcat/var/log/secure|grep'Failed'|wc-lgrep-c'Failed'#原谅帽grep-r'Falied'/var/log/secure|w......
  • 在Linux中,在不同的Linux发行版中(如RPM-based和DEB-based)如何安装、升级、删除软件包?
    在Linux中,不同的发行版采用了不同的包管理器来处理软件安装、升级和删除操作。以下是基于RPM(RedHatPackageManager)系统(如RedHatEnterpriseLinux,CentOS,Fedora等)和基于DEB(Debianpackage)系统的(如Debian,Ubuntu,LinuxMint等)的操作说明:1.RPM-based系统(使用yum或dnf......
  • 在Linux中,SELinux的作用是什么?如何临时和永久地更改SELinux上下文?
    SELinux(Security-EnhancedLinux)在Linux系统中扮演着至关重要的安全角色,它通过实施强制访问控制(MandatoryAccessControl,MAC)策略来增强系统的安全性。不同于传统的用户和组权限管理机制(即自主访问控制DAC),SELinux提供了一种细粒度的安全模型,允许管理员为每个进程、文件、目录和......
  • Linux安装Mysql5.7数据库
    一、前置条件系统版本:Linux CentOS7.5MySQL版本:mysql5.7.31二、操作步骤2.1、关闭mysql服务servicemysqldstop提示使用命令:systemctlstopmysqld.service2.2、grep查找已安装的mysql服务rpm-qa|grep-imysql2.3、卸载mysql:yum-yremove命令—......
  • 在Linux中,如何配置负载均衡器以分配网络流量?
    1.NGINXNGINX是一款高性能的HTTP和反向代理服务器,也常用作负载均衡器。它支持多种负载均衡算法,如轮询、加权轮询、IP哈希等。配置步骤:安装NGINX:根据您的Linux发行版,使用相应的包管理器安装NGINX。配置负载均衡:编辑NGINX配置文件(通常位于/etc/nginx/nginx.conf或/etc/nginx/c......
  • 【Linux】基础 IO(文件系统 & inode & 软硬链接)-- 详解
    一、理解文件系统1、前言我们一直都在说打开的文件,磁盘中包含了上百万个文件,肯定不可能都是以打开的方式存在。其实文件包含打开的文件和普通的未打开的文件,下面重点谈谈未打开的文件。我们知道打开的文件是通过操作系统被进程打开,一旦打开,操作系统就要维护多个文件,所以它......
  • linux中如何查看系统IO读写能力
    Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。iostat属于sys......
  • 解决问题:java、mysql、docker、linux、redis、solr适合初级或者刚入门的大学生
    java、mysql、redis、linux、docker中的问题Java问题解决,idea问题解决调试,服务器问题解决,项目部署,项目调试linux服务器上的安装以及运行环境的部署docker的部署可做技术栈:java开发:javaweb,jsp,servlet,javase,spring,springboot,ssm服务器:linux问题docker问题,To......