计算机基础,操作系统
编程与编程语言
什么是语言?
中文、日文、韩文、英文都是人类的语言
语言其实就是人用来沟通交流的媒介(语言就是一种事物与另外一种事物沟通表达的方式/工具)
什么是编程语言?
人与计算机之间沟通交流的媒介
人-----------编程语言------------计算机
编程语言的本质就是一门语言
能够与机器的对话的人
什么是编程?
编程即程序员根据需求把自己的思想流程按照某种编程语言的语法风格编写下来,产出的结果就是包含一堆字符的文件。
-
1、想好做事的步骤
-
2、找一种对方能听懂语言把做事的步骤给翻译下来,并且存入文件中
强调:程序在未运行前跟普通文件无异,只有程序在运行时,文件内所写的字符才有特定的语法意义
什么是程序?什么是进程?
程序就是一系列的代码文件,进程指的是一个正在运行的程序
为何要编程?
计算机就相当于人类的奴隶,编程的目的是为了控制计算机让其代替人类去工作,从而解放人力

SSD)
-
是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)以及缓存单元组成。
-
区别于机械硬盘由磁盘、磁头等机械部件构成,整个固态硬盘结构无机械装置,全部是由电子芯片及电路板组成。
buffer写缓冲区:
- 是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区,显然缓冲区是具有一定大小的。
- 缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区
cache读缓存:
- cache是一个非常大的概念。
缓存(cache)与缓冲(buffer)的主要区别
-
Buffer的核心作用是用来缓冲,缓和冲击。比如你每秒要写100次硬盘,对系统冲击很大,浪费了大量时间在忙着处理开始写和结束写这两件事嘛。用个buffer暂存起来,变成每10秒写一次硬盘,对系统的冲击就很小,写入效率高了,日子过得爽了。极大缓和了冲击。
-
Cache的核心作用是加快取用的速度。比如你一个很复杂的计算做完了,下次还要用结果,就把结果放手边一个好拿的地方存着,下次不用再算了。加快了数据取用的速度。
- 简单来说就是buffer偏重于写,而cache偏重于读。
- ps:有时候大家要好好理解这些专有名词字面上的意思,对理解这些概念有好处,缓冲:缓解冲击,缓存:临时存储
虚拟内存:
- 许多计算机支持虚拟内存机制,该机制使计算机可以运行大于物理内存的程序,方法是将正在使用的程序放入内存取执行,而暂时不需要执行的程序放到磁盘的某块地方,这块地方成为虚拟内存,在linux中成为swap,这种机制的核心在于快速地映射内存地址,由cpu中的一个部件负责,成为存储器管理单元(Memory Management Unit MMU)
? IO设备=设备的控制+设备本身
操作系统
操作系统是一个协调、管理、控制计算机硬件资源与软件资源的程序。
它处于计算机硬件与应用程序之间
- BIOS介绍:
- BIOS:Basic Input Output System
- BIOS被写入ROM设备
?在计算机的主板上有一个基本的输入输出程序(Basic Input Output system)BIOS就相当于一个小的操作系统,它有底层的I/O软件,包括读键盘,写屏幕,进行磁盘I/O,该程序存放于一非易失性闪存RAM中。
-
裸机:
- CPU:中央处理器
- ROM:充当内存,存放BIOS系统
- CMOS:充当硬盘
-
操作系统的启动流程
- 1.计算机加电
- 2.BIOS开始运行,检测硬件:cpu、内存、硬盘等
- 3.BIOS读取CMOS存储器中的参数,选择启动设备
- 4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节前446为引导信息,后64为分区信息,最后两个为标志位)
- 5.根据分区信息读入bootloader启动装载模块,启动操作系统
- 6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核
-
BIOS
- 1、存有win10系统的光盘、u盘、移动硬盘:无密码
- 2、本地硬盘上的win7系统:密码
-
应用程序的启动流程
- 1、双击exe快捷方式--》exe文件的绝对路径,就是在告诉操作系统说:我有一个应用程序要执行,应用程序的文件路径是(exe文件的绝对路径)
- 2、操作系统会根据文件路径找到exe程序在硬盘的位置,控制其代码从硬盘加载到内存
- 3、然后控制cpu从内存中读取刚刚读入内存的应用程序的代码执行,应用程序完成启动
计算机的三层结构
-
应用程序
-
操作系统
-
计算机硬件(cpu、内存、硬盘)
""" 我们日常生活中所使用的 程序员所编写的程序都必须基于操作系统之上 """ # PC端 windows 更加注重用户体验 linux 更加主动软件运行 macOS 两者均可 # 移动端 安卓 ios 鸿蒙
- 一个非常重要的基础概念:平台
应用程序都是运行于操作系统之上,而操作系统则是运行于硬件之上的,所以承载应用程序的是一台运行有操作系统的计算机,称之为应用程序的运行平台,即:硬件 + 操作系统 == 平台
常见的平台有:windows系统+某款硬件、linux系统+某款硬件、ubuntu+某款硬件等,我们在开发应用程序时就需要考虑到应用程序的跨平台性,如果能开发出一款可以在任意平台运行的应用程序,那对于开发者来说真是极大的福音。而决定应用软件的跨平台性的关键因素往往是编程语言的选择,python恰好是一款跨平台性语言,这也是我们学习它的原因之一。