硬件:
-总线
连接主板上不同部件的通道, 分为数据总线,地址总线和控制总线, 逻辑同其名名字。
-外设
难怪有人说Linux操作硬件就像I/O读写, CPU都是通过读写外设寄存器来操作它们的, 而且Linux的虚拟文件系统将所有的硬件表现为文件形式, 操作它们简单说就是操作这些文件,读写对应的数据结构数据。
-地址空间
系统总线连接内存和CPU , CPU不能直接访问硬件外设的总线, 只能控制它们对应的寄存器, 也就是说CPU不能直接读写显卡和显示器之间的数据线,而是通过系统总线访问对象的IO空间的方式(显卡应该有对应的存储空间) , 说到这里,我觉得这些硬件控制器真的好像一个个小CPU, 而且它们的寄存器就好像一个小内存, 小CPU以它们自有的频率运算, 大CPU想跟硬件进行通信时,就往小内存里面存数据, 小CPU自然就知道它们了(这点如同不同线程之前通过Queue进行协作的酱紫)
-内存管理
说到内存管理,就得说linux虚拟内存技术, 它为了我们在程序开发中提供了巨大的内存空间(远远大于实际内存,虚拟内存=实际内存+硬盘)。它相当于在存储空间和进程之间增加了抽象层,所以它是进程级别的,它屏蔽了不同存储空间之间的差异, 让每个进程拥有自己的虚拟空间。比如让一个数据文件映射到虚拟空间里,进程不需要特别区分这些空间。
既然每个进程各自有自己的虚拟空间, 如果多个进程都访问同一个资源(程序或者内存) 就需要有一种进程共享的机制,在linux 提供了 IPC 和 动态链接库的方式。
虚拟地址到物理地址的虚拟内存模型
分享到:
相关推荐
为了让武汉大学计算机学院的本科生在期末考试中取得优异成绩,并且深入理解Linux操作系统的概念与机制,一份名为“Linux原理和复习PPT试卷.rar”的压缩包应运而生。这份资料包含了丰富的学习资源,内容详实,条理...
LinuxCNC的代码结构复杂,涉及大量的模块和配置文件,对于想要深入研究或者进行二次开发的工程师来说,理解LinuxCNC的代码结构和原理是十分必要的。 LinuxCNC的代码主要包含在emc2目录下,这个目录的结构通过tree -...
#### 二、Linux联网原理概述 Linux系统的联网主要包括以下几个关键概念: 1. **网络接口**:Linux系统通过网络接口卡(Network Interface Card, NIC)与外部通信。每个NIC都有一个唯一的硬件地址(MAC地址),用于在...
《Linux就改这么学》V1.01版本是一份专为初学者和进阶者设计的Linux学习指南,旨在帮助读者深入理解并熟练掌握Linux操作系统。Linux是一种免费且开源的操作系统,广泛应用于服务器、嵌入式设备以及个人电脑。本指南...
《操作系统原理及应用(Linux)(第二版)》这本书深入浅出地讲解了操作系统的核心概念、设计与实现,特别关注Linux环境下的具体应用。通过PPT格式的文件,学习者可以更直观地理解复杂的概念。 1. **操作系统基本...
通过《跟阿铭学Linux(第二版)》,读者不仅能学到Linux的基本操作,还能了解其内在原理,从而具备解决实际问题的能力。无论你是想成为一名Linux系统管理员,还是开发者,甚至是对Linux感兴趣的技术爱好者,这本书都...
总的来说,学习Linux不仅仅是掌握命令行工具,还需要理解其底层工作原理,包括进程管理、文件系统、网络、权限模型等。通过实际操作和实验,你可以逐步熟悉Linux环境,并提升在这一平台上的工作效率。记住,实践是...
Linux系统原理是操作系统领域的核心知识,它涉及到操作系统如何管理和协调计算机硬件与软件资源。这份PDF教程涵盖了多个关键主题,帮助用户深入理解Linux内核的工作机制。以下是对这些主题的详细阐述: 1. **进程**...
1. 《Linux就该这么学》:这本书专为Linux初学者设计,它详细介绍了Linux的基本概念、安装过程、文件系统、命令行操作以及常用命令。此外,书中还涵盖了用户管理、网络配置、系统安全管理等实用内容,让读者能够快速...
Linux中的Shell是一个至关重要的组成部分,它是用户与操作...理解Shell的工作原理和基本操作对于高效地使用Linux系统至关重要。通过学习和熟练掌握Shell,用户可以更便捷地管理系统,实现自动化任务,提高工作效率。
了解Linux内核的设计与原理对于深入掌握Linux系统以及进行操作系统级别的编程和开发是至关重要的。 首先,学习Linux内核前,必须对操作系统的基本原理有一个全面的了解。这包括操作系统的组成(如进程管理、内存...
#### 二、学习嵌入式Linux前的基础准备 1. **计算机基础知识**:了解基本的计算机组成原理,熟悉计算机硬件的基本结构。 2. **编程语言基础**:掌握一门或多门编程语言,如C语言或C++等。这些语言是开发嵌入式Linux...
在“零点起飞学Linux C”这个学习资源中,我们将探讨Linux操作系统以及C语言在Linux环境中的应用。Linux,作为一款开源的操作系统内核,它的诞生不仅推动了自由软件运动的发展,也为全球开发者提供了一个免费且高度...
5. 实践安装和配置:通过实际安装Linux系统和各种应用程序,可以更好地理解系统工作原理和配置流程。 6. 加入社区:积极参与Linux社区,可以获取最新资讯,遇到问题时也能得到及时的帮助。 7. 持续学习:Linux发展...
Linux原理与应用是深入理解和掌握操作系统核心概念的重要领域,尤其对于IT从业者来说,熟悉Linux能够提升工作效率并增强问题解决能力。本课程的PPT涵盖了两个关键主题:线程管理和VI编辑器的使用。 首先,我们来...
- 学习Linux启动原理,理解操作系统如何运行。 - 移植和分析U-boot,掌握其命令使用。 - 学习JTAG烧写方法,了解硬件编程工具。 - 应用busybox,提高系统效率。 - 实现U-boot、内核和根文件系统的移植与烧写。 ...
5. **网络编程**:在Linux中,套接字(socket)是进行网络通信的主要手段,熟悉socket API,理解TCP/IP协议栈的工作原理。 6. **信号与异常处理**:了解如何使用sigaction等函数捕获和处理信号,以及如何处理程序...
本资料集包含了嵌入式Linux操作系统的原理及其在实际应用中的详细讲解,包括视频教程、课件、源代码和书的文档Word版,为学习者提供了全面的学习资源。 首先,理解嵌入式Linux的基本概念至关重要。嵌入式系统是指...
### Linux系统学习计划 在IT领域,特别是对于嵌入式技术的发展来说,Linux系统的重要性不言而喻。本文将根据给定的文件信息,详细展开Linux系统的学习计划及相关知识点。 #### 一、学习目标与背景 1. **目标**: ...