第一天的课程主要学习了linux的整个发展史,从计算机的组成到操作系统的程序执行过程中间所涉及到的cpu、内存、I/O设备之间是怎么工作的,讲解的很详细,下面就做一个总体的总结。
首先是一些学习工具,如用于文本编辑的sublime,Notepad++,Ue_chinese等,截图工具如picpick,xmanage:浏览远程x窗口系统的工具
然后是计算机的五大部件及工作原理:运算器、控制器、存储器、输入设备、输出设备组成,
CPU的功能部件包括运算器、存储器、寄存器、MMU、缓存
CPU能够寻址,而程序=数据+指令,因此CPU根据指令向内存中去取数据,而CPU的读取速度比较快,内存的读取速度相对来说比较慢,因此对于那些经常用到的数据放在CPU的缓存中,称为一级缓存和二级缓存,这样cpu就能够从cpu的缓存中直接去数据
而对于输入/输出的I/O设备,CPU怎么知道哪个是键盘哪个是鼠标的输入呢?通过每个I/O设备上的寄存器(每个编号为01、02、03、04的代表存储信息)与CPU的控制器进行交互,其中01、02代表鼠标、03、04代表键盘,这样CPU就知道是什么设备在传输信号。
对于计算机硬件的工作,其实是通过指令集去操控内存、CPU等硬件的,而指令集是在厂商一出厂的时候设定好的,每个厂商或同一厂商的不同芯片指令集也可能不同,因此如果想要操控一台计算机,需要对其进行汇编语言,写成计算机能够读懂的方式执行,这样的话就会很麻烦,不利于计算机的普及及使用,这时候就应运而生了操作系统,操作系统是将一大堆的指令集抽象出来的,我们不用管它的细节,只管使用就可以了。
这里还有一个问题,CPU在一个时间内只能够处理一件事,那多个程序同时进行又是怎么工作的呢?将内存分为多个寻址单元,CPU实际上是与虚拟内存在打交道,而当一个程序在执行另一个程序进来的时候内存通过MMU(内存管理单元)进行内存保护以防止中断。
|
现在的linux系统主要是指linux+GNU的软件,因为这里的linux其实指的是内核(不负责具体的工作),添加软件后才称为linux系统。
内核的功能:主要就是管理硬件的运行
包括:进程管理(跟踪、切换、终止、调度)
内存管理(内核、进程)如内存的虚拟化、内存分配、释放等
驱动程序
文件系统
安全功能
应用程序不能直接访问硬件,只有内核才可以,
内核可以使用CPU的全部指令集,而应用程序只使用部分指令集(不包括特权指令和敏感指令)
如果在硬盘上mkdir,是通过内核进行的,而避免直接操作硬件
系统的运行模式:用户模式和内核模式
进程切换也叫做上下文切换,指的是应用程序通过内核调用之后,之前正在进行的动作该怎么保留;
程序的编译依赖于内核,编译的接口称为ABI,源代码可以在不同平台上进行编译,但是只有在linux上编译的才能在linux上使用,
POSIX:可移植操作系统标准(可接口规范),在windows上称为DLL,在linux上称为SO
X86架构:8086系列32位,其指令集为IA-32,属于Inter生产的,安腾IA-64架构(被Inter收购)
X86_64架构64位,属于AMD研发的
IBM的CPU:Power
Power PC:苹果
ARM:只负责架构设计,不负责生产
接受用户指令:人机交互接口,是一个独特的应用程序,比如单击软件,操作系统会在双击后执行程序
GUI:图形用户接口,如Gnome,KDE,Xfce
CLI:命令行接口
RedHat红帽系列:fedora、scientific、Centos、YellowDog、Mandriva
Suse:SLES、open SUSE
Debian:Ubuntu、mint
RedHat:redhat 6、8、9属于个人版,已经演变为Fedora
RHEL 3、4、5、6企业版的称谓
Centos是基于红帽企业版的二次开发
1.一切皆文件:可以read、write、close、open
2.由众多目的单一应用程序组成:一个程序只做一件事,并且要做好
3.组合目的单一的小程序完成复杂任务
4.尽量避免跟用户交互
5.使用文本文件保存配置信息
6.提供机制,而非策略
自由软件的含义:自由使用,自由学习和修改,自由分发,自由创建衍生版
32位CPU最大支持2^32次方的变化,约等于4G的寻址空间,因为最大支持4G的内存
存储器:内存(RAM+ROM)