菜机互啄 计算机的一些基本知识 持续更新

基础知识篇一

程序 指令+数据组成  储里器面存放着数据和指令linux

计算机硬件系统五大部件由运算器、控制器、存储器、输入设备、输出设备组成 

 

 

1.CPU

cpu包含运算器和控制器ios

CPU主要的组成 运算器,控制器,寄存器

控制器:读取指令,并在指令的控制下,去读取要执行的运算,包括数据或者计算,控制器会控制告诉计算器到哪里去取数据,数据取过来,运算器开始运算,运算结果由控制器输出到存储器CPU暂时存储器程序员

运算器:运算器须要去存储里面读取指令web

寄存器:cpu暂时存储器,shell

 

地址总线:内存寻址编程

数据总线:传输数据小程序

控制总线:控制指令缓存

 

地址总线的位数决定了CPU可直接寻址内存空间大小,好比8位微机的地址总线为16位,则其最大可寻址空间为2^16=64KB,16位微型机的地址总线为20位,其可寻址空间为2^20=1MB。通常来讲,若地址总线为n位,则可寻址空间为2^n位。[1] 安全

 

地址总线宽度 地址总线数据宽度决定了CPU能够访问的物理地址空间,简单地说就是CPU到底可以使用多大容量的内存。对于486以上的微机系统地址线的宽度为32位,最多能够直接访问4096 MB(4GB)的物理空间。Pentium Pro/Pentium Ⅱ/Pentium Ⅲ为36位,能够直接访问64GB的物理空间。网络

 

Cup缓存:CUP是从内存读取数据,缓存是从三级到一级层层缓存。可是CPU的处理速度依然远远大于内存,CPU依然须要等待大量的时间从内存读取数据,CPU性能被浪费,因此CPU引入了一级缓存,一级缓存分为指令缓存和数据缓存 他的容量很小,只有几十K左右,但他的读写速度却已经与CPU处理速度很是接近了。

但由于这样的一级缓存成本很是很是高,因此是不可能作的很大的,但这么小的几十K跟内存成百上千M的容量比,实在是不够用,一级缓存与内存的数据传递又成了瓶颈,出于成本考虑一级缓存不可能增大太多,因此又加入了二级缓存,他的速度比一级缓存要小的多,但成本低,并且能够作到比一级缓存大不少,因此就出现了二级缓存,如今二级缓存基本都是1M以上的了,甚至都6M的了。

 

 

2.存储

Ram:全部数据都在来自于Ram 随机访问存储器 ,如今主流使用的都是ram

Rom 只读存储器 此前适用于这台计算的一堆指令。

 

 

 

3.输入输出设备称为I/O设备

用来与用户进行交互

I输入设备:键盘、鼠标、摄像头、扫描仪光笔、手写输入板、游戏杆、语音输入装置等都属于输入设

o输出设备:显示器、打印机、绘图仪、影像输出系统、语音输出系

默认输出设备也叫标准输出

默认输入设备也叫标准输入

标准输入通常都指的是:键盘

标准输出和错误输出:显示器

I/O重定向:改变了数据的输出来源和输入来源

 

 

 

加电自检含义:指令可以映射到内存里面,控制器就会读取这些指令,告诉CPU 显卡内存是否存在 这个就叫作加电自检

 

 

内存分为三段:post加电自检之后 bios自动映射到内存 第一段实现加电自检,第二段内核空间(kernel space)载入操做系统内核,第三段被多个应用程序彼此共享

 

 

 


Interrupt含义: 中断 能够理解为硬件通知机制  那么咱们怎么知道 中断是鼠标或者键盘,计算机内部有个可中断编程控制器,这个控制器和CUP是针脚相连的,cup有多跟线,每一根线对应一个设备,这样CUP就能够知道是哪里出现中断了

 

 

设备分南桥和北桥

南桥:低速控制总线 链接大量I/O外围设备(键盘,鼠标,显示器) 汇总后经过同一根线交给北桥,北桥经过控制器传给CUP

北桥:高速控制总线  cup和内存打交道,Cup和内存须要总线相连,因此须要大量数据传输,须要高频率快速数据交换

如今为了高效率 内存直接链接CUP了 北桥只负责链接南桥,由于北桥速度快,所以能够将固态硬盘直接链接到北桥,实现更高效率,这就是一种硬件调优

 

 

 

缓存工做要遵循 程序局部性原理,

时间局部性:刚访问的数据,可能最近还须要访问 缓存下来

空间局部性:若是访问一个数据,离周围的数据很是近,因此把周围的数据一块儿载入进来

 

 

机器只能识别二进制编程为了方便编程,cpu芯片会有微码也叫微程序,称为汇编语言 人类认识的语言,在用编译器(编译器也是软件),转换为机器语言,微码是芯片是自带的,每一个厂家的芯片不同,因此没法相互使用。

API(Application Programming Interface):应用编程接口 为了让不一样厂家的芯片能够互相使用,可让cup直接相互经过编程接口 把指令往上传输 就跟翻译器是一个道理

 

 

硬件架构:cpu芯片的不一样系列 由于ntel公司 发展出了代号为8086,因此这种架构的CUP叫作x86

主流架构

手持智能设备:硬件架构 移动硬件架构叫作 ARM (啊木)

X86

X86-64 也叫AMD64

32位 计算机中的位数指的是CPU一次能处理的最大位数,一次最多能处理32位数据

