- 博客(13)
- 资源 (5)
- 收藏
- 关注
原创 mdadm代码解析
mdadm是一个用于创建、管理、监控RAID设备的工具,它使用Linux中的md驱动。 mdadm程序是一个独立的程序,能完成所有软件RAID的管理功能,主要有7中使用模式。模式名字主要功能(对于存储管理系统)Create使用空闲的设备创建一个新的阵列,每个设备具有元数据块创建RAID时使用的命令
2017-03-19 21:08:19 1642
转载 set_current_state 应用
A: A是一个等待进程等待condition 满足过后退出死循环 A: while(1) { if ( condition ) //条件成立了 goto: OUT else{ //1:---------------------- set_current_state(TASK_UNINTERRUPTIBLE); sch
2013-11-30 14:03:25 1094
转载 基于mjpg-streamer-r63的源码分析之:基础知识详细解释[一]
作者:EasyWave 时间:2012.07.27类别:linux应用之mjpg-streamer分析 声明:转载,请保留链接注意:如有错
2013-09-21 10:59:22 756
原创 uImage
Stage1 主要是初始化硬件设备, 然后最主要的功能就是把Stage2 load到RAM中去。u-boot与kernel的关系U-boot为kernel服务, u-boot为kernel提供一些kernel无法知道的信息,比如ramdisk在RAM中的地址Kernel也必须为U-boot提供必要的信息:通过mkimage这个tool可以给zImage添加一个header:type
2013-08-29 08:41:34 883
原创 uboot load address、entry point、 bootm address以及kernel运行地址的意义及联系
按各地址起作用的顺序,uboot引导linux内核启动涉及到以下地址:1. load address:2. entry point: 这两个地址是mkimage时指定的3. bootm address:bootm为uboot的一个命令,以此从address启动kernel4. kernel运行地址:在具体mach目录中的Makefile.boot中
2013-08-29 08:40:24 1125 2
原创 Uboot中控制台的前期初始化
在u-boot完成第一阶段基本的硬件初始化、重定位代码、建立堆栈,清除bss段后,将会跳转到start_armboot中执行.这是u-boot执行的第一段C语言代码,完成系统的初始化工作,进入主循环,处理用户输入的命令。在这个初始化过程中,start_armboot首先会根据结构体变量init_sequence[]定义的顺序执行初始化的工作,下面以U-Boot2009.08-rc1中S
2013-08-29 08:38:13 1012
原创 chrdev_open的详细分析
此函数主要完成的工作就是填充并调用用户给出的 struct file->f_op 结构中的函数集。它首先尝试得到正确的字符设备结构,判断如果注册了相应的函数集则调用。int chrdev_open(struct inode * inode, struct file * filp){ struct cdev *p; struct cdev *new = NULL; int r
2013-08-22 14:12:32 2136
原创 嵌入式文件系统镜像制作及烧写
一、cramfs 文件系统+ jffs2文件系统。 1.cramfs 文件系统:存放系统文件:只读。 jffs2文件系统:存放用户文件:读写。 修改文件系统的自启动脚本:vim /etc/init.d/rcS 在其中添加: mount -t jffs2 /dev/mtdblock3 /home/y (给用户) 2.
2013-08-21 15:40:02 765
转载 Linux操作系统分析(5)- 计时器
一、提要 计时器属于操作系统中的基础组件,不管是用户空间的程序开发,还是内核空间的程序开发,很多时候都需要有定时器作为基础组件的支持。使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务。 本文首先讨论了在 Linux 环境下,计时器的分类与实现,并对相应的接口函数进行使用。二、计时器的种
2013-08-21 15:36:45 617
转载 Linux操作系统分析(4)- 更新内核与添加系统调用
更新内核直接安装的系统内核版本一般不是最新,用[plain] view plaincopyuname -a 命令可以查看内核的版本号,比如我的就是:下面来手动更新内核到最新的稳定版本。1.获取源码进入kernel.org,下载最近版本内核源码,
2013-08-21 15:31:03 455
转载 Linux操作系统分析(3)- 内核装载ELF的过程总结
通过上面一些对进程的学习和一些代码的验证,我们对Linux下的进程方面的知识有了一个很好的了解。相关的文章:进程控制Linux操作系统分析(2)- 进程的创建与可执行程序的加载下面来简单总结一些内核装载ELF的过程总结。简单的说,整个流程分为三步:1)创建一个独立的虚拟地址空间;2)读取可执行文件头,并且建立虚拟空间与可执行文
2013-08-20 11:29:28 709
转载 Linux操作系统分析(2)- 进程的创建与可执行程序的加载
1.进程管理 Linux中的进程主要由kernel来管理。系统调用是应用程序与内核交互的一种方式。系统调用作为一种接口,通过系统调用,应用程序能够进入操作系统内核,从而使用内核提供的各种资源,比如操作硬件,开关中断,改变特权模式等等。 常见的系统调用:exit,fork,read,write,open,close,waitpid,execve,lseek,g
2013-08-20 11:22:03 616
转载 Linux操作系统分析(1)- How program works
1.gdb常用调试命令要用gdb调试的话,编译命令需要添加-g参数,例如[plain] view plaincopygcc -g main.c -o main b linenum 在第 linenum行打断点l 显示源代码;Ct
2013-08-20 11:16:53 603
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人