计算机基础
计算机完整的体系结构
应用程序
操作系统
计算机硬件
计算机硬件(三大核心部件):
CPU:大脑 #CPU只能读取内存
内存:短期记忆
硬盘:永久保存(本子)
CPU工作流程:
通过暴风影音打开一个视频:
1.硬盘运转将数据读到内存
2.CPU去内存里面拿数据
3.将打开视频的命令翻译成自己能对应上的操作步骤
4.硬件执行
注:CPU一直在运行,使用率指CPU多少在执行任务。剩下的其实也在工作,只是在执行特殊命令空转
计算机的五大组成部分:
1.运算器:计算机的运算系统 负责数学运算与逻辑运算
2.控制器:计算机的控制系统 是计算机的指挥系统,用来控制计算机所有其他硬件的运行
—逻辑运算
判断事务的对错
—数字运算
1+1
运算器+控制器=中央处理器(CPU)
3.存储器(又名I/O设备):
—内存 存取的都是电信号,断电数据丢失
基于电工作的
优点:读取速度快
缺电:断电数据丢失
—外存 磁盘存取的都是磁信号,断电数据不会丢失
优点:可以永久存储数据
缺点:读取速度慢
4.输入设备
键盘、鼠标、触摸屏、摄像头、麦克风
5.输出设备
显示器、音响、打印机
详细介绍参考:https://www.cnblogs.com/linhaifeng/p/6523843.html
三大核心硬件:
cpu
内存
硬盘
存储器:
寄存器:将CPU即将要用到的数据存储于寄存器 (容量小) <4kb #CPU自带
Cache(高速缓存):将经常要用的数据中容量比较小的数据存储在高速 缓存
内存:临时存储数据的地方
linux下:
cache读缓存 当linux系统认为平时内存未满,偷偷拿一部分内存读常用数据作为缓存
buffer写缓冲 偷偷拿一部分内存,往硬盘写数据并不会立马写入,会攒一大波放入缓存,一次性写入硬盘中(可以强行刷新写入硬盘)
硬盘:
机械硬盘:硬盘的机械手臂在磁道上旋转读取数据,取对应扇区,查数据
(IO时间为平均寻道时间[寻找数据所在那个圈圈磁道]+平均延迟时间[旋转到数据所在的扇区]) 例如7200转的机械硬盘,可求平均延迟时间(转半圈时间)
固态硬盘:基于电容存储,数学算法
操作系统:
操作系统就是将计算机硬件的一系列丑陋的接口封装起来,转化为优雅,便捷的接口,给到应用程序
操作系统就是组织、协调、控制你的计算机硬件 与 应用软件资源的一种控制程序
BIOS (Baise input output system) #计算机自带的一个小系统
以下国产系统与之关联系统
通信 UOS V20 ------------- centos -------------- rocky --------------- rhel
麒麟 openKylin ------------- ubuntu
POSIX
- portable Operating System Interface可移植的操作系统接口
- IEEE在操作系统上定义的一系列API标准
- POSIX兼容的程序可在其他POSIX操作系统编译执行
源码 ----> 编译 ----> 得到可执行程序 exe
在 windows 可执行
在 linux 中无法执行
一份源码
两个平台编译
如果不能跨平台编译
就意味着,一个程序,要写两份代码
源码层面可以跨平台
实际上,并不是百分百,在不同的凭条,还是要分别做适配,但是大多数函数,库,都是可以跨平台的
在很久之前,编译后的二进制,不能跨平台,源码也不能跨平台,那时候,只能写两份程序
后来,为了结束这种情况,就出了一个概念叫 posix,就是把常用的函数,接口,在不同的操作系统和平台上统一了
CPU
x86-64 CPU
x86架构 有更多复杂指令集的内核 x86是针对cpu的型号或者说架构的一种统称,详细地讲,最早的那颗Intel发明出来的CPU代号称为8086,后来在8086的基础上又开发出了80285、80386....,因此这种架构的CPU就被统称为x86架构了。 由于AMD、Intel、VIA所开发出来的x86架构CPU被大量使用于个人计算机上面,因此,个人计算机常被称为x86架构的计算机! 程序员开发出的软件最终都要翻译成cpu的指令集才能运行,因此软件的版本必须与cpu的架构契合,举个例子,我们在MySQL官网下载软件MySQL时名字为: Windows(x86,32-bit),ZIP Archive (mysql-5.7.20-win32.zip) 我们发现名字中有x86,这其实就是告诉我们:该软件应该运行在x86架构的计算机上。
CPU分为32位和64位:
cpu的位数指的是cpu一次性能从内存中取出多少位二进制指令,64bit指的是一次性能从内存中取出64位二进制指令。 在2003年以前由Intel所开发的x86架构CPU由8位升级到16、32位,后来AMD依此架构修改新一代的CPU为64位,到现在,个人计算机CPU通常都是x86_64的架构。 cpu具有向下兼容性,指的是64位的cpu既可以运行64位的软件,也可以运行32位的软件,而32位的cpu只能运行32位的软件。这其实很好理解,如果把cpu的位数当成是车道的宽,而内存中软件的指令当做是待通行的车辆,宽64的车道每次肯定既可以通行64辆车,也可以通信32辆车,而宽32的车道每次却只能通行32辆车
计算机是基于电运行的。
通过高低电平:1,0 例:1010101010101010
x86:32位
cpu一次性可以处理32位个二进制字符
可以兼容32位应用程序
x64:64位
cpu一次性可以处理64位个二进制字符
可以兼容32位应用程序和64位的应用程序
注:64为系统是amd设计的,windows跟进兼容,所有又名amd64
什么是文件?
操作系统用于存储数据的接口,本质上就是控制硬盘IO操作
计算机完整体系结构
应用程序
系统接口层 在指令集基础上,系统进行封装接口
内核 出厂就有的内核指令集
计算机硬件