计算机硬件基础知识(四)操作系统

一、操作系统

1.1、操作系统的由来

? 大前提:我们编程目的就是为了奴役计算机,让计算机硬件自发地运行起来,然而硬件毕竟是”死的“,硬件的运行都是由软件支配。(软件才是支配这些死硬件的灵魂)

  假如我们要开发一个应用程序如“暴风音影”

  思路是:

  1、该软件的一个核心业务就是播放视频,开发者若要编写程序完成播放视频这个业务逻辑。

  2、必先涉及到底层硬件硬盘的基本运作(视频文件都是先存放于硬盘中),这意味着开发者在编写业务逻辑代码之前,必须先编写一个控制硬盘基本运行的控制程序。

  3、在编写应用程序的业务逻辑前,需要开发者编写出一套完整的控制程序用来控制所有硬件的基本运行(这要求开发者需要详细了解计算机硬件的各种控制细节,例如我们必须把CPU里面所有指令集都掌握一遍),如此,所有的开发者在开发程序时都必须依次开发两种:

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

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

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

1.2、系统软件与应用软件

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

#一、应用软件(例如qq、word、暴风影音,我们学习python就是为了开发应用软件的)
#二、操作系统,操作系统应用软件与硬件之间的一个桥梁,是协调、管理、控制计算机硬件与应用软件资源的控制程序。(某种意义上来说操作系统就是软件)

1.3、计算机系统三层结构

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

   

二、平台

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

  即:平台 == 硬件 + 操作系统

            

  常见的平台有:windows系统+某款硬件、linux系统+某款硬件、ubuntu+某款硬件等

  我们在开发应用程序时就需要考虑到应用程序的跨平台性(跨平台性是衡量软件质量高低的标准),如果能开发出一款可以在任意平台运行的应用程序,那对于开发者来说真是极大的福音。而决定应用软件的跨平台性的关键因素往往是编程语言的选择,python恰好是一款跨平台性语言,这也是我们学习它的原因之一。

原文地址:https://www.cnblogs.com/liunaixu/p/12397675.html

时间: 2024-10-10 09:03:57

计算机硬件基础知识(四)操作系统的相关文章

C# 基础知识 (四).C#简介及托管代码

        暑假转瞬即逝,从10天的支教生活到1周的江浙沪旅游,在这个漫长的暑假中我经历了很多东西,也学到了很多东西,也认识到了很多不足之处!闲暇之余我准备重新进一步巩固C#相关知识,包括C#入门知识.C#并行开发.ASP网站等.这篇文章我介绍的是书籍--C#入门经典(Beginning C#) 作者Karli Watson.主要包括的是我自己缺乏的一些C#简介知识和托管代码的内容.内容比较简单,参照该书籍较多,相当于自己的在线笔记!                             

计算机硬件——基础知识

计算机硬件--基础知识 1.编程语言的作用 语言是用来沟通的,如英语.法语.葡萄牙语等.程序员编程的本质就是让计算机去工作,而编程语言就是程序员与计算机沟通的介质. 2.操作系统和硬件的关系 操作系统负责管理计算机系统中各种独立的硬件,使得它们可以协调工作. 3.应用程序.操作系统与硬件之间的关系 硬件是基础,硬件需要通过操作系统系统控制来启动硬件,并让各个硬件之间相互协同工作,在系统软件的基础上是用户,用户操控的是系统软件,并在系统软件的基础上安装相应的应用程序,来完成用户所需要的工作.所以说

Python基础知识(四)

Python基础知识(四) 一丶列表 定义格式: 是一个容器,由 [ ]表示,元素与元素之间用逗号隔开. 如:name=["张三","李四"] 作用: 存储任意类型的数据 (32位机器能存5亿多,64为机器存储更多) 特点: 可变 (增,删,改,查) 默认从左到右 ,从0开始 . 有序(索引,切片,步长) 操作: 增 , 删 , 改 ,查 ,索引,切片,步长 ?? #列表的两种定义方式 name=["香蕉","西瓜",&quo

计算机科学基础知识(四)动态库和位置无关代码

一.前言 本文主要描述了动态库以及和动态库有紧密联系的位置无关代码的相关资讯.首先介绍了动态库和位置无关代码的源由,了解这些背景知识有助于理解和学习动态库.随后,我们通过加-fPIC和不加这个编译选项分别编译出两个relocatable object file,看看编译器是如何生成位置无关代码的.最后,我们自己动手编写一个简单的动态库,并解析了一些symbol Visibility.动态符号表等一些相关基本概念. 本文中的描述是基于ARM MCU,GNU/linux平台而言的,本文是个人对动态库

KnockoutJS基础知识(四)

几乎所有Web应用程序都要和服务器端交换数据,交换数据时最方便的就是使用JSON格式.Knockout可以实现很复杂的客户端交互,对于前后端交互使用的技术最为基本且常用的是Ajax,本次利用Ajax和ko的双向绑定完成一些简单的功能,可以快速展示出ko的方便之处. Demo地址: https://gitee.com/530521314/koInstance.git 一.服务端返回数据绑定到客户端 1.准备好一些初始数据,直接通过View方法将视图实体返回到视图文件中. 2.前端设置为强类型,初始

计算机硬件基础知识

1.计算机CPU 计算机CPU由很多加法器构成的,加法器有总线连接.加法器的速度,与CPU的主频有关. 2.南桥和北桥 南桥:是外部慢速设备数据汇总的桥梁such as 显示器.键盘.鼠标这种慢速的设备:southbridge 北桥:是外部快速设备数据的汇总桥梁such as 内存,南桥的数据汇总之后送到北桥,再有北桥直接和CPU进行通信. 硬件架构: 目前的主流CPU:ARM   是一个英国公司设计ARM,但是从来不生产,把生产交给高通.飞思卡尔这些公司.目前很多手机就是应用的ARM,ARM省

Linux 基础知识(四)

GPT是什么? GUID磁盘分区表(GUID Partition Table,缩写:GPT)其含义为"全局唯一标识磁盘分区表",是一个实体硬盘的分区表的结构布局的标准.它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的一64bits来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表 GPT有哪些功能? 在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序).但在GPT硬盘中,分区表

python 基础知识四、字典

常见字典常量和操作 操作 解释 D = {} 空字典 D = {'spam':2 , 'egg':3} 两项目字典 D = {'food':{'ham':1,'egg':2}} 嵌套 D = dict.fromkeys(['a','b']) 其他构造技术 D = dict(zip(keylist, valslist)) 关键之.对应的对.键列表 D = dict(name='bob', age=42) D['eggs'] 以键进行索引运算 'eggs' in D  成员关系:键存在测试 D.ke

Linux基础知识四

1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [[email protected] ~]# cp -a /etc/skel /home/tuser1/ [[email protected] ~]# chmod -R go-rwx /home/tuser1/ 2.编辑/etc/group文件,添加组hadoop. [[email protected] ~]# echo "hadoop:x:3007:"