Week 1 计算机组成

I. 引

Introduction

    在学习计算机技术之前,了解计算机的组成是非常必要的。这不仅可以让你对硬件有一个大概的了解,而且会让你将来对基于硬件运行的软件有一个更为透彻的理解。只有理解了计算机是如何协调它的部件来工作的才方能理解人们为何这样设计操作系统和程序。

I. 计算机部件

The Essential Components of a Modern PC

    现代计算机都是遵循冯诺依曼体系进行架构的。它由五大部分组成:运算器+控制器+储存器+输入设备+输出设备

    计算机也叫电脑。电脑这个名字是非常贴切的,因为计算机和人脑的工作方式非常相似。我们想象计算机的时候不妨想象一下一个人的大脑。研究表明,想象的画面越是夸张花哨,记忆得越牢靠。试着想象一个非常富有科技感的全息大脑。想象这个大脑正在高速运转。五颜六色的霓虹穿梭于突触之间,那是庞大的数据流在传输。

u=1596299780,1182363738&fm=21&gp=0.jpg

Figure 1

    大部分的计算机组件都安置在主板(Motherboard)上。主板负责接收来自电源(Power)的电流并按需分配给各个配件。主板上还安置了大部分总线(Bus)。总线就像无数的神经突触,将各个部件联系在一起,使它们能进行信息的交换。如果没有了主板,所有的部件之间的连接所需要的线的数量难以想象,会把组装计算机的人逼疯的。主板的存在大大方便了这一点。输入设备(Input)通过主板来接入总线以让我们于计算机交互。如果没有了输入设备,我们便无法使用计算机。如此它便和板砖无二。

    我们的大脑接收外界的信息并对其进行处理。计算机对应的部件叫做CPU(全称为:Central Processing Unit,即中央处理单元)。CPU是镶嵌在主板上的一块芯片。CPU上有许多针脚。每个针脚负责一个简单的运算,比如说加法,取模等等。CPU除了具有处理信息的能力,它还承担了控制器这个角色。这个我们过会儿再讲。

    处理好的信息需要一个地方来存储。人脑中的海马体便是负责短期记忆的。计算机中的内存(RAM,全称为:Random Access Memory)也担当了一样的角色。CPU通过总线将数据存储在内存中。内存分为很多不同的区间,不同区间放着不同的数据。如何才能正确地提取数据并把处理好的数据存放在一个空白的区间呢?CPU的控制器部分就是负责这个功能的,以此来协调计算机的工作。内存的读取和写入速度都非常快,但容量相当有限,而且内存一旦断电就会永久失去所有数据。为了长期储存数据,我们设计了硬盘(Hard Drive)。相对于内存,硬盘的速度比较慢,但是它的容量非常大。为什么我们需要内存和硬盘两个部件而不是只用内存或只用硬盘呢?只用内存的话,速度会非常快,但是一旦断电数据则会全部丢失,非常不现实。新型的NVDIMM内存不会出现断电丢失数据的情况,但是价格相当昂贵。不说NVDIMM内存,普通内存的价格相对于硬盘就非常昂贵。只用硬盘的话,平时运行的时候速度会非常缓慢。所以计算机采取两者兼用的策略。

    GPU(全称:Gprahic Processing Unit, 即图像处理单元)就是我们常说的显卡。我们大脑接收外界的数据之后在脑内构建图像,即我们平时所见的世界。在计算机中,CPU将需要GPU处理的数据通过总线传输给GPU。GPU将数据进行处理并转换成模拟信号传输给显示器(Moniter),最后显示出我们平时所见的图像。

II. 操作系统

