- 博客(328)
- 资源 (9)
- 收藏
- 关注
转载 linux kernel 打印函数指针对应的函数名
内核中函数指针用的很多,在debug 的时候能直接打印出一个函数指针对应的函数就会很方便。打印裸指针(raw pointer)用 %p,%p除了可以用来打印指针外还可以打印其它的信息%pF可打印函数指针的函数名和偏移地址,%pf只打印函数指针的函数名,不打印偏移地址。如printk("%pf %pF\n", ptr, ptr) will print:
2015-07-03 09:56:27
7621
转载 SELinux 学习笔记
http://www.2cto.com/os/201111/112020.htmlSElinux(Security Extend linux)Red hat Enterprise 5支持内核实施的一项新的安全策略:SElinux。SElinux是由美国国防部让安全局针对计算机基础结构开发的,SElinux允许管理员定义高度灵活的策略,让linux内核把它作为日常操作的一
2015-06-12 09:56:57
719
原创 Linux kernel memory management (ARM)
本文以 linux mainline 代码分析,v3.19-rc5 + (SHA-1 : b97f880c8342fd6e49a02c9ef7507a678722b2b3)以ARM vexpress 为例进行分析,用到的调试命令如下:make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- distclean ; make ARCH=arm CR
2015-01-30 17:06:47
1538
转载 Android内存之VSS/RSS/PSS/USS
TermsVSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)一
2014-12-11 11:15:17
925
原创 qemu & qemu-system
http://wiki.qemu-project.org/Downloadgit clone git://git.qemu-project.org/qemu.git
2014-11-15 12:11:29
4995
8
原创 Milestone/umts_sholes/OMAP3430 DSS(Display Sub-System) Go-Through
前世今生:为什么又翻出了10年入手的Milestone,费时费力sync 了github 上的代码,编译umts_sholes 工程?一个关于通过读写 fb0设备节点读写LCD屏的问题,现在高通的解决方案MSM8974/MSM8x26通过读写fb0 设备节点都不能完成读写LCD屏操作。完全弄清楚这个问题首先需要理解Tiny6410/Milestone 是如何通过读写fb0
2014-10-22 11:06:24
1381
转载 VS2008 配置 opengl nehe
http://download.csdn.net/download/seaboy100/250937http://wenku.baidu.com/link?url=RGTR9uZtrAsWB8oyYLQMWUjPB7AzT0KOqBB4Fge7pd9SYvU4UKLlfH05JesUNMUqY-GmosmHz7F_q2lvkbCoFqkBm6Q-hNBJxbOYaAKfUH3
2014-06-30 14:01:16
588
转载 各种总线match匹配函数
转载:http://blog.csdn.net/fanqipin/article/details/8153053 当向linux系统总线添加设备或驱动时,总是会调用各总线对应的match匹配函数来判断驱动和设备是否匹配,这些match函数之间都存在一定的差异,本文先对常用的match匹配函数进行讲解,以后会陆续添加新的内容。 一. 驱动和设备匹配过程常用数
2014-06-27 14:32:34
1242
转载 linux设备模型之i2c子系统
http://www.cnblogs.com/gdt-a20/archive/2011/05/20/2291985.html
2014-06-26 17:03:58
642
转载 glViewport()函数和glOrtho()函数的理解
http://www.cnblogs.com/yxnchinahlj/archive/2010/10/30/1865298.html在OpenGL中有两个比较重要的投影变换函数,glViewport和glOrtho。glOrtho是创建一个正交平行的视景体。 一般用于物体不会因为离屏幕的远近而产生大小的变换的情况。比如,常用的工程中的制图等。需要比较精确的显示。 而作为
2014-06-18 14:07:28
623
转载 VC6.0中OpenGL开发环境配置
转载:http://hi.baidu.com/sharebophar/item/f2b8a624446775cba4275a17首先简单介绍一下OpenGL: OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。 OpenGL官方网站(英文) http://www.opengl.org
2014-06-15 15:07:09
1036
转载 Linux Magic System Request Key Hacks
转载:https://www.kernel.org/doc/Documentation/sysrq.txthttps://www.ibm.com/developerworks/cn/linux/l-cn-sysrq/Linux Magic System Request Key HacksDocumentation for sysrq.c* What is t
2014-04-22 10:44:31
1262
转载 android vsync
http://blog.csdn.net/wanna_ku/article/details/7819742http://www.uml.org.cn/mobiledev/201301081.asp
2014-02-23 00:11:42
869
原创 Android systrace
Android systrace is very useful tools for debugging. Refer to Android official docs for more information.http://developer.android.com/tools/help/systrace.htmlhttp://developer.android.com/tools/d
2014-02-22 23:56:20
875
转载 futex
http://hi.baidu.com/pbskasefcqcfjxr/item/8f0271c5a07d7c52ac00ef12转载感言:发现一篇还不错的文章,跟大家分享一下。该文简单介绍了Futex机制,并有一些简单的例子,浅显易懂。Linux中的同步机制(一)--Futex引子在编译2.6内核的时候,你会在编译选项中看到[*] Enable futex support这一项,
2014-02-13 09:09:06
1294
转载 AMSS - Advanced Mobile Subscriber Software
http://blog.csdn.net/dulijun_98103207/article/details/5327225http://zhidao.baidu.com/link?url=Vfm4eR1GiMpDNABolRwa_VsG83MrWmvRAjvYPTaDT4BDn0Sb6lpWRew6mudnVWRcPD2r5s85Ok3lfCmCuaymmK在高通7系列的架构中
2014-02-13 09:07:53
1100
转载 sysconf
通过将 sysconf (_SC_PHYS_PAGES) 和 sysconf (_SC_PAGESIZE) 相乘,来确定物理内存的总量 (以字节为单位) 。#include #include #define ONE_MB (1024 * 1024)int main (void){ long num_procs; long page_size; long num_pages
2014-02-08 17:04:27
1798
原创 排序算法 之 快速排序
转载:http://www.cnblogs.com/morewindows/archive/2011/08/13/2137415.html快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考
2013-11-27 19:49:18
754
转载 I2C 时序分析
http://wenku.baidu.com/link?url=66aZ29qSblNsYSZf7aAZ-vK-vprGJuovVjUYt57O0zO-rJvC3aYY3X4ObNmh4WbTO3N_BkFpa8aYZ4jeX7corPwYhONvuJcjso6XVyd5M6u
2013-11-25 08:57:01
850
转载 ftrace
http://www.ibm.com/developerworks/cn/linux/l-cn-ftrace/http://blog.csdn.net/brfeng/article/details/8937410http://linux.cn/home-space-uid-2-do-blog-id-326.htmlhttp://lwn.net/Articles/370423/
2013-11-21 14:39:00
1059
转载 IDE, ATA, SCSI
关于硬盘的术语有一大堆,而且和很多别的计算机术语一样,界定不清,含义模糊。在这里简单澄清一下,但我不排除你看了之后会更糊涂。:^)IDE:Integrated Drive Electronics 的缩写。最早的硬盘接口,后来被 ATA 标准所取代,准确地讲应该是 ATA-1。所以有时也被称为 IDE/ATA,可参见其历史介绍。后来,几乎和ATA-1同时出现的 EIDE(Enhanced
2013-11-08 17:26:56
1045
原创 C++ 构造函数
C++ 构造函数C++ 中定义全局的对象,会引发该对象对应类及其父类的构造函数执行,因此可先于main() 函数执行。如:#include using namespace std;// Base class definationclass Quote {public: Quote() = default; Quote(const std::string &bo
2013-11-05 10:11:58
693
原创 C++ 运行时绑定
C++ 动态绑定C++ 的虚函数 + 派生类对象及派生类到基类的类型转换 共同完成了C++ 面向对象程序设计的三个基本概念之一--动态绑定。同样一段代码运行时才能决定运行的具体函数是哪个(相对于编译时就能确定而言),这个概念在C++ 中称为动态绑定或运行时绑定(run-time binding)。例如,定义下面一个接口用于打印书籍的总价格,这个接口既可以用于打印没有折扣的书籍价格(基类
2013-11-05 09:38:57
2162
原创 C++ 纯虚函数
纯虚函数:和普通的虚函数不一样,纯虚函数无需定义。通过在函数体的位置书写 =0 就可以将一个虚函数声明为纯虚函数。含有纯虚函数的类是抽象类(abstract base class)。抽象类负责定义接口,后续的其他类可以覆盖该接口。C++ 不允许创建一个抽象类的对象。看个例子://==================================================
2013-11-04 16:58:19
1616
原创 int or unsigned int
int 声明的变量默认是signed int 带符号的,如果需要无符号整型,必须明确声明 unsigned int.#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]) { int i = 2147483645; int j = 2147483649; ...
2013-10-31 08:45:47
882
原创 Android 堆栈攻击之 ARM 栈分析 + ARM汇编解读
想要劫持ARM 处理器,让它执行你想要的代码,从 ARM 栈攻击(Buffer overrun)入手,分析 ARM 栈溢出的原理,利用 ARM 汇编作为跳板指令,执行攻击程序。1. 栈 (Stack)介绍栈结构的文章网上很多,摘取一篇作为参考:http://hi.baidu.com/trical/item/585a24087f9b1a036c9048f0对ARM堆栈的理解 ...
2013-10-29 14:38:46
8742
原创 ROP 返回导向编程 攻击
之前工作中一直研究ARM 体系结构函数调用标准(AAPCS),分析栈中内存溢出对ARM 体系结构函数调用产生的影响。Android 的流行促进了hacker 对 Android root 的研究,最出名的莫过于 基于堆栈溢出攻击的 ROP gadgets ROOT方法。首先看下ROP的基本概念(摘自wiki):http://zh.wikipedia.org/wiki/%E8%B
2013-10-29 13:07:39
4324
原创 linux kernel setup_arch
在 linux kernel booting 阶段,asmlinkage void __init start_kernel(void)中很重要的一个步骤是 setup arch,setup_arch(&command_line);对于不同的体系结构,比如 ARM 和 MIPS,它们分别需要实现这个函数,在编译的时候链接进来。linux 内核公共部分并不关心各个体系结构的
2013-10-21 13:57:12
2100
转载 数据对齐 & 结构体的大小
数据对齐:如果一个变量的内存地址正好是它长度的整数倍,它就称作是自然对齐的。一些体系结构对对齐的要求非常严格。RISC系统,载入未对齐的数据会导致处理器陷入(一种可处理的错误,trap)。还有一些系统可以访问没有对齐的数据,只不过性能会下降。编译器会通过让所有的数据自然对齐来避免引发对齐问题。看一下结构体大小的计算:转载: http://blog.sina.com.cn/s
2013-10-14 15:26:57
867
原创 为什么 tcp/udp 的端口号可以重复
使用TCP/UDP 协议的上层应用程序可以分配重复的端口号,也就是说一个端口号1200可以同时出现在TCP、UDP中。看下 《TCP/IP 详解》中的这个图就很清楚了:
2013-10-14 14:04:39
11502
1
原创 C/C++ 二维数组、多维数组
严格来说,C/C++ 语言中并没有多维数组,通常所说的多维数组其实就是数组的数组。对于二维数组来说,常把第一个维度称作行,第二个维度称作列。看个例子,重点看下二维数组在内存中的存储:/* ============================================================================ Name : two-d
2013-10-14 13:37:57
973
原创 C 语言字符串结束符 '\0'
转载文章:http://blog.csdn.net/shuilan0066/article/details/7990362测试用例:/* ============================================================================ Name : string_size.c Author
2013-10-14 11:04:19
965
原创 char 溢出
char 类型的数据只有一个 Byte, 8bits,如果是unsigned char 的话,能表示的范围就是0 ~255,看下面的这个例子:/* ============================================================================ Name : char.c Author : qiang
2013-10-14 10:19:25
1146
原创 C 中for 循环语句执行顺序之我是汇编
for(i = 0; i 这样的for 语句可能再基础不过,可是理解不清楚还是容易犯错误。现在我用ARM 汇编指令分析一下这样的语句到底是怎么执行的(当你看C代码不知道代码到底是怎么执行的时候,要么查C标准,要么看熟悉的ARM 汇编)。测试用例:/* ===============================================================
2013-10-14 09:53:39
1810
转载 为什么通过sp & ~(THREAD_SIZE - 1) 可以获取到 task_struct
转载:http://blog.csdn.net/npy_lp/article/details/7292563http://blog.chinaunix.net/uid-26000137-id-3767114.htmlhttp://wenku.baidu.com/view/bec6fac089eb172ded63b7f6.html
2013-10-10 17:06:44
1873
转载 ARM 堆栈
堆栈严格来说应该叫做栈,栈(Stack)是限定仅在一端进行插入或删除操作的线性表。因此,对栈来说,可以进行插入或删除操作的一端称为栈顶(top),相应地,另一端称为栈底(bottom)。不含元素的空表称为空栈。由于堆栈只允许在一端进行操作,因而按照后进先出(LIFO-Last In First Out)的原理运作。 从栈顶的定义来看,栈顶的位置是可变的。空栈时,栈顶和栈底重合...
2013-10-10 15:47:36
1783
1
OpenEmbedded User Manual .pdf
2013-04-10
Linux.PowerPC详解-核心篇
2013-04-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