一:计算机基础

1、什么是计算机

  1. 计算机俗称“电脑”,包含人对计算机的终极期望,能够真的像人脑一样去工作

2、为何要有计算机

  1. 为了执行人类的程序,从而把人类解放出来
  2. 大前提:计算机所有的组成都是模仿人的某一功能或器官

3、计算机的组成

  1. 控制器:<br /> 作用:是计算机的指挥系统,负责控制计算机所有其他组件如何工作的<br /> 类比:控制器=》人类的大脑
  2. 运算器:<br /> 作用:运算包括数学运算与逻辑运算<br /> 类比:运算=》人类的大脑
  3. 控制器+运算器=》cpu===》人类的大脑
  4. 存储器/IO设备<br /> 作用:是计算机的记忆功能,负责数据的存取<br /> 分类:<br /> 内存(基于电工作):存取数据都快,断电数据丢失,只能临时存取数据<br /> 外存(硬盘,基于磁工作):存取速度都慢,断电数据也不丢,可以永久保存数据
  5. 类比:<br /> 内存===》人类的大脑的记忆功能<br /> 外存===》人的笔记本
  6. 输入设备input<br /> 如键盘、鼠标<br /> 输出设备output<br /> 如显示器、打印机

4、一个程序的运行与三大核心硬件的关系

  1. 人--------------编程语言------------->计算机<br /> 程序如下:<br /> 1、去包子店 <br /> 2、付钱<br /> 3、把包子送回来
  2. 总结:<br /> 程序最先是存放于硬盘之上<br /> 程序的运行一定事先把程序的代码加载到内存<br /> 然后cpu从内存中读取指令执行

二:操作系统

1、引入

  1. 用户/应用程序(暴风影音、腾讯qq、快播、哇嘎)<br /> 操作系统:控制程序(windowslinux)<br /> 计算机硬件

2、操作系统概念

  1. 操作系统是一个协调、管理、控制计算机硬件资源与应用软件资源的一个控制程序<br /> 作用:<br /> 1、控制计算机硬件的基本运行 <br /> 2、把使用硬件的复杂操作封装成简单的功能,给上层的应用程序使用
  2. 例如:文件就是操作系统提供给应用程序/用户操作硬盘的一种功能

3、程序的区分

  1. 计算机硬件是死的,计算机硬件的运行都受软件控制,所以说,软件相当于计算机的灵魂<br /> 具体来说软件分为两种:<br /> 1、应用软件:应用程序相关逻辑<br /> 2、系统软件:控制底层硬件的

4、计算机系统三层结构

  1. 应用程序<br /> 操作系统<br /> 计算机硬件

5、平台

  1. 计算机硬件+操作系统=》平台
  2. 软件的跨平台性指的是:一款软件可以任意平台上运行,是衡量软件质量高低的一个非常重要的指标

三、计算机基础知识想详解

1、cpu详解

  1. cpu的分类 与指令集<br /> x86-64(*****)<br /> cpu具有向下兼容性<br /> 64cpu既能运行32位的程序也能运行64位的程序<br /> 64cpu从内存中一次可以拿出的64bit二进制指令
  2. 内核态与用户态(*****)<br /> 代表cpu的两种工作状态<br /> 1、内核态:运行的程序是操作系统,可以操作计算机硬件<br /> 2、用户态:运行的程序是应用程序,不能操作计算机硬件
  3. 内核态与用户态的转换<br /> 应用程序的运行必然涉及到计算机硬件的操作,那就必须有用户态切换到<br /> 内核态下才能实现,所以计算机工作时在频繁发生内核态与用户态的转换<br /> 多线程与多核芯片<br /> 24线程:<br /> 2核代表有两个cpu4线程指的是每个cpu都有两个线程=》假4
  4. 48线程<br /> 4核代表有4cpu8线程指的是每个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、存储器

  1. RAM:内存<br /> ROM:“只读内存”<br /> 存放计算机厂商写死计算机上的一段核心程序=》BIOS<br /> CMOS:存取速度慢,断电数据丢失,耗电量极低
  2. 硬盘:<br /> 机械硬盘:磁盘<br /> 磁道:一圈数据,对应着一串二进制(1bit代表一个二进制位)<br /> 8bit比特位=1Bytes字节<br /> 1024Bytes=1KB<br /> 1024KB=1MB<br /> 1024MB=1GB<br /> 1024GB=1TB<br /> 1024TB=1PB
  3. 200G=200*1000*1000B<br /> <br /> 扇区:<br /> 一个扇区通过为512Bytes<br /> 站在硬盘的解读,一次性读写数据的最小单为为扇区
  4. 操作系统一次性读写的单位是一个block块=》8扇区的大小=4096Bytes
  5. 柱面<br /> <br /> 固态硬盘<br /> IO延迟(*****)<br /> 7200转/min<br /> 120转/s<br /> 1/120转/s=转一圈需要花费8ms
  6. 平均寻道时间:机械手臂转到数据所在磁道需要花费的时间,受限于物理工艺水平,目前机械硬盘可以达到的是5ms
  7. 平均延迟时间:转半圈需要花费4ms,受限于硬盘的转速
  8. IO延迟=平均寻道时间+平均延迟时间
  9. 优化程序运行效率的一个核心法则:能从内存取数据,就不要从硬盘取
  10. 虚拟内存
  11. IO设备=设备的控制+设备本身

3、总线

4、操作系统的启动流程(*

  1. BIOS介绍:
  2. BIOSBasic Input Output System<br /> BIOS被写入ROM设备
  3. 裸机:<br /> cpu<br /> ROM:充当内存,存放BIOS系统<br /> CMOS:充当硬盘
  4. 操作系统的启动流程(*****)<br /> 1.计算机加电
  5. 2.BIOS开始运行,检测硬件:cpu、内存、硬盘等
  6. 3.BIOS读取CMOS存储器中的参数,选择启动设备
  7. 4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)
  8. 5.根据分区信息读入bootloader启动装载模块,启动操作系统
  9. 6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核
  10. BIOS<br /> 1、存有win10系统的光盘、u盘、移动硬盘:无密码<br /> 2、本地硬盘上的win7系统:密码
  11. 应用程序的启动流程(*****)<br /> 1、双击exe快捷方式--》exe文件的绝对路径,就是在告诉操作系统<br /> 说:我有一个应用程序要执行,应用程序的文件路径是(exe文件的绝对路径)
  12. 2、操作系统会根据文件路径找到exe程序在硬盘的位置,控制其代码从硬盘加载到内存
  13. 3、然后控制cpu从内存中读取刚刚读入内存的应用程序的代码执行,应用程序完成启动