计算机是啥
一提到计算机,我相信你肯定会想起来这样的东西:
也有可能是这样的东西:
当然,他们的确是计算机没错啦,不过计算机并不只有他们,还包括了更多样子,他们遍及生活的方方面面,比如说,他还可以是这样的:
很多这些能够自动对流程进行控制
的设备,内部都有计算机的支持,不过这种计算机和平时常见的计算机不太一样,它把所有的计算机核心组件都集中在了一块芯片中,被称为微控制器
,有的时候也叫单片机
.
我们可以想想在那些东西里面有计算机,或者说单片机呢,像是常见的洗衣机,电饭锅什么的,很多吧,最典型的就是手机,手机不仅有控制器,更有很多其他的外设,与其说是微控制器,不如说是低配版和小型化的个人电脑。
计算机的结构
计算机呢,有一个经典的结构,它有运算器,控制器,存储器,输入设备,输出设备,这五部分组成,这些都是什么鬼呢?
运算器
和控制器
,现在已经整合为一个组件,被称之为CPU
,中央处理器,它用于获取和执行二进制命令,说白了,就是执行代码的那个。
存储器,分为内存和外存。
CPU可以直接使用
的那种是内存
1,速度很快,但是比较贵,一般来说容量不是很大,在PC中一般是条状,就是常说的那种内存条
,内存还有一个问题就是,一旦没电了,他的数据就会丢失,不过没关系,反正只是在运行的时候需要,那个时候肯定不会没电的,他要是没电,那么你的电脑整体应该都没电了。
外存一般来说,最常见的是硬盘,U盘,光盘再早一些时候还有软盘和磁带,他们容量很大,非常大,但是存取速度慢,所以在需要的时候会先读取到内存,然后CPU才能使用。
所以有的时候我们说电脑运行的东西多了,会比较卡,要加内存
,硬盘不够用了,要换个,或者往U盘拷点东西,这个时候是在说外存
。
输入设备嘛,典型的就是键盘,鼠标,手机的触摸屏,如果你学美术的话还可能有手写板什么的,就是可以往计算机内部输入数据的东西。
输出设备,比如说显示器,耳机和喇叭,屏幕,打印机之类的,可以把数据从计算机里面展示给你的那种。
硬件和软件
上面说了这一堆,都是在说硬件,就是计算机在物理层面上,看得见摸得着的东西都有啥,其实相比硬件,我感觉你大概更感兴趣软件。
软件呢,简单来说就是一组程序,程序嘛,就是二进制的代码,CPU就是用来执行这些代码的。
所以在早期的时候,的确是人工编写二进制让他执行。但是这样太麻烦了,所以呢,有人用一些单词代替了二进制指令,这就是汇编语言
。
很早之前代码就这个画风的(这里不是真实的代码,就是一个比喻):
10110011 000100
11100100 010010
变成汇编之后呢,像是这样:
ADD AX, 10H
MOV AL, 3H
记起来就比较容易了,他们又编写了一个东西,可以把这种单词转换成二进制代码,这种软件就被称为编译器
2,也许第一个编译器就是直接用二进制写成的,可以把汇编代码变成二进制,我们把这个过程叫做编译
。
在这个时代,还没有系统,程序自己运行自己的,如果有些程序编写的不是很好,就容易让整个内存乱糟糟的,而且有的时候,废了半天力气写的程序,换个计算机就运行不了了?这可还行?
于是有人开发了这样的一个东西,它把一个计算机的内存,各种设备进行统一的管理,而不是放任程序处置,这样,整个计算机运行起来就更加的有效率了,这个东西后来被称作操作系统
。
当然,到这种程度还是不够的,汇编依然很反人类,后来出现了另外一种更加友好的编程语言,叫做C语言,他也是通过编译器把自己变成二进制来运行的,画风变成了这样(可运行的C语言的hello world):
#include<stdio.h>
int main(int argc, char** argv)
{
printf("hello world");
return 0;
}
和之前的汇编相比,肯定是这种C语言看着更舒服,很多其他的语言都是建立在C语言的基础之上的。
但是到此为止,语言还是需要变成二进制才能执行,如果系统不一样,就必须重新使用编译器编译一遍,还是太麻烦了,因此,有人希望能够这一个代码就编译一次,别管什么window,Linux还是什么鬼系统,都能运行起来。
为了达到这个目的,他们做了个运行时,什么是运行时呢,就是确保代码能够跑起来的软件,他们每一个系统都准备了一个运行时,然后让运行时去把需要的代码临时翻译成CPU认识的二进制,每一个系统都有运行时嘛,所以只需要编译一次,剩下的交给各个系统自己的运行时就好了。
为了和传统的二进制语言区别,他们称这类语言为解释型语言,之前的那些为编译型语言。
再到后期,计算机变得小型化,很多非专业的人也开始有了使用计算机的需求,这更加促进了系统的发展,其实我们在说使用计算机的时候更多的是说使用什么呢?
GUI和CLI
其实就是在使用计算机承载的软件,软件嘛,是给人用的,那么人怎么让软件知道自己的意思呢?这就有两个部分,最开始的时候,显示屏还是黑白的,没有图形,只能够显示文字,所以用户们只可以通过输入命令的方式告诉软件他们想做什么。
很多电影中有对黑客的描述,就是使用键盘输入大量的命令,然后按下回车就会达到自己的目的,这种交互方式就是命令行用户界面
(Command Line Interface,简称CLI),至今也是一种很高效而流行的操作方式,他可以透过命令行的编程批量自动化的进行处理。
而我们日常使用的Windows,Mac OS,或是Linux都是带有一个图形界面的,图形化的操作方式更加方便普通人操作,更加明确,不需要记忆很多命令,更容易上手,当然这些系统也都带有命令行的操作方式,如Windows的PowerShell,Mac和Linux的终端等。
这种图形化的操作界面被称为图形用户界面
(Graphical User Interface,简称GUI)。
软件系统
计算机的五个组成是从硬件上划分的,在软件上也有类似的结构,到目前为止,可以分为系统软件,应用软件两大部分。
系统软件和系统关系密切,类似于编译器
, 数据库
,操作系统
,杀毒软件
之类的,应用软件则更多的是提供额外的功能,类似于PS
,Office
等。
那么计算机能做啥呢
你看到的网站(百度,淘宝,腾讯之类的),手机,电脑,能够自动化的大多数设备(家电,工业的流水线,机器人,无人机,无人车,无人超市什么的),现在最火热的云计算,大数据,收集到大量的数据之后可以对未来人们的行为进行准确的预测 3(头条是不是就有这玩意),计算机视觉,让计算机可以认识他看到的东西 3,VR,AR系列的技术等。
计算机可以说已经在生活中无处不在,是一个很重要的组成部分了。
用途多种多样,可以做很多有意思的事情,就这样。
结语
这一篇主要是对计算机的一个很笼统的说法,大概介绍了一些,写给对他感兴趣的,也是对自己过去认识的一个小小总结,这里内容不是很多也不是很全面,计算机的东西很多,所以也许,大概,应该会继续写吧。