自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

转载 转载_linux内核分析(某位大牛的文章)

启动    当PC启动时,Intel系列的CPU首先进入的是实模式,并开始执行位于地址0xFFFF0处的代码,也就是ROM-BIOS起始位置的代码。BIOS先进行一系列的系统自检,然后初始化位于地址0的中断向量表。最后BIOS将启动盘的第一个扇区装入到0x7C00,并开始执行此处的代码.这就是对内核初始化过程的一个最简单的描述。    最初,Linux核心的最开始部分是用8086汇

2013-08-29 15:11:06 20154 1

转载 转载_Linux 运行时内核分析

我们基于RH9 内核从两部分来分析Linux系统动态运行过程 一: 系统初始化开始,Linux进入保护模式,初始内存系统、中断系统、文件系 统等,直到创建第一个用户进程。 二: 用户进程通过系统调用主动进入内核,CPU 接受中断请求被动执行各种中断服务。 第一部分 系统初始化 进入保护模式 Arch/i386/boot/Setup.s gdt: .fil

2013-08-29 13:54:10 1808

转载 转载_内核启动详解

第一部分 背景知识简介  几乎所有编写代码的人都有这种体会:如今在计算机这个行业中,许多技术不是你不懂,而是你不知道。所以,在分析之前有些背景知识是必须要知道的。  一. 硬盘结构简介  1. 硬盘参数释疑  到目前为止, 人们常说的硬盘参数还是古老的 CHS (Cylinder/Head/Sector)参数. 那么为什么要使用这些参数, 它们的意义是什么? 它们的

2013-08-29 13:35:08 696

转载 转载_Linux 的多线程编程的高效开发经验

背景Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别。不注意这些 Linux 上的一些开发陷阱,常常会导致程序问题不穷,死锁不断。本文中我们从 5 个方面总结出 Linux 多线程编程上的问题,并分别引出相关改善的开发经验,用以避免这些的陷阱。我们希望这些经验可以帮助读者们能更好更快的熟悉 Linux 平台的多线程编程。

2013-08-29 13:26:32 691

转载 转载_获取Linux内核未导出符号的几种方式

从Linux内核的2.6某个版本开始,内核引入了导出符号的机制。只有在内核中使用EXPORT_SYMBOL或EXPORT_SYMBOL_GPL导出的符号才能在内核模块中直接使用。然而,内核并没有导出所有的符号。例如,在3.8.0的内核中,do_page_fault就没有被导出。   而我的内核模块中需要使用do_page_fault,那么有那些方法呢?这些方法分别有什么优劣呢? 

2013-08-28 10:31:18 975

转载 转载_Linux内核调试方法

kdb:只能在汇编代码级进行调试;  优点是不需要两台机器进行调试。  gdb:在调试模块时缺少一些至关重要的功能,它可用来查看内核的运行情况,包括反汇编内核函数。  kgdb:能很方便的在源码级对内核进行调试,缺点是kgdb只能进行远程调试,它需要一根串口线及两台机器来调试内核(也可以是在同一台主机上用vmware软件运行两个操作系统来调试)printk() 是调试内核代码时最常

2013-08-27 16:00:34 2275

转载 转载_Linux内核延时研究与函数代码分析

jiffies 以前提过,但是用来计算函数调用的时间确实显得粒度太大(一个 jiffies = 1ms or 4ms )gettimeofday (用户态)和do_gettimeofday(内核态)用下来感觉不错。粒度可以达到us级别。试验过一个while 循环unsigned long i =0xffffffff; while(i--);按代码来讲,这个时间应该不算短,测出来的时间却是0. 估计

2013-08-27 10:18:32 691

转载 转载_如何得知深睡眠等各类进程的函数堆栈 -- DW-SW等

1.               Abstract.2.               Introduction我们开发的时候很痛苦的一件事情就是在进程进入深睡眠以后,没有调试手段,往往这种问题还都是一些很难解的概率性难题,而此时又不知道这个进程到底在什么地方深睡眠了。针对此问题,我开发了相应的驱动(请参考文章后附录的完整源代码)和应用 tool ,大家使用该方法就能够将一个进程的函

2013-08-27 10:17:16 3178

转载 转载_kdump的出现(基于嵌入式Linux的内核错误跟踪技术)

