Linux 内核态,用户态,以及如何从内核态到用户态,交互方式有哪些

news2024/11/25 8:54:16

一、Linux 内核态,用户态

Linux 内核态,用户态,以及如何从内核态到用户态,我来说下我的理解
很多面试官,面试也是照搬照套,网上找的八股文面试题,面试的人也是背八股文,刚好背到了,就过了
运气不好,就不记得了。

开发过程,很多是暂时用不到,面试官考量的,在于理解,如果那种没水平的领导面试喜欢听你背八股文,别去也好,技术没什么长进
,考虑去一个公司,考虑更多是,技术成长,项目经验积累,职业发展,打工打不了一辈子,中国环境决定的,不是我们个人决定的。

进入正题,什么是内核态,什么是用户态?

工作在linux内核源码,就叫内核态,工作在内核上面,和内核无关的,就叫用户态,这个无关,并不是和内核一点关系没有,用户态工作
是需要内核态上面,才能工作的。或者这么理解,内核态离开用户态可以工作,不需要用户态,但是用户态需要借助内核态,才能工作。

很多八股文说,内核态是工作在0-4g空间的,就完了。

什么是用户态呢,比如写个应用程序,这个应用有算法,有qt图形界面,或串口输出的交互界面,有业务逻辑功能,这个功能,可以播放视频,音频,操控各种外设,读写存取文件等等。这个应用程序,还可以是个ls,cat,cd,mv,等等shell命令。简单说就是个用户程序,在内核之上。

什么是内核态,就是工作在linux空间的,包括(进程管理,进程调度,内存管理,文件管理,驱动管理),linux提供的所以核心功能
他们是运行在0-1g空间的。

二、用户空间和内核空间的交互方式,有哪些

这是面试最喜欢问的,我认为这么问的意义是什么

先来回想一下,内核启动时,是如何进入到用户空间的,linux启动最后,会调用start_kernel,这个函数,会调用一个kernel_init,这个就是init进程,所有用户空间的祖宗,所有进程,都是由它而创建,或它的子孙,间接创建,他是个守护进程,不会死掉,除非系统退出。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

ps命令,查看到init进程,ps是工作在用固态下,所以看到的是sbin/init,用户态下一个应用程序
在这里插入图片描述
在这里插入图片描述

1、系统调用
用户空间,通过系统调用,陷入到内核代码工作的空间,比如(fork,pthread,创建进程,线程,read,write,open,打开读写驱动,调用了内核提供的api,就叫系统调用)

2、shell命令

cat命令读取信息,算不算,当然算,从内核空间,获取内核的状态,信息等

在这里插入图片描述

在这里插入图片描述

设置内核算不算,也算设置内核系统参数

sysctl -w net.ipv4.tcp_tw_reuse=1
sysctl -w net.ipv4.tcp_tw_recycle=1
echo "net.ipv4.tcp_tw_reuse=1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_tw_recycle=1" >> /etc/sysctl.conf

内核从console控制台,提供一个交互界面,就是用户空间和内核空间,访问的一种方式。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全面讲解C++

数据类型 1.1 基本数据类型 1.1.1 整型(Integer Types) 整型用于表示整数值,分为以下几种类型: int:标准整数类型,通常为4字节(32位)。short:短整型,通常…

被装物联网系统|DW-S305系统是一套成熟系统

东识被装仓库管理系统(智被装DW-S305)作业管理软件系统包括收发管理、库房管理、库存统计、环境监测、预警管理、数据展示、系统管理等功能,主要功能如下: 收发管理:对库房收发物资进行管理,支持收发物单据…

通信工程学习:什么是TCP/IP(传输控制协议/互联网议)

TCP/IP:传输控制协议/互联网议 TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)是互联网的基本协议,也是国际互联网络的基础。它不仅仅是一个协议,而是一个协议族&#…

Github 2024-10-13php开源项目日报 Top10

