Linux学习笔记5-----冯诺依曼体系结构、操作系统

一、冯诺依曼体系结构

内容:数学家 冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成( 运算器 、 控制器 、 存储器 、 输入设备 、 输出设备 )
而我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系

硬件设备:
截至目前,我们所认识的计算机,都是由一个个的硬件组件
输入单元:包括键盘, 鼠标,扫描仪, 写板等
中央处理器(CPU):含有运算器和控制器等
输出单元:显示器,打印机等

五个部分组成:
Linux学习笔记5-----冯诺依曼体系结构、操作系统_第1张图片
ps:
这里的存储器指的是内存
不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备),外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
一句话,所有设备都只能直接和内存打交道

二、操作系统

概念
任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:
1、内核(进程管理,内存管理,文件管理,驱动管理)
2、其他程序(例如函数库,shell程序等等)

操作系统是什么
进行软硬件资源管理的软件

设计操作系统的目的
1、减少用户使用计算机的成本
2、对下管理好所有的软硬件,对上为用户提供一个高效稳定的运行环境

计算机体系结构:
Linux学习笔记5-----冯诺依曼体系结构、操作系统_第2张图片
(层状结构)任何访问计算机硬件及系统软件都需要经过操作系统!

Linux学习笔记5-----冯诺依曼体系结构、操作系统_第3张图片
区分两个概念
系统调用(在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫系统调用):操作系统提供的接口
系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。
库函数:语言或者第三方库提供给我们的接口(使用system call和不使用system call)

常见系统调用 :open, close, read, write, ioctl,fork,clone,exit,getpid,access,chdir,chmod,stat,brk,mmap等,需要包含unistd.h等头文件。
常见库函数 :printf,scanf,fopen,fclose,fgetc,fgets,fprintf,fsacnf,fputc,calloc,free,malloc,realloc…
系统调用通常不可替换,而库函数通常可替换,普通的库函数调用由函数库或用户自己提供,因此库函数是可以替换的。例如,对于存储空间分配函数malloc,如果不习惯它的操作方式,我们完全可以定义自己的malloc函数。
系统调用通常提供最小接口,而库函数通常提供较复杂功能。例如sbrk系统调用分配一块空间给进程,而malloc则在用户层次对这以空间进行管理。

计算机如何管理硬件

  1. 描述起来,用struct结构体
  2. 组织起来,用链表或其他高效的数据结构

你可能感兴趣的:(linux,编辑器,运维)