计算机基础

【一】编程语言和编程的引入

【1】什么是语言?

  • 语言其实就是人与人之间沟通的介质,如英语,汉语,俄语等。

【2】什么是编程语言?

  • 编程语言则是人与计算机之间沟通的介质。

【3】为什么会出现编程语言?

  • 因为在编程的世界里,计算机就好比是人的奴隶,人与计算机沟通的目的就是为了奴役计算机,让计算机按照人类的思维逻辑自发地去工作从而把人力解放出来。

【4】什么是编程?

  • 编程就是人把自己想命令计算机干的事,用编程语言翻译出来并写到文件里(这一系列的文件就是程序)。

【5】为什么要做编程?

  • 人类编程的目的就是为了让计算机按照人类的思维逻辑(程序)自发地去工作从而把人力解放出来。

【二】计算机组成原理

【1】什么是计算机?

  • 俗称电脑,即通电的大脑
    • 电脑二字蕴含了人类对计算机的终极期望,希望它能真的像人脑一样去工作,从而解放人力。

【2】为什么要发明计算机?

  • 世界是由聪明的懒人统治的,任何时期,总有一群聪明的懒人想要奴隶别人。
  • 在奴隶制社会,聪明的懒人奴役的是真正的人,而人是无法不吃、不喝、不睡觉一直工作的
  • 计算机作为一台机器是可以做到的,所以把计算机当奴隶是上上之选。

【3】计算机的五大组成部分

  • 计算机有五大组成部分
  • 既然计算机是人的奴隶,那么计算机设计核心肯定也是在模仿真正的人
  • 所以我们完全可以把计算机的五大组件比喻成人类的各种器官

(3.1)控制器

  • 相当于人类的大脑,控制器是计算机的指挥系统
    • 用来控制计算机其他组件的运行

(3.2)运算器

  • 运算器是计算机的运算功能

    • 用来做算术运算和逻辑运算,相当于人脑。
      • 算术运算
        • 数字之间的运算,例如 + - * /
      • 逻辑运算
        • 根据某个条件是否成立,决定是否要做事情
  • 控制器+运算器=CPU

    • cpu相当于人的大脑

(3.3)存储器

  • 存储器是计算机的记忆区,用来存储数据
  • 存储器主要分内存和外存
    • 内存
      • 相当于人的临时记忆
      • 特点
        • 断电数据丢失
        • 读取速度快
    • 外存
      • 相当于记事的书本
      • 特点
        • 断电数据不会丢失
        • 用来永久存储数据
        • 读取速度慢
      • 如磁带、光盘、U盘、硬盘 ...
    • 运行程序时,数据必须先存于内存中

内存的读取和存取速率远远高于外存

(3.4)输入设备(input)

  • 输入设备是计算接收外界输入数据的工具
    • 如键盘、鼠标、麦克风、扫描仪
    • 相当于人的眼睛或耳朵。

(3.5)输出设备(output)

  • 输出设备是计算机向外输出数据的工具
    • 如显示器、打印机
    • 相当于人说的话,写出的文章。

存储器如内存、磁盘等,既是输入设备又是输出设备,统称为IO设备

【4】一个非常重要的基础知识(三大核心硬件)

  • 我们编写的程序一定是要运行于计算机硬件之上
    • 而站在硬件的角度,与运行程序有关的三大核心硬件为
    • CPU
      • CPU = 控制器 + 运算器
      • 用来计算数据
    • 内存
      • 读取速度快
      • 基于电工作
      • 断电数据立马丢失
    • 硬盘
      • 读取速度慢
      • 可以永久保存数据

程序最先是存放于硬盘中的

程序的运行是先从硬盘把代码加载到内存中,然后cpu是从内存中读取指令运行。

执行速度:CPU >>> 内存 >>> 硬盘

【三】操作系统

【1】操作系统的由来

  • 大前提:我们编程目的就是为了奴役计算机
    • 让计算机硬件自发地运行起来
    • 然而硬件毕竟是”死的“,硬件的运行都是由软件支配。
  • 倘若我们要开发一个应用程序

    • 比如暴风音影,该软件的一个核心业务就是播放视频,开发者若要编写程序完成播放视频这个业务逻辑,必先涉及到底层硬件硬盘的基本运作(视频文件都是先存放于硬盘中),这意味着开发者在编写业务逻辑代码之前,必须先编写一个控制硬盘基本运行的控制程序,然而这仅仅只是一个开始
    • 事实上,在编写应用程序的业务逻辑前,需要开发者编写出一套完整的控制程序用来控制所有硬件的基本运行(这要求开发者需要详细了解计算机硬件的各种控制细节,例如我们必须把CPU里面所有指令集都掌握一遍)
    • 如此,所有的开发者在开发程序时都必须依次开发两种:
      • 1、编写一套完整的的控制程序
        • 用来控制硬件的基本运行,以及把复杂的硬件的操作封装成简单的接口
      • 2、基于控制程序的接口开发包含一系列业务逻辑的程序
        • 为了与控制程序区分,可以称为应用程序
          • 以ATM这款应用程序为例,业务逻辑有提款、转账、查询余额等
  • 综上,对于不同公司的开发者来说,应用程序的业务逻辑各不相同,但硬件的控制程序都大致相同,为了避免所有程序员做重复劳动,以及不用再耗费精力去了解所有硬件的运行细节,有公司专门跳出来承担起控制程序的开发任务,这里所说的控制程序指的就是操作系统。

  • 操作系统的功能就是帮我们把复杂的硬件的控制封装成简单的接口,对于开发应用程序来说只需要调用操作系统提供给我们的接口即可

  • 常见的操作系统
    • PC端
      • Windows(微软)
      • macOS(苹果)
      • Linux(服务器)
    • app端
      • 安卓
      • iOS
      • 鸿蒙

【2】系统软件与应用软件

(1)系统软件

  • 操作系统
    • 是应用软件与硬件之间的一个桥梁,是协调、管理、控制计算机硬件与应用软件资源的控制程序。

(2)应用软件

  • application
    • QQ
    • 微信
    • word

【3】计算机系统的三层架构

  • 我们开发应用程序本质是在控制硬件,但是我们直接打交道的是操作系统,应用程序都是通过操作系统来间接地操作硬件的,所以一套完整的计算机系统分为三层,如下

【4】平台的概念

  • 应用程序都是运行于操作系统(系统软件)之上
    • 而操作系统则是运行于硬件之上的,
    • 所以承载应用程序的是一台运行有操作系统的计算机,称之为应用程序的运行平台,即:硬件 + 系统软件 == 平台
  • 常见的平台有:
    • windows系统+某款硬件
    • linux系统+某款硬件
    • ubuntu+某款硬件等
  • 我们在开发应用程序时就需要考虑到应用程序的跨平台性,如果能开发出一款可以在任意平台运行的应用程序,那对于开发者来说真是极大的福音。
  • 而决定应用软件的跨平台性的关键因素往往是编程语言的选择
  • python恰好是一款跨平台性语言,这也是我们学习它的原因之一。
posted @ 2023-05-11 15:06  Chimengmeng  阅读(120)  评论(0编辑  收藏  举报