【操作系统】

计算机操作系统

计算机是如何让用户得到好的体验

计算机系统是由计算机硬件和软件组成的。用户使用计算机,比如在文本文件填写内容,通过邮箱发送邮件,打开游戏应用进行游戏,程序员通过编译器编译源文件。填写文本文件需要用到磁盘,发送邮件要通过网卡,程序员自己写的代码要成为可执行的二进制文件存储到磁盘。等等这些硬件外设。这些外设属于计算机系统的硬件,硬件只认识二进制的数据的计算机语言,对应大部分的用户或程序员来说,是很难通过这种低级(0 1串)的计算机语言来对计算机操作。所以,这时候就有汇编语言,通过指令来对计算机硬件进行访问,但是汇编虽然提高了很大的可读性,但是对于大多数用户来说还是很困难的,所以就有了C语言等其他的高级语言来供给程序员来编写软件代码。然而,计算机的底层硬件并不认识这些高级语言。工程师为了能让用户和计算机之间有交互,做出了一个叫操作系统的软件来让计算机硬件和用户有着间接的联系。通过操作系统把硬件的数据转化为用户可以看得懂的内容,也可以把用户输入的数据转化计算机可以认识的01串。比如一个程序员写的一个C语言的源文件,操作系统会把每一条语句转化为一系列的低级计算机语言指令,然后这些指令按照一种可执行目标程序的格式打好包,并以二进制磁盘文件的形式存放到磁盘,这一系列就是用户通过操作系统和计算机的磁盘硬件进行交互。程序员调用C语言接口scanf()或printf()接口,把用户输入的数据或要打印在显示器的接口,通过这种上层计算机语言接口调用到系统调用,系统调用接口通过操作系统(OS)访问底层硬件。

得出结论:是操作系统让用户的到更好的体验。用户不需要关心计算机底层硬件的实现。

什么是操作系统(OS)

以Linux操作系统为例,Linux操作系统是一款软件,是通过大量的C语言和一些汇编的语言来进行编写的。通过上面的结论,知道了操作系统是管理计算机硬件和软件的一款软件,操作系统是在计算机硬件和软件之间的。 操作系统中有大量的内核数据结构和数据对象,这些数据结构和对象是用户的数据,这些大量的数据结构和对象要由操作系统进行管理。

操作系统主要的功能 :

①进程管理②存储管理③设备管理④文件管理

操作系统如何管理

用户打开在磁盘的文件,对文件进行读写,或者游戏时候的操作动作,再或者是程序员写代码时调用的库函数或系统调用,这些都是用户层面的操作。都是要通过操作系统来进行决策和管理的。比如再Linux中通过bash的命令行解释器来打开磁盘的文件,或者操作游戏时的键盘输入,都要通过操作系统调用到硬件。用户打开文件写入数据,就会调用到write()这个系统调用接口,然后操作系统再通过程序驱动访问到磁盘。

计算机会有许许多多的这些操作,所以操作系统需要管理这些操作。这些操作都是大量的数据结构和数据对象,操作系统会把这些对象的各种属性抽象成一个整体的对象。就好比一个程序员在公司,程序员的姓名,年龄,性别,工龄,工号,联系方式,家庭住址的属性来放在一个集合来,虽然这些属性的类型不一样,这样就可以用的集合来描述一个程序员,公司要找到这个员工,了解最近的情况,只需要找到这个集合的姓名和工号即可。公司要知道所有的员工,所以每个员工都有这样的一个集合,公司对这些员工的管理,就可以变为对这些集合的管理。在语言层面上,这些集合就是结构体。然后公司对结构体采用某些数据结构的方式来组织管理,就可以对员工们有很好的管理,对员工的管理变为对数据结构的管理,可以进行增删查改。

得出结论:操作系统对这些程序或者数据先进行描述,再进行组织管理。

相关推荐
女神下凡14 分钟前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
且从容.4 小时前
Ubuntu安装flume
linux·ubuntu·flume
承渊政道4 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
且从容.7 小时前
ubuntu安装flink
linux·ubuntu·flink
爱和冰阔落9 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨9 小时前
WSL2的安装与使用
linux·wsl
微小的鱼9 小时前
Linux的渲染与显示系统链路
android·java·linux
lisanmengmeng9 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器
Android系统攻城狮10 小时前
Linux FFmpeg深度解析之av_write_frame调用流程与实战(三十三)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
Linux-lucky1 天前
45-Linux学习之旅之防火墙与WEB加固
linux·前端·网络·学习·ubuntu