随着嵌入式Linux系统的广泛应用,对系统的可靠性提出了更高的要求,尤其是涉及到生命财产等重要领域,要求系统达到安全完整性等级3级以上[1],故障率(每小时出现危险故障的可能性)为10-7以下,相当于系统的平均故障间隔时间(MTBF)至少要达到1141 年以上,因此提高系统可靠性已成为一项艰巨的任务。对某公司在工业领域14 878个控制器系统的应用调查表明,从2004 年初到2007 年9月底

2013-08-26 19:51:05 1692

转载 转载_移植LINUX ARM篇

初学嵌入式Linux,感觉需要学习的东西太多了。把学习过程中的收获和问题记录在这里,算是一份经验吧。2006-08-10  前面利用开发板带的现成的东西step by step让Linux 2.4.19在开发板上跑起来了,对于开发的流程也有了一定的认识。现在想对每一步进行详细深入的探讨,好好学习一下,把笔记记录下来,省得忘记了。有些内容是从看过的书中摘要过来的,大部分是自己实践后的心得

2013-08-26 19:47:57 2185

转载 转载_Linux 内核驱动--阻塞与非阻塞机制及Poll/Select分

阻塞操作是指,在执行设备操作时,若不能获得资源,则进程挂起直到满足可操作的条件再进行操作。非阻塞操作的进程在不能进行设备操作时,并不挂起。被挂起的进程进入sleep状态,被从调度器的运行队列移走,直到等待的条件被满足。  在Linux驱动程序中,我们可以使用等待队列(wait queue)来实现阻塞操作。wait queue很早就作为一个基本的功能单位出现在Linux内核里了,它以队列为基

2013-08-23 11:20:05 651

转载 转载_理解poll_wait

poll_wait()是用在select系统调用中的. 一般你的代码会有一个struct file_operations结构, 其中fop->poll函数指针指向一个你自己的函数, 在这个函数里应该调用poll_wait() 当用户调用select系统调用时,select系统调用会 先调用 poll_initwait(&table); 然后调用你的 fop-

2013-08-23 10:49:49 667

转载 转载_ARM-Linux内核驱动加载过程思路

Ø      取得驱动C文件并建立相应文件夹实现内核添加(以编译测试驱动程序为例)1)       在相应的文件夹下面建立驱动文件夹将C程序放入该驱动文件夹下2)       创建或下载驱动C文件的头文件3)       编辑该驱动集合(该驱动模块)下面的Makefile  添加编译选项#===============driver_test=========

2013-08-16 16:46:17 971

转载 转载_Linux下patch的制作和应用

转自:http://blog.chinaunix.net/u3/100239/showart_1984963.html首先介绍一下diff和patch。在这里不会把man在线文档上所有的选项都介绍一下,那样也没有必要。在99%的时间里,我们只会用到几个选项。所以必须学会这几个选项。1、diff    --------------------    NAME         

2013-08-16 16:39:38 495

转载 转载_Linux下如何查看系统启动时间和运行时间

1.uptime命令输出:16:11:40 up 59 days, 4:21, 2 users, load average: 0.00, 0.01, 0.002.查看/proc/uptime文件计算系统启动时间cat /proc/uptime输出: 5113396.94 575949.85第一数字即是系统已运行的时间5113396.94 秒,运用系统工具date即可算出系统

2013-08-15 19:42:42 746

转载 转载_Linux驱动开发必看

分类: LINUX详解神秘内核转载于http://www.it168.com  来源:Chinaunix 作者:Chinaunix  【IT168 技术文档】在开始步入Linux设备驱动程序的神秘世界之前,让我们从驱动程序开发人员的角度看几个内核构成要素,熟悉一些基本的内核概念。我们将学习内核定时器、同步机制以及内存分配方法。不过,我们还是得从头开始

2013-08-14 16:18:20 928

转载 转载___attribute__机制介绍

1. __attribute__GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)__attribute__前后都有两个下划线,并且后面会紧跟一对原括弧,括弧里面是相应的__attribu

2013-08-14 11:44:20 841

转载 转载_进程、轻量级进程(LWP)、线程

