
LINUX
文章平均质量分 82
swlhmq
这个作者很懒,什么都没留下…
展开
-
arm linux kernel 从入口到start_kernel 代码分析
最近研究了一下arm linux的入口部分的代码, code不是太多,所以写了个笔记,详细的分析了每一条语句. 大家看看, 交流一下. 下面使正文. 由于内容比较多,分几层楼发吧 ____________________________________________________________________________________ 本文针对a转载 2014-11-13 00:45:59 · 659 阅读 · 0 评论 -
使用VIM阅读代码
1 ctags的使用管理文件中的tags(函数、变量、宏等),可实现tag的快速查找。tags的生成:ctags -R .,目录可指定,生成的tags使用相对路径,vi开启时自动加载当前目录下的tags文件。vi中使用tag xxx查找相应的tag。2 taglist的使用显示文件的tag list,在vi中使用Tlist开启。.vimrc中如下配置: 1原创 2014-12-23 23:16:59 · 670 阅读 · 0 评论 -
Linux Kernel - Debug Guide (Linux内核调试指南 )
linux内核调试指南一些前言作者前言知识从哪里来为什么撰写本文档为什么需要汇编级调试***第一部分:基础知识***总纲:内核世界的陷阱源码阅读的陷阱代码调试的陷阱原理理解的陷阱建立调试环境发行版的选择和安装安装交叉编译工具bin工具集的使用qemu的使用转载 2014-12-02 23:54:05 · 5857 阅读 · 0 评论 -
linux内核内存管理学习之二(物理内存管理--伙伴系统)
linux使用伙伴系统来管理物理内存页。一、伙伴系统原理1. 伙伴关系定义:由一个母实体分成的两个各方面属性一致的两个子实体,这两个子实体就处于伙伴关系。在操作系统分配内存的过程中,一个内存块常常被分成两个大小相等的内存块,这两个大小相等的内存块就处于伙伴关系。它满足 3 个条件 : 两个块具有相同大小记为 2^K 它们的物理地址是连续的 从同一个大块中拆分出来转载 2014-12-02 23:14:24 · 751 阅读 · 0 评论 -
Linux内核源代码漫游(code v1.0)
作 者: 赵炯Alessandro Rubini著, rubini@pop.systemy.it 赵炯 译,gohigh@shtdu.edu.cn 本章试图以顺序的方式来解释Linux源代码,以帮助读者对源代码的体系结构以及很多相关的unix特性的实现有一个很好的理解。目标是帮助对Linux不甚了解的有经验的C程序员对整个Linux的设计有所了解。这也就是为什么内核漫游转载 2014-12-02 23:07:49 · 1310 阅读 · 1 评论 -
linux内核内存管理学习之一(基本概念,分页及初始化)
一、概述1.虚拟地址空间内存是通过指针寻址的,因而CPU的字长决定了CPU所能管理的地址空间的大小,该地址空间就被称为虚拟地址空间,因此32位CPU的虚拟地址空间大小为4G,这和实际的物理内存数量无关。Linux内核将虚拟地址空间分成了两部分:一部分是用户进程可用的,这部分地址是地址空间的低地址部分,从0到TASK_SIZE,称为用户空间一部分是由内核保留使用的,这部分地址转载 2014-12-02 23:11:46 · 1176 阅读 · 0 评论 -
Linux Kernel - A Developer's Guide (如何成为一个Linux内核开发者)
你想成知道如何成为一个Linux内核开发者么?或者你的老板告诉你,“去为这个设备写一个Linux驱动。“这篇文档的目的,就是通过描述你需要经历的过程和提示你如何和社区一起工作,来教给你为达到这些目的所需要知道的所有知识。本文也尝试解释社区为什么这样工作的一些原因。内核几乎全是用C写成的,有一些架构相关的部分是用汇编语言写成的。熟练掌握C语言是内核开发的必备条件。汇编语言(任何架构)的了解不是必转载 2014-12-02 23:57:25 · 1322 阅读 · 1 评论 -
linux内核内存管理学习之三(slab分配器)
一、内核内存分配在linux内核中伙伴系统用来管理物理内存,其分配的单位是页,但是向用户程序一样,内核也需要动态分配内存,而伙伴系统分配的粒度又太大。由于内核无法借助标准的C库,因而需要别的手段来实现内核中动态内存的分配管理,linux采用的是slab分配器。slab分配器不仅可以提供动态内存的管理功能,而且可以作为经常分配并释放的内存的缓存。通过slab缓存,内核能够储备一些对象,供后续使用转载 2014-12-02 23:15:47 · 562 阅读 · 0 评论 -
[转] vi快捷键/键盘图
vim键盘图文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充!进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi转载 2014-11-04 22:34:06 · 694 阅读 · 0 评论 -
Linux中tty框架与uart框架之间的关系
来自用户空间的针对uart设备的操作意图是如何通过tty框架逐层调用到uart层的core驱动,进而又是如何调用到真实对应于设备的设备驱动的,本文中的对应设备驱动就是8250驱动,最近我想将这方面的内容搞清楚。在说明这一方面问题之前我们先要大致了解两个基本的框架结构,tty框架和uart框架。首先看看tty框架:在linux系统中,tty表示各种终端。终端通常都跟硬件相对应转载 2014-11-06 00:11:18 · 845 阅读 · 0 评论 -
Linux开机启动十步骤
开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP转载 2014-11-17 23:33:40 · 426 阅读 · 1 评论 -
arm linux 内核生成过程
1. 依据arch/arm/kernel/vmlinux.lds 生成linux内核源码根目录下的vmlinux,这个vmlinux属于未压缩,带调试信息、符号表的最初的内核,大小约23MB; 命令:arm-linux-gnu-ld -o vmlinux -T arch/arm/kernel/vmlinux.lds arch/arm/kernel/head.o init/built转载 2014-11-17 23:43:49 · 739 阅读 · 1 评论 -
Linux进程管理之task_struct结构体
内核源码:linux-2.6.38.8.tar.bz2 目标平台:ARM体系结构 进程是处于执行期的程序以及它所管理的资源(如打开的文件、挂起的信号、进程状态、地址空间等等)的总称。注意,程序并不是进程,实际上两个或多个进程不仅有可能执行同一程序,而且还有可能共享地址空间等资源。 Linux内核通过一个被称为进程描述符的task_struct结构转载 2014-12-15 22:08:54 · 621 阅读 · 0 评论