目前在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
net_device结构体的指针被传给该处理函数作为参数,它包含了网络接口的名字,my_dev_event_handler()打印出了该信息: my_dev_event_handler: Val=1,...在整个类型中都有对它们的使用,因此在大多数子目录中,都能找到例子。其中的一个例子是include/linux/blkdev.h中定义的request_queue结构体,它存放磁盘I/O请求的链表。...wake_up_interruptible() include/linux/wait.h kernel/sched.c 唤醒一个正在等待队列中睡眠的任务,将其返回调度器的运行队列。...set_current_state() include/linux/sched.h 设置一个进程的运行状态,可以是如下状态中的一种:TASK_RUNNING、TASK_INTERRUPTIBLE...在内核中没有信号处理函数,因此,你不得不显示地检查信号的发起 call_usermodehelper() include/linux/kmod.h kernel/kmod.c 执行一个用户模式的程序
Linux 下可用的其他 qdisc 将根据调度程序的规则重新排列进入调度程序队列的数据包。...a queuing discipline. qdisc 是构建所有 Linux 流量控制的主要构成模块,也称为排队规则。...FQ_代码 使用随机模型将传入的数据包分类为 不同的流程,用于提供公平的份额 使用队列的所有流的带宽。每个这样的流程是 由 CoDel 排队规则管理。...在流中重新排序由于 Codel 在内部使用 FIFO 队列,因此可以避免。...28K 11月 23 04:32 sch_tbf.ko -rw-r--r-- 1 root root 22K 11月 23 04:32 sch_teql.ko heidsoft@heidsoft-dev
/dev目录 如果将一个设备连接到Linux系统时,通常需要一个设备驱动程序才能正常工作。你可以通过设备文件或设备节点与设备驱动程序交互,这些是看起来像普通文件的特殊文件。...以前,如果你想在系统中添加一个设备,你只需要在/dev中添加设备文件,然后可能就会忘记它。重复几次,你就会发现哪里有问题了。/dev目录会被你很久以前升级或停止使用的设备的静态设备文件弄得乱七八糟。...您可能听说过在现代系统中实际上并没有使用SCSI设备,但是我们的Linux系统将SCSI磁盘与/dev中的硬盘驱动器相对应。...PATA设备 有时在旧系统中,你可能会看到硬盘驱动器以hd前缀引用: /dev/hda -第一块硬盘 /dev/hdd2 -第4块硬盘的第二个分区 sysfs Sysfs是很久以前创建的,目的是更好地管理系统上的设备...它为我们提供了比在/dev目录中能够看到的更详细的信息。目录/sys和/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...,/dev/sda2等等,上面命令结果中的文件系统就和这个一样。...tmpfs配置的大小并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1G,里头放有100M文件,那剩余的900M仍然可为其它应用程序所使用,但它所占用的...它的用途如下: LINUX中可以把一些程序的临时文件放置在tmpfs中,利用tmpfs比硬盘速度快的特点提升系统性能。 3.
引入 在安装包的时候,有时候需要安装xxx的包,有时候又需要安装xxx-dev的包 (在CentOS系列发行版上则是xxx-devel)。这两类包之间又什么区别呢? 2....结论 不包含-dev的包里面包含的是运行所需要的二进制文件或者连接库文件(如xxx.so),而包含-dev的包则包含包的源码文件(如.h文件),为的是在编译使用了这些库的程序的时候,能找到对应的头文件,...否则只有二进制文件或者.so文件,编译时会报代码找不到头文件的错误。...如果想要编译一个叫lxml的库,它依赖Python的源码,例如这里的代码依赖Python.h这个文件,因此我们需要安装python-dev包,把Python.h安装到本地上,这样lxml包才能正常安装。
一般是/usr/bin vi .bash_profile 在最后一行,PATH=$PATH:$HOME/bin 后面添加刚才查询的地址: :/usr/bin 即: source ~/.bash_profile...cd 回到你的项目目录。...如果你想记录日志文件【新建日志记录文件】 touch my.log chmod u+w my.log nohup npm run dev > my.log 2>my.log & exit 如果没有报错,...【不记录日志】 nohup npm run dev >/dev/null 2>&1 & exit
/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
/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重要目录之
Dev Club 是一个交流移动开发技术,结交朋友,扩展人脉的社群,成员都是经过审核的移动开发工程师。每周都会举行嘉宾分享,话题讨论等活动。...OCR(光学字符识别)旨在从图片中检测和识别文字信息,本次分享将介绍我们在OCR技术研发过程中的一些方法和经验总结。...近些年深度学习在人脸识别、目标检测与分类中达到了前所未有的高度,也开启了深度学习在文字分类的新浪潮。...Google在photoOCR中设计了一套基于HOG特征作为输入的5层CNN网络作为OCR识别模型,该套系统在Google多项产品中得到成功的应用。...参考问题3的回答 Q5:亚飞老师好,通用场景中要面临不同的环境,比如在移动端应用的OCR技术,在处理不同噪声,模糊,光照不均等情形时,有什么处理经验可借鉴和分享么?
Binary Ninja Personal 2.0.2097 dev + license (Windows + Linux) https://mega.nz/file/nCgVWaba#Iz3u3HN2fCytPVy101gxMy8IVa1qLzZkQZRDHi9djqE...Password: uKKT95ZmQ*KTsU Binary Ninja Personal 2.0.2097-dev for MacOS https://mega.nz/file/hxo2QLoQ#...) ☆文章版权声明☆ * 网站名称:obaby@mars * 网址:https://h4ck.org.cn/ * 本文标题: 《Binary Ninja Personal 2.0.2097 dev...+ license (Windows + Linux + MacOS )》 * 本文链接:https://h4ck.org.cn/2020/11/binary-ninja-personal-2-0-...2097-dev-license-windows-linux-macos/ * 转载文章请标明文章来源,原文标题以及原文链接。
#从上面的描述可知,/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... 16% /dev/shm [oracle@linux1 ~]$ ls -hltr /dev/shm total 154M -rw-r----- 1 grid oinstall 4.0M Nov 14
巧用linux云服务器下的的/dev/shm/,避开磁盘IO不给力! 一.什么是tmpfs和/dev/shm/? tmpfs是Linux/Unix系统上的一种基于内存的文件系统。...在Redhat/CentOS等linux发行版中默认大小为物理内存的一半。...比如我的的Red Hat Enterprise Linux Server 5.4 64(单核,512内存)分配内存为512M,所以/dev/shm为250M左右,查看/dev/shm如下: [root@...当然在生产环境中你可以把内存加大些,反正现在内存很便宜啦,为了提高性能也需要将/dev/shm加大。...Oracle 中的Automatic Memory Management特性就使用了/dev/shm。另外如果在网站运维中好好利用tmpfs,将有意想不到的收获。
在composer install 参数中 --no-dev 当加上这个参数 composer.json文件中 require-dev中的包就不会安装了 这个在线上的时候,可以使用,这样就不会把开发中需要的包按到线上...require中所引用的包在线上和开发环境均会使用 require-dev中的包只在本地开发的时候使用,线上运行不会使用的包 ?...同样 --no-dev也会忽略 autoload-dev指定的命名空间
Linux中的/dev/shm目录不属于磁盘,而是内存,如果使用/dev/shm/目录作为Linux中的磁盘文件读写缓存,可想效率是非常惊人的。 默认/dev/shm目录没有挂载,需要手动进行挂载。...在以下文件尾端添加以下内容: $ vim /etc/fstab tmps /dev/shm tmpfs defaults,size=1G 0 0 请根据自己的物理内存大小添加,一般是物理内存的10-50%...挂载/dev/shm/目录: $ mount -o remount /dev/shm/ $ mkdir /dev/shm/tmp $ chmod 755 /dev/shm/tmp $ mount -B.../dev/shm/tmp /tmp 注意: /dev/shm/tmp在系统重启后会丢失挂载,需要重新设置挂载,下面有个shell脚本,你加入开机自启即可: $ vim /etc/init.d/shmtmp.sh.../bin/bash mkdir /dev/shm/tmp chmod 755 /dev/shm/tmp mount -B /dev/shm/tmp/ /tmp 之后再以下文件末尾添加如下内容: $ vim
一.什么是tmpfs和/dev/shm/? tmpfs是Linux/Unix系统上的一种基于内存的文件系统。tmpfs可以使用您的内存或swap分区来存储文件。...在Redhat/CentOS等linux发行版中默认大小为物理内存的一半。...比如我的的Red Hat Enterprise Linux Server 5.4 64(单核,512内存)分配内存为512M,所以/dev/shm为250M左右,查看/dev/shm如下: [root...当然在生产环境中你可以把内存加大些,反正现在内存很便宜啦,为了提高性能也需要将/dev/shm加大。 ...Oracle 中的Automatic Memory Management特性就使用了/dev/shm。另外如果在网站运维中好好利用tmpfs,将有意想不到的收获。
fexecve的实现 今天不谈memfd_create,这是linux的新特性,没有什么好玩的,本人对fexecve 的实现很有兴趣,因为fexecve是glibc中的函数,而不是linux的系统调用。...0; } 代码中主要是分为了三步: 首先通过shm_open函数在 /dev/shm中创建了wurstverschwendung文件 将ls 命令文件写入到wurstverschwendung文件 通过...fexecve执行wurstverschwendung文件,因为/dev/shm在内存中,因此fexecve实际上是在内存中执行文件。...对fexecve_test.c 进行编译并执行,可以看到/dev/shm下面确实生成了wurstverschwendung文件。 ? 调试角度 fexecve是如何执行内存中的文件呢?...大家可以看到shmopen 其实是在/dev/shm创建文件,而execve的执行文件为/proc/self/fd/3,为进程中打开的文件符号链接,这个指向的就是shm_open创建的文件,但是从监控execve
现在绝大多数Linux系统都有一个叫做/dev/shm的tmpfs目录,就是这样一种存在。具体使用方法,大家可以参考我的另一篇文章《Linux内存中的Cache真的能被回收么?》。...Linux提供的POSIX共享内存,实际上就是在/dev/shm下创建一个文件,并将其mmap之后映射其内存地址即可。...-lrt racing_posix_shm.c 对于这个程序,我们需要解释以下几点: shm_open的SHMPATH参数是一个路径,这个路径默认放在系统的/dev/shm目录下。...这部分内容大家也可以参考《Linux内存中的Cache真的能被回收么?》。...上面说过,实际上POSIX共享内存就是在/dev/shm目录中的的一个tmpfs格式的文件,所以shm_open无非就是open系统调用的封装,所以起函数使用的参数几乎一样。
首先可以看出来/dev/shm是一个设备文件, 可以把/dev/shm看作是系统内存的入口, 可以把它看做是一块物理存储设备,一个tmp filesystem, 可以通过这个设备向内存中读写文件, 以加快某些...Oracle 就利用了/dev/shm(shitou没用过oracle), 可以通过mount命令列出当前的/dev/shm的挂载的文件系统, 你可以直接对/dev/shm进行读写操作, 例如: #touch.../dev/shm/file1 既然是基于内存的文件系统,系统重启后/dev/shm下的文件就不存在了。...Linux默认(CentOS)/dev/shm分区的大小是系统物理内存的50%, 虽说使用/dev/shm对文件操作的效率会高很多。...但是目前各发行软件中却很少有使用它的(除了前面提到的Oracle), 可以通过ls /dev/shm查看下面是否有文件, 如果没有就说明当前系统并没有使用该设备。
领取专属 10元无门槛券
手把手带您无忧上云