首页 > 系统相关 >linux 内核和应用层之间的通信方式

linux 内核和应用层之间的通信方式

时间:2024-01-14 17:57:05浏览次数:34  
标签:socket 文件系统 用户 内核 linux proc 应用层

系统调用

应用与内核通信的方式中,最常用的就是系统调用。如常见的open、write、read、ioctl等系统调用。当系统调用时,触发一个软中断,处理器进入内核模式。参数传递到内核空间,完成通信过程。内核完成服务之后,将数据返回给应用,并设置处理器为用户模式。

copy_to_user() / copy_from_user()

虚拟文件系统

Linux中,一切皆文件,处理器的各种信息也是以文件的形式供应用程序访问。proc和sys,这两个目录是内核在启动时自动生成的,并不位于磁盘中。

/proc:以文件系统的方式为用户提供访问系统内核数据的操作接口。proc文件系统是一种内核和内核模块用来向进程(process)发送信息的机制,因此被称为 proc。

/sysfs:这是由内核在运行时导出的,目的就是通过文件系统展示出设备、驱动和总线等层次关系。
二者区别:proc只读,sys可读可写,写入即是对系统进行设置。

netlink

本质上是socket,可以用于内核与多种用户进程之间的消息传递系统。和常用的TCP、UDP一样使用socket,socket配置不同。

共享内存

mmap共享内存。Linux通过mmap的把内核中特定部分的内存空间映射到用户级程序的内存空间去,从而提供了用户程序对内存直接访问的能力。该方式尤其适合在那些内核和用户空间需要快速大量交互数据的情况下。

信号

内核在运行中,可以向应用层发出各种信号。

 

标签:socket,文件系统,用户,内核,linux,proc,应用层
From: https://www.cnblogs.com/god-of-death/p/17963979

相关文章

  • Linux 环境中使用 LVGL
    原文:https://www.cnblogs.com/jzcn/p/17011647.html之前有记录过在esp32中使用LVGL的笔记,需要的小伙伴可以了解一下,esp-idf移植lvgl8.3.3我之前整理的学习资料:https://www.cnblogs.com/jzcn/p/16647106.html一、准备材料开发板:一块linux的开发板或linux的虚拟机lvg......
  • linux 驱动 --- unlocked_ioctl 与 compat_ioctl
    1、compat_ioctl:支持64bit的driver必须要实现的ioctl,当有32bit的userspaceapplicationcall64bitkernel的IOCTL的时候,这个callback会被调用到。如果没有实现compat_ioctl,那么32位的用户程序在64位的kernel上执行ioctl时会返回错误:Notatypewriter2、如果是64位的用户程序运行......
  • 计算机网络——应用层(1)
    (计算机网络——应用层(1))小程一言我的计算机网络专栏,是自己在计算机网络学习过程中的学习笔记与心得,在参考相关教材,网络搜素的前提下,结合自己过去一段时间笔记整理,而推出的该专栏,整体架构是根据计算机网络自顶向下方法而整理的,包括各大高校教学都是以此顺序进行的。面向群体:在学......
  • Linux安装Docker完整教程
    Linux安装Docker之前使用的CentOS8由于停止维护了,这意味着无法再使用新版本的软件包更新了,由于Docker支持64位版本CentOS7,并且要求内核版本不低于3.10,CentOS7满足最低内核的要求,所以这次在CentOS7安装Docker。本篇文档参考黑马Docker课件,希望这篇文章对大家能有帮助......
  • 重置 wsl2 中的 Linux 子系统的账户密码
    转载:重置wsl2中的Linux子系统的账户密码(liuwenzhuang.github.io)默认账户改为root变更普通账户密码将默认账户从root修改为普通账户其他注意事项参考重置密码的操作也很简单,经过查询资料,可将步骤大致分为3步:将Linux子系统的默认账户改为root利用root......
  • Linux三大剑客之sed
    一、简介sed英文全称是streameditor。由贝尔实验室开发,如今主流Unix/Linux操作系统上都集成了这个工具。sed由自由软件基金组织(FSF)开发和维护,并且随着GNU/Linux进行分发,通常它也称作GNUsed。本文将按照GUN官方在线手册的内容对sed进行介绍。二、获取帮助信息[sed@GeekDevOps~]$......
  • 利用Linux命令高效查找大文件为windows系统瘦身
    Windows系统是大家平时使用得比较多的办公桌面系统,但是,作为一名运维工程师,Linux命令行才是我的首选。最近在折腾Git这款很强大的工具。在瞎折腾的过程中发现一个比较好用的功能:一条Linux命令,找出你系统中的大文件。在此跟大家分享一下。第一步:安装Git考虑到一些平台不支持发链接,在......
  • Linux通配符的使用详解
    一、简介一般生产环境的服务器默认都是不安装图形化界面的,习惯了在命令行环境下工作是,大家会发现:命令行操作效率比图形化界面效率高很多。由命令行环境中,我们不能直观地看到一些文件或目录的名称及其他一些信息,这时候通配符就派上用场啦!当不知道真正字符或懒得输入完整文件或目录名......
  • Linux三剑客之grep
    一、概述grep(globalsearchregularexpression(RE)andprintouttheline,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。这也是一个我们比较常用的命令之一,好多时候虽然没通过系统的学习,但是我们还是会经常用到......
  • 一个简单的Linux系统加固方案
    一、系统默认帐号及组管理删除系统默认不使用的帐号,包括:lp、mail、games、ftp、nobody、postfix等。删除系统默认不使用的组,包括:mail、games、ftp、nobody、postfix等。二、启用密码策略1.密码60天过期,修改密码最小间隔为1天,最短密码要求8位,在密码过期前7天内通知用户。通过修改/e......