一:计算机基础
1、什么是计算机
计算机俗称“电脑”,包含人对计算机的终极期望,能够真的像人脑一样去工作
2、为何要有计算机
为了执行人类的程序,从而把人类解放出来
大前提:计算机所有的组成都是模仿人的某一功能或器官
3、计算机的组成
控制器:<br /> 作用:是计算机的指挥系统,负责控制计算机所有其他组件如何工作的<br /> 类比:控制器=》人类的大脑
运算器:<br /> 作用:运算包括数学运算与逻辑运算<br /> 类比:运算=》人类的大脑
控制器+运算器=》cpu===》人类的大脑
存储器/IO设备<br /> 作用:是计算机的记忆功能,负责数据的存取<br /> 分类:<br /> 内存(基于电工作):存取数据都快,断电数据丢失,只能临时存取数据<br /> 外存(硬盘,基于磁工作):存取速度都慢,断电数据也不丢,可以永久保存数据
类比:<br /> 内存===》人类的大脑的记忆功能<br /> 外存===》人的笔记本
输入设备input<br /> 如键盘、鼠标<br /> 输出设备output<br /> 如显示器、打印机
4、一个程序的运行与三大核心硬件的关系
人--------------编程语言------------->计算机<br /> 程序如下:<br /> 1、去包子店 <br /> 2、付钱<br /> 3、把包子送回来
总结:<br /> 程序最先是存放于硬盘之上<br /> 程序的运行一定事先把程序的代码加载到内存<br /> 然后cpu从内存中读取指令执行
二:操作系统
1、引入
用户/应用程序(暴风影音、腾讯qq、快播、哇嘎)<br /> 操作系统:控制程序(windows、linux)<br /> 计算机硬件
2、操作系统概念
操作系统是一个协调、管理、控制计算机硬件资源与应用软件资源的一个控制程序<br /> 作用:<br /> 1、控制计算机硬件的基本运行 <br /> 2、把使用硬件的复杂操作封装成简单的功能,给上层的应用程序使用
例如:文件就是操作系统提供给应用程序/用户操作硬盘的一种功能
3、程序的区分
计算机硬件是死的,计算机硬件的运行都受软件控制,所以说,软件相当于计算机的灵魂<br /> 具体来说软件分为两种:<br /> 1、应用软件:应用程序相关逻辑<br /> 2、系统软件:控制底层硬件的
4、计算机系统三层结构
应用程序<br /> 操作系统<br /> 计算机硬件
5、平台
计算机硬件+操作系统=》平台
软件的跨平台性指的是:一款软件可以任意平台上运行,是衡量软件质量高低的一个非常重要的指标
三、计算机基础知识想详解
1、cpu详解
cpu的分类 与指令集<br /> x86-64(*****)<br /> cpu具有向下兼容性<br /> 64的cpu既能运行32位的程序也能运行64位的程序<br /> 64的cpu从内存中一次可以拿出的64bit二进制指令
内核态与用户态(*****)<br /> 代表cpu的两种工作状态<br /> 1、内核态:运行的程序是操作系统,可以操作计算机硬件<br /> 2、用户态:运行的程序是应用程序,不能操作计算机硬件
内核态与用户态的转换<br /> 应用程序的运行必然涉及到计算机硬件的操作,那就必须有用户态切换到<br /> 内核态下才能实现,所以计算机工作时在频繁发生内核态与用户态的转换<br /> 多线程与多核芯片<br /> 2核4线程:<br /> 2核代表有两个cpu,4线程指的是每个cpu都有两个线程=》假4核
4核8线程<br /> 4核代表有4个cpu,8线程指的是每个cpu都有两个线程=》假8核<br />程序存在硬盘==>内存==> cpu<br />![](https://cdn.nlark.com/yuque/0/2021/jpeg/22488566/1633283977094-a3ad5de2-d0ec-47bf-9431-8d5ab5debff6.jpeg)<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/22488566/1633283685841-6392fecf-ea69-4466-a167-c6b62399a860.png#clientId=u533b40ec-a508-4&from=paste&height=338&id=ucc8302e3&margin=%5Bobject%20Object%5D&name=image.png&originHeight=338&originWidth=598&originalType=binary&ratio=1&size=110963&status=done&style=none&taskId=u121d3e5b-c1c3-4587-bcfc-ba277991de9&width=598)
2、存储器
RAM:内存<br /> ROM:“只读内存”<br /> 存放计算机厂商写死计算机上的一段核心程序=》BIOS<br /> CMOS:存取速度慢,断电数据丢失,耗电量极低
硬盘:<br /> 机械硬盘:磁盘<br /> 磁道:一圈数据,对应着一串二进制(1bit代表一个二进制位)<br /> 8bit比特位=1Bytes字节<br /> 1024Bytes=1KB<br /> 1024KB=1MB<br /> 1024MB=1GB<br /> 1024GB=1TB<br /> 1024TB=1PB
200G=200*1000*1000B<br /> <br /> 扇区:<br /> 一个扇区通过为512Bytes<br /> 站在硬盘的解读,一次性读写数据的最小单为为扇区
操作系统一次性读写的单位是一个block块=》8扇区的大小=4096Bytes
柱面<br /> <br /> 固态硬盘<br /> IO延迟(*****)<br /> 7200转/min<br /> 120转/s<br /> 1/120转/s=转一圈需要花费8ms
平均寻道时间:机械手臂转到数据所在磁道需要花费的时间,受限于物理工艺水平,目前机械硬盘可以达到的是5ms
平均延迟时间:转半圈需要花费4ms,受限于硬盘的转速
IO延迟=平均寻道时间+平均延迟时间
优化程序运行效率的一个核心法则:能从内存取数据,就不要从硬盘取
虚拟内存
IO设备=设备的控制+设备本身
3、总线
4、操作系统的启动流程(*)
BIOS介绍:
BIOS:Basic Input Output System<br /> BIOS被写入ROM设备
裸机:<br /> cpu<br /> ROM:充当内存,存放BIOS系统<br /> CMOS:充当硬盘
操作系统的启动流程(*****)<br /> 1.计算机加电
2.BIOS开始运行,检测硬件:cpu、内存、硬盘等
3.BIOS读取CMOS存储器中的参数,选择启动设备
4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)
5.根据分区信息读入bootloader启动装载模块,启动操作系统
6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核
BIOS<br /> 1、存有win10系统的光盘、u盘、移动硬盘:无密码<br /> 2、本地硬盘上的win7系统:密码
应用程序的启动流程(*****)<br /> 1、双击exe快捷方式--》exe文件的绝对路径,就是在告诉操作系统<br /> 说:我有一个应用程序要执行,应用程序的文件路径是(exe文件的绝对路径)
2、操作系统会根据文件路径找到exe程序在硬盘的位置,控制其代码从硬盘加载到内存
3、然后控制cpu从内存中读取刚刚读入内存的应用程序的代码执行,应用程序完成启动