一、语言由来及学习目的
1.1 什么是语言?什么是编程语言?为什么要有编程语言?
1.1.1语言:人与人沟通的介质,如:汉语、英语……
1.1.2 编程语言:人与计算机沟通的介质。
1.1.3 编程语言出现的原因:计算机能代替人做事。编程语言的出现就是为了让计算机能明白人的意思,实现计算机按照人的逻辑思维自发地去工作,从而把人力解放出来。
1.2 什么是编程?为什么要编程?
1.2.1 编程:就是把人想命令计算机干的事用编程语言翻译出来,并且写到文件里(这系列文件就是程序)。
1.2.2 为什么要编程:为了让计算机按照人的逻辑思维(程序)自发地去工作,从而把人力解放出来。
二、计算机组成原理
2.1 什么是计算机?
俗称电脑,即通电的大脑。电脑蕴含了人对计算机的终极期望,希望它真的能想人脑一样去工作,从而解放人力。
2.2 为什么要用计算机?
计算机可以一直做事,并且可以快速的做同一件事,与人比起来效率更高。
2.3 计算机的五大组成部分
计算机的设计核心是模仿人的组成,通常我们又将计算机的五大组件比喻成人的各种器官。
2.3.1 控制器:是计算机的指挥系统,用来控制计算机其他组件的运行。相当于人的大脑。
2.3.2 运算器:是计算机的运算功能,用来做算术运算和逻辑运算(判断)。相当于人脑。
控制器 + 运算器 = CPU,CPU相当于人的大脑。
2.3.3 存储器:是计算机的记忆功能,用来存取数据。包括内存和外存。
内存:相当于人的短期记忆。断电就会丢失数据。
外存:相当于记事的本子,断电数据不会丢失,用来永久保存数据。
-
内存的存取速度要远高于外存
2.3.4 输入设备input:是计算机接收外界输入数据的工具,如:键盘、鼠标。相当于人的眼睛或耳朵。
2.3.5 输出设备output:是计算机向外输出数据的工具,如:显示器、打印机。相当于人说话、写的文章。
-
存储器如:内存、磁盘等既是输入设备又是输出设备,统称位IO设备。
计算机程序最先存放于硬盘中,程序的运行是先从硬盘把代码加载到内存中,然后CPU从内存中读取指令运行。
三 操作系统概述
3.1 操作系统的由来
倘若我们要开发一个应用程序,比如腾讯视频,该软件的一个核心业务就是播放视频,开发者若要编写程序完成播放视频这个业务逻辑,必先涉及到底层硬件硬盘的基本运作(视频文件都是先存放于硬盘中),这意味着开发者在编写业务逻辑代码之前,必须先编写一个控制硬盘基本运行的控制程序,然而这仅仅只是一个开始,事实上,在编写应用程序的业务逻辑前,需要开发者编写出一套完整的控制程序用来控制所有硬件的基本运行(这要求开发者需要详细了解计算机硬件的各种控制细节,例如我们必须把CPU里面所有指令集都掌握一遍),如此,所有的开发者在开发程序时都必须依次开发两种:
1、编写一套完整的的控制程序,用来控制硬件的基本运行,以及把复杂的硬件的操作封装成简单的接口。 2、基于控制程序的接口开发包含一系列业务逻辑的程序,为了与控制程序区分,可以称为应用程序,以ATM这款应用程序为例,业务逻辑有提款、转账、查询余额等
综上,对于不同公司的开发者来说,应用程序的业务逻辑各不相同,但硬件的控制程序都大致相同,为了避免所有程序员做重复劳动,以及不用再耗费精力去了解所有硬件的运行细节,有公司专门跳出来承担起控制程序的开发任务,这里所说的控制程序指的就是操作系统。
操作系统的功能就是帮我们把复杂的硬件的控制封装成简单的接口,对于开发应用程序来说只需要调用操作系统提供给我们的接口即可。
3.2 系统软件与应用软件
硬件上运行的都是软件,分两类:
#1、应用软件(微信、腾讯视频)
#2、操作系统,应用软件与硬件之间的一个桥梁,是协调、管理、控制计算机硬件与应用软件资源的控制程序
3.3 计算机系统三层结构
综上,我们开发应用程序本质是在控制硬件,但是我们直接打交道的是操作系统,应用程序都是通过操作系统来间接地操作硬件的,所以一套完整的计算机系统分为三层,如下
平台 应用程序都是运行于操作系统之上,操作系统则是运行于硬件之上的,所以承载应用程序的是一台运行有操作系统的计算机,我们称为应用程序的运行平台,即:硬件 + 操作系统 = 平台。
常见的平台有:windows系统+某款硬件、linux系统+某款硬件、ubuntu+某款硬件等,我们在开发应用程序时就需要考虑到应用程序的跨平台性,如果能开发出一款可以在任意平台运行的应用程序,那对于开发者来说真是极大的福音。而决定应用软件的跨平台性的关键因素往往是编程语言的选择,python恰好是一款跨平台性语言。