目录
前言
MCU和MPU的区别:
MCU,Micro Controller Unit,微控制器,俗称“单片机”,内置CPU、存储器和各种外设接口,特点是单核,小容量存储,控制简单(执行刺激-响应式的过程控制),适合数据采集、家电控制
MPU,Micro Processor Unit, 微处理器,需要外挂大容量存储器(如DDR和FLASH),多核,高主频(几GHz),适合高性能计算和复杂算法处理
它们最大的区别是:MCU不具备内存管理单元MMU,因为本身资源也很有限(RAM和FLASH),初衷也是低成本、高效率,所以只能跑小型的操作系统。
而MPU外挂大容量存储器,在跑大型操作系统基础上,利用MMU还可实现虚拟内存、进程隔离,从而支持复杂应用
虚拟地址(程序看到的地址)、物理地址(实际的物理内存地址)
虚拟内存:在虚拟地址的基础上,MMU可以将虚拟地址映射到物理地址的任意位置(操作系统自动灵活分配),因为物理内存始终有限,为了让程序看起来拥有比实际更大的内存空间,程序所需的部分内存可以暂时存到硬盘中(交换区),然后按需加载到物理内存上,本质上是扩展内存实现
进程隔离:每个程序(进程)都有自己的虚拟地址空间,这样进程和进程之间不会相互干扰、越界;
一、发展
首先Linux和windows都是操作系统,windows平常都在用比较熟悉了,而Linux常常用于嵌入式设备中。Ubuntu属于Linux的发行版,带有图形界面。但是跑在嵌入式设备中的Linux操作系统往往不带图形界面,直接用命令行来操作。因为图形界面会占用大量的资源,然而嵌入式本身就是对资源特别敏感的一个领域,所以一般不用图形界面。但是习惯于使用命令行进行操作,也会对我们的开发形成很大的便利。
二、组成
2.1kernel内核
核心程序,用于管理硬件设备、系统的线程进程、内存、交换空间、文件系统、精灵进程(守护进程)等。主要实现系统程序与硬件之间的控制管理功能。
2.2Shell
中文意思有“贝壳”,包裹在内核之外的人机交互界面,用于用户和内核之间打交道的功能。用户可以通过Shell将输入的命令与内核通讯,好让内核可以控制硬件开正确无误的操作工作。类似于windows的cmd,下面是ubuntu虚拟机打开的一个终端terminal。
2.3user application
Linux根据程序的运行,分为用户空间和内核空间。简单的理解就是,普通的应用程序运行在用户空间,一些涉及到系统核心资源的操作的程序运行在内核空间,比如TCP/IP协议栈、驱动、进程调度、内存管理、文件系统等都运行于Linux内核空间。
其实一些应用程序当需要访问系统资源的时候,必须通过系统调用,通过一些内核函数将系统资源由内核空间拷贝到用户空间。
2.4File System
文件系统,管理文件和目录,这跟windows的文件系统差不多。
三、特性
多用户、多任务(进程、线程处理),多平台,图形化界面(x-windows)、硬件低配置、通信与联网、应用程序的支持(编辑器、编辑工具、数据库、办公软件、图形处理、Internet应用、游戏)。