Linux学习笔记之操作系统

操作系统

  操作系统(英语:Operating System,缩写:OS)是一种内置的程序,用来协作计算机的各种硬件,以与用户进行交互。如 Windows 在个人电脑办公、游戏娱乐领域占据主导;macOS 凭借出色的图形处理能力受设计、影视等专业人士青睐;Linux 因稳定性和开源特性广泛应用于服务器管理与科研开发;华为鸿蒙系统聚焦于万物互联,实现跨终端设备协同,让读者快速了解各系统专长。

在这里插入图片描述

操作系统定义

  操作系统实际是就是一个管理软硬件资源的程序,向下而言管理底层硬件,向上而言提供方便使用的接口

操作系统的意义与目的

  面对于不同的底层硬件例如鼠标与键盘来说,他们的底层电路设计千差万别,如果没有操作系统帮我们管理,那么我们访问鼠标或者键盘必须要懂得他们底层的电路设计与实现。但是有了操作系统之后,鼠标厂家根据OS要求,提前封装好了驱动程序,那么我们在访问鼠标与键盘的时候就可以统一使用一套标准,大大的简化了开发流程。
  有了操作系统之后,软件开发人员就不需要过于关注底层硬件的细节,只需要熟悉使用OS提供的接口即可,就可以快速的开发应用,对于用户来说就可以获得更好的体验,这就是OS的目的。

操作系统的硬件管理

  假设此时我们是某鹅公司的老板,我们要做的就是管理好公司的员工,然后给用户良好的体验。
  截至2024年的某鹅员工总数为105,506名,身为公司的CEO,我们不可能了解到每一个员工,我们只需要管理好几个主管做出决定就可以了,然后让主管管理下面的员工。我们做出的决定一定是根据公司员工的水平,以及市场行情做出来的,==也就是决策就是对于数据进行处理。==这时假如我们有一份员工的基本情况表。如下图
在这里插入图片描述
  此时我们公司有105,506名员工,作为老板不可能一页一页的翻看,那么相当于日阅读100万字,早上6点爬起来看到晚上都看不完。此时就可以利用计算机来处理。我们定义一个结构体person,里面有员工的信息。如下代码

// 定义员工信息结构体
struct Employee {
    int id;             // 员工编号
    char name[50];       // 员工姓名,使用字符数组存储,最多存储 49 个字符加一个'\0'结束符
    float salary;       // 员工薪水
    int age;            // 员工年龄
    struct Employee* next;//下个结点
};

  此时员工信息表就可以用单链表的方式串在了一起,假如我们要开除60以上员工,只需要遍历一遍链表找出60岁以上的员工,删除该节点即可,我们对于员工的决策就转化为了对于单链表的增删查改了。
  通过以上例子,由此我们便有了一种管理方式:先描述再组织,将想要管理的数据描述为抽象类型然后用语言描述,然后利用数据结构存储起来,我们对数据的处理就变成了数据结构的增删改查。
  其次OS对于硬件管理也是如此。先定义个device结构体变量。

// 定义设备结构体
struct Device {
    int id;             // 设备编号
    char name[50];       // 设备名称
    float price;        // 设备价格
    int quantity;       // 设备数量
    char status[20];     // 设备状态,例如 "正常"、"维修中"、"已报废" 等
    struct Device* next;
};


然后用单链表的方式组织起来,对于设备的增加删除修改,变为了对于单链表的增删改查。

操作系统的上层管理

在这里插入图片描述

  对于操作系统来说,他不光要对于底层硬件进行封装,==还要向上提供安全,高效的开发与使用环境。==假如把银行比做个操作系统,那么用户有存钱,取钱的操作。为了保护银行的安全,用户是不被允许进入银行内部操作的,只可以通过窗口来完成操作。如果操作系统允许开发者直接访问硬件资源,那么便可能被坏人修改其他程序的数据,从而导致操作系统崩溃,进程之间相互干扰,因此OS必定是封闭的,不允许开发者随意修改数据。
在这里插入图片描述

  但是OS的目的是为了给用户提供服务,就必定会开放一些窗口,给开发者使用,尽可能的减少错误出现的可能。这就是system call,但是系统提供的原始接口对于普通大众还是过于复杂了,有人就会问主播主播有没有简单又强势的操作,有的有的,于是便有了C语言标准库,Java虚拟机等用户接口,通过将系统调用再次封装从而实现开发者较为简单的使用。于是我们在C语言中便可以通过一句简单的printf就向显示屏打印文字。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值