根据Github Trendings的统计,今日(2024-10-13统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目10Vue项目2JavaScript项目1TypeScript项目1Blade项目1Coolify: 开源自助云平台 创建周期:1112 天开发语言:PHP, Blade协议类型:Apach…

算法题总结(十四)——贪心算法(上)

贪心算法 什么是贪心 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 贪心的套路(什么时候用贪心) 刷题或者面试的时候,手动模拟一下感觉可以局部最优推出整体最优,而且想不到反例,那么就试一试…

Vscode+Pycharm+Vue.js+WEUI+django火锅(五)Django的API

如果只是嫌弃Djanggo的前台不好,用vue替换,只要在Djanggo项目里面创建一个Vue项目文件夹,然后 1.修改urls.py 修改路由 2.修改settings.py中,增加templates内容指向vue文件夹 3.静态文件staticfile_dir中也添加vue文件夹 但因为我…

深圳大学-Java程序设计-选实验3 包及继承应用

实验目的与要求: 实验目的:熟悉面向对象编程中package,import等语句的使用。 实验要求: (1).编写一个计算机与软件学院类CSSE、一个研究所/中心类Institute和一个教学系类Department。CSSE类中包含有多个Institute类的实例和多个Department…

信息技术 04 WPS文字处理 图书订购单

信息技术 04 WPS文字处理 图书订购单 素材下载 信息技术 04 WPS文字处理 图书订购单链接:https://pan.baidu.com/s/1_S9HMfmiC6JJcjk4nO-tKg?pwdi304 提取码:i304 成品样图 题目 任务实现具体要求如下: ① 根据设计好的表格的结构&#…

基于 PyQt5 和 Matplotlib 的医学图像处理应用开发

1. 引言 在医学领域,图像处理是一项非常重要的技术,特别是在医学成像(如MRI、CT扫描等)的数据处理上,可以帮助医生更加准确地进行诊断。本项目基于 Python 的 PyQt5 图形用户界面框架与 Matplotlib 数据可视化库&…

Variational Auto-Encoder(VAE)缺少数学推导未完结版

VAE是Diffusion的基础,在其中将输入的图片数据编码到潜在空间后再解码出来。 略显复杂,博主结合李宏毅视频、网上一些讲解以及自己的理解将其总结如下: 一、什么是VAE VAE(变量自编码器)最早在以上两篇文章被提出。 …

yakit使用教程(四,信息收集)

本文仅作为学习参考使用,本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 前言:yakit下载安装教程。 一,基础爬虫。 在新建项目或新建临时项目后,点击安全工具,点击基础爬虫。 此工具并不是为了爬取网站上的一…

【零散技术】MAC 安装多版本node

时间是我们最宝贵的财富,珍惜手上的每个时分 不同前端项目运行的node版本不一致,会导致无法运行,就像Odoo也需要依据版本使用对应的python环境。python 可以用 conda随时切换版本,那么Node可以吗?答案是肯定的。 1、安装 n&#x…

k8s-资源管理、实战入门

资源管理 一、资源管理介绍 在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes。 (1)kubernetes的本质上就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署服务&…

SpringBoot高校学科竞赛平台:性能优化与实践

3系统分析 3.1可行性分析 通过对本高校学科竞赛平台实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本高校学科竞赛平台采用SSM框架,JAVA作为开发语…

详细分析Redisson分布式锁中的renewExpiration()方法

目录 一、Redisson分布式锁的续期 整体分析 具体步骤和逻辑分析 为什么需要递归调用? 定时任务的生命周期? 一、Redisson分布式锁的续期 Redisson是一个基于Redis的Java分布式锁实现。它允许多个进程或线程之间安全地共享资源。为了实现这一点&…

C++ 高级特性:函数重载、内联函数、引用、auto关键字、范围for循环和nullptr空指针

目录: 📑前言📖函数重载📖内联函数📖引用☁️引用的概念☁️引用的特性⭐引用在定义时必须初始化⭐一个变量可以有多个引用(类比于一个人可以有多个外号)⭐ 引用一旦引用一个实体,再不能引用其他实体 ☁️常…

关于WPF(Windows Presentation Foundation)中Grid控件

本文将从Grid控件的基础概念开始,逐步深入探讨其特性、用法、实例代码,以及最佳实践。 1. WPF和布局简介 WPF是一种用于构建Windows桌面应用程序的UI框架,它通过XAML(Extensible Application Markup Language)使开…

java计算机毕设课设—扫雷游戏(附源码、文章、相关截图、部署视频)

这是什么系统? 资源获取方式再最下方(本次10月份活动福利,免费提供下载,自行到对应的方式1下载,csdn的0积分下载) java计算机毕设课设—扫雷游戏(附源码、文章、相关截图、部署视频) 基于Java的扫雷游戏…

电子电气架构 --- 智能网联汽车未来是什么样子?

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

C3D网络介绍及代码撰写详解(总结3)

可以从本人以前的文章中可以看出作者以前从事的是嵌入式控制方面相关的工作,是一个机器视觉小白,之所以开始入门机器视觉的学习主要是一个idea,想把机器视觉与控制相融合未来做一点小东西。废话不多说开始正题。(如有侵权立即删稿…