• 0.前言
  • 1.计算机:辅助人脑的好工具
    • 1.1计算机硬件的五大单元
    • 1.2CPU的种类
    • 1.3接口设备
    • 1.4运作流程
  • 2.个人计算机架构与接口设备
    • 2.1CPU
    • 2.2内存
    • 2.3显卡
    • 2.4硬盘与存储设备
    • 2.5主板
  • 3.软件程序执行
    • 3.1机器程序与编译程序
    • 3.2操作系统
      • 3.2.1操作系统内核
      • 3.2.2系统调用
    • 3.3小结
  • 4.参考

0.前言

​ 楼主半路出家做起了软件开发的工作,做了一年半以后,觉得有必要补充一下计算机相关的基础知识框架,于是有了这篇博文,这篇博文主要是泛泛的概述计算机硬件的知识,主要是对于非科班的从业人员的一个大致地了解,比较枯燥,但都是干货,4000字左右,认真读的话,大约1h应该可以看完。

1.计算机:辅助人脑的好工具

计算机其实就是:接收用户输入指令与数据,经过中央处理器的数据与逻辑单元运算处理后,以产生或存储有用的信息。那么商店用的简易型加减乘除计算机、手机、开车的GPS、ATM、笔记本电脑等等都是计算机。

1.1计算机硬件的五大单元

计算机主要分为三部分:

  • 输入单元:包括键盘、鼠标、卡片阅读机、触摸屏幕等等
  • 中央处理器(CPU,Central Processing Unit):含有算术逻辑、控制、记忆等单元
  • 输出单元:例如屏幕、打印机等

CPU作为一个具有特定功能的芯片,里面还有微指令集,由于CPU主要工作在于管理与运算,因此CPU又分为两个主要的单元,分别是:算术逻辑单元与控制单元。 其中算术逻辑单元主要负责程序运算与逻辑判断,控制单元主要协调各组件与各单元间的工作。

CPU中读取的数据是从内存中读取出来的,内存内的数据则是从输入单元传输进来的,而CPU处理完的数据也必须要先写会内存中,最后数据才从内存传输到输出单元。

计算机硬件的五大单元:输入单元,输出单元,CPU内部的控制单元、算术逻辑单元与内存五大部分。

1.2CPU的种类

CPU内部有一些小指令集,两种CPU种类:分别是精简指令集与复杂指令集。

精简指令集(Reduced Instruction Set Computing,RISC)

  • 微指令集较为精简,每个指令使用的时间较短,完成的操作也很单纯,指令的执行性能较佳;常见的如ARM

复杂指令集(Complex Instrution Set Computer,CISC)

  • 微指令集中,指令数目多而且复杂,每条指令的长度不相同,花费的时间长,但是每条指令可以处理的工作较为丰富。常见的主要是AMD\Intel\等X86架构的CPU,主要用于个人计算机。64位的个人计算机CPU又被称为X86_64的架构。

1.3接口设备

除了输入\输出设备以及CPU与内存之外,最重要的接口设备是主板,主板负责将所有的设备连接在一起,让所有的设备能够进行协调与通信。而主板上最重要的组件就是主板芯片组,这个芯片组可以将所有的设备汇集在一起,其他重要的设备还有:

  • 存储设备:硬盘、软盘、磁带、光盘
  • 显示设备:显卡
  • 网络设备

1.4运作流程

  • CPU=大脑:每个人会做的事情都不一样(微指令集的差异), 但主要都是透过脑袋来进行判断控制身体各部分的活动。
  • 内存=大脑中的记录区块:在实际活劢过程中,我们的大脑能够将外界的互动暂时记录起来, 提供CPU来进行判断。
  • 硬盘=大脑中的记忆区块,将重要的数据记录下来,以便CPU读取\写入
  • 主板=神经系统:所有组件连接起来
  • 显卡=脑袋中的影像:将各种影像输出的装备,也是由CPU将影像传出来
  • 各项接口设备=人体与外界通信的手脚皮肤眼睛等

2.个人计算机架构与接口设备

两大主流的x86开发商(Intel,AMD)

  • Intel

主板上最重要的就是芯片组,而芯片组通常又分为两个桥接器来控制各组件的通信:

1)北桥负责连接速度较快的CPU、内存与显卡等组件

2)南桥负责连接较慢的周边接口,包括硬盘、USB、网卡等

  • AMD

内存直接与CPU通信而不通过北桥,因为CPU的数据主要都来自于内存,因此AMD为了加速这两者的通信,将内存控制组件集成到CPU中,理论上这样可以加速CPU与内存的传输速度,这是两种CPU在架构上的最主要的区别

