
linux ubuntu
it_passioner
这个作者很懒,什么都没留下…
展开
-
UserModeLinux
Content Cleanup Required: This article should be cleaned-up to follow the content standards in the Wiki Guide.More info... Needs Expansion: This article is incomplete, and needs to b转载 2013-01-02 16:56:39 · 479 阅读 · 0 评论 -
视频参数解释
1、分辨率(Resolution) 视频分辨率是指视频成像产品所成图像的大小或尺寸,它的表达式为:“水平像素数*垂直像素数”。常见的图像分辨率有QCIF(176×144),CIF(352×288),D1(704×576),720P(1280×720),1080P(1920*1080)。摄像机成像的最大分辨率是由CCD或CMOS感光器件决定的。现在有些摄像机支持修改分辨率,是通过摄像转载 2013-10-02 13:25:47 · 12356 阅读 · 0 评论 -
用户态进程的虚拟地址如何转换成物理地址
用户态进程的虚拟地址如何转换成物理地址? 区分一个进程,我们都知道最简单就是进程的pid。我们就从(pid,virtualaddress)来看看如何将一个进程的虚拟地址转换为物理地址phyaddress。 首先根据pid我们可以得到这个进程的task_struct,进而通过task_struct得到mm,通过mm得到pgd。好了,现在我们有pgd和virtualaddress.转载 2013-10-12 03:37:40 · 6636 阅读 · 0 评论 -
linux 字符设备驱动
#ifndef _LINUX_CDEV_H#define _LINUX_CDEV_H#include #include #include struct file_operations;struct inode;struct module;struct cdev { struct kobject kobj;//内嵌的kobject对象 struct module转载 2013-11-23 18:13:52 · 763 阅读 · 0 评论 -
linux c++ 多线程 互斥访问
from: http://blog.youkuaiyun.com/chexlong/article/details/7058283//锁接口类 class ILock { public: virtual ~ILock() {} virtual void Lock() const = 0; virtual void Unlock() const = 0;转载 2013-11-23 12:26:21 · 881 阅读 · 0 评论 -
linux 驱动 并发、(非)阻塞、时钟中断
并发情况下防止竞争的措施:(1)中断屏蔽(2)原子操作(3)自旋锁(4)读写自旋锁(防写不防读)(5)顺序锁(seqlock)(6)RCU(Read-Copy-Update)(7)信号量(信号量其实和自旋锁是一样的,就是有一点不同:当获取不到信号量时,进程不会原地打转而是进入休眠等待状态)(8)完成量(completion),它用于一个执行单元等待另一个执行单元执行转载 2013-11-23 20:38:51 · 1015 阅读 · 1 评论 -
Makefile
1 $(wildcard $(obj)include/config.mk)的含义是返回值为当前目录下$(obj)include/config.mk源文件列表2 $#表示传入参数个数 $@ $$*传递给脚本的所有参数3 %_config前面的%是通配符,表示以_config结尾的目标都会匹配到这里, ::表示makefile中的多目标规则,所有匹配%_config的目标都有相同的依原创 2013-09-30 00:02:30 · 1726 阅读 · 0 评论 -
linux 里的一些英文缩写含义
GIC: General Interrupt Controllerclockevents_register_device:注册系统中的时钟事件设备MACHINE_START:主要是定义了"struct machine_desc"的类型,放在 section(".arch.info.init"),是初始化数据,Kernel 起来之后将被丢弃。其余各个成员函数在setup_arch()原创 2013-12-02 08:35:25 · 1184 阅读 · 0 评论 -
git 使用技巧
(1)新加文件: $ git -add //类似于cvs add $ git -add -a //本目录下所有文件和子目录 $ git -commit //提交,注意需要先add再commit $ git -commit -e -s -a转载 2013-11-24 14:14:31 · 1299 阅读 · 0 评论 -
Chrome 快捷键
Ctrl+Shift+T 重新打开上次关闭的标签页。Ctrl+Tab 切换到下一个标签页。Ctrl+D 将当前网页加入书签。Ctrl+H 查看历史记录页。Ctrl+J 查看下载页。转载 2014-03-29 17:35:32 · 538 阅读 · 0 评论 -
Linux下程序的调试方法
(1)gprof 可以查看函数的耗时长短和调用关系(原创 2014-05-05 14:07:48 · 652 阅读 · 0 评论 -
Linux文件系统启动过程及login的实现
1. busybox简介busybox是一个集成了一百多个最常用linux命令和工具的软件,它将许多常用的LINUX命令和工具结合到了一个单独的可执行程序中。虽然与相应的GNU工具比较起来,busybox所提供的功能和参数略少,但在比较小的系统(例如启动盘)或者嵌入式系统中,已经足够了。 busybox在设计上就充分考虑了硬件资源受限的特殊工作环境。它采用一种很巧妙的办法减少转载 2014-04-25 17:03:39 · 33475 阅读 · 0 评论 -
uboot
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")/*指定输出可执行文件是elf格式,32位ARM指令,小端*/OUTPUT_ARCH(arm)/*指定输出可执行文件的平台为ARM*/ENTRY(_start)/*指定输出可执行文件的起始代码段为_start*/转载 2013-10-02 02:59:17 · 559 阅读 · 0 评论 -
preempt_disable
#definepreempt_disable() / do { / inc_preempt_count(); / barrier(); / } while (0) 实现很简单,就两行代码,第一行把进程描述符中的preempt_count加1,第二行加一个优化屏障。展开inc_preempt_count()后就是: current->threa转载 2013-06-04 23:11:09 · 1673 阅读 · 0 评论 -
ubuntu record
1 install ubuntu 10.102 update firefox from 3.0 to 20.03 close touch pad: xinput set-prop 'SynPS/2 Synaptics TouchPad' 'Device Enabled' 0#!/bin/sh#禁用触摸板xinput set-prop 'SynPS/2 Synaptics Tou原创 2013-04-18 22:29:53 · 899 阅读 · 0 评论 -
dbus netlink socket
1、本地unix套接字实现进程间通信。2、netlink socekt是一种用于在内核态和用户态进程之间进行数据传输的特殊的IPC。它通过为内核模块提供一组特殊的API,并为用户程序提供了一组标准的socket 接口的方式,实现了一种全双工的通讯连接。类似于TCP/IP中使用AF_INET地址族一样,netlink socket使用地址族AF_NETLINK。每一个netlink sock转载 2013-01-03 11:00:49 · 1439 阅读 · 0 评论 -
Linux设备驱动编程之阻塞与非阻塞
阻塞操作是指,在执行设备操作时,若不能获得资源,则进程挂起直到满足可操作的条件再进行操作。非阻塞操作的进程在不能进行设备操作时,并不挂起。被挂起的进程进入sleep状态,被从调度器的运行队列移走,直到等待的条件被满足。select和poll的本质一样,前者在BSD Unix中引入,后者在System V中引入。poll和select用于查询设备的状态,以便用户程序获知是否能对设备进行非阻塞的访转载 2013-01-03 12:12:22 · 483 阅读 · 1 评论 -
tasklet 工作队列 内核定时器 内核线程
1. tasklet只可以在一个CPU上同步地执行,不同的tasklet可以在不同地CPU上同步地执行.2. tasklet的实现是建立在两个软件中断的基础之上的,即HI_SOFTIRQ和TASKLET_SOFTIRQ,本质上没有什么区别,只不过HI_SOFTIRQ的优先级更高一些.3. 由于tasklet是在软中断上实现的,所以像软中断一样不能睡眠、不能阻塞,处理函数内不能含有导致睡眠的转载 2013-01-04 23:56:11 · 2430 阅读 · 0 评论 -
android 知识
每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,而每一个虚拟机实例都是一个独立的进程空间,不同的应用在不同的进程空间里运行,当一个虚拟机关闭或意外中止时不会对其它虚拟机造成影响,可以最大程度的保护应用的安全和独立运行。Android进程内存占用的默认最大值为16M或32M ,该值只是指dalvik上分配的内存,它不包括在native上分配的内存值。默认一个APK包就对应转载 2013-01-09 01:13:50 · 649 阅读 · 0 评论 -
pthread_kill pthread_cancel
pthread_kill函数的功能是向指定线程发送信号,信号为0时用于检查此线程ID的线程是否存活。pthread_cancel函数的功能是给线程发送取消信号,使线程从取消点退出。(http://baike.baidu.com/view/8517720.htm)请在创建的线程中使用signal(SIGKILL,sig_handler)处理信号,如果你给一个线程发送了SIGQUIT,但线程却转载 2013-01-09 11:14:28 · 1112 阅读 · 0 评论 -
linux子系统的初始化_subsys_initcall():那些入口函数
内核选项解析完成之后,各个子系统的初始化即进入第二部分—-入口函数的调用。通常USB、PCI这样的子系统都会有一个名为subsys_initcall的入口,如果你选择它们作为研究内核的切入点,那么就请首先找到它。以下代码来自 linux内核源码中 include/linux/init.h 文件:117 #define pure_initcall(fn) __define转载 2013-02-01 22:07:14 · 915 阅读 · 6 评论 -
gdb 使用
1、GDB多线程调试的基本命令:info threads:显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。thread ID:切换当前调试的线程为指定ID的线程。 break thread_test.c:123 thread all: 在所有线程中相应的行上设置断点thread apply ID1 ID转载 2013-03-11 09:57:34 · 1330 阅读 · 1 评论 -
source insight 使用
重画屏幕 : Ctrl+Alt+Space完成语法 : Ctrl+E复制一行 : Ctrl+K剪切一行 : Ctrl+U粘贴一行 : Ctrl+P复制该位置右边的该行的字符 : Ctrl+Shift+K剪切该位置右边的该行的字符 : Ctrl+;左边缩进 : F9右边缩进 : F10插入一行 : Ctrl+I插入新行 : Ctrl+Enter加入转载 2013-03-10 17:29:14 · 755 阅读 · 0 评论 -
git 使用
可以利用Git的config命令或者直接编辑~/.gitconfig文件。 [user] name = Phoenix email = phoenixtoday@gmail.com [alias] co = checkout ci = commit -a st = status br = branch oneline = log --pretty=onelin转载 2013-03-10 16:33:40 · 1434 阅读 · 0 评论 -
ubuntu 使用技巧
查看系统是32位还是64位: #查看long的位数,返回32或64getconf LONG_BIT#查看文件信息,包含32-bit就是32位,包含64-bit就是64位file /sbin/init或者使用:uname -m查看Ubuntu版本 cat /etc/issue 或 cat /etc/lsb-release 或 lsb_release -dsc转载 2013-03-02 00:02:58 · 763 阅读 · 1 评论 -
根文件系统制作
环境】1:Ubuntu 10.102:u-boot-2010.033:linux-2.6.354:busybox-1.17.35:优龙FS24106:交叉编译器:arm-none-linux-gnueabi-gcc version 4.3.21)解压缩busyboxtar xjvf busybox-1.17.3转载 2014-04-25 17:20:13 · 786 阅读 · 0 评论