简单了解计算机
计算机(Computer)全称:电子计算机,俗称电脑。是一种能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。
由硬件和软件所组成,没有安装任何软件的计算机称为裸机。
常见的形式有台式计算机、笔记本计算机、大型计算机等。
广泛应用在 :科学计算,数据处理,自动控制,计算机辅助设计,人工智能,多媒体应用,计算机网络
计算机硬件
计算机硬件:一些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。
计算机通常由CPU、主板、内存、电源、主机箱、硬盘、显卡、键盘、鼠标,显示器等多个部件组成
聊聊装机
不知道你有没有自己搞过“装机”这回事儿。在 2020 年的今天,大部分人用的计算机,应该都已经是组装好的“品牌机”。如果我们把时钟拨回到上世纪八九十年代,不少早期的电脑爱好者,都是自己采购各种电脑配件,来装一台自己的计算机的。
计算机的基本硬件组成
早年,要自己组装一台计算机,要先有三大件,CPU、内存和主板。
在这三大件中,我们首先要说的是CPU,它是计算机最重要的核心配件,全名你肯定知道,叫中央处理器(Central Processing Unit)。
为什么说 CPU 是“最重要”的呢?因为计算机的所有“计算”都是由 CPU 来进行的。自然,CPU 也是整台计算机中造价最昂贵的部分之一。
第二个重要的配件,就是内存(Memory)。你撰写的程序、打开的浏览器、运行的游戏,都要加载到内存里才能运行。程序读取的数据、计算得到的结果,也都要放在内存里。内存越大,能加载的东西自然也就越多。
存放在内存里的程序和数据,需要被 CPU 读取,CPU 计算完之后,还要把数据写回到内存。然而 CPU 不能直接插到内存上,反之亦然。于是,就带来了最后一个大件——主板(Motherboard)。
主板是一个有着各种各样,有时候多达数十乃至上百个插槽的配件。我们的 CPU 要插在主板上,内存也要插在主板上。主板的芯片组(Chipset)和总线(Bus)解决了 CPU 和内存之间如何通信的问题。
芯片组控制了数据传输的流转,也就是数据从哪里到哪里的问题。总线则是实际数据传输的高速公路。因此,总线速度(Bus Speed)决定了数据能传输得多快。
有了三大件,只要配上电源供电,计算机差不多就可以跑起来了。但是现在还缺少各类输入(Input)/ 输出(Output)设备,也就是我们常说的I/O 设备。如果你用的是自己的个人电脑,那显示器肯定必不可少,只有有了显示器我们才能看到计算机输出的各种图像、文字,这也就是所谓的输出设备。
同样的,鼠标和键盘也都是必不可少的配件。这样我才能输入文本,写下这篇文章。它们也就是所谓的输入设备。
最后,你自己配的个人计算机,还要配上一个硬盘。这样各种数据才能持久地保存下来。绝大部分人都会给自己的机器装上一个机箱,配上风扇,解决灰尘和散热的问题。不过机箱和风扇,算不上是计算机的必备硬件,我们拿个纸板或者外面放个电风扇,也一样能用。
说了这么多,其实你应该有感觉了,显示器、鼠标、键盘和硬盘这些东西并不是一台计算机必须的部分。你想一想,我们其实只需要有 I/O 设备,能让我们从计算机里输入和输出信息,是不是就可以了?答案当然是肯定的。
你肯定去过网吧吧?不知道你注意到没有,很多网吧的计算机就没有硬盘,而是直接通过局域网,读写远程网络硬盘里面的数据。我们日常用的各类云服务器,只要让计算机能通过网络,SSH 远程登陆访问就好了,因此也没必要配显示器、鼠标、键盘这些东西。这样不仅能够节约成本,还更方便维护。
还有一个很特殊的设备,就是显卡(Graphics Card)。现在,使用图形界面操作系统的计算机,无论是 Windows、Mac OS 还是 Linux,显卡都是必不可少的。有人可能要说了,我装机的时候没有买显卡,计算机一样可以正常跑起来啊!那是因为,现在的主板都带了内置的显卡。
如果你用计算机玩游戏,做图形渲染或者跑深度学习应用,你多半就需要买一张单独的显卡,插在主板上。显卡之所以特殊,是因为显卡里有除了 CPU 之外的另一个“处理器”,也就是GPU(Graphics Processing Unit,图形处理器),GPU 一样可以做各种“计算”的工作。
鼠标、键盘以及硬盘,这些都是插在主板上的。作为外部 I/O 设备,它们是通过主板上的南桥(SouthBridge)芯片组,来控制和 CPU 之间的通信的。“南桥”芯片的名字很直观,一方面,它在主板上的位置,通常在主板的“南面”。另一方面,它的作用就是作为“桥”,来连接鼠标、键盘以及硬盘这些外部设备和 CPU 之间的通信。
有了南桥,自然对应着也有“北桥”。是的,以前的主板上通常也有“北桥”芯片,用来作为“桥”,连接 CPU 和内存、显卡之间的通信。不过,随着时间的变迁,现在的主板上的“北桥”芯片的工作,已经被移到了 CPU 的内部,所以你在主板上,已经看不到北桥芯片了。
冯.诺依曼体系结构
“最后一位杰出数学家。”
“20世纪最具科学头脑的人。“
“他被普遍认为是现代数学的一位巨人。”
这些是世人对数学家、计算机科学家、物理学家以及化学家冯·诺依曼的评价。
当时他在普林斯顿高等研究所的同事甚至认为他比爱因斯坦更加聪明!他的以为数学家曾经讲过一个故事:“据我所知,冯诺依曼有能力看过一本书或者一篇文章后一字不错地背诵出来,更甚,他同样能够在多年以后不带丝毫犹豫地做到。他还可以将其实时翻译成英文背诵出来,而且速度丝毫不减。有一次我为了测试他的能力,问他《双城记》是怎么开头的,片刻,他开始背诵第一章节,直到可能10或者15分钟后我让他停下来。”此外,作为氢弹项目的负责人之一,当费米、费曼(两者都是诺贝尔奖的获得者)再用计算尺、机械计算机解决氢弹中的复杂计算时,他们需要计算一夜的问题,冯·诺伊曼仅仅依靠自己的心算计算半个小时就可以完成任务。
当然,这个世界上不缺少聪明人,冯·诺伊曼真正被世人记住的身份是计算机之父(虽然他认为这个称号应该送给他的晚辈图灵)。
计算机软件
计算机软件是使用计算机过程中必不可少的东西,计算机软件可以使计算机按照事先预定好的顺序完成特定的功能,计算机软件按照其功能划分为系统软件与应用软件
系统软件: DOS(Disk Operating System), Windows, Linux, Unix, Mac, Android, iOS
应用软件:WPS,QQ,微信, 英雄联盟,吃鸡
什么是软件 :按照特定顺序组织的计算机数据和指令的集合
什么是开发:软件的制作过程
什么是软件开发 :借助开发工具与计算机语言制作软件
什么是语言:人类进行沟通交流的各种表达符号,方便人与人之间进行沟通与信息交换
什么是计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言,计算机语言中也有字符,符号等等
常见的计算机语言如C,C++,JAVA,Python,php。
人机交互
软件的出现实现了人与计算机之间更好的交互
人机交互的两种方式
a:图形化界面方式 : 这种方式简单直观,使用者易于接受,容易上手操作
b:命令行方式 : 需要有一个控制台,输入特定的指令,让计算机完成一些操作。较为麻烦,需要记录住一些命令
计算机常用快捷键
A:键盘功能键
a:Tab
b:Shift
c:Ctrl
d:Alt
e:空格
f:Enter
g:Window
h:上下左右键
B:键盘快捷键
a:Ctrl+A 全选
b:Ctrl+C 复制
c:Ctrl+V 粘贴
d:Ctrl+X 剪切
e:Ctrl+Z 撤销
f:Ctrl+S 保存
h:Alt+F4 关闭窗口
i:window+R 运行
n:window+E 打开我的电脑
l:window+TAB 在打开的项目之间切换
g:Ctrl+Alt+Del 注销/任务管理器
k:SHIFT+DELETE 永久删除
DOS控制台
打开DOS控制台
-
开始–程序–附件–命令提示符
-
开始–运行–cmd–回车
-
win+r–cmd–回车
-
shift+鼠标
-
文件管理器输入
常见的Dos命令
A: d: 回车 盘符切换
B: dir(directory):列出当前目录下的文件以及文件夹
C: cd (change directory)改变指定目录(进入指定目录) 注意: 跨盘进入需要加一个 /d参数 例子: cd /d D:\software\cs1.6
D: cd.. : 退回到上一级目录 回退多级目录 cd ../../
E: cd\: 退回到根目录
F: cls : (clear screen)清屏
G: exit : 退出dos命令行
h:ipconfig /all 查看本机IP 网卡物理地址等信息
i:calc 打开计算器
n:mspaint 打开画板
k:notepad 打开记事本
j:hostname 获取计算机名称
ping www.baidu.com
md (make directory) : 创建目录
rd (remove directory): 删除目录
我们可以使用 cd>a.txt,type nul>a.txt,copy nul>a.txt 三种方式创建空文件;
del (delete): 删除文件,删除一堆后缀名一样的文件*.txt
删除带内容的文件夹 不能直接删除 所以加参数 如下
rd + /s 文件夹名称 (询问是否删除)
rd + /q + /s 文件夹名称 (直接删除)
计算机语言发展史
计算机语言如果你将它当做一个产品,就像我们平时用的电视机、剃须刀、电脑、手机等, 他的发展也是有规律的。
任何一个产品的发展规律都是:向着人更加容易使用、功能越来越强大的方向发展。
那么,我们的计算机语言的发展也是这样,向着人更加容易使用,即更加容易写代码、更加容易实现逻辑的方向发展。套用奥林匹克的口号“更高、更快、更强”。那么计算机发展的主线可以总结为四个字:“更易、更强”。
这个”更易、更强”的主线,也适用于任何的产品。如果,读者朋友以后要开公司创造自己的产品或者服务(服务也是一种产品)。你的产品是否符合”更易、更强”这个规律,也决定了产品能否取得成功,能否击败现有市场上同类型的产品!当然,也直接决定了你能否发财,能否养得起老婆孩子啦!
计算机语言一般意义上划分为:
- 第一代:机器语言
- 第二代:汇编语言
- 第三代:由面向过程 到 面向对象,面向过程:C,Fortran,面向对象:C++,Java,C#
第一代语言:机器语言
我们都知道计算机的基本计算方式都是基于二进制的方式。如下就是一段典型的机器语言代码:
010111001010110010110100
这种代码是直接输入给计算机使用的,不经过任何的转换!当然,在计算机刚发明的时候,计算机也是稀罕物,人却有很多。物以稀为贵嘛,人就只能迁就计算机,采用了这样一种计算机可以直接识别的代码。当然,这种代码计算机非常受用,不需要做任何转换,直接执行,太爽了!
可是,人就不爽了!这样的代码,又有几个人能写,又有几个人能读懂!如果用来解决最简单的计算问题,凑合着用,没问题。如果要解决复杂问题,需要写几千行、几万行这样的代码,估计谁写谁疯。如果现在我们仍然使用第一代语言,我相信所有程序员最终只能将精神病院作为最后的归宿了。
第二代语言:汇编语言
为了解决机器语言无法读懂的问题。很自然,我们就想到能不能使用人可以读懂的单词来代替一些二进制指令和数据,方便我们人去读、编写代码。于是,汇编语言诞生了。他使用了大量的助记符来代替二进制指令,方便我们人去编写代码。如下是一段典型的汇编语言代码:
DSEG SEGMENT
MESS DB 'Hello,World!' ,0DH,0AH,24H
DSEG ENDS
SSEG SEGMENT PARA STACK
DW 256 DUP(?)
SSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
BEGIN: MOV AX,DSEG
MOV DS,AX
MOV DX,OFFSET MESS
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CSEG ENDS
END BEGIN
显然,这样的代码,要比起机器语言来,对于我们程序员来说,爽了很多,至少不需要再去背诵那些难记的二进制指令了!于是,有了更好的武器,意味着我们可以解决更复杂的代码,写个几百行、几千行汇编语言代码也成为不那么复杂的事情。
【注】现在仍然有很多领域在使用汇编语言,比如:操作工业机器人、单片机编程、甚至某些计算机病毒的编写等。
第三代语言
随着晶体管、集成电路的出现,计算机的功耗越来越小、速度越来越快,计算机很快深入到了各行各业。有个很著名的定律叫做摩尔定律,他深刻的展示了计算机发展的规律:
“当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18个月翻两倍以上”
摩尔定律在我们身边有着实实在在的体验,我们现在手边用的电脑、手机比起十年前强大的很多倍,但是价格实际上确越来越低!十年前,北京房价是3000一平的地方,现在涨到了4万,涨了十多倍。十年前,一个笔记本需要两万人民币,现在只需要几千元,但是性能确更好。我们多么希望,房价也能遵循摩尔定律啊!
这样,随着计算机深入更多的企业、单位、甚至更人。我们很自然的就希望使用计算机解决我们身边的问题。这种需求越来越明确,越来越复杂。汇编语言在体系结构设计上的缺陷,根本无法胜任解决复杂问题。使用汇编语言写几万行代码,几十万行代码,那真的可以称之为”噩梦”.
于是,各种各样,结构化设计更加优良的第三代语言诞生了。例如:C语言、Fortran、cobol、pascal、ada、c++、java、c#。
第三代语言数量众多,大体上分为:面向过程和面向对象两大类。C语言是典型的面向过程的语言。C++、JAVA是典型的面向对象的语言。
大家在学习过程中,不要有这样的误解。学了面向过程会对学习面向对象有不好的影响,影响思维。那纯属扯淡,只能说明你面向过程根本没入门! 事实上,面向过程和面向对象是相辅相成的。 在面向对象编程中,也离不开面向过程。关于,面向过程和面向对象的区别,我们将在面向对象章节中详细说明。
C语言
第三代语言中,C语言是最重要的!可以称之为“现代语言的鼻祖”。其他很多语言都跟C语言有千丝万缕的联系!
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
#include <stdio.h>
int main()
{
printf("Hello, World!");
return 0;
}
C++语言
显然就是C语言的升级版,看名字我们就知道了,就是C语言面向对象的版本!在C基础上,一九八三年又由贝尔实验室的Bjarne Strou-strup[本杰明.斯特劳斯特卢普]推出了C++。 C++进一步扩充和完善了C语言,成为一种面向 对象的程序设计语言。
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello, World!"<<flush;
return 0;
}
JAVA语言
SUN公司的JAVA也是以C/C++为原型开发的,甚至有人将JAVA称之为“C+±”(C加加减).看名字就知道是将C++中某些不太好用的地方砍掉!
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println( "Hello, World!");
}
}
C#语言
微软发明的一种希望替代JAVA的语言。盖茨曾经非常认可JAVA,,“JAVA是我见过最好的语言”,因此,微软跟JAVA曾经有一段蜜月期,合作非常好。但是后来由于版权纠纷,闹掰了。盖茨一怒之下,就要搞一个比JAVA更好的语言。因此,我们在C#中可以看到大量的JAVA中有的特性,非常明显的”山寨”,当然也可以称为”微创新”。创新都是源自”山寨”。但是,微软山寨了JAVA的细节,但是没有学到JAVA的精华,即跨平台。当然,这跟微软本身的公司特性有关,微软名字叫做:Microsoft,但是我们知道他的核心产品是windows,所以他希望将他所有的产品都跟windows绑定再一起,这样C#就失去了JAVA的跨平台的优势。
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
System.Console.Write("Hello, World!");
}
}
}
科普
贝尔实验室(IT行业的圣地)
晶体管、激光器、太阳能电池、发光二极管、数字交换机、通信卫星、电子数字计算机、蜂窝移动通信设备、长途电视传送、仿真语言、有声电影、立体声录音,以及通信网、C语言、C++语言等许多重大发明的诞生地。
历史上最古老的IT公司IBM
IBM(International Business Machines Corporation),国际商业机器公司,或万国商业机器公司的简称。总公司在纽约州阿蒙克市,1911年创立于美国,是全球最大的信息技术和业务解决方案公司。IBM推出世界上第一台个人电脑,1981年8月12日,总部设在美国纽约州阿蒙克的国际商用机器公司(IBM)推出5150的新款电脑,“个人电脑”这个新生市场随之诞生。IBM5150看起来像个米色的“大盒子”,售价1565美元,只有16K字节的内存,可以使用盒式录音磁带来下载和存储数据,此外也可配备5.25英寸的软件盘驱动器。
I山寨和创新
I任何一种创新都不是凭空天上来的, 都是基于以前的旧事物发展的。都是一种”山寨”. 我们看到计算机语言的创新史其实就是一部山寨史。当然,如果把别人的跌出拿来只换个名字那叫耍流氓、不要脸,是真的”山寨”。 如果把别人的东西拿来进行改进,做的更好,那才就叫”创新”。