2.1CPU

  • 目前主流的CPU都是双核以上的架构了,原本的单核CPU仅有一个运算单元,所谓的多核则是在一个CPU封装中嵌入了两个以上的运算内核,简单来说,就是一个实际的CPU外壳中含有两个以上的CPU单元。
  • 不同型号的CPU大多具有不同的脚位。
  • CPU的性能除了微指令集还有频率:CPU每秒可以进行的工作次数。
  • CPU的外频与倍频
    • 外频:指的是CPU与外部组件进行数据传输/运算时的速度,倍频:CPU内部用来加速工作性能的一个倍数,两者相乘才是CPU的频率。如某CPU的频率是3.0GHz,而外频是333MHz,因此倍频就是9倍(3.0G=333x9,其中1G=1000M)
  • 32位与64位
    • CPU运算的数据是由内存提供的,内存与CPU的通信速度靠的是外部频率,而每次工作可以传送的数据量由总线决定,一般的主板芯片组分为北桥与南桥,北桥的总线称为系统总线,以为是内存传输的主要通道,所以速度较快南桥就是所谓的输入输出(I/O)总线,主要用于联系硬盘、USB等接口设备
    • 北桥所支持的频率我们称为前线总线速度(Front Side Bus,FSB),而每次传送的位数就是总线宽度 。所谓的总线频宽就是“FSBx总线宽度”,即每秒可传送的最大数据量。目前常见的总线宽度有32/64位(bit).
    • 与总线宽度相似,CPU每次能够处理的数据量称为字组大小(word size), 字组大小依据CPU的设计而有32位和64位,,我们现在所称的计算机是32位或者64位主要是依据CPU解析的字组大小而来的

2.2内存

  • CPU所使用的数据都来自于内存,不论是软件程序还是数据,都必须要读入内存后CPU才能利用。
  • 个人计算机的内存主要组件是动态随机访问内存(Dynamic Random Access Memory,DRAM),随机访问内存只有在通电的时候才能记录与使用,断电后就消失了,这种RAM也称为挥发性内存。
  • 通常内存越大表示系统越快,对服务器而言,内存的容量有时比CPU的速度还重要。
  • 双通道设计
    • 由于所有的数据都必须在内存中,所以内存的数据宽度当然越大越好,但传统的总线宽度一般大约64位,为了加大这个宽度,因此芯片组厂商就将两个内存汇整在一起,如果一条内存可达64位,那么两条内存可以达到128位了,这就是双通道的设计理念。

2.3显卡

显卡又称为VGA(Video Graphics Array),它对于图形影像的显示扮演相当关键的角色,一般对于图形影像的显示重点在于分辨率和图形深度,因为每个图像显示的颜色会占内存,因此显卡上面会有一个内存的容量,这个显卡的内存容量将会影响最终的屏幕分辨率和色彩深度。

除了显卡内存之外,由于3D游戏的流行,显卡的“运算能力”越来越重要,现在显卡厂商直接在显卡上面嵌入一个3D加速的芯片,这就是GPU称为的由来。

2.4硬盘与存储设备

储存数据最常见的就是硬盘。

硬盘的物理组成

  • 硬盘是由许多的盘片、机械手臂、磁头与主轴马达组成。
  • 实际的数据都是写在具有磁性物质的盘片上,而读写主要是通过机械手臂上的读取头(Head)来完成的,实际运行时,主轴马达让盘片转动,然后机械手臂可伸展让读取头在盘片上面进行读写操作。

2.5主板

主板是整台主机相当重要的一个部分,所有的组件都是安插在主板上面的,而主板上面负责通信各个组件的就是芯片组,芯片组一般分为南桥与北桥,南桥负责CPU/RAM/VGA等的连接,南桥则负责速度较慢的I/O设备

  • 设备I/O地址与IRQ中断信道

    • I/O地址类似于每个设备的门牌号码,每个设备都有自己独立的地址
    • I/O地址看做各设备的门牌号码的话,那么IRQ就可以想成是各个门牌连接到邮件中心(CPU)的专门路径,各设备可以通过IRQ中断信道来告知CPU该设备的工作情况,以方便CPU进行工作分配的任务。
  • CMOS与BIOS

    • CMOS主要是为记录主板上面的重要参数,包括系统时间、CPU电压与频率、各设备的I/O地址与IRQ,由于这些记录需要花费电力,因此主板上才有电池。
    • BIOS为写入到主板上某一块闪存的程序,它可以在开机的时候执行,已加载COMS当中的参数,并尝试调用存储设备中的开机设备,进一步进入到操作系统中
  • 连接接口与设备

3.软件程序执行