Operating System

    不同厂商生产的计算机部件规格不同。程序员面对某一组计算机硬件编写的程序很可能不能在另外一台不同配置的计算机上运行。为了解决这个问题,我们需要通用软件,即可以无视硬件不同运行的软件。操作系统(Operating System,简称OS)便是这样一种软件。操作系统统一了计算机的规格。不管你的CPU是AMD的还是Intel的,操作系统都将其视为提供计算能力的工具。无论你的内存是512MB还是2GB,32位系统默认你拥有4GB内存,64位系统默认你拥有4G个4G内存(天文数字)。规格的统一极大地方便了程序员的工作,所以我们说程序员编程都是面向操作系统编程而不是面向硬件编程。这个统一的规格便是一台虚拟机(Virtual Machine)。世界上有很多不同的操作系统。程序员使用的都是高级语言,比如说C,C++,Java等等。这些语言在不同的操作系统上都可以通用,但是一旦程序被编译了,那程序只能在这个操作系统上运行了,比如说Windows系统编译为的exe格式,Mac系统的dmg格式等等。

    CPU只有一块,但是我们的操作系统平时都可以同时运行数十个不同的进程。这是通过操作系统实现的。操作系统将使用CPU的时间进行切割,以5ms为一个区间,逐个执行进程。5ms之后,无论现在的任务是否完成,立刻进行下一个任务。因为CPU的速度很快,所以我们感觉这些进程是同时运行的。其实CPU每次只能执行一个功能。

    以上。

III. 引用

Reference

  1. http://img2.imgtn.bdimg.com/it/u=1596299780,1182363738&fm=21&gp=0.jpg

原创文章,作者:mercerchen,如若转载,请注明出处:http://www.178linux.com/17954

(0)
mercerchenmercerchen
上一篇 2016-06-10 13:21
下一篇 2016-06-12 10:39

相关推荐

  • apache服务器

    一、改变网页的默认位置 1、修改DocumentRoot和Directory,修改新的存放路径为/data/htdocs/ 2、创建/data/htdocs/index.html,注意权限问题 3、注意报错You don't have permission to access /index.html,此时去查看SElinux的状态。命令selinu…

    Linux干货 2016-10-09
  • DNS相关配置

    DNS基础概念: DNS全称为Domain Name System。它作为将域名和IP地址相互映射的得一个分布式数据库,能够使人更方便的访问互联网 DNS使用TCP和UDP得53号端口 BIND是DNS得实现方式之一 named是bind程序得运行的进程名 named进程的主要运行者是named用户,为了安全起见,它的程序也应该以named用户运行 配置正向…

    Linux干货 2017-05-30
  • 基于虚拟用户控制的ftp服务

    FTP作为最常见的文件共享服务,可提供文件的上传,下载等服务;其用户可分为三类: 匿名用户:即不需要用户账号与密码即可登录FTP服务器,此时登录用户将会被映射为系统上的ftp用户。 系统用户:即用FTP服务器上的用户账号与密码登录FTP服务器。此种方法虽然在一定程度上对登录做出了限制,但由于系统账号的相关权限,则增大了FTP服务器的系统风险; 虚拟用户:用户…

    Linux干货 2016-10-23
  • 内核编译之增加ntfs文件系统

    内核编译 内核编译 单内核体系设计,但充分借鉴了微内核设计体系的优点,为内核引入模块化机制。 内核组成部分:     Kernel,内核核心,一般为bzImage,通常在/boot目录下,名称为vmlinuz-WERSION- RELEASE;     Kernel object…

    Linux干货 2016-09-13
  • heartbeat实现高可用集群(2)

    [[ heartbeat v2 + crm ]] 环境 node1 192.168.1.35 node2 192.168.1.36 fip 192.168.1.81 daemon httpd ha web service ip httpd node1&2 # vim ha.cf crm on # cd # rpm -ivh heartbeat-gui…

    Linux干货 2017-11-03
  • selinux介绍

    本章内容 SELinux概念启用SELinux管理文件安全标签管理端口标签管理SELinux布尔值开关管理日志查看SELinux帮助 SELinux介绍 SELinux: Secure Enhanced Linux,是美国国家安全局「NSA=The National Security Agency」和SCC(Secure Computing Corporat…

    Linux干货 2016-09-19