Linux模块编程 系列之二 熟悉特定的宏
这些宏定义在linux/module.h下 MODULE_AUTHOR(name) 定义驱动的编程者,name为string MODULE_LICENSE(license) 定义驱动的license,一般为GPL,或相关公司的license MODULE_DESCRIPTION(desc) 对驱动程序的描述,string MODULE_SUPPORTED_DEVICE(name) 驱动程序所支持的设备,string MODULE_PARM(var,type) 提供在运行时通过控制台将参数传递给模块 (在...
Linux模块编程 系列之一 编译与安装
1.编译相关的问题 为了区别与应用程序,内核模块在编译的时候都需要定义如下几个宏 __KERNEL__ MODULE 由于内核中有很多inline限定的函数,所以在编译的时候,应该对编译器的优化机制有所了解。GCC通过带参数-On(0,1,2,3,4)告知 编译器优化等级。如果不做优化,那么inline将不起作用;但在-O2以上,GCC主动的将某些非inline函数内联,也将导致问题,所以编译模块 时,应将优化等级设在-O 与 O2之间,以确保inline特性的正确性。 如果模块由多个.c文件实现,最终...
LSE 配置备忘
摸索,总结出LSE(Liberty Sim Envi)编译可视化的一中方法。 本文是用LSE自带的IA64的例子来做的。 首先我是使用标准的ls-build、ls-link来做,build可以通过,但link阶段报告visualizer相关的函数找不到。注释所有visualizer相关的函数后link通过,生成Xsim可执行文件,可以在命令行下跑IA64的程序了。 是什么原因visualizer相关函数找不到呢?于是查看了下LSEvisualizer.pdf,原来LSE支持可视化编译执行,那么visua...
Linux 物理内存 管理 的理解
唉,我真笨,终于明白了Linux物理内存的模式。 总是想,物理内存还得内存管,一旦要分配新数据结构,就成了鸡蛋问题。 心得如下: 首先,假设我们有4G+的物理内存。 Linux下物理内存用page结构管理。理解后抽象出的简化page结构如下: struct page page { struct page * next;/* 下一个页内存区*/ long used;/* 是否被使用 */ }; /* sizeof(page) = 8 bytes */ -------------------- 在系统初始化...
linux 系统密码 破解
(一)Linux 1.在grub选项菜单按E进入编辑 2.编辑kernel那行 /init 1 (或/single) 3.按B重启 4.进入后执行下列 root@#passwd root (设置root的密码) Enter new unix password:输入新的密码 root@#init 6 (二)debian linux 系统密码破解 1.在grub选项菜单Debian GNU/Linux,...(recovery mode),按e进入编辑模式 2.编辑kernel那行最后面的 ro singl...
Ubuntu 安装 LumaQQ
1,到LumaQQ的官网下载LumaQQ 2006,将获得的tar包解压缩到/opt目录下 sudo tar zxvf lumaqq_2006M2-linux_gtk2_x86_no_jre.tar.gz C /opt/ sudo chmod R 755 /opt/LumaQQ 2,创建一个启动配置文件LumaQQ.desktop,右键鼠标,选择创建启动器, 并将其内容编辑如下: [Desktop Entry] Name=LumaQQ Comment=LumaQQ 2006 Exec=/opt/Luma...
Ubuntu 编译源码包
以tree实用程序(以树型结构获取目录树)为例,介绍Ubuntu中如何管理源码包,包括查询,获取,编译源码包,直至。 1) 在获取源码包之前,确保在软件源配置文件/etc/apt/sources.list中添加了deb-src项 2) 使用如下获取tree源码包的详细信息: sudo apt-cache showsrc tree 这用来查询当前镜像站点中是否有该源码包。 3)源码包中通常包含3个文件,分别以dsc,orig.tar.gz和diff.gz为后缀名。使用apt-get source命令来获取...
gcc 常用参数 和 环境变量小结
Command-Line Options 命令行 -c Preprocess, compile, and assemble only (i.e., don't link). 预处理(生成.i,用完删除)、编译、(生成.s,用完删除),汇编(生成.o),不连接(不生成可执行文件)。Btw,貌似很多地方可以用-pipe直接通过管道,不生成临时文件,加快编译 -C Leave comments in when preprocessing. 预处理时不去除注释(结合其他会留下预处理输出的参数使用,如-E) -D...
linux 学习笔记 整理
linux目录架构 / 根目录 /bin 常用的命令 binary file 的目錄 /boot 存放启动时必须读取的档案,包括核心 (kernel) 在内 /boot/grub/menu.lst GRUB设置 /boot/vmlinuz 内核 /boot/initrd 核心解壓縮所需 RAM Disk /dev 系统周边设备 /etc 系统相关设定 /etc/DIR_COLORS 设定颜色 /etc/HOSTNAME 设定用户的节点名 /etc/NETWORKING 只有YES标明网络存在 /etc/...
Linux 守护进程
守护进程最重要的特性是后台运行。在这一点上DOS下的常驻内存程序TSR与之相似。其次,守护进程必须与其运行前的环境隔离开来。这些环境包括未关闭的描述符,终端,会话和进程组,工作目录以及创建掩模等。这些环境通常是守护进程从执行它的父进程(特别是shell)中继承下来的。最后,守护进程的启动方式有其特殊之处。它可以在Linux系统启动时从启动脚本/etc/rc.d中启动,可以由作业规划进程crond启动,还可以由用户终端(通常是shell)执行。 1. 在后台运行。 为避免挂起控制终端将Daemon放入后台...
Linux 使用 diff/patch 为代码打补丁
1.diff的 diff可以完成比较功能,生成补丁 格式::diff [option] oldfile newfile 常用的option选项有: -r 对目录进行递归处理 -u 输出统一格式,diff有传统和统一两种格式,现在一般使用统一格式,比较而言,统一格式生成的文件大,但包含了更多的信息,有利于阅读与定位 -N 补丁中包含整个新文件 -a 补丁中包含二进制文件 缺省时,diff向标准输出打印,所以一般都重定向到文件并以patch为后缀,也就是所谓的补丁文件 举例: /* oldfile hell...
RedHat Linux AS4 安装 ORACLE10g
由于公司新购置一批高性能服务器,于是我利用职务之便,拉出一台来学习我心爱的LINUX,嘿嘿。经过将近一个星期的时间,收入颇丰,拿出来给广大红友们分享我的快乐。 上一次发布了一个关于LINUX 系统主机远程控制和操作的文章,这次要发布的是在RedHat Linux AS4 上Oracle10g的文章,都可以作为LINUX系统学习的资料,希望大家能够接受 。 需要说明的一点是,这个文档里面的所有命令,配置都可以直接粘贴到相应的地方使用。 再有就是这篇文档有很多资料来自互联网,感谢互联网和互联网背后的人们。...