linux操作系统
文章平均质量分 72
WINGCREATE
这个作者很懒,什么都没留下…
展开
-
窥探 kernel --- 浅析do_exit
http://blog.csdn.net/muge0913/article/details/7483054 进程在退出时,必须释放它所拥有的资源,并通过某种方式告诉父进程。进程的退出一般是显示或隐式地调用了eixt(),或者接受了某种信号。不过什么原因退出,最终都调用了do_exit。用于进程退出的系统调用有两个exit和exit_group,exit只是终转载 2012-11-14 13:28:04 · 1302 阅读 · 0 评论 -
内核同步措施(spinlock与mutex)
内核同步措施为了避免并发,防止竞争。内核提供了一组同步方法来提供对共享数据的保护。 我们的重点不是介绍这些方法的详细用法,而是强调为什么使用这些方法和它们之间的差别。Linux 使用的同步机制可以说从2.0到2.6以来不断发展完善。从最初的原子操作,到后来的信号量,从大内核锁到今天的自旋锁。这些同步机制的发展伴随 Linux从单处理器到对称多处理器的过度;伴随着从非抢占内核到抢占内核的过度转载 2012-02-14 09:47:09 · 817 阅读 · 0 评论 -
可变参数宏__VA_ARGS__
http://blog.sina.com.cn/s/blog_661314940100qmfg.html 可变参数宏__VA_ARGS__在 GNU C 中,宏可以接受可变数目的参数,就象转载 2011-08-11 10:59:35 · 1071 阅读 · 0 评论 -
Linux下系统调用的实现
http://hi.baidu.com/xydjh/blog/item/c461c135d1806d8fa61e12bb.htmlUnix/Linux操作系统的体系结构及系统调用介绍什么是操作系统和系统调用 操作系统是从硬件抽象出来的虚拟机,在该虚拟机上用户可转载 2011-08-10 21:35:55 · 1375 阅读 · 0 评论 -
引用 linux ioctl函数
http://vic295.blog.163.com/blog/static/74033530200991974322689/引用 linux ioctl函数 2009-10-19 19:43:22| 分类:Linux | 标签:|字号大中小 订阅转载 2011-08-10 11:04:54 · 1834 阅读 · 0 评论 -
SYSCALL_DEFINE3 宏定义
http://blog.csdn.net/p_panyuch/article/details/5648007 SYSCALL_DEFINE3 宏定义分类: 技术相关 2010-06-04 16:59 651人阅读 评论(0)收藏 举报SYS转载 2011-08-11 10:44:33 · 2963 阅读 · 0 评论 -
__must_check含义及出处
[linux笔记]__must_check含义及出处 include/linux/compiler-gcc4.h #define __must_check __attribute__((warn_unused_result))__must_check函数是指转载 2011-07-12 21:36:42 · 3514 阅读 · 0 评论 -
Linux中的work queue
http://blog.sina.com.cn/s/blog_55465b470100qmrc.html 工作队列(work queue)是Linux kernel中将工作推后执行的一种机制。这种机制和BH或Tasklets不同之处在于工作队列是把推后的工作交由一个内核线程去执行转载 2011-07-08 13:23:08 · 814 阅读 · 0 评论 -
ftrace 简介
ftrace 简介ftrace 的作用是帮助开发人员了解 Linux 内核的运行时行为,以便进行故障调试或性能分析。最早 ftrace 是一个 function tracer,仅能够记录内核的函数调用流程。如今 ftrace 已经成为一个 framework,转载 2011-07-05 10:00:34 · 585 阅读 · 0 评论 -
透过proc看内存
http://jasperzhang.blog.sohu.com/162339118.html<br /> <br />1 内存信息查看<br />proc文件系统中涉及内存使用情况的文件主要有:<br />/proc/meminfo表征了系统内存使用概要信息:<br />[root@localhost ~]# cat /proc/meminfo <br />MemTotal: 505964 kB //系统可用物理内存总量<br />MemFree:转载 2011-05-07 13:06:00 · 9518 阅读 · 0 评论 -
linux设备驱动之pci设备的驱动架构
<br />http://blogold.chinaunix.net/u3/90065/showart_1912738.html<br /> 经过前面的处理,所有设备及其信息都已经遍历出来了.在深入分析PCI驱动架构之前,我们来回顾一下前面遍历PCI设备时,对pci_dev->dev的一些重要成员的赋值.以及各结构在sysfs中的视图8.1:pci架构在sysfs中视图1:对于pci_devpci_dev->dev的所属bus,parent和name的赋值: 在pci_scan_child_bus() --转载 2011-04-22 23:44:00 · 2055 阅读 · 0 评论 -
解密module_init
http://blog.163.com/xinbuqianjin@126/blog/static/167563447201010221231507/在Linux底下写过driver模块的对这个宏一定不会陌生。module_init宏在MODULE宏有没有定义的情况下展开的内容是不同的,如果这个宏没有定义,基本上表明阁下的模块是要编译进内核的(obj-y)。1.在MODULE没有定义这种情况转载 2012-02-28 21:32:26 · 858 阅读 · 0 评论 -
Linux Grep 命令说明 .
http://blog.csdn.net/tianlesoftware/article/details/6277193一. Grep 说明 grep (global search regular expression(RE) and print out the line)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 Unix的grep家族包转载 2012-05-07 23:15:19 · 506 阅读 · 0 评论 -
nohup 命令 用途:不挂断地运行命令
简单而有用的nohup命令在UNIX/LINUX中,普通进程用&符号放到后台运行,如果启动该程序的控制台logout,则该进程随即终止。要实现守护进程,一种方法是按守护进程的规则去编程(本站有文章介绍过),比较麻烦;另一种方法是仍然用普通方法编程,然后用nohup命令启动程序: nohup & 则控制台logout后,进程仍然继续运行,起到守护进程的作用(虽然它不是严格意转载 2012-09-21 12:29:57 · 9716 阅读 · 0 评论 -
wakelock 详解
[置顶] wakelock 详解分类: linux驱动代码解析 2012-04-24 20:21 191人阅读 评论(0)收藏 举报Wake lock - wakelock在android的电源管理系统中扮演一个核心的角色,wakelock是一种锁的机制, 只要有task拿着这个锁, 系统就无法进入休眠, 可以被用户态进程和内核线程获得。这个锁可以是有超时的或者转载 2012-09-12 11:12:44 · 1486 阅读 · 0 评论 -
set_task_state()与__set_task_state()的区别
set_task_state()与__set_task_state()的区别[ 2010-10-9 13:19:00 | By: cc810610186 ] #define __set_task_state(tsk, state_value) \do { (tsk)->state = (state_value)转载 2012-09-06 11:00:10 · 2948 阅读 · 0 评论 -
linux kernel current宏
linux kernel current宏 2012-04-15 10:46:23| 分类:linux 进程与进程 | 标签:|字号大中小 订阅1,先看个示意图吧.2,每个进程在内核态下都会开辟一个内核栈,一般就是8KB,一般把thread_info这个结构体和 内核栈放在一起,这样内核就可以很方便从ESP寄存器中获取当前CPU上转载 2012-09-06 09:37:12 · 2543 阅读 · 0 评论 -
workqueue原理和分析(转)
workqueue原理和源码分析分类: linux2.6.xx内核代码分析 2011-04-29 09:56 437人阅读 评论(0)收藏 举报workqueue,中文称其为工作队列,是一个用于创建内核线程的接口,通过它创建的内核线程来执行内核其他模块排列到队列里的工作,创建的内核线程被称为工作者线程。要理解工作队列的实现,重点在于理解相关的三个数据结构的含转载 2012-09-04 16:03:41 · 903 阅读 · 0 评论 -
linux PROC系列
PROC系列分类: linux-kernel 2011-08-05 23:09 89人阅读 评论(0)收藏 举报该文件中的所有值都是从系统启动开始累计到当前时刻。该文件只给出了所有CPU的集合信息,不能该出每个CPU的信息。有多少磁盘读写请求 [zhh@localhost ~]$ cat /proc/diskstats配置转载 2012-08-24 11:12:31 · 1804 阅读 · 0 评论 -
Linux 的 Out-of-Memory (OOM) Killer
Linux 的 Out-of-Memory (OOM) Killer作者: Fenng| 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.dbanotes.net/database/linux_outofmemory_oom_killer.html 同事在 Linux 服务器上遇到点小问题,我也上去折腾半天。这还是转载 2012-09-04 09:11:03 · 1061 阅读 · 0 评论 -
linux中断线程化(转载)
linux中断线程化(转载) 2012-06-02 20:28:34| 分类:linux内核开发 | 标签:|字号大中小 订阅摘自:http://www.eeworld.com.cn/qrs/2012/0326/article_9459_2.html中断线程化是实现Linux实时性的一个重要步骤,在Linux标准内核中,中断是最高优先级的执行单元,不管转载 2012-08-30 16:13:02 · 2522 阅读 · 0 评论 -
抛弃中断bottom half,使用中断线程
http://blog.sina.com.cn/s/blog_5f6661380100qwpn.html抛弃中断bottom half,使用中断线程吧(2011-02-24 10:39:54)转载▼标签:杂谈 在linux里,中断处理分为顶半(top half),底半(bottom half),在顶半里处理优先级比较高的事转载 2012-08-30 21:25:02 · 1063 阅读 · 0 评论 -
linux查看磁盘空间的方法
一、df 命令;df 是来自于coreutils 软件包,系统安装时,就自带的;我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置;举例:[root@localhost beinan]# df -lhFilesystem 容量 已用 可用 已用% 挂载点/dev/hda8 11G 6.0G 4.4G 58% //dev/shm 236M转载 2012-06-19 13:38:59 · 845 阅读 · 0 评论 -
【转】Linux用户空间与内核空间 理解和总结
【转】Linux用户空间与内核空间 理解和总结(1)让我们忽略Linux对段式内存映射的支持。在保护模式下,我们知道无论CPU运行于用户态还是核心态,CPU执行程序所访问的地址都是虚拟地址,MMU 必须通过读取控制寄存器CR3中的值作为当前页面目录的指针,进而根据分页内存映射机制(参看相关文档)将该虚拟地址转换为真正的物理地址才能让CPU真正的访问到物理地址。(2)对于32位的Linux,转载 2012-06-06 09:07:37 · 703 阅读 · 0 评论 -
pci设备的枚举(转)
<br />http://blog.csdn.net/caballero2002/archive/2009/12/16/5019544.aspx<br /> <br /> <br />一:前言<br />Pci,是Peripheral Component Interconnect的缩写,翻译成中文即为外部设备互联.与传统的总线相比.它的传输速率较高.能为用户提供动态查询pci deivce.和局部总线信息的方法,此外,它还能自动为总线提供仲裁.在近几年的发展过程中,被广泛应用于多种平台.<br />pci协转载 2011-04-25 11:46:00 · 2616 阅读 · 0 评论 -
Makefile的obj-y 和 obj-m
<br />目标定义是Kbuild Makefile的主要部分,也是核心部分。主要是定义了要编 译的文件,所有的选项,以及到哪些子目录去执行递归操作。 最简单的Kbuild makefile 只包含一行: 例子: obj-y += foo.o 该例子告诉Kbuild在这目录里,有一个名为foo.o的目标文件。foo.o将从foo.c 或foo.S文件编译得到。 如果foo.o要编译成一模块,那就要用obj-m了。所采用的形式如下: 例子: obj-$(CONFIG_FOO) += foo.o $(CONFI原创 2011-04-14 11:40:00 · 28140 阅读 · 4 评论 -
initcall机制原理及实践
<br />http://blog.csdn.net/jccz_zys/archive/2007/06/01/1633963.aspx<br /> <br /> <br />说明:以下内容基于linux2.4.0<br />一、initcall机制原理<br /> 在linux初始化的过程中,内核采用了一种initcall的机制,它利用gcc的扩展功能以及ld的连接控制脚本实现了在内核初始化的过程中通过简单的循环就实现了相关驱动的初始化。核心代码的/init/main.c里面有do_initcalls转载 2011-04-11 21:59:00 · 1369 阅读 · 0 评论 -
linux内核printk调试
<br />http://blog.csdn.net/catamout/archive/2010/03/15/5380562.aspx<br /> <br />1 printk及控制台的日志级别<br />函数printk的使用方法和printf相似,用于内核打印消息。printk根据日志级别(loglevel)对消息进行分类。<br />日志级别用宏定义,日志级别宏展开为一个字符串,在编译时由预处理器将它和消息文本拼接成一个字符串,因此printk 函数中日志级别宏和格式字符串间不能有逗号。<br />转载 2011-01-26 23:44:00 · 1692 阅读 · 0 评论 -
ubuntu ip静态设置
<br />1.ip设置。终端输入sudo vi /etc/network/interfaces <br />auto lo<br />iface lo inet loopback<br />auto eth0 <br />iface eth0 inet static <br />address 192.168.1.123 <br />netmask 255.255.255.0 <br />gateway 192.168.1.1转载 2011-01-23 11:57:00 · 780 阅读 · 0 评论 -
Linux内核的Makefile和kconfig解读
<br />http://edu.sctv.com/itpx/201009/t20100914_483970.shtml<br /> <br />一、概述<br /> 在内核编译中如何将各个目录树中的文件组织起来编译是一个很重要的问题,并且要根据用户配置来编译特有的内核。为了解决这个问题,内核使用两种文件,Makefie和Kconfig。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文档相关的内核配置菜单,就是我们使用命令 make menuconfi转载 2010-11-23 18:25:00 · 681 阅读 · 0 评论 -
Linux 2.6.19.x 内核编译配置选项简介
http://lamp.linux.gov.cn/Linux/kernel_options.html Linux 2.6.19.x 内核编译配置选项简介作者:金步国版权声明本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可以自由链接、下载、传播此文档,但前提是必须保证全文完整转载,包括完整的版权信息和作译者声明。其他作品本文作者十分愿意与他人共享转载 2010-11-21 20:45:00 · 890 阅读 · 0 评论 -
Ubuntu下串口工具
<br />http://blog.csdn.net/ansomray/archive/2009/05/25/4214199.aspx<br /> <br />虽然现在串口通信用的地方很少,但是配置交换机,路由器的初始配置时,没有它还真的不行,Windows下有很好用的超级终端,比较方便就可以配置。 <br /> Ubuntu下也有这样的串口通信工具,比如Minicom,kermit。minicom比较通用,kermit比较好用。 <br /> 1.minicom。 <br /> 安装su转载 2011-01-11 08:35:00 · 827 阅读 · 0 评论 -
ubuntu安装wine
安装最新版 wineubuntu 官方自带了 wine ,但是推荐用 winehq 官方提供的最新版本 wine ,新版本解决了很多以前显得麻烦的问题。PPA地址:https://launchpad.net/~ubuntu-wine/+archive/ppa1. sudo add-apt-repository ppa:ubuntu-wine/ppa2. sudo apt-get update3. sudo apt-get install wine原创 2010-11-17 08:31:00 · 846 阅读 · 0 评论 -
Linux下minicom的配置和使用方法
<br />http://hi.baidu.com/zengzhaonong/blog/item/8427c633c835de40ac4b5f47.html<br /> <br />安装配置minicom<br />--------------------------------------------------<br /># lsmod | grep usbserial (如果直接使用串口线,而没有用到USB转串口设备,此步可以跳过)<br /> 如果有usbserial,说明系统支持USB转串口。转载 2011-01-11 09:21:00 · 1212 阅读 · 0 评论 -
从ARM编译Linux内核
内核编译这个文章告诉你怎样给在目标平台上的ARM的机器上面编译内核. 这里是一些说明帮助你理解本文中的相关的术语和约定: * "bash$"和"bash#"是shell提示符号,不是键入的命令。 * "host"是你编译ARM内核的机器。 * "target"是使用你编译的ARM内核的机器。 1.决定在哪里编译你的内核首先,你需要决定你要从那里编译你的ARM Linux内核。一个比较好的位置就是在你的home目录,我们在这篇文档中使用$HOME来表示它。如果你需要使用其他位置,那么就用相应的位置来替换$HO转载 2010-11-14 21:21:00 · 4203 阅读 · 0 评论 -
GCC编译hello.c的详细过程
gcc --help查看gcc参数用法-E Preprocess only; do not compile, assemble or link-S Compile only; do not assemble or link-c Compile and assemble, but do not link-o Place the output int转载 2010-11-10 06:51:00 · 5121 阅读 · 0 评论 -
构建ARM Linux交叉编译工具链--Crosstool
在同一个体系平台上开发程序属于本地编译,在不同的体系平台上开发其他平台的程序,这时就需要利用交叉编译工具链,属于交叉编译。如果是在i386平台上开发arm体系的程序,这时就需要交叉编译工具了。 通常构建交叉工具链有3种方法。方法一 分步编译和安装交叉编译工具链所需要的库和源代码,最终生成交叉编译工具链。该方法相对比较困难,适合想深入学习构建交叉工具链的读者。如果只是想使用交叉工具链,建议使用方法二或方法三构建交叉工具链。方法二 通过Crosstool脚本工具来实现一次编译生成交叉编译工具链,该方转载 2010-11-07 23:08:00 · 824 阅读 · 0 评论 -
lsusb输出内容详细解读
<br />http://hi.baidu.com/zengzhaonong/blog/item/ade3e9241f04f5318744f98c.html<br /> <br /> 插入usb鼠标后执行lsusb的输出内容如下:<br />-----------------------------------------<br />Bus 005 Device 001: ID 0000:0000 <br />Bus 001 Device 001: ID 0000:0000 <br />Bus 004 De转载 2010-12-27 19:32:00 · 1552 阅读 · 0 评论 -
linux内核的调试技术
<br />http://www.36ji.net/article/0922/4941.html<br /> <br />在 Linux 上找出并解决程序错误的主要方法 <br />Steve Best(sbest@us.ibm.com) <br />JFS 核心小组成员,IBM <br />2002 年 8 月 <br />您可以用各种方法来监控运行着的用户空间程序:可以为其运行调试器并单步调试该程序,添加打印语句,或者添加工具来分析程序。本文描述了几种可以用来调试在 Linux 上运行的程序的方法。我们转载 2011-01-26 23:46:00 · 749 阅读 · 0 评论 -
使用 /proc 文件系统来访问 Linux 内核的内容
<br />http://www.ibm.com/developerworks/cn/linux/l-proc.html<br /> <br /> <br />最初开发 /proc 文件系统是为了提供有关系统中进程的信息。但是由于这个文件系统非常有用,因此内核中的很多元素也开始使用它来报告信息,或启用动态运行时配置。<br />/proc 文件系统包含了一些目录(用作组织信息的方式)和虚拟文件。虚拟文件可以向用户呈现内核中的一些信息,也可以用作一种从用户空间向内核发送信息的手段。实际上我们并不会同时需要实现转载 2011-02-11 13:56:00 · 505 阅读 · 0 评论