64位计算机中的位数指的是CPU一次能处理的最大位数,一次最多能处理64位数据

 

 

32位和64位操做系统是指:CPU一次处理数据的能力是32位仍是64位。换而言之, 32位系统的处理器最大只支持到4G内存,而64位系统最大支持的内存高 达亿位数。

支持内存的大小 这是根据他们的CUP处理的数据宽度决定的

 

 

进程

运行的程序称之为进程,进程是有生命周期的,处理完毕进程就结束了,而程序在内存里保留的 因此进程和程序是不同的,

进程的原理:CUP运算是根据时间的流逝完成的CPU是时间驱动的。因此将CPU样件切分为CPU的时间片time slice

time sluce

第一个程序运行5ms

第二个程序运行5ms

来回交替运行

内存能够经过访问不动的段来进行交替也称分段机制,例如第一个程序访问第一段,第二个程序访问第二段,每一个程序都是从头开始的,那么内存如何知道我要去访问相应的段落呢? CPU内部也能够分段,内部会把不一样的任务放入相应的段落里,来进行相互交替 ,内存分段由CPU完成

 

 

 

 

 

操做系统

 

操做系统基本组成

 

 

操做系统也是个软件,运行在硬件上,负责管理硬件资源,将硬件资源所提供的计算能力,分配给不一样程序,CUP分红多个片,内存分红为多个段,而且负责协调,协调包括程序的启动,终止和回收等工做,还负责程序切换等工做

负责协调硬件和程序。有了操做系统,进程不能和硬件直接打交道

要想使用硬件必须经过操做系统进行协调 进程向操做系统内核进行程序调用,

由系统内核把程序从内存中取出来返还给应用层程序和进程,

 

操做系统是由system cal(系统调用)进行协调,可是因为这种方式过于底层 ,使用起来比较麻烦,因此将底层系统调用一个或者多个,把功能封装打包起来,作出更高级的接口,那么这个高级接口称做为库,库不能独立运行,只能被调用。

除了系统调用还有库调用(library),库对于操做系统或者内核叫:应用编程接口API

程序员开发程序都是经过库去开发,windos和linux库不一样。因此windos开发的程序不能再linux上使用 ,先要程序通用如何windos和linux使用的库同样,彷佛就能够

因此操做系统 底层是硬件 操做系统就是经过系统调用

Shell:人机交互接口, 为何咱们双击就能点开word呢 就是经过shell实现,把计算机的功能经过人类容易操做的方式,输出一个接口,经过这个接头才能操做计算机

Shell分两种

1.GUI图形用户界面

2.CLT命令行接口

   

                                                                                                               

 

内核:操做系统的核心,内核负责管理硬件资源,而且将

硬件资源虚拟提供给上层所须要的运行程序。如何程序运行在硬件上那么这个程序就能够控制硬件的各类属性,若是多个程序同事运行,相互之间就会产生干扰,因此须要内核负责管理和协调,内核确认硬件的运算能力经过系统调用的方式,返还给程序

 

程序的执行过程:有了操做系统,内核负责整个系统的监控和上层程序的监控,可以和程序进行交互的只有内核,软件程序输入信息先到达CPU,CPU通知内核进行处理,在由内核转交给应用程序

操做系统也是一种程序,程序是由指令+数据组成,因此内核的数据再也存储器(内存里),若是有恶意的应用程序访问内核那么系统的稳定性没有保障,因此有保护机制把应用程序和内核隔离开,因此CPU分为4个级别,只有内核能运行在特权级别下(0级别),而其余程序运行在最外围级别上,cup会把级别映射到存储器的(内存)

内核的功能:

进程管理

           内存管理

文件系统

网络功能

硬件驱动

安全机制

ABI应用二进制接口 每一个CPU的编译器不同,使用ABI能够实现交叉编译

 

 

全部程序都须要进行编译,由于计算机内核只认识二进制,因此就有了第三方公司专门作编译,把程序编译完 打包封装给系统使用,这就是redhat 红帽公司 这些公司都不是开发者他们只是将·源代码格式的linux在通用的计算机上编译成通用格式,其余人就不用编译了,因此红帽这些公司是linux的发行商,内核有Linux之父 李纳斯维护 软件由GNU 组织戈怒维护的 redhat负责包装发行,可是由于红帽有些是要服务费 升级补丁是要钱的,后来成立了组织centOS 开放社区版的linux 由于免费因此若是任何事情致使系统崩溃centOS不负责任

 

 

LINUX基本原则

  1. 由单一小程序组成,组合小程序完成复杂任务 好比搭建服务 一个安装包须要不少个安装包去支持和依赖 因此叫组合小程序完成复杂任务
  2. 一切皆文件,全部东西都保存为文件格式,甚至连访问入口都是文件
  3. 尽可能避免捕获用户接口,不根用户交互,只要执行命令不须要用户输入任何信息
  4. 配置文件保存为文本格式,在linux配置服务建立个文本就能够完成全部功能

 

 

IDE:   集成开发环境IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,通常包括代码编辑器编译器调试器和图形用户界面等工具

DLL文件:动态连接库文件 一个软件的运行有可能调用库里文件,若是库文件缺失软件就没法正常运行。

 

 

一个操做系统 只要有内核,shell所依赖的库文件和shell ,一个操做系统就彻底能够运行了算是一个操做系统的架构,若是配置一个web服务,只须要web程序和程序所依赖的库把东西填充在架构里,就彻底能够运行了

相关文章
相关标签/搜索