软件主要分为两大类:一个是系统软件,一个是应用程序

3.1机器程序与编译程序

由于计算机只认识0与1,而且计算机最重要的运算与逻辑判断是在CPU内部,而CPU具有微指令集,因此我们需要CPU帮忙时,就得要参考微指令集的内容,然后编写让CPU读的懂的指令码给CPU执行,这样就能让CPU运行了。

上述流程有几个麻烦的地方:

  • 需要了解机器语言
  • 需要了解所有硬件的相关功能函数
  • 程序不具有可移植性
  • 程序具有专一性

3.2操作系统

操作系统:在早期想要让计算机执行程序就得要参考一堆硬件功能函数,并且要学习机器语言才能够编写程序。同时每次写程序都需要重新改写,因为硬件与软件功能不见得都一致,那如果能够将所有的硬件都驱动,并且提供一个开发软件的参考接口来给工程师开发软件,那么就大大降低难度。

3.2.1操作系统内核

操作系统其实也是一组程序,这组程序的重点在于管理计算机的所有活动以及驱动系统中的所有硬件,硬件的所有操作都必须通过这个操作来完成

只有内核提供了相关功能,计算机系统才能帮我们完成,比如,内核不支持TCP/IP协议,那么无论购买了什么网卡,这个内核都提供不了网络功能。

内核主要在于管控硬件与提供相关能力,这些管理的操作是非常重要的,如果用户能直接使用到内核的话,万一用户不小心将内核程序停止或者破坏,将会导致整个系统的奔溃,因此内核程序所放置到内存当中的区块是受保护的,并且开机后一直常驻在内存中。

3.2.2系统调用
  • 硬件由内核来管理,如果想要开发软件的话,自然就要去参考这个内核的相关功能,如此一来就是从原来的参考硬件函数变成参考内核功能。
  • 操作系统会提供一整组的开发接口给工程师开发软件,工程师只要遵守该开发接口那就很容易开发软件了。
  • 计算机系统主要由硬件构成,然后内核程序主要用于管理硬件,提供合理的计算机系统资源分配(包括CPU资源、内存使用资源等),因此只要硬件不同,内核就需要进行修改。而内核只会进行计算机系统的资源分配,所以在上面还需要应用程序的提供,用户才能操作系统。
  • 为了保护内核,并且让程序员比较容易开发,因此操作系统除了内核程序之外还会提供一整套开发接口,那就是系统调用层。

3.3小结

  • 操作系统的内核层直接参考硬件规格写成,所以同一个操作系统程序不能够在不一样的硬件架构下执行。
  • 操作系统只是在管理整个硬件资源,包括CPU、内存、输入输出设备及系统文件,如果没有其他应用软件,操作系统只能让计算机准备妥当而已。
  • 应用程序的开发都是参考操作系统提供的开发接口,所以该应用程序只能在该操作系统上面运行而已,不可以在其他操作系统上面运行。
  • 内核功能
    • 内核主要负责整个计算机系统相关的资源分配和管理,那我们知道其实整部计算机系统最重要的就是CPU与内存,因为,内核应该具有以下功能
    • 系统调用功能
    • 程序管理
    • 内存管理
    • 文件系统管理
    • 设备驱动
    • 操作系统与驱动程序
      • 驱动程序是操作系统中重要的一环,那么操作系统如何驱动这块新的硬件呢?操作系统通常会提供一个开发接口给硬件开发商,让他们可以根据这个接口设计可以驱动他们硬件的驱动程序。
      • 操作系统必须能够驱动硬件,如此应用程序才能使用该硬件功能。
      • 操作系统会提供开发接口,让开发商制作他们的驱动程序
      • 要使用新的硬件功能,必须要安装厂商提供的驱动程序
      • 驱动程序由厂商提供,与操作系统开发者无关
  • 不过,目前,操作系统处理上述功能外,通常已经包含了日常工作所需要的应用软件在内了。

4.参考

​ 以上知识点主要是参考 : 鸟哥的Linux私房菜 ,感兴趣的同学可以购买。

