Linux操作系统体系结构 ( 3 ) -【Linux通信架构系列 】

news/2024/11/17 5:46:25/

系列文章目录

C++技能系列
Linux通信架构系列
C++高性能优化编程系列
深入理解软件架构设计系列
高级C++并发线程编程

期待你的关注哦!!!
在这里插入图片描述

现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。
Now everything is for the future of dream weaving wings, let the dream fly in reality.

Linux操作系统体系结构

  • 系列文章目录
  • 1、`操作系统/内核` - 软件
  • 2、`系统调用`其实就是一些库函数,写代码时调用即可
  • 3、`shell`是一个命令行解释器,是Linux系统中用户与操作系统内核交互的主要方式之一
  • 4 、`用户态`和`内核态`之间的切换

要想把程序编好,必须对Linux操作系统体系结构有所了解,一般来说传统的Linux操作系统体系结构如图:
在这里插入图片描述

图1 传统Linux操作系统体系结构图

一般情况下,Linux操作系统的结构体系分为用户态和内核态。

1、操作系统/内核 - 软件

用于控制计算机的硬件资源,提供应用程序运行的环境。之所以称为内核,是因为比较小,且位于整个体系结构的核心。

我们编写的程序,要么运行在用户态,要么运行在内核态,一般情况下运行在用户态,当程序要执行一些特殊代码时,程序就可能切换到内核态。这种切换有操作系统控制,不需要认为介入

换一个角度理解用户态和内核态,用户态可以理解为图1中最外圈应用程序的活动空间。但是,我们所开发的应用程序的运行,往往需要访问一些资源(如读写文件要访问磁盘,调用malloc要申请内存,程序中可能还要访问传真机、打印机等外部设备),为了让应用程序能够访问这些资源,内核必须提供供应用程序访问的接口,也就是图1中的系统调用(内核对外接口)。

2、系统调用其实就是一些库函数,写代码时调用即可

一般情况,操作系统会提供200~300个库函数供我们调用,这些库函数在系统内部高度封装,我们无需关心细节,只需调用即可。

3、shell是一个命令行解释器,是Linux系统中用户与操作系统内核交互的主要方式之一

当用Xshell链接Ubuntu Linux虚拟机的时候,使用ps命令查看,就能看到一个bash进程(这个bash进程是自动开启的,用Xshell链接虚拟机时,系统就启动了一个bash。这个bash是被login/sshd用fork函数开启的。

bash是borne again shell (重新装配的shell)的缩写,是shell的一种,Linux默认采用bash这种shell。

通俗地说,bash也是一个可执行程序,这种可执行程序的主要作用是:把用户输入的命令翻译给操作系统,所以bash相当于一个命令解释器。

bash也可以手动创建,因为它是一个可执行程序。

尝试用whereis找到bash的位置,直接执行,然后使用exit退出当前的bash,如图:
在这里插入图片描述

图2 手动执行bash并使用exit退出该bashs

如果第二次输入exit,则会从当前使用的bash中退出Xshell会与Ubuntu Linux虚拟机断开连接(因为第一次突退出的是自己执行的bash,第二次退exit退出的是login/sshd进程用函数fork创建的bash进程)。

观察图1中shell的位置,它正好夹在系统调用和应用程序之间,起分隔系统调用和应用程序的作用,同时也有胶水(将系统调用和应用程序黏在一起)的感觉。

操作系统的内核部分,有进程管理,文件系统、设备驱动、网络等各种资源的管理。在内核和用户空间之间,通过系统调用(system call)接口实现对各种资源功能的调用。

4 、用户态内核态之间的切换

(1)用户态权限小,内核态权限大,权限大意味着能做一些危险的事。
(2)这些调用接口是系统提供并统一管理的。操作系统资源有限,如果许多程序同时访问这些资源,一旦产生访问冲突,或资源耗尽,就可能导致系统崩溃。


http://www.ppmy.cn/news/493440.html

相关文章

Kotlin中的lambda从入门到进阶

欢迎关注 Android茶话会 回 学习之路 取Android技术路线经典电子书回 pdf 取阿里&字节经典面试题、Android、算法、Java等系列武功秘籍。回 天涯 取天涯论坛200精彩博文,包括小说、玄学等 lambda表达式是Kotlin 函数式编程 的一个重要概念,是函数式编…

数据结构练习题1:基本概念

练习题1:基本概念 1 抽象数据类型概念分析2. 逻辑结构与存储结构概念分析3.综合选择题4.综合判断题5.时间复杂度相关习题 1 抽象数据类型概念分析 1.可以用(抽象数据类型)定义一个完整的数据结构。 分析: 1)抽象数据…

苹果手机换android,一直用苹果手机,突然换成安卓手机是什么体验,内行人告诉你...

原标题:一直用苹果手机,突然换成安卓手机是什么体验,内行人告诉你 我们大家都可以知道,现在科技真的是非常的发达了,无论我们想干什么都可以依仗着电子产品来进行,尤其是现在我们的手机,我们的手…

苹果手机上滑动会卡顿_7种办法解决苹果手机卡顿 让你的手机用起来如丝般顺滑...

原标题:7种办法解决苹果手机卡顿 让你的手机用起来如丝般顺滑 很多人都有这种体验,刚买的手机用起来特别爽,不管点哪个APP都是秒开,随着时间的推移,越来越卡顿,甚至有的时候直接卡死,无奈之下只…

安卓手机突然很卡_为什么我的手机突然变卡了

展开全部 有时手机用久了,即使你经e69da5e6ba9062616964757a686964616f31333365666330常清理内存,也禁止了不必要的程序自运行,手机速度还是很慢,最好的办法就是将重要信息备份,然后恢复出厂设置。 手机卡顿的原因&…

安卓手机突然很卡_为什么你的安卓手机越用越卡,真是内存不够?终于找到原因了!...

为什么你的安卓手机越用越卡,真是内存不够?终于找到原因了! 现在在手机市场里基本上是被两个系统瓜分了市场,一个是苹果手机的iOS系统,一个是国产手机的安卓系统。在以前很多用户会选择使用苹果手机,因为苹…

iphone11 sim卡故障_苹果手机出现sim卡故障怎么处理?

查看手机卡槽有没有损坏:可以插入其他手机卡尝试,如果是卡槽损坏,建议更换卡槽. 查看手机sim卡有没有损坏:将手机本身的sim卡放到其他手机上看有没有信号,如果是sim卡损坏,请前往营业厅更换sim卡。 没有装卡…

苹果云服务icloud_苹果手机通讯录突然没了怎么办?分享简单的补救技巧

苹果手机通讯录突然没了,重要的联系人都不见了怎么办?经常有小伙伴在使用苹果手机的时候遇到这种情况,造成通讯录突然不见的原因可能是由于和他人共用ID被删除了通讯录、更新系统之后数据丢失等等,不管是哪种情况,今天…