随笔分类 - Linux Kernel
理清kernel关键机制,剖析kernel子系统
摘要:1.前言 最近在尝试对手头的开发板进行移植,此处记录initramfs挂载的基本流程,记录一下,以备后查。分析时是基于linux3.4.2 2. rootfs的挂载 start_kernel-> vfs_caches_init(num_physpages); mnt_init(unsigned lo
阅读全文
摘要:1.引言 本文所述关于文件管理的系列文章主要是对陈莉君老师所讲述的文件系统管理知识讲座的整理。 Linux可以支持不同的文件系统,它源于unix文件系统,也是unix文件系统的一大特色。 Linux文件系统1--概述 中我们了解了文件系统的作用,以及为了使得所有的文件系统能在同一个操作系统上工作,而
阅读全文
摘要:1.引言 本文所述关于文件管理的系列文章主要是对陈莉君老师所讲述的文件系统管理知识讲座的整理。Linux可以支持不同的文件系统,它源于unix文件系统,也是unix文件系统的一大特色。 本文主要先引入VFS的概念,并从直观上了解Linux中所注册的文件系统,从而对Linux文件系统有一个概括的认识。
阅读全文
摘要:1.前言 本文所述关于文件管理的系列文章主要是对陈莉君老师所讲述的文件系统管理知识讲座的整理。 Linux可以支持不同的文件系统,它源于unix文件系统,也是unix文件系统的一大特色。 本文将以不同文件系统之间的拷贝为实例进行讲述 2. 实例:文件拷贝 图 不同文件系统之间的拷贝 图 文件拷贝对应
阅读全文
摘要:1.前言 本文所述关于内存管理的系列文章主要是对陈莉君老师所讲述的内存管理知识讲座的整理。 本讲座主要分三个主题展开对内存管理进行讲解:内存管理的硬件基础、虚拟地址空间的管理、物理地址空间的管理. 本文将主要以X86架构为例来介绍伙伴算法和slab分配 2.伙伴算法概述 块链表 Linux的伙伴算法
阅读全文
摘要:1.前言 本文所述关于内存管理的系列文章主要是对陈莉君老师所讲述的内存管理知识讲座的整理。 本讲座主要分三个主题展开对内存管理进行讲解:内存管理的硬件基础、虚拟地址空间的管理、物理地址空间的管理. 本文将主要以X86架构为例来介绍物理地址空间的管理。 请页机制可以为进程请求物理内存,如下将讲述物理内
阅读全文
摘要:1.前言 本文所述关于内存管理的系列文章主要是对陈莉君老师所讲述的内存管理知识讲座的整理。 本讲座主要分三个主题展开对内存管理进行讲解:内存管理的硬件基础、虚拟地址空间的管理、物理地址空间的管理. 本文将主要以X86架构为例来介绍虚拟地址空间的管理。 2.虚拟地址空间展示 图 进程地址空间 程序一旦
阅读全文
摘要:1.前言 本文所述关于内存管理的系列文章主要是对陈莉君老师所讲述的内存管理知识讲座的整理。 本讲座主要分三个主题展开对内存管理进行讲解:内存管理的硬件基础、虚拟地址空间的管理、物理地址空间的管理. 本文将主要以X86架构为例来介绍Linux内存管理的分页机制。 2.分页机制 页(Page) 将线性地
阅读全文
摘要:1.前言 本文所述关于内存管理的系列文章主要是对陈莉君老师所讲述的内存管理知识讲座的整理。 本讲座主要分三个主题展开对内存管理进行讲解:内存管理的硬件基础、虚拟地址空间的管理、物理地址空间的管理. 本文将主要以X86架构为例来介绍Linux内存管理的段机制。 2.段机制 段是虚拟地址空间的基本单位
阅读全文
摘要:1.前言 本文所述关于内存管理的系列文章主要是对陈莉君老师所讲述的内存管理知识讲座的整理。 本讲座主要分三个主题展开对内存管理进行讲解:内存管理的硬件基础、虚拟地址空间的管理、物理地址空间的管理. 本文将主要以X86架构为例来介绍Linux内存管理的内存寻址。 2. 内存寻址的演变 内存寻址是操作系
阅读全文
摘要:1.前言 本文主要对Linux下的input子系统进行介绍 2. 软件架构 图 input子系统结构图 input子系统主要包括三个部分:设备驱动层、核心层和事件层。我们可以分别理解为:具体的输入设备、过度设备和逻辑设备。对于用户空间来说与之直接交互的只有逻辑设备也就是事件层。 Input子系统主要
阅读全文
摘要:1.前言 本文主要mmc组件的主要流程,在介绍的过程中,将详细说明和mmc相关的流程,涉及到其它组件的详细流程再在相关文章中说明。 2.主要数据结构和API TODO 3. 主要流程 3.1 mmc_attach_mmc 以eMMC为例,则扫描时会回调mmc_attach_mmc mmc_attac
阅读全文
摘要:1.前言 本文主要core组件的主要流程,在介绍的过程中,将详细说明和core相关的流程,涉及到其它组件的详细流程再在相关文章中说明。 2.主要数据结构和API TODO 3. 主要流程 3.1 mmc_start_host mmc_start_host-> mmc_detect_change->
阅读全文
摘要:1.前言 本文主要block组件的主要流程,在介绍的过程中,将详细说明和block相关的流程,涉及到其它组件的详细流程再在相关文章中说明。 2.主要数据结构和API 2.1 struct mmc_card 是对mmc device的抽象,由于定义了mmc_bus_type类型的总线,此处mmc_ca
阅读全文
摘要:声明:本文很多内容和思路参考了http://www.wowotech.net/comm/mmc_host_driver.html,对原作者表示感谢! 1.前言 本文是Linux MMC framework的第二篇,将介绍host对象的基本结构和相应的操作 2.主要数据结构和API 2.1 struc
阅读全文
摘要:[部分内容来自] http://www.wowotech.net/comm/mmc_framework_arch.html 1. 前言 由eMMC基础技术1:MMC简介中MMC、SD、SDIO的介绍可知,这三种技术都是起源于MMC技术,有很多共性,因此Linux kernel统一使用MMC fram
阅读全文
摘要:[转]http://www.360doc.com/content/17/0410/16/23107068_644444795.shtml 1. 前言 本文主要讲述ubuntu下通过git下载linux kernel源码的方法 2. git安装 sudo apt-get install git-cor
阅读全文
摘要:1.前言 本文主要介绍Linux内核实现的基本数据类型,包括链表,内核对象,内核对象引用计数,内核对象集合, 2.链表 1. 链表的基本结构 内核链表可以将任何类型的数据结构连接起来,链表结构如下: 图 标准双链表 典型的循环双向链表如上图所示。 2. 链表相关API 3. 内核对象 3.1 kob
阅读全文
摘要:1. 前言 本文主要简要介绍Linux内核的功能,以及Linux内核分别由哪些部分组成,并对各个部分完成的主要功能做简要说明。 本文主要是对三本Linux传世之作(LKD, PLKA, ULK)绪论部分的综述。 2. Unix的发展历程 若要了解Linux,首先要先了解Unix的发展历史 1969年
阅读全文