![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
且听风雨999
这个作者很懒,什么都没留下…
展开
-
arm 嵌入式LINUX启动过程
一位大师级的人物写的,不看要后悔的哟!! LINUX启动过程首先,porting linux的时候要规划内存影像,如小弟的系统有64m SDRAM, 地址从0x 0800 0000 -0x0bff ffff,32m flash,地址从0x0c00 0000-0x0dff ffff. 规划如下:bootloader,...原创 2010-07-11 00:44:30 · 124 阅读 · 0 评论 -
ibm developer blog
Linux slab 分配器剖析http://www.ibm.com/developerworks/cn/linux/l-linux-slab-allocator/index.html浅谈 Linux 内核开发之网络设备驱动http://www.ibm.com/developerworks/cn/linux/l-cn-networkdriver/index.html...原创 2010-10-10 10:05:20 · 89 阅读 · 0 评论 -
Linux Kernel 2.6进程调度的分析(揭示了几乎所有2.6调度的东西)
第一章 Kernel 2.4存在的不 足根据对2.4进程调度的分析,我们总结出看出2.4内核总的特点就是:内核调度简单有效内核不可抢占但是经过对2.4内核的分析,我们也明显看到了它的缺点:1.调度算法复杂度是O(n),与系统负荷关系较大。而且调度算法在设计上也有缺陷,比如:(1) 2.4进程调度只设置了一个进程就绪队列,这样有的进程用完了自己时间片以后还要呆在就绪进程队...原创 2010-10-13 20:16:00 · 196 阅读 · 0 评论 -
执行程序时内存管理的情景
do_execve->open_exec->dentry_open.... f->f_dentry = dentry;....f->f_op = fops_get(inode->i_fop);....设置f->f_dentry和f->f_op,我们考察执行ext2的情景,因此f_op将是ext2_file_operations->search_binary_h...原创 2010-10-13 21:07:52 · 134 阅读 · 0 评论 -
zImage / vmlinux / Image生成的流程图
SRC_TREE :=./HEADER_PATH :=arch/arm/boot/compressedBOOT_PATH :=arch/arm/boot/KERNEL_PATH :=arch/arm/kernel----------------------------------------------------------------------...原创 2010-10-13 21:11:29 · 148 阅读 · 0 评论 -
linux软中断的实现
中断服务程序往往都是在CPU关中断的条件下执行的,以避免中断嵌套而使控制复杂化。但是CPU关中断的时间不能太长,否则容易丢失中断信号。为此, Linux将中断服务程序一分为二,各称作“Top Half”和“Bottom Half”。前者通常对时间要求较为严格,必须在中断请求发生后立即或至少在一定的时间限制内完成。因此为了保证这种处理能原子地完成,Top Half通常是在CPU关中断的条件下...原创 2010-10-13 21:12:24 · 85 阅读 · 0 评论 -
Linux设备模型 学习总结
看LDD3中设备模型一章,觉得思维有些混乱。这里从整体的角度来理理思路。本文从四个方面来总结一些内容:1.底层数据结构:kobject,kset.2.linux设备模型层次关系:bus_type,device,device_driver.3.集成:PCI设备驱动模型实例及设备,设备驱动注册源码的简单分析.4.面向对象的思想在linux设备模型中的应用分析. 一、底层...原创 2010-10-13 21:21:33 · 109 阅读 · 0 评论 -
linux中ELF加载过程分析
linux中ELF加载过程分析 - 博青港湾-技术空间 - CSDNBlog 收藏导读: sys_execve | - do_execve|| - search_binary_handler |- linux_binfmt= elf_format |- elf_format-> loa...原创 2010-10-19 11:16:38 · 286 阅读 · 0 评论 -
linux 2.6进程与线程
1 > 线程和进程的差别线程机制支持并发程序设计技术,在多处理器上能真正保证并行处理。而在linux实现线程很特别,linux把所有的线程都当作线程实现。linux下线程看起来就像普通进程(只是该进程和其他进程共享资源,如地址空间)。上述机制与Microsoft windows或是Sun Solaris实现差异很大。这些系统提供专门支持线程机制(轻量级进程)。在现代操作系...原创 2010-11-02 15:09:30 · 127 阅读 · 0 评论 -
linux 2.6线程创建源码分析
上章讲到线程,现在对线程创建的代码流程分析下。来一步一步揭开她神秘的面纱 linux内核创建线程函数 kernel_thread(),最终会调用do_fork(). 前面谈到线程也是用task_struct结构表示它拥有的信息,只是是共享进程的资源。 根据clone_flags标志,来调用clone()创建"线程",表示共享内存、共享文件系统访问计数、共享文件描述符表,以及共享信...原创 2010-11-02 15:09:57 · 219 阅读 · 0 评论 -
转载--Linux 2.6内核I/O端口资源管理
申明:本文章是对“Linux对I/O端口资源的管理”该文章进行总结,从2.4内核I/O端口资源管理经过少量的更改成2.6内核I/O资源管理有些体系结构的CPU(如,PowerPC、m68k等)通常只实现一个物理地址空间(RAM)。在这种情况下,外设I/O端口的物理地址就被映射到 CPU的单一物理地址空间中,而成为内存的一部分。此时,CPU可以象访问一个内存单元那样访问外设I/O端口,而不需...原创 2010-11-02 15:39:07 · 196 阅读 · 0 评论 -
linux面试题参考答案(2)
二.单项选择题:1. 下面的网络协议中,面向连接的的协议是: A 。A 传输控制协议 B 用户数据报协议 C 网际协议 D 网际控制报文协议2. 在/etc/fstab文件中指定的文件系统加载参数中, D 参数一般用于CD-ROM等移动设备。A defaults B sw C rw和ro D noauto3. Linux文件权限一共10位长度,分成四段,第三段表示的内容是 C ...原创 2010-06-15 21:29:49 · 200 阅读 · 0 评论 -
linux面试题参考答案(1)
linux面试题参考答案 一.填空题:1. 在Linux系统中,以 文件 方式访问设备 。2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。3. Linux文件系统中每个文件用 i节点 来标识。4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节点表块 和数据存储块。5. 链接分为: 硬链接 和 符号链接 。6. 超级块包含了i节...原创 2010-06-15 21:28:22 · 104 阅读 · 0 评论 -
GNU ARM 汇编指令(转)
第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作 ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(www.gnu.org)上下载有关规范。一. Linux汇编行结构任何汇编行都是如下结构:[:] [}...原创 2010-07-16 08:50:30 · 101 阅读 · 0 评论 -
ARM SDT下汇编到GNU汇编的转换
将ARM SDT下的汇编码移植到GCC for ARM编译器时,经常要做如下修改:1、注释行以“@”或“”代替“;” 2、伪操作符替换: INCLUDE 替换成 .INCLUDE TCLK2 EQU PB25 替换成 .equ TCLK2, PB25 EXPORT 替换成 .global IMPORT 替换成 .extern DCD ...原创 2010-07-16 08:52:07 · 111 阅读 · 0 评论 -
linux 编译内核 选项出错 综合
具体错误提示见最后面1.make menuconfig解决方法:sudo apt-get install libncurses5-dev(ubuntu)其他的发行版找到对应的包就好2.make xconfig解决办法 :sudo apt-get install libqt3-mt-dev 3. make gconfig解决办法: apt-get install libg...原创 2010-07-20 23:24:04 · 540 阅读 · 0 评论 -
Linux在控制台下不同类型文件显示不同颜色
# ~/.bashrc: executed by bash(1) for non-login shells.# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)# for examples# If not running interactively, don't do anything...原创 2010-07-20 23:47:37 · 405 阅读 · 0 评论 -
主设备号、次设备号
主设备号、次设备号分配并注册主次设备号 设备号是在驱动module中分配并注册的,也就是说,驱动module拥有这个设备号(我的理解),而/dev目录下的设备文件是根据这个设备号创建的,因此,当访问/dev目录下的设备文件时,驱动module就知道,自己该出场服务了(当然是由内核通知)。 在Linux内核看来,主设备号标识设备对应的驱动程序,告诉Linux内核使用哪一个驱动程序...原创 2010-07-23 16:13:32 · 137 阅读 · 0 评论 -
高级IO操作——ioctl
_IO, _IOR, _IOW, _IOWR 宏的用法与解析在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域:bit31~bit30 2位为 “区别读写” 区,作用是区分是读取命令还是写入命令。bit29~bit15 14位为...原创 2010-07-23 20:48:58 · 1030 阅读 · 0 评论 -
container_of 解析
在学习Linux驱动的过程中,遇到一个宏叫做container_of。该宏定义在include/linux/kernel.h中,首先来贴 出它的代码:/** * container_of - cast a member of a structure out to the containing structure * @ptr: the pointer to the...原创 2010-07-29 22:50:45 · 103 阅读 · 0 评论 -
Linux内存:内存管理的实质
1. 内核初始化: * 内核建立好内核页目录页表数据库,假设物理内存大小为len,则建立了[3G--3G+len]::[0--len]这样的虚地址vaddr和物理地址paddr的线性对应关系; * 内核建立一个page数组,page数组和物理页面系列完全是线性对应,page用来管理该物理页面状态,每个物理页面的虚地址保存在page->virtual中; * 内...原创 2010-08-04 21:22:18 · 73 阅读 · 0 评论 -
linux2.6.29 启动过程详细分析
突然心血来潮,想自己写个模块,于是就把linux2.6.29的启动过程有分析了一下,整理出来和大家分享下。linux的启动大体上可以分几个步骤:第一部分 grub部分,内核的加载过程。这里总结一下别人的思想,因为自己没怎么看过grub的源码。1. Bios执行int 0x19,加载MBR至0x7c00并跳转执行,这个MBR在我们通常的系统中就是stage1.S(512B), 位于磁...原创 2010-08-12 16:02:51 · 116 阅读 · 0 评论 -
在ubuntu下安装git(转载)
原文地址:http://hi.chibaole.com/blog/2009/12/16/%E5%9C%A8ubuntu%E4%B8%8B%E5%AE%89%E8%A3%85git/#安装git核心sudo apt-get install git-core#安装git guisudo apt-get install git-gui#安装git docsudo apt-ge...原创 2010-06-03 09:35:45 · 109 阅读 · 0 评论 -
__define_initcall 作用
前言 宏定义__define_initcall(level,fn)对于内核的初始化很重要,他指示编译器在编译的时候,将一系列初始化函数的起始地址值按照一定的顺序放在一个section中。在内核初始化阶段,do_initcalls() 将按顺序从该section中以函数指针的形式取出这些函数的起始地址,来依次完成相应的初始化。由于内核某些部分的初始化需要依赖于其他某些部分的初始化...原创 2010-11-25 19:26:36 · 252 阅读 · 0 评论