
Linux Kernel
文章平均质量分 75
gowyz
这个作者很懒,什么都没留下…
展开
-
Linux内核Makefile文件
本文是/Documentation/kbuild/makefiles.txt的中文译稿Linux内核Makefiles本篇文章描述了Linux内核Makefiles。=== 目录 === 1 概述 === 2 角色分工 === 3 内核编译文件 --- 3.1 目标定义 --- 3.2 内嵌对象 - obj-y --- 3.3 可加载模块 - obj-m --- 3.4 导出符号 --- 3.5 库文件 - lib转载 2010-07-14 11:08:00 · 499 阅读 · 0 评论 -
size_t 与 ssize_t 类型
ssize_t是什么类型的?解释一:为了增强程序的可移植性,便有了size_t,它是为了方便系统之间的移植而定义的,不同的系统上,定义size_t可能不一样。 在32位系统上 定义为 unsigned int 也就是说在32位系统上是32位无符号整形。在64位系统上定义为原创 2011-07-14 16:20:10 · 26748 阅读 · 0 评论 -
Linux内核配置系统浅析
随着 Linux 操作系统的广泛应用,特别是 Linux 在嵌入式领域的发展,越来越多的人开始投身到 Linux 内核级的开发中。面对日益庞大的 Linux 内核源代码,开发者在完成自己的内核代码后,都将面临着同样的问题,即如何将源代码融入到 Linux 内核中,增加相应的 Li转载 2011-07-26 15:16:20 · 682 阅读 · 0 评论 -
KBuild MakeFile介绍
从Linux内核2.6开始,Linux内核的编译采用Kbuild系统,这同过去的编译系统有很大的不同,尤其对于Linux内核模块的编译。在新的系统下,Linux编译系统会两次扫描Linux的Makefile:首先编译系统会读取Linux内核顶层的Makefile,然后根据读到的内转载 2011-07-26 16:27:21 · 881 阅读 · 0 评论 -
Printk的loglevel和日志记录分析
http://blog.youkuaiyun.com/brfeng/archive/2008/08/05/2772502.aspx Printk的loglevel和日志记录分析(分析版本是ubuntu7.10,内核源码是2.6.23) 首先,printk有8个loglevel,定义在中,其中数值范围从0到7,数值越小,优先级越高。#define KERN_EMERG转载 2011-10-22 10:17:10 · 944 阅读 · 0 评论 -
Linux2.6 驱动设计――从 2.4 到 2.6
作者 Ray RTEMS版权所有,转载请注明来源ray@rtems" target="_blank">www.rtems.net,作者ray@rtems Linux 2.6 和 2.4 的比较我不想废话,总体来说 2.6 功能更强,但是资源消耗更多。 由于 2.6 内核在驱动框架,底层调用上和 2.4 内核有很多差别,所以本文主要是为程序员提供 2.4 到 2.6 迁移的指转载 2011-10-22 14:09:06 · 654 阅读 · 0 评论 -
linux debug 技术
对于任何一位内核代码的编写者来说,最急迫的问题之一就是如何完成调试。由于内核是一个不与特定进程相关的功能集合,所以内核代码无法轻易地放在调 试器中执行,而且也很难跟踪。同样,要想复现内核代码中的错误也是相当困难的,因为这种错误可能导致整个系统崩溃,这样也就破坏了可以用来跟踪它们的现 场。本章将介绍在这种令人痛苦的环境下监视内核代码并跟踪错误的技术。4.1 通过打印调试最普通的调试技术转载 2011-10-22 10:38:23 · 7699 阅读 · 0 评论 -
__init和__initdata
__ini和__initdata Linux在arch/$(ARCH)/kernel/vmlinux.lds中定义了.init段。__init和__initdata属性的数据都在这个段中,当内核启动完毕后,这个段中的内存会被释放掉供其他使用。 __init和__initdata宏定义如下: /* include/linux/init.c */ #define __init转载 2012-03-24 10:00:40 · 1102 阅读 · 0 评论 -
uboot-2011.12移植到S3C2440——MMU Cache/TLB/etc on/off functions
[html] view plaincopyprint?R1_I EQU (112) ;//Cache分开时,1 使能指令Cache,0 禁止使能Cache R1_C EQU (12) ;//禁止/使能数据Cache或整个Cache,1使能 不含Cache返回0,不能禁止Cache返回1 R1_A EQU (11) ;//是否支持内存访问时地址对齐检查系统转载 2012-04-19 22:08:02 · 1777 阅读 · 0 评论 -
嵌入式linux学习笔记 – 内存管理单元mmu
嵌入式linux学习笔记 – 内存管理单元mmuhttp://www.sectop.com/post/83.html转载 2012-04-20 08:43:08 · 1170 阅读 · 0 评论 -
MMU的初始化与开启实验
内存管理单元MMU负责虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查。 4种映射长度:段(1MB)、大页(64KB)、小页(4KB)、极小页(1KB)。 对每个段都可以设置访问权限。 大页、小页的每个子页(sub-page,即被映射页的1/4)都可以单独设置访问权限。 没有启动MMU时,CPU核、cache、MMU、外设等转载 2012-04-19 22:04:25 · 2265 阅读 · 0 评论 -
workqueue
什么是workqueue?Linux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数量,使得线程处理的事务能够并行化。workqueue是内核中实现简单而有效的机制,他显然简化了内核daemon的创建,方便了用户的编程, Workqueue机制的实现Workqueue机制中定转载 2012-06-15 09:07:08 · 754 阅读 · 0 评论 -
Linux 启动性能优化 - kernel篇
时间测量说到性能调整,第一件该干的的事就是看下时间到底消耗在哪里。俗话说的好:知己知彼,百战百胜;过度优化,万恶之首因此手头上要有称心如意的时间测试工具,方法。其实我是不太喜欢工具的,工具这东西可遇不可求,而且不如写代码顺手。1. PRINTK_TIME在内核编译选项中打开CONFIG_PRINTK_TIME,重新编译内核后,系统启动后就可以看到每一条printk前都有一个时间转载 2012-07-07 13:52:59 · 5930 阅读 · 1 评论 -
制作Linux映像和Kernel的启动
进入bootm命令分析之前,先来看看README里面的几段话,简单翻译之制作Linux映像============使用uboot时,内核通常生成的文件"zImage"或"bzImage"是没用的。较新一些的内核原码会生成"uImage", 这个可以为uboot使用。"uImage"全用了一个工具"tools/mkimage"来封装压缩后的映像文件,在其头部添加一些信转载 2012-07-12 14:46:09 · 1277 阅读 · 0 评论 -
linux pty,pts,tty的关系
终端解释:终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是Teletype的缩写。Teletype是最早出现的一种终端设备,很象电传打字机(或者说就是),是由Teletype公司生产的。基本概念:1> tty(终端设备的统称):tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过转载 2012-07-23 15:47:48 · 1188 阅读 · 0 评论 -
利用udev、sys动态创建linux设备结点
在Linux2.6内核中,devfs被认为是过时的方法,并最终被抛弃,udev取代了它。Devfs的一个很重要的特点就是可以动态创建设备结点。那我们现在如何通过udev和sys文件系统动态创建设备结点呢?下面通过一个实例,说明udev、sys动态创建设备结点的方法。注意代码中红色转载 2011-07-14 15:32:23 · 919 阅读 · 0 评论 -
关于嵌入式Linux系统的启动
#1 关于嵌入式系统的启动(SHARE FOR ALL)嵌入式Linux启动分为两个部分,系统引导与Linux启动。系统引导将完成Linux装入内存前,初始化CPU和相关IO设备,并将Linux调入内存的工作。系统引导主要由BootLoader实现。在BootLoader将Li转载 2011-07-11 17:03:15 · 699 阅读 · 0 评论 -
Makefile工具的使用
本文是/Documentation/kbuild/makefiles.txt的中文译稿Linux内核Makefiles本篇文章描述了Linux内核Makefiles。=== 目录 === 1 概述 === 2 角色分工 === 3 内核编译文件 --- 3.1 目标定义 --- 3.2 内嵌对象 - obj-y --- 3.3 可加载模块 - obj-m --- 3.4 导出符号 --- 3.5 库文件 - lib转载 2010-07-14 11:08:00 · 473 阅读 · 0 评论 -
制作Linux映像和Kernel的启动
进入bootm命令分析之前,先来看看README里面的几段话,简单翻译之制作Linux映像============使用uboot时,内核通常生成的文件"zImage"或"bzImage"是没用的。较新一些的内核原码会生成"uImage", 这个可以为uboot使用。"uImage"全用了一个工具"tools/mkimage"来封装压缩后的映像文件,在其头部添加一些信息以及crc32校验等。我们需要做如下几件事情:* 制作一个标准的内核映像文件"vmlinux"(这个是ELF格式的)* 将其转换为二进制映像转载 2010-10-15 14:00:00 · 4859 阅读 · 0 评论 -
Linux关于总线、设备、驱动的注册顺序
Linux关于总线、设备、驱动的注册顺序 设备挂接到总线上时,与总线上的所有驱动进行匹配(用bus_type.match进行匹配), 如果匹配成功,则调用bus_type.probe或者driver.probe初始化该设备,挂接到总线上 如果匹配失败,则只是将该设备挂接到总线上。+----> devices|||----------------------------------------------------------------------------转载 2011-01-03 14:55:00 · 938 阅读 · 0 评论 -
本机内存简介:操作系统,硬件限制及虚拟内存
本机内存简介:操作系统,硬件限制及虚拟内存 本文介绍操作系统和底层硬件给本机内存带来的限制。硬件限制本机进程遇到的许多限制都是由硬件造成的,而与操作系统没有关系。每台计算机都有一个处理器和一些随机存取存储器(RAM),后者也称为物理内存。处理器将数据流解释为要执行的指令,它拥有一个或多个处理单元,用于执行整数和浮点运算以及更高级的计算。处理器具有许多寄存器 —— 常快速的内转载 2011-06-07 15:36:00 · 1669 阅读 · 0 评论 -
Linux VFS
本文将描述Linux内核中的VFS(Virtual File System)。对于VFS这个概念其实非常容易理解,无非是一个抽象的统一接口:它定义了所有文件系统都支持的基本的和概念上的接口和数据结构,这样就在用户上层看来,无论对何种文件系统都拥有统一的接口,和操作方式。其实,对VFS的理解停留在这个层面上对于掌握其思想已经够用了,剩下要讨论的也就是它的实现和一些和进程和文件系统的外延部分了。转载 2011-06-07 16:55:00 · 6352 阅读 · 1 评论 -
全面的framebuffer详解
全面的framebuffer详解 一、FrameBuffer的原理 FrameBuffer 是出现在 2.2.xx 内核当中的一种驱动程序接口。 Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Linux抽象出 FrameBuffer这个设备来供用户态进程实现直接写屏。Frameb转载 2011-06-08 09:23:00 · 1041 阅读 · 0 评论 -
Linux内核的Oops
什么是Oops?从语言学的角度说,Oops应该是一个拟声词。当出了点小事故,或者做了比较尴尬的事之后,你可以说"Oops",翻译成中国话就叫做“哎呦”。“哎呦,对不起,对不起,我真不是故意打碎您的杯子的”。看,Oops就是这个意思。在Linux内核开发中的Oops是什么呢?其实,它和上面的解释也没什么本质的差别,只不过说话的主角变成了Linux。当某些比较致命的问题出现时,我们的Linux转载 2011-06-08 14:10:00 · 1199 阅读 · 0 评论 -
Linux Kernel Makefiles
目录本文档解说 Linux 内核的 Makefile。1、概述2、谁需要什么3、Makefile 语言4、从顶层传递下去的变量5、体系结构 Makefile 的结构5.1、体系结构特定的变量5.2、vmlinux 的创建变量5.3、后-vmlinux 目标5.4、强制性体系结构特定目标6、子目录 Makefile 的结构6转载 2011-06-09 11:58:00 · 828 阅读 · 0 评论 -
Linux内核OOPS调试
以前在写驱动的时候 ,遇到比较多的kernel panic oops 问题,然后 问一些 同事 ,比较多的回答都是加 printk,其实用 GDB 的中的一个功能是能很方便地调试这些问题的。整理了一下,把自己给一家培训学校写的课件 贴上来。•第一章 调试 • •1.1. 工作环境配置 • •1 )安装好编译用的 kernel-source :RedHat :kernel-devel-xxx.rpm转载 2011-06-08 14:09:00 · 15889 阅读 · 2 评论 -
等待队列和工作队列
对这2个容易混淆的队列做简单概念上的区别,至于怎么用,资料一大堆,不多说,等需要的时候再去找吧 等待队列在内核中有很多用途,尤其适合用于中断处理,进程同步及定时。我们在这里只说,进程经常必须等待某些事件的发生。例如,等待一个磁盘操作的终止,等待释放系统资源,或者等待时间经过固定的转载 2011-07-11 15:11:13 · 1285 阅读 · 0 评论 -
Linux系统中ARM体系的内存分页认识
Linux系统下ARM芯片内存分页的一个认知文档,阅读本文前认为读者了解MMU 目 录1. 概述... 52. LINUX的内存分页管理... 53. ARM的分页模式... 54. 内存分页相关的数据结构... 55. 重要的系统函数调用... 56.物理内存的定制... 57转载 2011-07-11 20:07:10 · 5288 阅读 · 0 评论 -
linux子系统分析及触摸屏驱动浅析
前段时间负责项目的触摸屏和光电鼠标,都是输入设备,看了会这方面的资料,结合项目代码,做点总结,基本上来自个人理解和互联网 在linux2.6以后,linux对输入设备进行了抽象,抽象出了输入子系统,该系统(Input子系统)是所有I/O设备驱动的中间层,为上层提供了一个统一的界面转载 2011-07-11 16:11:04 · 1433 阅读 · 0 评论 -
五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
当Adobe、Microsoft、Sun等一系列巨头开始表现出对”开源”的青睐时,”开源”的时代即将到来!最初来自:sinoprise.com/read.php?tid-662-page-e-fpage-1.html(遗憾的是这个链接已经打不开了),我基本未改动,只是进行了一些排版和整理。参考文献:http://www.fsf.org/licensing/licenses/现今转载 2012-08-14 09:24:39 · 967 阅读 · 0 评论