计算机基础
(一)编程语言和编程
(1)什么是语言?
- 语言是一种人与人之间交流沟通的媒介,例如:英语、汉语。
(2)什么是编程语言?
- 编程语言是人与计算机之间沟通交流的媒介。
(3)为什么会出现编程语言?
- 编程语言的出现是为了让人能够与计算机进行有效的沟通。
- 计算机在编程者的控制下按照指定的逻辑执行任务,从而实现自动化。
出现编程语言是人为了奴役计算机,让计算机按照人的思维逻辑自发地去工作,从而解放人力,节约成本
(二)计算机组成原理
(1)什么是计算机?
- 计算机是一种通电的智能设备,被称为电脑,拥有处理数据、执行指令的能力,是现代化科技和信息社会的重要工具。
电脑又可以理解为通电的大脑
电脑二字蕴含了人类对计算机的终极期望,希望它能真的像人脑一样去工作,实现自动化,提高工作效率,解放人力。
(2)为什么要发明计算机?
- 计算机的发明是为了解决人类在处理大量数据和复杂计算时的困难,提高工作效率,减轻人力负担,实现自动化。
- 计算机能够执行重复性、繁琐的任务,从而解放人类的思维和创造力,让人们能够更专注于创新和发展。
- 世界由聪明的懒人统治,计算机作为一种工具,能够满足人们对高效、精确、持续工作的需求,是现代社会不可或缺的技术支持。
(3)计算机的五大组成部分
- 计算机是由五大组成部分构成的,这些部分相互协作,完成各种任务。
- 我们可以将这五大组成部分类比为人类的各种器官,以更好地理解其功能。
(1)控制器
- 功能:控制器相当于人的大脑,负责指挥和协调其他部件的工作。
- 类比:相当于人的大脑,负责指挥身体各部分协同工作。
(2)运算器
-
功能:运算器执行各种算数和逻辑运算,实现计算机的计算功能。
- 算数运算:数字之间的运算,例如:+-*/等
- 逻辑运算:根据某个条件是否成立,决定是否要做事情。
-
类比:相当于人的大脑皮层,负责思考和计算的任务。
(3)存储器
- 功能:存储器用户存储计算机运行时所需的数据和指令。
- 类比:人的记忆系统,分为短期记忆(内存)和长期记忆(外存)。
(1)内存
- 功能: 内存是计算机用于临时存储数据和程序的地方,是CPU能够直接访问的存储介质。
- 类比: 相当于人的短时记忆,用于存储当前正在进行的任务和运行的程序。
- 特点:
- 断电数据丢失:内存是一种易失性存储器,断电后存储在其中的数据将丢失。
- 读取速度快:由于内存是直接与CPU相连的,因此读取速度非常快。
- 作用: 在运行程序时,数据必须先加载到内存中,CPU才能够快速访问和处理这些数据。
(2)外存
-
功能:外存用于永久存储数据,即使在断电的情况下数据也不会丢失。
-
类比:相当于人的长时记忆,用于存储更为持久的信息,如文件、照片等。
-
特点:
- 断电数据不会丢失:外存是一种非易失性存储器,数据在断电后依然保持。
- 读取速度慢:与内存相比,外存的读取速度较慢,因为需要通过外部设备进行读取。
-
形式: 包括磁带、光盘、U盘、硬盘等形式。
内存的读取和存取速率远远大于外存。 存储器如内存、磁盘等,既是输入设备又是输出设备,痛陈为IO设备。
(4)输入设备(input)
- 功能:输入设备用于将外部信息输入道计算机,让计算机进行处理。
- 类比:相当于人的感官,如眼睛、耳朵、用于感知外界信息;如键盘、鼠标等。
(5)输出设备(output)
- 功能:输出设备将计算机处理后的结果呈现给用户或其他设备。
- 类比:人的口鼻,人说的话,写出的文章,用于表达和输出信息;如显示器、打印机等。
(6)小结
- CPU是人的大脑,负责控制全身和运算
- 内存是人的记忆,负责临时存储
- 硬盘是人的笔记本,负责永久存储
- 输入设备是耳朵或眼睛或嘴巴,负责接收外部的信息存入内存
- 输出设备是你的脸部(表情)或者屁股,负责经过处理后输出的结果
- 以上所有的设备都通过总线连接,总线相当于人的神经
(4)三大核心硬件(重点)
- 程序在计算机中运行时涉及道CPU、内存和硬盘等核心硬件的协同工作。
(1)CPU(中央处理器)
- CPU=控制器+运算器
- 用于计算数据,执行程序指令。
- 负责控制计算机的操作。
- 相当于计算机的大脑,决定程序执行的顺序和过程。
(2)内存
- 读取速度很快,但是居于电工作。
- 用于临时存储正在运行的程序和临时数据。
- 断电后数据会立即丢失,是一种易丢失数据的存储器。
- 作为CPU之间访问的存储媒介,提供高速的数据读写能力。
(3)硬盘
-
读取速度相对较慢。
-
用于永久保存数据,包括操作系统、应用程序和用户数据等。
-
断电后数据不会丢失,是一种非易丢失的数据存储器。
-
作为长期存储数据的设备,其容量通常较大。
TB,PB, Eb, Zb, YB
1B= 8bit 1KB=2(10)B=1024B;括号中的数字为2的指数(即多少次方)
1MB=2(10)KB=1024KB=2(20)B
1GB=2(10)MB=1024MB=2(30)B
1TB=2(10)GB=1024GB=2(40)B
1PB=2(10)TB=1024TB=2(50)B
1EB=2(10)PB=1024PB=2(60)B
1ZB=2(10)EB=1024EB=2(70)B
1YB=2(10)ZB=1024ZB=2(80)B
(5)程序执行过程
- 加载阶段:程序首先存放在硬盘中。
- 加载到内存:在运行时,操作系统将程序从硬盘加载到内存中,以便CPU能够直接访问。
- CPU执行:CPU从内存中读取程序的指令,进行相应的计算和操作。
- 运算过程:运算器进行算术和逻辑运算,控制器负责指令的执行流程。
- 结果返回:计算结果可能被存储回内存,最终可能被写回硬盘以保持数据的持久性。
程序最先是存放与硬盘当中的
程序的运行是先从硬盘中把代码加载到内存中,然后CPU从内存中读取指令运行。
执行速度CPU>内存>d硬盘
(三)操作系统
(1)操作系统的由来
(1)操作系统出现的目的
- 操作系统的出现是为了简化硬件操作,提供统一的接口供应用程序使用。
- 在开发应用程序时,不同开发者无需重复编写控制硬件的底层代码,而是调用操作系统提供的接口。
- 这样,开发者能够专注于应用程序的业务逻辑,提高开发效率。
(2)说明
- 如果没有操作系统,每个应用程序都需要自行编写控制硬盘读写的代码、控制内存的代码、管理输入输出设备的代码等。
- 这将导致大量的重复劳动,而且每个程序员都需要深入了解硬件的底层细节,这是一项繁琐且容易出错的任务。
(3)小结
- 综上,对于不同公司的开发者来说,应用程序的业务逻辑各不相同,但硬件的控制程序都大致相同,为了避免所有程序员做重复劳动,以及不用再耗费精力去了解所有硬件的运行细节,有公司专门跳出来承担起控制程序的开发任务,这里所说的控制程序指的就是操作系统。
- 操作系统的功能就是帮我们把复杂的硬件的控制封装成简单的接口,对于开发应用程序来说只需要调用操作系统提供给我们的接口即可。
(2)操作系统的主要功能
- 硬件管理: 控制和管理计算机的硬件,包括CPU、内存、硬盘、输入输出设备等。
- 文件系统: 提供文件和目录的管理,让应用程序能够方便地读取和存储数据。
- 进程管理: 管理运行在计算机上的各个进程,确保它们有序、安全地运行。
- 内存管理: 分配和释放内存,以及虚拟内存的管理。
- 设备驱动程序: 提供硬件设备的驱动程序,使应用程序能够通过操作系统与硬件交互。
- 用户界面: 提供用户与计算机交互的界面,如图形用户界面(GUI)或命令行界面。
(3)常见的操作系统
(1)客户端(PC)
- Windows(微软)
- macOS(苹果)
- Linux(服务器)
(2)移动端(APP)
- 安卓
- iOS
- 鸿蒙
(4)系统软件与应用软件
(1)系统软件(操作系统)
- 操作系统是一种系统软件,作为计算机硬件和应用软件之间的中介,负责协调、管理、控制计算机硬件与应用软件资源的控制程序。
- 其主要功能包括硬件管理、文件系统、进程管理、内存管理、设备驱动程序、用户界面等。
- 常见的操作系统有Windows、macOS、Linux等。
(2)应用软件(应用软件)
- 应用软件是为了满足用户特定需求而开发的软件,通过操作系统运行。
- 它包括各种各样的程序,涵盖了几乎所有计算机用户可能需要的功能。
- 例如:
- QQ: 一款即时通讯软件,用于文字、语音、视频通话以及文件传输等功能。
- 微信: 一款综合性社交平台软件,除了即时通讯外,还包括朋友圈、小程序等功能。
- Word: 一种文字处理软件,用于创建、编辑文档,处理文本内容。
- 这些应用软件通过操作系统提供的接口与硬件交互,使用户能够方便地完成各种任务。
- 应用软件的种类丰富多样,涵盖了各个领域,满足了用户的不同需求。
(5)计算机系统的三层架构
- 我们开发应用程序本质是在控制硬件,但是我们直接打交道的是操作系统,应用程序都是通过操作系统来间接地操作硬件的,所以一套完整的计算机系统分为三层
(1)应用层
- 在计算机系统的顶层是应用层,这是用户直接交互的层面。
- 我们的主要关注点通常是在这个层次上。
- 在这里,我们编写和设计各种应用程序,包括但不限于网页应用、桌面应用、移动应用等。
- 编写代码的目标是实现用户需求,而这些应用程序通过操作系统提供的接口来与底层硬件进行通信。
(2)操作系统层
- 操作系统层是连接应用层和硬件层的桥梁。
- 它提供了一系列的系统调用和服务,使应用程序能够在硬件上运行。
- 这一层包括操作系统的内核,负责管理系统资源、进程调度、文件系统等。
- 不同操作系统有不同的特性,例如Linux、Windows等,以及它们在开发中的影响。
(3)硬件层
- 硬件层是计算机系统的最底层,包括处理器、内存、存储设备、输入输出设备等。
- 在这个层次上,我们关注计算机体系结构、指令集架构、存储器层次结构等概念。
- 理解硬件层对于优化应用程序性能和解决一些底层问题至关重要。
(4)图片总结
(6)平台的概念
(1)什么是平台
- 应用程序都是运行于操作系统(系统软件)之上
- 而操作系统则是运行于硬件之上的,
- 所以承载应用程序的是一台运行有操作系统的计算机,称之为应用程序的运行平台
- 即:硬件 + 系统软件 == 平台
(2)常见的平台
- windows系统+某款硬件
- linux系统+某款硬件
- ubuntu+某款硬件等
(3)跨平台性的优势
- 在开发应用程序时,考虑跨平台性是至关重要的。
- 这意味着无论用户使用的是Windows、Linux还是其他操作系统,应用程序都能够在不同平台上运行。
- 这为开发者提供了更广泛的用户群体,减少了开发和维护的成本,同时增加了应用程序的灵活性。
(4)编程语言的选择
- 决定应用软件的跨平台性的确关键因素之一是选择合适的编程语言。
- 不同的语言在这方面有着不同的表现。
- Python作为一种解释型语言,具有卓越的跨平台性,这是因为Python解释器本身可以在各种操作系统上运行,而且许多Python库和框架也是跨平台的。
(5)Python的跨平台性
- Python的设计理念之一就是"Write once, run anywhere",即一次编写,到处运行。
- 这得益于Python解释器的能力,使得开发者无需担心底层平台细节,只需专注于编写高级代码。
- 这对于培训零基础小白来说,降低了学习和开发的门槛,使他们更容易进入开发领域。