zoukankan      html  css  js  c++  java
  • 计算机基础

    计算机硬件介绍

    1.编程语言的作用及与操作系统和硬件的关系

      编程语言是用来编写应用程序的,是程序员与计算机沟通的介质。操作系统运行与硬件之上,是应用程序和硬件沟通的工具。

      应用程序->操作系统->计算机硬件

    2.计算机的基本组成cpu、内存和硬盘

    cpu从内存中取指令、解码并执行。周而复始。cpu处理数据,硬盘存储数据,内存复杂连接CPU和硬盘,存储临时使用的数据。

    3.CPU中的寄存器

       寄存器是cpu中组成部分 ,它的存储速度非常快。用来暂存指令、数据和地址给cpu用。

     寄存器的分类

      通用寄存器:用来保存变量和临时结果的寄存器。

      程序计数器:程序计数器保存了将要取出的下一条指令的内存地址。

      堆栈指针寄存器:从来访问内存。栈:后进先出。堆:先进先出。

      程序状态字寄存器:这个寄存器包含了cpu的工作模式,指令集,中断等。

    5.CPU的用户态和内核态

    内核态:cpu运行在内核态时,cpu可以执行指令集中的所有指令,可以访问整个硬件。

    用户态:cpu运行在用户态时,仅仅只能执行cpu指令集的一个子集(该子集不能操作硬件)。

    内核态和运行用户态的切换:应用程序向操作系统内核请求运行更高权限的服务,应用程序发起系统调用,改变psw的一个二进制位,操作系统返回应用程序切换cpu状态的接口。

    6.储存器

      寄存器既是L1缓存,材质与cpu一样,cpu访问它无时延。

      高速缓存即L2缓存,高速缓存放在cpu内部,或是最接近CPU的地方,程序需要读取储存字时,高速缓存硬件检查所需要的字是否存在于高速缓存中,如果是,那么高速缓存命中,不需要把请求发送给内存,大大节约了时间。

    内存:高速缓存找不到的都回去内存中找,内存中的数据断电丢失。

    CMOS储存器:CMOS储存器具有易失性,它存储着计算机的时间,配置参数,系统引导等。它由一块单独的电池供电。

    7.磁盘

    8bit=1byte(字节)

    1024b=1KB

    1024kb=1M

    1024M=1G

    数据都存放于一段一段的扇区,扇区是磁道的一部分圆圈。从磁盘读取一段数据需要经过寻道时间和延迟时间。

    虚拟内存:虚拟内存技术使计算机扩展原来的内存,部分不需要执行的放在磁盘上。

     上下文切换:从一个程序切换到另一个程序,缓存和MMU提升了上下文切换的性能。

    8.驱动和控制器

    驱动程序创建了一个硬件与软件沟通的接口,连接操作系统和硬件,由厂商自己编写,所有的IO设备都需要控制器接入总线。

    设备驱动用来控制驱动器。

    9.总线

    总线分为数据总线、地址总线和控制总线。

    北桥:连接系统高速设备

    10.操作系统启动流程

      计算机加电

      BIOS上电自检

      读取启动顺序:硬件自检完成后,BIOS把控制权转交给下一阶段的启动程序(Boot Sequence)

      主读取引导记录:从硬盘第一个扇区读取主引导记录,"只有512个字节,它的主要作用是,告诉计算机到硬盘的哪一个位置去找操作系统。由三部分组成

                      (1)第1-446字节:调用操作系统的机器码。

                      (2)第447-510字节:分区表

                      (3)第511-512字节:标记位

      系统启动:操作系统的内核载入内存,加载bootloader,操作系统询问BIOS,以获得配置信息,查询驱动程序是否正常。

    11.应用程序启动流程

    监视器监控输入设备->双击应用程序,查找所在磁盘位置->内存读入应用程序->cpu进行执行

    编写程序读取写入文件都在调用操作系统。

  • 相关阅读:
    kafka官方的kafka-server-start.sh不能关闭kafka进程解决办法
    Linux如何切换图形界面和命令行界面
    2019-9-28:渗透测试,基础学习,DNS投毒
    2019-9-28:渗透测试,基础学习,pgp常量,逻辑运算,DNS投毒,笔记
    2019-9-10:渗透测试,基础学习,nmap扫描命令,php基本语法学习,笔记
    2019-9-11:渗透测试,Kill远控软件,初接触
    2019-9-27:渗透测试,metasploit-framework初接触
    2019-9-26:渗透测试,基础学习,js正则以及什么是目录扫描,笔记
    2019-9-26:渗透测试,基础学习,nmap扫描kali虚拟机服务
    2019-9-25:渗透测试,基础学习,Hydra BP爆破,js基本知识,banner信息收集笔记
  • 原文地址:https://www.cnblogs.com/zouruncheng/p/6532913.html
Copyright © 2011-2022 走看看