自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

转载 Linux设备模型 (4)

《Linux设备模型 (2)》和《Linux设备模型 (3)》主要通过一些简单的实作介绍了kobject、kset、kobj_type、attribute等数据结构的用法,但这些实作并没有涉及到实际环境下的设备模型和sysfs。本文将以/sys下的module子目录为例,看看内核是如何构建sysfs这棵大树的。(注:本文的分析基于2.6.36内核) module的创建当mo

2013-08-10 16:05:55 539

转载 Linux设备模型 (3)

在上文中,我们介绍到如何使用default attribute。Default attribute使用很方便,但不够灵活。比如上篇文章在Kobject一节中提到的那个例子,name和val这两个attribute使用同一个show/store函数来访问,如果attribute非常多,show/store函数里的分支就会很凌乱。为了解决这个问题,我们可以参考内核提供的kobj_attribute

2013-08-10 16:02:40 555

转载 Linux设备模型 (2)

上一篇文章《Linux设备模型 (1)》主要介绍了Linux设备模型在用户空间的接口sysfs,用户通过这个接口可以一览内核设备的全貌。本文将从Linux内核的角度来看一看这个设备模型是如何构建的。在Linux内核里,kobject是组成Linux设备模型的基础,一个kobject对应sysfs里的一个目录。从面向对象的角度来说,kobject可以看作是所有设备对象的基类,因为C语言并没有

2013-08-10 15:43:05 413

转载 Linux内核里的“智能指针” (续)

本文承接前篇,主要介绍几点使用kref时的注意事项。Linux内核文档kref.txt罗列了三条规则,我们在使用kref时必须遵守。规则一:If you make a non-temporary copy of a pointer, especially if  it can be passed to another thread of execution, you must  i

2013-08-10 14:55:41 522

转载 Linux内核里的“智能指针”

众所周知,C/C++语言本身并不支持垃圾回收机制,虽然语言本身具有极高的灵活性,但是当遇到大型的项目时,繁琐的内存管理往往让人痛苦异常。现代的C/C++类库一般会提供智能指针来作为内存管理的折中方案,比如STL的auto_ptr,Boost的Smart_ptr库,QT的QPointer家族,甚至是基于C语言构建的GTK+也通过引用计数来实现类似的功能。Linux内核是如何解决这个问题呢?同样作为C

2013-08-10 14:37:19 472

转载 Linux设备模型(1)

随着计算机的周边外设越来越丰富,设备管理已经成为现代操作系统的一项重要任务,这对于Linux来说也是同样的情况。每次Linux内核新版本的发布,都会伴随着一批设备驱动进入内核。在Linux内核里,驱动程序的代码量占有了相当大的比重。下图是我在网络上搜索到的一幅Linux内核代码量的统计图,对应的内核版本是2.6.29。我们可以很明显的看到,在Linux内核中驱动程序的比例已经非常高

2013-08-10 14:01:58 522

转载 位域

位域又叫位段,用于指定该成员在内存存储时所用到的位数,从而更紧凑的表示数据。有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态,用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”,是把一个字节中的二进制位划分为几个不同的区域,并说明每个区域的位数。每个域有一

2013-08-10 13:40:32 577

转载 lsusb输出内容详细解读

插入usb鼠标后执行lsusb的输出内容如下:-----------------------------------------Bus 005 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 Bus 004 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000

2013-08-10 11:17:45 659

转载 使用 SOCKET 通信实现 FTP 客户端程序

FTP 协议相比其他协议,如 HTTP 协议,FTP 协议要复杂一些。与一般的 C/S 应用不同点在于一般的C/S 应用程序一般只会建立一个 Socket 连接,这个连接同时处理服务器端和客户端的连接命令和数据传输。而FTP协议中将命令与数据分开传送的方法提高了效率。FTP 使用 2 个端口,一个数据端口和一个命令端口(也叫做控制端口)。这两个端口一般是21 (命令端口)和 20

2013-08-07 20:49:11 721

转载 vim自动补全

1,neocomplcache:地址:http://www.vim.org/scripts/script.php?script_id=2620,这个插件有zip和vba两种格式,首选vba。这种格式可以直接安装,不用手动分别安装各个文件。具体步骤如下:1、下载vba格式插件;2、使用命令:vim neocomplcache*.vba3、在vim命令状态下:so %

2013-07-30 23:58:56 524

转载 Linux kernel panic解决方法

kernel panic错误表现kernel panic 主要有以下几个出错提示:Kernel panic-not syncing fatal exception in interruptkernel panic - not syncing: Attempted to kill the idle task!kernel panic - not syncing: killing in

2013-07-23 23:07:04 739

转载 Linux Kernel Panic报错解决思路

Linux虽然没有蓝屏现象,不过Kernel报错有时也会让人头疼。有时重启后正常,linux系统运行一段时间后又down了,总不能出现问题就reboot啊。我从网上搜集一下资料,整理了出来,希望大家能在评论与我交流您的看法与经验。什么是Kernel Panic?panic是英文中是惊慌的意思,Linux Kernel panic正如其名,linux kernel不知道如何走了,它会尽可

2013-07-23 23:06:18 1292

转载 linux关机命令

在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的,通过本文的介绍,希望你可以更加灵活的运用各种关机命令。  1.shutdown  shutdown命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linux与windows不同,其后台

2013-07-23 22:38:28 348

原创 判断守护进程的方法

在操作系统中,一般系统的服务都是以后台进程的方式存在,而且都会常驻系统中,直到关机才结束。这类服务也称Daemon,即守护进程判断Daemon最简单的方法就是从名称上看。多数的Daemon都是由服务名称加上d。例如,在Linux操作系统中HTTP服务的Deamon就是httpd。

2013-07-23 22:10:02 801

转载 apt-get 使用详解

目前常用的==========*更新本机中的数据库缓存:sudo  apt-get update*查找包含部分关键字的软件包:sudo  apt-cache search *安装指定的软件:sudo  apt-get install *下载软件包源代码(如果有的话):apt-get  sou

2013-07-23 21:54:15 430

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除