随笔 - 169,  文章 - 0,  评论 - 45,  阅读 - 225万

随笔分类 -  Linux

Makefile选项CFLAGS,LDFLAGS,LIBS
摘要:CFLAGS 表示用于 C 编译器的选项,CXXFLAGS 表示用于 C++ 编译器的选项。这两个变量实际上涵盖了编译和汇编两个步骤。CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,试着把以前安装的包的include目录加入到该变量中来。LDFLAGS:gcc 等编译器会用到的一些优化参数,也可以在里面指定库文件的位置。用法:LDFLAGS=-L/usr/lib -L/path/to/your/lib。每安装一个包都几乎一定的会在安 阅读全文
posted @ 2013-10-01 22:49 wanghetao 阅读(55131) 评论(1) 推荐(2) 编辑
Glibc 与 libc 的区别和联系
摘要:转http://blog.163.com/dragon_sjl@126/blog/static/100473339201107101517380/1、gcc(gnu collect compiler)是一组编译工具的总称。它主要完成的工作任务是“预处理”和“编译”,以及提供了与编译器紧密相关的运行库的支持,如libgcc_s.so、libstdc++.so等。Linux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30 阅读全文
posted @ 2013-08-05 23:25 wanghetao 阅读(3077) 评论(0) 推荐(0) 编辑
vimtutor
摘要:在shell命令行下输入vimtutor将出现本教程。================================================================================欢迎阅读 《 V I M教 程 》——版本1.5================================================================================vim 是一个具有很多命令的功能非常强大的编辑器。限于篇幅,在本教程当中就不详细介绍了。本教程的设计目标是讲述一些必要的基本命令,而掌握好这些命令,您就能够很容易将vim当作一个 阅读全文
posted @ 2013-06-23 23:00 wanghetao 阅读(530) 评论(0) 推荐(0) 编辑
Linux内核 哈希表的结构与实现
摘要:1.基本概念:散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。2. 常用的构造散列函数的方法散列函数能使对一个数据序列的访问过程更加迅速有效,通过散列函数,数据元素将被更快地定位。散列表的常用构造方法有: (1)直接定址法 (2)数字分析法 (3)平方取中法 (4)折叠法 (5)随机数法 (6)除留余数法3、处理冲突的方法 散列表函数设计好的情况下,可以减少冲突,但是无法完全避免冲突。常见有冲突处理方法有: (. 阅读全文
posted @ 2013-04-13 20:45 wanghetao 阅读(13099) 评论(2) 推荐(2) 编辑
深入分析 Linux 内核链表
摘要:一、链表数据结构简介链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链 表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序 性和组织链的空间损失。通常链表数据结构至少应包含两个域:数据域和指针域,数据域用于存储数据,指针域用于建立与下一个节点的联系。按照指针域的组织以及各个节点之间的联系形式,链表又可以分为单链表、双链表、循环链表等多种类型,下面分别给出这几类常见链表类型的示意图:1. 单链表图1 单链表 ... 阅读全文
posted @ 2013-04-12 15:29 wanghetao 阅读(533) 评论(0) 推荐(1) 编辑
什么是ACPI,什么是APIC
摘要:ACPI和APIC有什么关系?很多人问道了什么ACPI,什么是APIC,他们有没有关系?名字这么相近。下面给出我对其的一些理解,具体的解释可以查看内核文档库的内核参数文件:/usr/src/`uname -r`/Documents/kernel-parameters.txtACPI就是Advanced Configuration and Power Interface的缩写,意思是“高级配置与电源接口”。这是英特尔、微软和东芝共同开发的一种电源管理标准。ACPI可实现以下功能: 1、用户可以使外设在指定时间开关; 2、使用笔记本电脑的用户可以指定计算机在低电压的情况下进入低功耗状态,以... 阅读全文
posted @ 2013-04-04 11:31 wanghetao 阅读(5087) 评论(0) 推荐(1) 编辑
Linux内核用到的GCC扩展 [转]
摘要:GNC CC是一个功能非常强大的跨平台C编译器,它对C 语言提供了很多扩展,这些扩展对优化、目标代码布局、更安全的检查等方面提供了很强的支持。本文把支持GNU 扩展的C 语言称为GNU C。 Linux 内核代码使用了大量的 GNU C 扩展,以至于能够编译 Linux 内核的唯一编译器是 GNU CC,以前甚至出现过编译 Linux 内核要使用特殊的 GNU CC 版本的情况。本文是对 Linux 内核使用的 GNU C 扩展的一个汇总,希望当你读内核源码遇到不理解的语法和语义时,能从本文找到一个初步的解答,更详细的信息可以查看gcc.info。文中的例子取自 Linux 2.4.18。.. 阅读全文
posted @ 2013-02-24 18:16 wanghetao 阅读(574) 评论(0) 推荐(1) 编辑
/proc文件系统
摘要:摘要:Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、 改变内核设置的机制。尽管在各种硬件平台上的 Linux 系统的 /proc 文件系统的 基本概念都是相同的,但本文只讨论基于 intel x86 架构的 Linux /proc 文件系 统。/proc --- 一个虚拟文件系统/proc 文件系统是一种内核和内核模块用来向进程 (process) 发送信息的机制 (所以叫做 /proc)。这个伪文件系统让你可以和内核内部数据结构进行交互,获取 有关进程的有用信息,在运行中 (on the fly) 改变设置 (通过改变内核参数)。 与其他文件系统不同,/ 阅读全文
posted @ 2013-01-15 15:25 wanghetao 阅读(316) 评论(0) 推荐(1) 编辑
Linux Makefile教程
摘要:转自陈皓 (CSDN)概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,ma 阅读全文
posted @ 2012-06-04 11:28 wanghetao 阅读(442) 评论(0) 推荐(1) 编辑
用户空间和内核空间传递数据:get_user;put_user;copy_to_user;copy_from_user
摘要:在从事Linux Kernel开发的过程中,user_app和kernel之间传递数据时不能使用memcpy()函数,必须使用copy_to/from_kernel或者是put/get_user。原因是kernel和user_app内存不能直接互访。1. put_userNameput_user -- Write a simple value into user space.Synopsisput_user ( x, ptr);ArgumentsxValue to copy to user space.ptrDestination address, in user space.ContextU 阅读全文
posted @ 2012-06-02 21:04 wanghetao 阅读(26090) 评论(0) 推荐(3) 编辑
/proc/devices和/dev的关系
摘要:/proc/devices/下的设备是驱动程序生成的,它可产生一个major供mknod作为参数。/dev/下的设备是通过mknod加上去的,用户通过此设备名来访问驱动。The following script,scull_load, is part of thesculldistribution. The user of a driver that is distributed in the form of a module can invoke such a script from the system'src.localfile or call it manually whene 阅读全文
posted @ 2012-06-02 20:02 wanghetao 阅读(9993) 评论(0) 推荐(1) 编辑
Linux struct file结构
摘要:struct file结构体定义在/linux/include/linux/fs.h(Linux 2.6.11内核)中,其原型是:struct file { /* * fu_list becomes invalid after file_free is called and queued via * fu_rcuhead for RCU freeing */ union { struct list_head fu_list; struct rcu_head fu_rcuhead; } f_u; struct path f_path;#define f_dentry f_path.dentry# 阅读全文
posted @ 2012-05-28 17:35 wanghetao 阅读(10045) 评论(0) 推荐(2) 编辑
Linux struct inode结构
摘要:*索引节点对象由inode结构体表示,定义文件在linux/fs.h中*/struct inode { struct hlist_node i_hash; /* 哈希表 */ struct list_head i_list; /* 索引节点链表 */ struct list_head i_dentry; /* 目录项链表 */ unsigned long i_ino; /* 节点号 */ atomic_t i_count; /* 引用记数 */ umode_t i_mode; /* 访问权限控制 */ unsi... 阅读全文
posted @ 2012-05-28 17:33 wanghetao 阅读(8909) 评论(0) 推荐(2) 编辑
Linux中的file_operation结构
摘要:Character Device DriversThe file_operations Structure The file_operations structure is defined in linux/fs.h, andholds pointers to functions defined by the driver that perform various operations on the device. Each field of thestructure corresponds to the address of some function defined by the dri. 阅读全文
posted @ 2012-05-28 15:43 wanghetao 阅读(3109) 评论(0) 推荐(1) 编辑
Linux中进行模块操作的命令
摘要:Linux是基于模块的,所有的驱动都是模块化的:管理模块的命令:1、列出系统中所有已经加载的模块的大小与名称等:lsmod或者cat/proc /modulesty@tonylinux:~$lsmodModuleSizeUsedbyrfcomm402160l2cap262445rfcommbluetooth500204rfcomm,l2capppdev92200radeon1160001........ty@tonylinux:~$cat/proc/modulesrfcomm402160-Live0xf8dee000l2cap262445rfcomm,Live0xf8DB2000bluetoo 阅读全文
posted @ 2012-05-27 20:41 wanghetao 阅读(2190) 评论(0) 推荐(1) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示