进程、轻量级进程(LWP)、线程进程、轻量级进程(LWP)、线程进程:程序执行体,有生命期,用来分配资源的实体线程:分配CPU的实体。  用户空间实现,一个线程阻塞,所有都阻塞。  内核实现,不会所用相关线程都阻塞。用LWP实现,用线程组表示这些线程逻辑上所属的进程。进程描述符进程描述符(简称pd, process descriptors),结构

2013-08-14 09:42:34 7731

转载 转载_linux 两种方式 创建内核线程

kernel_thread()、daemonize()------------------------------------------------------int thread_func(void *arg){    /*      * 设置线程名 -- thread_name,ps可以看到的线程名     * 如果不使用daemonize设置内核线程名,并且kern

2013-08-13 16:41:55 1873

转载 转载_开漏(open drain)和开集(open collector)

在电路设计时我们常常遇到开漏(open drain)和开集(open collector)的概念。 所谓开漏电路概念中提到的“漏”就是指MOS FET的漏极。同理,开集电路中的“集”就是指三极管的集电极。开漏电路就是指以MOS FET的漏极为输出的电路。一般的用法是会在漏极外部的电路添加上拉电阻。完整的开漏电路应该由开漏器件和开漏上拉电阻组成。如图1所示:    组

2013-08-13 13:37:04 835

转载 转载_uboot传递内核参数全解析

一:启动参数的传递过程 启动参数是包装在数据结构里的,在linux kernel启动的时候,bootloader把这个数据结构拷贝到某个地址, 在改动PC跳向内核接口的同时,通过通用寄存器R2来传递这个地址的值,下面这句话就是uboot跳向linux kernel的代码(bootm命令) theKernel (0, bd->bi_arch_number, bd->bi_boot_p

2013-08-12 20:19:22 619

转载 转载_linux 串品驱动的 uart_port api

基于内核版本2.6.16.14. 写于(美国)东部时区 2006年05月05日 22点49分 .   下层串行API   --------------------   $Id: driver,v 1.10 2002/07/22 15:27:30 rmk Exp $本文简要介绍了新的串行驱动的某些方面。这并不完整,有任何问题请联系在serial_amba.c可

2013-08-09 16:00:26 775

转载 转载_Linux procfs开发指南(部分翻译并做了精简)

Linux Kernel Procfs Guide Chapter 1. Introduction     /proc文件系统(procfs)在linux内核中是一个特殊的文件系统,是一个虚拟的文件系统,只存在于内存中     注:proc/sys是sysctl文件,不属于procfs Chapter 2. Managing procfs entries     要使用proc

2013-08-09 14:24:38 1158

转载 转载_LINUX内核中的xx_initcall初始化标号

LINUX内核中有很多的初始化指示标志postcore_initcall(), arch_initcall(), subsys_initcall(), device_initcall(), etc. 这些起什么作用呢?查阅源代码(android goldfish-2.6.29)并搜索网上相关文章,对此做一总结。初始化标号先看这些宏的定义(定义在文件include/linux/ini

2013-08-09 13:43:55 555

转载 转载_linux设备驱动:poll和sellct

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx接下来会讲系统调用select在驱动中的实现,如果对系统调用select不太懂的话,建议先看书补习一下。xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

2013-08-05 18:38:40 543

转载 转载_15个步骤创立技术公司,并收获千万用户(一)

6Wunderkinder成立于2010年,是一家位于柏林的德国初创企业,公司创建一年后获得了Skype创始人设立的泛欧投资机构 Atomico投资420万美元。他们最早的产品是跨平台、基于云的任务管理工具——Wunderlist,用户可以使用它来制作详细的待办清单,并可以在朋友及同事之间分享这些代办事宜。随后该公司还发布了名为Wunderkit的项目管理软件,被认为是项目管理软件中的一匹黑马;然

2013-08-02 12:04:43 1148

转载 转载_i2c 知识点总结

0、 总线端:主要是mach-smdkc110.c和i2c_s3c2410.c两个文件:主要完成资源的注册,在s3c24xx_i2c_probe中创建adapter和client后总线端退出    设备端:主要是用户写的部分 通过i2c_add_driver 匹配i2c_driver的id_table中的name和 client中的name后,进一步初始化client并调用i2c_driv

2013-08-01 16:59:29 886

Win32平台如何配置才能使用Boost、ACE、CppUnit

Win32平台如何配置才能使用Boost、ACE、CppUnit

2012-10-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除