一、什么是编程语言?
编程语言的本质就是一门语言,语言是一种事物与另一种事物沟通的表达方式或工具。

什么是编程?

编程就是人把自己想要计算机做的事,也就是自己的思维逻辑,用编程语言表达出来;

编程的目的是让计算机按照人类的思维逻辑去工作,从而解放人力。

二、计算机常识
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架构了。

由于AMD,Intel,VIA所开发出来的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时,可以对指令n+1解码,并且可以读取指令n+2,完全是一套流水线。再后来,超变量CPU,比流水线更加先进,有多个执行单元,可以同时负责不同的事情,比如看电影的同时听歌和打游戏。两个或更多的指令被同时取出,解码并装入一个保持缓冲区中,直到它们都执行完毕,只要有一个执行单元空闲,就检查保持缓冲区是否还有可处理的指令(这种设计的缺陷是,程序的指令经常不按顺序执行,在多数情况下,硬件负责保证这种运算结果与按顺序执行指令时的结果相同)。

摩尔定律:(一个观察出来的结果)芯片中的晶体管数量每18个月翻一倍,随着晶体管数量的增多,更强大的功能成为了可能。

2核4线程:2核代表有两个CPU,4线程代表每个CPU都有两个线程=》假4核

4核8线程:4核代表有4个CPU,8线程代表每个CPU都有两个线程=》假8核

14、存储器

RAM:内存

ROM:“只读内存”

存放计算机厂商写死在计算机上的一段核心程序=》BIOS

CMOS:(易失性)存储速度慢,断电数据丢失,耗电量极低

(给电脑断电以后,其实还有一个主板电池在继续为主板供电,供电给CPU上的时钟芯片工作,计算时间,计算好后就传到CMOS里存储起来——这样下次开机后就还能看到准确的时间——这个主板电池给CMOS供电一般持续3-5年)

硬盘:机械硬盘(磁盘);固态硬盘。

机械硬盘:存取原理依赖于硬盘的机械转动。(这个盘片基于磁信号存放数据,所以也叫磁盘)。

磁道:一圈数据,对应着一串二进制。(1bit代表一个二进制位)

8bit比特位 =1Bytes字节

1024Bytes =1KBytes = 1 KB(注意不是Kb)

1024KB = 1 MB

1024MB = 1 GB

1024GB = 1 TB

1024TB = 1 PB

如今买回来一些存储硬盘发现没有标注的那么大的空间,通常是因为厂商的单位换算是按1000来计算,而非1024,所以实际存储空间会笑一些。(骂一句黑心不过分/doge)

扇区:一个扇区通常512Bytes;站在硬盘的角度,一次性读写数据的最小单位为扇区

操作系统一次性读写的单位是一个block块=》8扇区的大小=4096Bytes

IO延迟:
7200转/min

120转/s

1除以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 CPU

2 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、编程语言简介
分类:低级语言;高级语言

<机器语言 汇编语言 高级语言(编译型、解释型)>

机器语言(二进制):执行效率高,开发效率低,跨平台性差;

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