易截截图软件、单文件、免安装、纯绿色、仅160KB

linux设备文件系统sysfs介绍

      linux下有专门的文件系统用来对设备进行管理,devfs和sysfs就是其中两种。
1,devfs:devfs是在2.4内核就出现了,它是用来解决linux中设备管理混乱的问题,linux内核开发人员开发了devfs。
2,sysfs:是Linux 内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与proc 有些类似,但除了与proc 相同的具有查看和设定内核参数功能之外,还有为Linux 统一设备模型作为管理之用。sysfs 文件系统总是被挂载在/sys 挂载点上。虽然在较早期的2.6内核系统上并没有规定sysfs的标准挂载位置,可以把sysfs 挂载在任何位置,但较近的2.6内核修正了这一规则,要求sysfs 总是挂载在/sys目录上。sysfs 与proc 相比有很多优点:sysfs 的设计原则是一个属性文件只做一件事情,sysfs 属性文件一般只有一个值,直接读取或写入。新设计的内核机制应该尽量使用sysfs机制,而将proc 保留给纯净的“进程文件系统”。
      UBUNTU中比如:执行ls -F /sys,得block/  bus/  class/  dev/  devices/  firmware/  fs/  kernel/  module/  power/
下面对/sys 文件系统下的目录结构做说明:
/sys/devices:这是内核对系统中所有设备的分层次表达模型,也是 /sys 文件系统管理设备的最重要的目录结构;
/sys/dev:这个目录下维护一个按字符设备和块设备的主次号码(major:minor)链接到真实的设备(/sys/devices下)的符号链接文件,它是在内核2.6.26 首次引入;
/sys/bus:这是内核设备按总线类型分层放置的目录结构,devices中的所有设备都是连接于某种总线之下,在这里的每一种具体总线之下可以找到每一个具体设备的符号链接,它也是构成 Linux 统一设备模型的一部分;
/sys/class:这是按照设备功能分类的设备模型,如系统所有输入设备都会出现在 /sys/class/input 之下,而不论它们是以何种总线连接到系统。它也是构成Linux 统一设备模型的一部分;
/sys/block:这里是系统中当前所有的块设备所在,按照功能来说放置在/sys/class 之下会更合适,但只是由于历史遗留因素而一直存在于/sys/block, 但从2.6.22 开始就已标记为过时,只有在打开了CONFIG_SYSFS_DEPRECATED 配置下编译才会有这个目录的存在,并且在2.6.26 内核中已正式移到 /sys/class/block, 旧的接口/sys/block 为了向后兼容保留存在,但其中的内容已经变为指向它们在/sys/devices/


相关文档:

解决Linux中Too many open files问题

1、相关命令:
ulimit –a //查看当前设置
ulimit –n 2048 //即设成2048,按实际需要设置
2、用户环境参数文件配置:
在/etc/profile中加入如下内容:
if
 [ $SHELL 
=
 
"
/bin/ksh
"
 ]; then 
ulimit 
-

16384
 ulimit&nbs ......

linux 共享库基本使用

1 创建和使用静态库
创建一个静态库是相当简单的。通常使用 ar 程序把一些目标文件(.o)组合在一起,
成为一个单独的库,然后运行 ranlib,以给库加入一些索引信息。
2 创建和使用共享库
特殊的编译和连接选项
-D_REENTRANT         使得预处理器符号 _REENTRANT 被定义,这个符号激活 ......

linux进程控制-exec系列

说是exec系统调用,实际上在Linux中,并不存在一个exec()的函数形式,exec指的是一组函数,一共有6个,分别是:




#include <unistd.h>
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const c ......

linux内核学习之likely()和unlikely()

参考资料 : linux内核设计和实现 P13
likely()和unlikely()是内核编译时用于优化 if 判断语句的宏
likely()代表优化
unlikely()代表不优化
一般为了效率 由程序员自己判断if语句里面的内容是否要优化,显然如果if语句里面的内容有很大的概率会执行到就该优化,不然就不必优化
if(likely(A != 0))

.. ......

Linux下用PYTHON查找同名进程

1.可执行程序
os.system('pgrep %s > %s' % (process, output))
   pidfile = open("output", 'r')
   totalpid = len(pidfile.readlines())
   pidfile.close()
   if totalpid == 0 :
         &nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号