4.1 Linux操作系统

个人主页:Lei宝啊 

愿所有美好如期而遇


 

我们上次了解了从操作系统往下的部分:Linux进程前导知识

这一次,我们将正式开始进程以及操作系统(OS)及其以上的部分。


我们将操作系统的内存管理,进程管理,文件管理等等称为操作系统的内核。

首先,我们提出两个问题,为什么要有操作系统,操作系统是什么

1.为什么要有操作系统

根据我们的前导知识,我们明白操作系统是为了去管理软硬件资源而诞生的,因为我们不可能一只手扣着网卡,一只手扣着内存去使用电脑吧。

那么为什么要有操作系统的管理呢?一个操作系统对软硬件资源管理的好不好将决定了他是否会有人去使用,所以他是为了对用户提供一个更好的服务,以及良好的运行环境,所以才有了操作系统的管理。

什么叫做良好的运行环境稳定,安全,高效

稳定我们可以理解,这是由冯,诺依曼体系所决定的,那么凭什么说他安全呢?

操作系统是不允许用户直接进行访问的,因为操作系统管理着内存,文件等许多资源,里面有许多数据,像他人的密码,账户等以及许多软硬件数据,如果直接暴露给用户,将会造成不稳定和安全隐患,我们并不能保证每个用户都不会对数据做修改。

所以加了一层系统调用接口,什么是系统调用呢?说白了,也就是函数,由操作系统提供的函数,就是系统调用函数,在Linux下,这些函数大都是由C语言写的。

我们通过系统调用去访问操作系统,这样就安全许多,因为系统调用是操作系统所提供的,操作系统只相信自己写的函数,用户无法直接得到操作系统里的数据,需要通过各种系统调用获取或者修改数据,如果操作系统不允许,那么就无法做该操作。

那么又凭什么说他高效呢?

就像不是所有人都会使用电脑一样,系统调用并不是每个用户都会使用,他的各种参数如果不熟悉的话,使用起来是很难受的,所以就有人将这些系统调用封装成了lib库,各种语言都有他们的标准库,就像C标准库等,C库的设计者在设计时设计了不同平台的系统调用,在Linux和window等不同平台自己去匹配调用,而我们的printf等库函数,不管在哪个平台使用,都不需要去管他的底层,因为C库设计者替我们设计好了不同系统的系统调用,这也就是为什么我们说有些语言具有跨平台性和可移植性,就是因为他的标准库设计了不同平台的系统调用。

也由此,我们能够通过操作系统去访问硬件。

举个例子:C语言的printf函数,要将数据打印到显示器上,显示器也是硬件,而printf是我们自己写的函数,操作系统是不信任他的,我们无法直接通过操作系统去访问硬件,所以他的底层就加了系统调用,这样printf就能通过操作系统去访问硬件了。

所有我们自己写的函数只要影响到硬件,或者说需要硬件(scanf,需要键盘这个硬件),那么就需要系统调用,我们无法绕过操作系统去访问硬件,而操作系统我们又无法直接访问,所以系统调用就是必须的。

以及指令等等,在linux下大部分也都是C语言写的,也是经过封装的,底层也是加了系统调用。

于是最终,我们写代码时直接使用各种库函数,在执行时也不用去管底层系统调用,或开发者,或其他用户,在进行各种操作时,不需使用比较复杂的系统调用,大大减少了用户的使用成本

2.操作系统是什么?

操作系统是一款对软硬件做管理的软件。

操作系统的内核,我们说他包括内存管理,进程管理,文件管理等。

每一次我们开机所耗费的时间,就是操作系统在启动,只有操作系统启动了以后,我们才能更好地使用电脑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/198860.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安防视频监控平台EasyCVR服务器部署后出现报错,导致无法级联到域名服务器,该如何解决?

视频监控平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,安防监控平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流,也能支持视频定时轮播。视频监控…

Git详解

Git是一个开源的分布式版本控制系统,常用于软件开发中对代码版本管理。Git具有版本控制、协作开发、分支管理、代码审查等功能,能够记录每次代码修改的内容和时间,并能够回滚到任意历史版本,方便团队协作和代码维护。 Git的基本概…

在通用jar包中引入其他spring boot starter,并在通用jar包中直接配置这些starter的yml相关属性

场景 我在通用jar包中引入 spring-boot-starter-actuator 这样希望引用通用jar的所有服务都可以直接使用 actuator 中的功能, 问题在于,正常情况下,actuator的配置都写在每个项目的yml文件中,这就意味着,虽然每个项目…

数据结构【DS】栈

共享栈 共享栈的目的是什么? 目的:有效利用存储空间。 共享栈的存取数据时间复杂度为? 存取数据时间复杂度为O(1) 共享栈如何判空?如何判满? 两个栈的栈顶指针都指向栈顶元素,𝑡𝑜𝑝…

4-5学生分数对应的成绩