计算机概论--计算机基础知识快速入门相关推荐

  1. thinkph 上花院 生多行mysql_PHP_ThinkPHP3.1基础知识快速入门,在当今众多的MVC框架中,ThinkPH - phpStudy...

    ThinkPHP3.1基础知识快速入门 在当今众多的MVC框架中,ThinkPHP是一个快速.简单的基于MVC和面向对象的轻量级PHP开发框架,其遵循Apache2开源协议发布,自从诞生以来一直秉承简 ...

  2. 如何学习kotlin?Kotlin基础知识快速入门

    一 概述 Android 1.5系统中Google 引入了NDK功能,支持使用C和C++语言来进行一些本地化开发. 17年官宣kotlin为安卓一级开发语言:所以对于安卓开发者,学习kotlin是必须 ...

  3. Linux基础知识快速入门(基于阿里云服务器)

    Linux指令入门-文件与权限 文件目录管理命令 tree 命令描述:tree命令用于以树状图列出目录的内容. tree命令没有内置在系统中,使用tree命令需要执行以下命令来安装: yum inst ...

  4. C++基础知识快速入门

    C++简介 C++是一种静态类型.编译式的.大小写敏感的.支持过程化编程.面向对象编程和泛型编程. C++被认为是一种中级语言,它综合了高级语言和低级语言的特点. C++完全支持面向对象程序化设计,包 ...

  5. Angular 4 学习笔记 从入门到实战 打造在线竞拍网站 基础知识 快速入门 个人感悟

    最近搞到手了一部Angular4的视频教程,这几天正好有时间变学了一下,可以用来做一些前后端分离的网站,也可以直接去打包web app. 先上个效果图: 环境&版本信息声明 运行ng -v @ ...

  6. 计算机打字工作内容,计算机基础知识打字入门

    <计算机基础知识打字入门>由会员分享,可在线阅读,更多相关<计算机基础知识打字入门(1页珍藏版)>请在人人文库网上搜索. 1.计算机基础打字入门对于初学者而言,其实应该把打字作 ...

  7. 计算机基础知识教程算法,快速掌握!计算机二级公共基础知识教程:算法

    小编所收集到的相关计算机二级公共基础知识教程:算法的资料 大家要认真阅读哦! 算法是指解题方案的准确而完整的描述.即是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,没有二义性,同 ...

  8. 计算机软件的基本概念七上,七年级信息技术课件——计算机与信息技术基础知识...

    <七年级信息技术课件--计算机与信息技术基础知识>由会员分享,可在线阅读,更多相关<七年级信息技术课件--计算机与信息技术基础知识(26页珍藏版)>请在人人文库网上搜索. 1. ...

  9. 计算机办公软件基础知识题库,计算机办公软件基础知识试题

    计算机办公软件基础知识试题 办公自动化基础知识题二 一.选择题 1.软盘不能写入只能读出的原因是___. (A) A)写保护 B)新盘未格式化 C)已使用过的软盘 D)软驱有问题 2.下列设备中属于计 ...

最新文章

  1. html中事件处理中的this和event对象
  2. python二级考试答案分值_2018全国计算机二级考试内容 科目分值设置
  3. ORACLE穿透防火墙问题
  4. install g++ 出现“g++ : Depends: g++-4.8 (= 4.8.2-5~) but it is not going to be installed...解决方法
  5. php 命令行 php.ini,php web环境和命令行环境下查找php.ini的方法分享
  6. Win7system登录打开计算机,Windows7系统system文件丢失导致开机黑屏如何解决
  7. python工程师面试宝典_2019年,Python工程师必考的6个面试题,Python面试题No5
  8. 引导页的圆点滑动效果
  9. 力扣题目——637. 二叉树的层平均值
  10. 空间换时间--程序策略
  11. 中美线径对照表_美国线规对照表
  12. iText实现html转pdf
  13. 有效利用GRE红宝书
  14. 折叠屏能否治愈年轻人的“换机焦虑”
  15. 大学生计算机应用基础赵山林高媛,我院学生获“第四届全国大学生计算机应用能力与信息素养大赛(IC3)”全国一等奖...
  16. 网关、路由器、交换机
  17. 如何用计算机画函数图像,用Excel绘制函数图像的技巧
  18. Solidwork软件盗版
  19. ios input 无法自动聚焦拉起手机键盘
  20. Interop统计WORD字数

热门文章

  1. Jmeter书中不会教你的(32)——快递时效查询实战7判断文件是否存在exists()
  2. 在线查快递单号跟踪物流时效
  3. c:计算零件数有一堆零件(100--1000之间),如果分成4个零件一组的若干组,则多2个零件;如果分成7个零件一组的若干组,则多3个零件;如果分成9个零件一组的若干组,则多5个零件。编程计算满足上
  4. 【论文阅读】GA-RPN:Region Proposal by Guided Anchoring
  5. C++ 模拟键鼠详细总结
  6. 常用数据集整理(持续更新ing)
  7. Fina Cut Pro X免费下载,学习,文档
  8. U盘被删除的文件如何恢复?
  9. [wikioi 1418]铃仙•优昙华院稻叶(东方幻想乡系列模拟赛)(树上递推)
  10. 计算机和自动机,自动机理论