首页 > 技术文章 > 计算机基础

JZjuechen 2021-10-29 21:22 原文

Typora软件的安装与使用

关于Typora使用的相关内容在我另外整理的一篇博客有详细介绍,可以点击下方链接进行浏览 :https://www.cnblogs.com/JZjuechen/p/15480970.html

编程与编程语言

  1. 什么是语言?什么是编程语言?

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

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

  2. 什么是编程?为什么要编程?

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

    img

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

计算机组成原理

  1. 什么是计算机?

    计算机是现代一种用于高速计算的电子计算机器,俗称电脑,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。

img

  1. 为什么要用计算机?

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

    img

  2. 计算机的五大组成部分

    • 控制器(控制计算机各个硬件的工作)

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

    • 运算器(控制数学运算与逻辑运算)

      运算器是计算机的运算功能,用来做算术运算和逻辑运算,也相当于人的大脑。

      img

    • 存储器

      存储器是计算机的记忆功能,用来存取数据。存储器主要分为内存与外存:

      • 内存(存取数据的速度很快)

        eg: 内存条

        相当于人的短期记忆
        它是基于电工作的,断电数据立刻丢失,不能用来永久保存数据

      • 外存(存取数据的速度较慢)

        eg:磁带 磁盘 U盘 硬盘

        相当于人的长期记忆

        即使断电之后数据也不受影响,可以永久保存数据。

        img

    • 输入设备——input

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

      img

    • 输出设备——output

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

      img

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

  3. 三大核心硬件

    我们编写的程序一定是要运行于计算机硬件之上,而站在硬件的角度,与运行程序有关的三大核心硬件为CPU、内存、硬盘。

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

中央处理器(CPU)  # 控制器+运算器
	CPU去内存中取程序的指令并运行
内存
	程序要想运行必须先存在于内存中
硬盘
	永久保存相应数据
"""
1.电脑下载软件的过程其实是将数据下载到了硬盘
2.双击程序图标其实是将该程序的数据由硬盘加载到内存
3.程序运行其实就是CPU在执行程序的代码
"""

img

操作系统

  1. 操作系统的由来

    倘若我们要开发一个应用程序,比如优酷,该软件的一个核心业务就是播放视频,开发者若要编写程序完成播放视频这个业务逻辑,必先涉及到底层硬件硬盘的基本运作(视频文件都是先存放于硬盘中),这意味着开发者在编写业务逻辑代码之前,必须先编写一个控制硬盘基本运行的控制程序,然而这仅仅只是一个开始,事实上,在编写应用程序的业务逻辑前,需要开发者编写出一套完整的控制程序用来控制所有硬件的基本运行(这要求开发者需要详细了解计算机硬件的各种控制细节,例如我们必须把CPU里面所有指令集都掌握一遍),如此,所有的开发者在开发程序时都必须依次开发两种:

    #1、编写一套完整的的控制程序,用来控制硬件的基本运行,以及把复杂的硬件的操作封装成简单的接口
    #2、基于控制程序的接口开发包含一系列业务逻辑的程序,为了与控制程序区分,可以称为应用程序,以ATM购物车这款应用程序为例,业务逻辑有提款、转账、查询余额等
    

    综上,对于不同公司的开发者来说,应用程序的业务逻辑各不相同,但硬件的控制程序都大致相同,为了避免所有程序员做重复劳动,以及不用再耗费精力去了解所有硬件的运行细节,有公司专门跳出来承担起控制程序的开发任务,这里所说的控制程序指的就是操作系统。

    image

    img

    img

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

    # PC端
        windows  更加注重用户体验
        linux    更加主动软件运行
        macOS    两者均可
    # 移动端
    	安卓 ios 鸿蒙
    
  2. 系统软件与应用软件

    硬件以上运行的都是软件,而软件分为两类:

    #一、应用软件(例如QQ、Word、优酷,学习python就是为了开发应用软件的)
    
    #二、操作系统,操作系统应用软件与硬件之间的一个桥梁,是协调、管理、控制计算机硬件与应用软件资源的控制程序。
    
  3. 计算机系统三层架构

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

    计算机系统三层结构

    我们日常生活中所使用的,程序员所编写的程序都必须基于操作系统之上,那么可以由此引出一个非常重要的概念:平台

    • 应用程序都是运行于操作系统之上,而操作系统则是运行于硬件之上的,所以承载应用程序的是一台运行有操作系统的计算机,称之为应用程序的运行平台,即:硬件 + 操作系统 == 平台

      img

    常见的平台有:windows系统+某款硬件、linux系统+某款硬件、macOS+某款硬件等,我们在开发应用程序时就需要考虑到应用程序的跨平台性,如果能开发出一款可以在任意平台运行的应用程序,那对于开发者来说真是极大的福音。而决定应用软件的跨平台性的关键因素往往是编程语言的选择,python恰好是一款跨平台性语言,所以这也是我们学习它的原因之一。

    img

推荐阅读