![#include<stdio.h> int main(){float score;char grade;for(int i0;i<7;i){printf("请输入成绩&#xff1a;");scanf("%f",&score);while(score>100||score<0){printf("\n输入的成绩有误&#xff0c;请重新输入&#xff1a;&quo…

【hacker送书第2期】计算机考研精炼1000题

第2期图书推荐 计算机考研难点《计算机考研精炼1000题》揭秘问答1. 为什么是1000题&#xff1f;2. 有什么优势&#xff1f;3. 编写团队水平如何&#xff1f;4. 题目及解析品质如何&#xff1f;可以试读吗&#xff1f; 参与方式 计算机考研难点 难度高&#xff01;知识点多&…

day29_Servlet

今日内容 零、 复习昨日 一、Servlet 零、 复习昨日 一、Servlet 1.1 Servlet介绍 javaweb开发,就是需要服务器接收前端发送的请求,以及请求中的数据,经过处理(jdbc操作),然后向浏览器做出响应. 我们要想在服务器中写java代码来接收请求,做出响应,我们的java代码就得遵循tomca…

旋极携手西班牙SoC-e公司,为中国客户提供高效可靠TSN通讯解决方案

2023年2月&#xff0c;旋极信息与西班牙SoC-e公司正式签订战略合作协议&#xff0c;成为其在中国区重要合作伙伴。 SoC-e是一家世界领先的基于FPGA技术的以太网通讯解决方案供应商&#xff0c;是一系列IP核开发领域的先锋&#xff0c;为关键任务实施网络化、同步性和安全性提供…

深入理解 synchronized 原理

目录 一. 前言 二. Java对象的内存布局 2.1. 对象头 2.2. Mark Word 2.3. Class Metadata Pointer 2.4. Length 三. 偏向锁 3.1. 偏向锁的工作流程 3.2. 偏向失效 3.2.1. 误区一 3.3. 偏向撤销 3.3.1. 误区一 3.4. 偏向撤销的底层实现 3.5. HashCode与偏向撤销 …

【Dubbo】Dubbo负载均衡实现解析

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;2022年度博客之星全国TOP3&#xff0c;专注于后端、中间件、计算机底层、架构设计演进与稳定性建设优化&#xff0c;文章内容兼具广度、深度、大厂技术方案&#xff0c;对待技术喜欢推理加验证&#xff0c;就职于…

动态库符号抢占问题分析

背景 前段时间在北汽项目中&#xff0c;遇到了一个奇怪现象&#xff0c;困扰了大家较长时间。最终在和同事的不懈努力下&#xff0c;从根因上解决了该问题&#xff0c;过程中也学习到了很多。在此&#xff0c;记录并分享&#xff0c;希望能够帮助大家。 问题描述 作为OTA服务的…

客户管理系统大盘点!推荐这五款

客户管理系统大盘点&#xff01;推荐这五款。 客户管理系统也就是CRM&#xff0c;可以说是企业刚需&#xff0c;国内外的客户管理系统也是数不胜数&#xff0c;到底有哪些是真正好用&#xff0c;值得推荐的呢&#xff1f;本文将为大家推荐这5款好用的客户管理系统&#xff1a;…

R语言:利用biomod2进行生态位建模

在这里主要是分享一个不错的代码&#xff0c;喜欢的可以慢慢研究。我看了一遍&#xff0c;觉得里面有很多有意思的东西&#xff0c;供大家学习和参考。 利用PCA轴总结的70个环境变量&#xff0c;利用biomod2进行生态位建模&#xff1a; #------------------------------------…

elasticsearch 概述

初识elasticsearch 了解ES elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能&#xff0c;可以帮助我们从海量数据中快速找到需要的内容 例如&#xff1a; 在GitHub搜索代码 在电商网站搜索商品 ELK技术栈 elasticsearc…

基于FPGA的五子棋(论文+源码)

1.系统设计 在本次设计中&#xff0c;整个系统硬件框图如下图所示&#xff0c;以ALTERA的FPGA作为硬件载体&#xff0c;VGA接口&#xff0c;PS/2鼠标来完成设计&#xff0c;整个系统可以完成人人对战&#xff0c;人机对战的功能。系统通过软件编程来实现上述功能。将在硬件设计…

centos的root密码忘记或失效的解决办法

目录 前言1 单机维护模式2 利用具有管理员权限的用户切换到root用户3 救援模式 前言 在Linux系统中&#xff0c;root用户是最高权限的用户&#xff0c;可以执行任何命令和操作。但是&#xff0c;如果我们忘记了root用户的密码&#xff0c;或者需要修改root用户的密码&#xff…

Spring Boot 项目部署方案!打包 + Shell 脚本部署详解

文章目录 概要一 、profiles指定不同环境的配置二、maven-assembly-plugin打发布压缩包三、 分享shenniu_publish.sh程序启动工具四、linux上使用shenniu_publish.sh启动程序 概要 本篇和大家分享的是springboot打包并结合shell脚本命令部署&#xff0c;重点在分享一个shell程…

万户OA upload任意文件上传漏洞复现

0x01 产品简介 万户OA ezoffice是万户网络协同办公产品多年来一直将主要精力致力于中高端市场的一款OA协同办公软件产品&#xff0c;统一的基础管理平台&#xff0c;实现用户数据统一管理、权限统一分配、身份统一认证。统一规划门户网站群和协同办公平台&#xff0c;将外网信息…

rabbitmq默认交换机锁绑定的routingkey-待研究

例如这个是我的一个消息队列&#xff0c;它默认绑定的交换机是 什么类型呢? 看到这个图&#xff0c;感觉应该是一个默认的交换机&#xff0c;因为是default exchange 于是来到交换机来看看其他默认的交换机&#xff1a; 这里可以看到默认的交换机是direct&#xff08;应该没…

【Redis】渐进式遍历数据库管理

文章目录 渐进式遍历scan 数据库管理切换数据库清除数据库 获取当前数据库key的个数 渐进式遍历 Redis使⽤scan命令进⾏渐进式遍历键&#xff0c;进⽽解决直接使⽤keys获取键时能出现的阻塞问题。每次scan命令的时间复杂度是O(1)&#xff0c;但是要完整地完成所有键的遍历&…