一.计算机工作

第一天的课程主要学习了linux的整个发展史,从计算机的组成到操作系统的程序执行过程中间所涉及到的cpu、内存、I/O设备之间是怎么工作的,讲解的很详细,下面就做一个总体的总结。

首先是一些学习工具,如用于文本编辑的sublimeNotepad++Ue_chinese等,截图工具如picpickxmanage:浏览远程x窗口系统的工具

然后是计算机的五大部件及工作原理:运算器、控制器、存储器、输入设备、输出设备组成,

CPU的功能部件包括运算器、存储器、寄存器、MMU、缓存

CPU能够寻址,而程序=数据+指令,因此CPU根据指令向内存中去取数据,而CPU的读取速度比较快,内存的读取速度相对来说比较慢,因此对于那些经常用到的数据放在CPU的缓存中,称为一级缓存和二级缓存,这样cpu就能够从cpu的缓存中直接去数据

wKioJlLFAqLTFv5uAAAoJNudZjM877.jpg

而对于输入/输出的I/O设备,CPU怎么知道哪个是键盘哪个是鼠标的输入呢?通过每个I/O设备上的寄存器(每个编号为01020304的代表存储信息)与CPU的控制器进行交互,其中0102代表鼠标、0304代表键盘,这样CPU就知道是什么设备在传输信号。

对于计算机硬件的工作,其实是通过指令集去操控内存、CPU等硬件的,而指令集是在厂商一出厂的时候设定好的,每个厂商或同一厂商的不同芯片指令集也可能不同,因此如果想要操控一台计算机,需要对其进行汇编语言,写成计算机能够读懂的方式执行,这样的话就会很麻烦,不利于计算机的普及及使用,这时候就应运而生了操作系统,操作系统是将一大堆的指令集抽象出来的,我们不用管它的细节,只管使用就可以了。

这里还有一个问题,CPU在一个时间内只能够处理一件事,那多个程序同时进行又是怎么工作的呢?将内存分为多个寻址单元,CPU实际上是与虚拟内存在打交道,而当一个程序在执行另一个程序进来的时候内存通过MMU(内存管理单元)进行内存保护以防止中断。

 

wKioJlLFAqPy7QtNAAAYnkjf5mw235.jpg

 

 

现在的linux系统主要是指linux+GNU的软件,因为这里的linux其实指的是内核(不负责具体的工作),添加软件后才称为linux系统。

二.内核

内核的功能:主要就是管理硬件的运行

包括:进程管理(跟踪、切换、终止、调度)

内存管理(内核、进程)如内存的虚拟化、内存分配、释放等

驱动程序

文件系统

安全功能

应用程序不能直接访问硬件,只有内核才可以,

内核可以使用CPU的全部指令集,而应用程序只使用部分指令集(不包括特权指令和敏感指令)

 

wKioOVLFApzBlYGvAAA1g4_DUSo421.jpg

如果在硬盘上mkdir,是通过内核进行的,而避免直接操作硬件

系统的运行模式:用户模式和内核模式

进程切换也叫做上下文切换,指的是应用程序通过内核调用之后,之前正在进行的动作该怎么保留;

程序的编译依赖于内核,编译的接口称为ABI,源代码可以在不同平台上进行编译,但是只有在linux上编译的才能在linux上使用,

POSIX:可移植操作系统标准(可接口规范),在windows上称为DLL,在linux上称为SO

三.CPU不同架构

X86架构:8086系列32位,其指令集为IA-32,属于Inter生产的,安腾IA-64架构(被Inter收购)

X86_64架构64位,属于AMD研发的

IBMCPUPower

Power PC:苹果

ARM:只负责架构设计,不负责生产

四.人机交互接口

接受用户指令:人机交互接口,是一个独特的应用程序,比如单击软件,操作系统会在双击后执行程序

GUI:图形用户接口,如GnomeKDEXfce

CLI:命令行接口

五.Linux各版本依从关系

RedHat红帽系列:fedorascientificCentosYellowDogMandriva

SuseSLESopen SUSE

DebianUbuntumint

RedHatredhat 689属于个人版,已经演变为Fedora

RHEL 3456企业版的称谓

Centos是基于红帽企业版的二次开发

六.Linux的哲学思想

1.一切皆文件:可以readwritecloseopen

2.由众多目的单一应用程序组成:一个程序只做一件事,并且要做好

3.组合目的单一的小程序完成复杂任务

4.尽量避免跟用户交互

5.使用文本文件保存配置信息

6.提供机制,而非策略

七.附加

自由软件的含义:自由使用,自由学习和修改,自由分发,自由创建衍生版

32CPU最大支持2^32次方的变化,约等于4G的寻址空间,因为最大支持4G的内存

存储器:内存(RAM+ROM