一、什么是编程语言编程语言的本质就是一门语言语言是一种事物与另一种事物沟通的表达方式或工具。什么是编程编程就是人把自己想要计算机做的事也就是自己的思维逻辑用编程语言表达出来编程的目的是让计算机按照人类的思维逻辑去工作从而解放人力。二、计算机常识1 计算机是什么计算机俗称“电脑”人对计算机的超级期望就是能够真的像人脑一样去工作2 为什么要有计算机为了执行人类的程序从而把人类解放出来大前提计算机所有的组成都是模仿人的某一功能或器官3、计算机的组成控制器计算机的指挥系统负责控制计算机所有其他组件如何工作。类比人类的大脑运算器运算包括数学运算和逻辑运算。类比人类的大脑存储器/IO设备计算机的记忆功能负责数据的存取。内存基于电工作存取数据都快断电数据丢失只能临时存取数据外存硬盘基于磁工作存取速度都慢断电数据不丢可以永久保存数据类比人类的工作记忆是内存纸质笔记本是外存输入设备input如键盘、鼠标输出设备output如显示器、打印机。4、一个程序的运行与三大核心硬件的关系三大核心硬件CPU内存硬盘程序最先存放与硬盘中程序的运行需要事先把程序的代码加载到内存然后CPU从内存中读取指令执行5、操作系统介绍大前提我们编程的目的是为了让计算机工作让计算机硬件自发地运行起来但计算机硬件毕竟是“死”的硬件的运行都是由软件支配的。1 应用程序微信、QQ、只狼、黑神话悟空。。。2 操作系统控制程序3 计算机硬件操作系统概念操作系统是一个协调、管理、控制计算机硬件资源与应用软件资源的一个控制程序。作用是1 控制 计算机硬件的基本运行2 把使用硬件的复杂操作封装成简单的功能给上层的应用程序使用程序的区分计算机硬件是死的计算机硬件的运行都受软件控制所以说软件相当于计算机的灵魂。具体来说软件分为两种1 应用程序应用程序相关逻辑2 系统软件控制底层硬件的【开发应用程序之前需要先写控制程序但写控制程序需要了解计算机底层硬件的细节例如CPU、内存和硬盘到底是怎么工作的够一个普通人研究一辈子了这个控制程序一个普通人十年都不一定能写出来非常复杂、非常浪费精力需要非常强的计算机硬件知识虽然应用程序各式各样但控制程序的工作基本上是相同的如果开发应用程序前都写控制程序那就是在做重复劳动了。基于上述这两个原因就有公司出来专门负责写控制程序这个控制程序就是现代我们正在使用的操作系统主流的有Windows、Linux更稳定。所以买完电脑第一件事 装系统】6、计算机三层结构文件就是电脑上的那些各种各样的文件操作系统提供的虚拟概念是操作系统对 硬盘的操作 的封装。文件 也就是操作系统提供给应用程序/用户操作硬盘的一种功能三层结构—— 应用程序 ———— 操作系统 ————计算机硬件 ——7、平台与跨平台操作系统硬件平台应用程序的运行平台软件的跨平台性指的是一款软件可以在任意平台上运行是衡量软件质量高低得一个非常重要的指标8、CPU分类与指令集的概念人类编写的程序——》CPU内部的二进制指令——》计算机其他硬件9、x86-64位的概念最早的那颗Intel 发明出来的CPU代号型号为8086后来在8086的基础上又开发出来80285、80386…因此这种架构的CPU就被统称为x86架构了。由于AMDIntelVIA所开发出来的x86架构 CPU 被大量使用于个人计算机上面因此个人计算机常被称为x86架构的计算机。CPU具有向下兼容性 64位CPU可以兼容32位和64位的程序32位的CPU不能运行64位的程序。10、寄存器介绍速度很快的存储设备基于电工作速度几乎和CPU一样是和CPU同样的材质制作的。进一步提高CPU取数据的速度程序运行速度更快。速度CPU/寄存器 内存硬盘11、CPU工作流程简介图CPU工作流程12、内核态与用户态CPU的指令集控制其他硬件的指令集运算相关的指令集操作系统对应CPU所有的指令集应用程序只对应运算相关的指令集。CPU的两种工作状态内核态和用户态内核态CPU所有的指令集对外都开放运行的程序是操作系统可以操作计算机硬件。用户态CPU只开放运算相关指令集。运行的程序是应用程序。应用程序的运行必然涉及到计算机硬件的操作那就必须有用户态切换到内核态下才能实现所以计算机工作时在频繁发生内核态与用户态的转换。13、多线程与多核芯片介绍CPU设计的演变最开始取值、解码、执行这三个过程是同时进行的意味着任何一个过程完成都需要等待其余两个过程执行完毕浪费时间后来设计成了流水线式的即执行指令n时可以对指令n1解码并且可以读取指令n2完全是一套流水线。再后来超变量CPU比流水线更加先进有多个执行单元可以同时负责不同的事情比如看电影的同时听歌和打游戏。两个或更多的指令被同时取出解码并装入一个保持缓冲区中直到它们都执行完毕只要有一个执行单元空闲就检查保持缓冲区是否还有可处理的指令这种设计的缺陷是程序的指令经常不按顺序执行在多数情况下硬件负责保证这种运算结果与按顺序执行指令时的结果相同。摩尔定律一个观察出来的结果芯片中的晶体管数量每18个月翻一倍随着晶体管数量的增多更强大的功能成为了可能。2核4线程2核代表有两个CPU4线程代表每个CPU都有两个线程》假4核4核8线程4核代表有4个CPU8线程代表每个CPU都有两个线程》假8核14、存储器RAM:内存ROM:“只读内存”存放计算机厂商写死在计算机上的一段核心程序》BIOSCMOS易失性存储速度慢断电数据丢失耗电量极低给电脑断电以后其实还有一个主板电池在继续为主板供电供电给CPU上的时钟芯片工作计算时间计算好后就传到CMOS里存储起来——这样下次开机后就还能看到准确的时间——这个主板电池给CMOS供电一般持续3-5年硬盘机械硬盘磁盘固态硬盘。机械硬盘存取原理依赖于硬盘的机械转动。这个盘片基于磁信号存放数据所以也叫磁盘。磁道一圈数据对应着一串二进制。1bit代表一个二进制位8bit比特位 1Bytes字节1024Bytes 1KBytes 1 KB注意不是Kb1024KB 1 MB1024MB 1 GB1024GB 1 TB1024TB 1 PB如今买回来一些存储硬盘发现没有标注的那么大的空间通常是因为厂商的单位换算是按1000来计算而非1024所以实际存储空间会笑一些。骂一句黑心不过分/doge扇区一个扇区通常512Bytes站在硬盘的角度一次性读写数据的最小单位为扇区操作系统一次性读写的单位是一个block块》8扇区的大小4096BytesIO延迟7200转/min120转/s1除以120转/s转一圈需要花费8ms平均寻道时间机械手臂转到数据所在磁道需要花费的时间受限于物理工艺水平目前机械硬盘可以达到的是5ms平均延迟时间转半圈需要花费4ms受限于硬盘的转速IO延迟平均寻道时间平均延迟时间优化程序效率最核心的内容最后都要来到减少IO层面上提升效率至关重要的核心法则能从内存取数据就千万不要从硬盘中取虚拟内存虚拟内存 硬盘上的 swap 分区在内存不够用时保证程序的运行磁带成本远低于磁盘IO设备设备的控制设备本身驱动程序控制设备的控制器15、总线总线主板上组件与组件之间来回传输的线主板主板上各个设备的连接情况PCI桥又称“北桥”连接高速设备如CPU、内存ISA桥又称“南桥”连接慢速设备如SCSI硬盘、USB、显示器16、BIOS介绍BIOS Basic Input Output System 基本输入输出系统BIOS被写入ROM设备刚买的电脑第一次开机最先启动的便是BIOS系统BIOS是软件、程序; CMOS是芯片、硬件; 通过BIOS程序可以设置CMOS里的参数; CMOS是一块芯片在主板上保存着重要的开机参数会用CMOS纽扣电池来维持电量; CMOS里存放参数通过程序把设置好的参数写入CMOS去设置它一旦断电CMOS中的数据就没了。17、操作系统安装原理裸机1 CPU2 ROM: 充当内存、存放BIOS系统3 CMOS是主板上的一块可读写的RAM芯片用来保存计算机基本启动信息如日期、时间、启动设置等。CMOS RAM芯片靠后备电池供电即使系统掉电后信息也不会丢失: 充当硬盘4 本地硬盘准备一个存放有 操作系统代码 的磁盘/硬盘/光盘系统盘本质是将光盘中的操作系统代码 拷贝 到 电脑本地硬盘上18、操作系统启动流程操作系统启动流程19、密码破解与安全相关例子1.存有win10系统的光盘、u盘、移动硬盘无密码2.本地硬盘上的win7系统密码攻击前提能够进入到计算机的BIOS里面并把外置的系统盘优先级设置为高于本地硬盘。安全可以给BIOS设置密码但BIOS设置的数据存放在CMOS中CMOS的纽扣电池一旦被拆就将损失所有数据给机箱上锁。20、应用程序的启动流程在操作系统上1.双击exe文件可执行程序exe快捷方式——》exe文件的绝对路径就是在告诉操作系统——我有一个应用程序要执行应用程序的文件路径是巴拉巴拉exe文件的绝对路径。2.操作系统根据文件路径找到exe程序在硬盘的位置控制其代码从硬盘加载到内存3.然后控制CPU从内存中读取 刚刚读入内存的应用程序的代码执行应用程序完成启动21、编程语言简介分类低级语言高级语言机器语言 汇编语言 高级语言编译型、解释型机器语言二进制执行效率高开发效率低跨平台性差