首页
学习
活动
专区
圈层
工具
发布

《Essential Linux Dev

通过改变网络接口设备(如以太网ethX和回环设备lo)的状态可以产生此事件: bash> ifconfig eth0 up 它会导致my_dev_event_handler()的执行。...net_device结构体的指针被传给该处理函数作为参数,它包含了网络接口的名字,my_dev_event_handler()打印出了该信息: my_dev_event_handler: Val=1,...= { .notifier_call = my_dev_event_handler, }; /* Net Device notification event handler */ int my_dev_event_handler...调用者通常将返回值与NULL对比以检查是否失败,但是它们很可能需要更多的信息以分析出确切的错误发生原因。由于内核地址有冗余比特,可以覆盖它以包含错误语义信息。...kthread_stop()让其停止 IS_ERR() include/linux/err.h 查看返回值是否是一个出错码

2.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux之dev目录介绍

    Linux之设备文件目录 01 dev文件目录介绍 Linux中的dev文件目录的全称是device设备的英文,这个目录包含了所有linux中使用的外部设备,但是不包含外部设备的驱动信息。...on /dev/sda3 G 6.3G G % / tmpfs 7.8G K 7.8G % /dev/shm /dev/sda1...它最大的特点就是它的存储空间在VM(virtual memory),VM是由linux内核里面的vm子系统管理的。...tmpfs配置的大小并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1G,里头放有100M文件,那剩余的900M仍然可为其它应用程序所使用,但它所占用的.../dev/mapper/data-main文件系统,Device mapper是Linux2.6内核中提供的一种从逻辑设备到物理设备的映射机制,在该机制下,用户能够很方便的根据自己的需要实现对存储资源的管理

    9.2K10

    Linux下dev目录引发的思考

    /dev目录 如果将一个设备连接到Linux系统时,通常需要一个设备驱动程序才能正常工作。你可以通过设备文件或设备节点与设备驱动程序交互,这些是看起来像普通文件的特殊文件。...这些设备文件一般存放在/dev目录下。继续并在你的系统上通过命令ls /dev查看/dev目录,你将看到系统上有大量的设备文件。...您可能听说过在现代系统中实际上并没有使用SCSI设备,但是我们的Linux系统将SCSI磁盘与/dev中的硬盘驱动器相对应。...,最常见的伪设备是字符设备: /dev/zero -接受并丢弃所有输入,产生一个连续的NULL(零值)字节流 /dev/null -接受并丢弃所有输入,不产生输出 /dev/random -生成随机数...它为我们提供了比在/dev目录中能够看到的更详细的信息。目录/sys和/dev在某些方面看起来非常相似,但它们确实有很大的不同。

    6.8K20

    Linux内核中dev_info、dev_dbg、dev_err及动态调试

    目前在kernel驱动代码中,都不再建议直接使用printk直接添加打印信息,而是使用dev_info,dev_dbg,dev_err之类的函数代替,虽然这些dev_xxx函数的本质还是使用printk...打印的,但是相比起printk: 支持打印模块信息、dev信息 支持动态调试(dynamic debug)方式 下面简述下这几个dev_xxx函数的基本使用规则,以及动态调试使用方式。...动态打印调试的基本原理 当编译选项CONFIG_DYNAMIC_DEBUG打开的时候,在编译阶段,kernel会把所有使用dev_dbg()的信息记录在一个table中,这些信息我们可以从/mnt/dbg...dev_dbg()对于分析某些内核子系统或者驱动流程也十分有意义,例如,使能net/ipv4/ping.c的调试开关,则可以观测ping的运行原理。...代码分析 从代码角度,也很容易看出dev_dbg()的设计: include/linux/device.h include/linux/dynamic_debug.h lib/dynamic_debug.c

    10.4K21

    linux重要的目录之proc和dev目录

    /proc/目录 虚拟文件系统,将内核与进程状态归档为文本文件(系统信息都存放这目录下) Linux系统上的/proc目录是一种文件系统,即proc文件系统。.../proc/modules 目前我们的 Linux 已经加载的模块列表,也可以想成是驱动程序啦!.../dev/目录 设备文件分为两种:块设备文件(b)和字符设备文件(c) 设备文件一般存放在/dev目录下 dev是设备(device)的英文缩写。/dev这个目录对所有的用户都十分重要。...因为在这个目录中包含了所有Linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序,这一点和windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口。...hdc /dev/modem => /dev/ttyS[0-9] /dev/pilot => /dev/ttyS[0-9] /dev/random

    4.8K00

    linux重要的目录之proc和dev目录

    /proc/目录 虚拟文件系统,将内核与进程状态归档为文本文件(系统信息都存放这目录下) Linux系统上的/proc目录是一种文件系统,即proc文件系统。.../proc/modules 目前我们的 Linux 已经加载的模块列表,也可以想成是驱动程序! /proc/mounts 系统已经挂载的数据,就是用 mount 这个命令呼叫出来的数据啦!.../dev/目录 设备文件分为两种:块设备文件(b)和字符设备文件(c) 设备文件一般存放在/dev目录下 dev是设备(device)的英文缩写。/dev这个目录对所有的用户都十分重要。...因为在这个目录中包含了所有Linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序,这一点和windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口。...[0-9] /dev/pilot => /dev/ttyS[0-9] /dev/random 随机数设备 /dev/urandom 随机数设备 相关文章 linux重要的目录之etc linux重要目录之

    3.9K20

    ORA-000845 与 devshm(tempfs)

    #从上面的描述可知,/dev/shm的大小应该至少是当前系统每一个实例的SGA_MAX_SIZE,个人认为这个描述不是很准确 #下面查看告警日志 [oracle@linux1 trace]$ more...,/dev/shm至少是1GB,因为我们的参数文件中定义的MEMORY_TARGET为1GB #同时也给出了/dev/shm当前已使用的和剩余空间的大小。...剩余空间大小901312512不够1GB,因此需要考虑增加dev/shm或减少MEMORY_TARGET的值 #延伸思考 /dev/shm实际上就是对应到tmpfs,也可以称之为临时文件系统(不是块设备...#当前系统的/dev/shm [oracle@linux1 trace]$ df -h | grep shm           tmpfs                1014M  154M  860M...MEMORY_TARGET的值来解决 a、调整参数memory_target [oracle@linux1 ~]$ grep memory $ORACLE_HOME/dbs/initcatadb.ora

    51510

    Envoy 基础教程:使用 Unix Domain Socket 与上游集群通信

    你可能会问我:你这里的 Socket 为什么在 /dev/shm/ 目录下啊?别急,还没结束呢,先来补充一个背景知识。 4....Linux 共享内存机制 共享内存(shared memory),是 Linux 上一种用于进程间通信(IPC)的机制。...mmap 映射的内存不是持久化的,如果进程关闭,映射随即失效,除非事先已经映射到了一个文件上。 /dev/shm 是 Linux 下 sysv 共享内存的默认挂载点。...通过 /proc/sys/kernel/shmmax 可以限制 System V 共享内存的最大值,通过 /dev/shm 可以限制 POSIX 共享内存的最大值。 5....Kubernetes 共享内存 Kubernetes 创建的 Pod,其共享内存默认 64MB,且不可更改。 为什么是这个值呢?

    2K60

    巧用linux云服务器下的的devshm,避开磁盘IO不给力!

    巧用linux云服务器下的的/dev/shm/,避开磁盘IO不给力! 一.什么是tmpfs和/dev/shm/? tmpfs是Linux/Unix系统上的一种基于内存的文件系统。.../dev/shm/是一个设备文件,它使用就是tmpfs文件系统(注意:在Centos和Redhat下,/dev/shm目录是一个链接,指向/run/shm目录,在Ubuntu系统下tmpfs文件系统对应的是...在Redhat/CentOS等linux发行版中默认大小为物理内存的一半。...比如我的的Red Hat Enterprise Linux Server 5.4 64(单核,512内存)分配内存为512M,所以/dev/shm为250M左右,查看/dev/shm如下: [root@...如我想把/dev/shm tmpfs大小改为512M,修改/etc/fstab的: tmpfs /dev/shm tmpfs defaults 0 0 改为 tmpfs /dev/shm tmpfs defaults

    1.3K30

    巧用linux云服务器下的的devshm,避开磁盘IO不给力!

    巧用linux云服务器下的的/dev/shm/,避开磁盘IO不给力! 一.什么是tmpfs和/dev/shm/? tmpfs是Linux/Unix系统上的一种基于内存的文件系统。.../dev/shm/是一个设备文件,它使用就是tmpfs文件系统(注意:在Centos和Redhat下,/dev/shm目录是一个链接,指向/run/shm目录,在Ubuntu系统下tmpfs文件系统对应的是...在Redhat/CentOS等linux发行版中默认大小为物理内存的一半。...比如我的的Red Hat Enterprise Linux Server 5.4 64(单核,512内存)分配内存为512M,所以/dev/shm为250M左右,查看/dev/shm如下: [root@...二.tmpfs(/dev/shm)的使用及应用场景 tmpfs是基于内存的,速度是不用说的,硬盘和它没法比。

    2.1K60

    巧用Linux云服务器下的的devshm,避开磁盘IO不给力!

    一.什么是tmpfs和/dev/shm/?  tmpfs是Linux/Unix系统上的一种基于内存的文件系统。tmpfs可以使用您的内存或swap分区来存储文件。.../dev/shm/是一个设备文件,它使用就是tmpfs文件系统(注意:在CentOS和RedHat下,/dev/shm目录是一个链接,指向/run/shm目录,在Ubuntu系统下tmpfs文件系统对应的是...在Redhat/CentOS等linux发行版中默认大小为物理内存的一半。...比如我的的Red Hat Enterprise Linux Server 5.4 64(单核,512内存)分配内存为512M,所以/dev/shm为250M左右,查看/dev/shm如下:  [root...二.tmpfs(/dev/shm)的使用及应用场景  tmpfs是基于内存的,速度是不用说的,硬盘和它没法比。

    1.8K20

    【Linux】<共享内存应用>——使用两个伪终端模拟实现<生产者消费者模型>

    前言 大家好吖,欢迎来到 YY 滴Linux系列 ,热烈欢迎!...可以是以下值的组合: PROT_EXEC:页内容可以被执行。 PROT_READ:页内容可以被读取。 PROT_WRITE:页可以被写入。...flags:指定映射对象的类型、映射选项和映射页是否可以共享。 fd:有效的文件描述词。如果MAP_ANONYMOUS被设定,为了兼容问题,其值应为-1。 offset:被映射对象内容的起点。...即两个伪终端producer和consumer,一个不断产生1-1000,另一个模拟取出1-1000 此时我们查看/dev/shm文件中的内容,hd my_shared_memory 三.使用两个伪终端模拟实现...=0){ sleep(1); printf("%d\n",*ptr); ptr++; } } 4.进程3:删除进程0创建的共享文件/dev/shm/my_shared_memory

    24700

    linux无文件执行— fexecve 揭秘

    前言 良好的习惯是人生产生复利的有力助手。 继续2020年的flag,至少每周更一篇文章,今天讲linux无文件执行。...fexecve的实现 今天不谈memfd_create,这是linux的新特性,没有什么好玩的,本人对fexecve 的实现很有兴趣,因为fexecve是glibc中的函数,而不是linux的系统调用。...先看一下fexecve的用法,下面的fexecve_test.c 代码是实现ls -l /dev/shm 功能。...对fexecve_test.c 进行编译并执行,可以看到/dev/shm下面确实生成了wurstverschwendung文件。 ? 调试角度 fexecve是如何执行内存中的文件呢?...大家可以看到shmopen 其实是在/dev/shm创建文件,而execve的执行文件为/proc/self/fd/3,为进程中打开的文件符号链接,这个指向的就是shm_open创建的文件,但是从监控execve

    5.6K40
    领券