文章目录

  • 系列文章
  • 一、ARM-Linux内核和普通内核的区别
    • 1.Linux内核
    • 2. ARM-Linux内核
  • 二、Linux 模块概述
    • 1. 与module相关的命令有
    • 2. 模块命令
  • 三、模块的加载
  • 四、模块的卸载
  • 五、ARM-Linux系统的启动和初始化
  • 六、移植的基本概念
    • 1. 从一个硬件平台移植到另外一个硬件平台
      • - Linux操作系统移植。
      • - 内核移植
    • 2. 从一个操作系统移植到另一个操作系统
    • 3. 从一种软件库环境移植到另一种软件库环境

系列文章

  1. ARM-Linux内核知识点
  2. Linux之交叉编译器的构建

一、ARM-Linux内核和普通内核的区别

1.Linux内核

作者Linux Torvalds
C语言写成
宏内核

2. ARM-Linux内核

基于ARM处理器的Linux内核

Linux是一个单内核(monolithic
kernel),单内核的最大优点是效率高,因为所有的内容都集中在一起,但也有可扩展性以及可维护性差的缺点。模块机制的引入就是为了弥补这一缺陷。内核模块全称为动态可加载内核模块(Loadable
Kernel Module,LKM)是Linux内核向外部提供的一个插口,简称为模块。

二、Linux 模块概述

1. 与module相关的命令有

modprobe、depmod、genksyms、makecrc32、insmod、rmmod、lsmod 、ksyms以及 kerneld。
其中以 insmod、rmmod、lsmod、depmod、modprobe、kerneld最重要

2. 模块命令

lsmod把现在 kernel 中已经安装的modules列出来
insmod把某个 module安装到 kernel 中。
rmmod把某个没在用的module从kernel中卸载。
depmod制造 module dependency file,以告诉将来的insmod要去哪儿找modules来安装。这个dependency file放在 /lib/modules/[当前kernel版本]/modules.dep

帮助理解记忆
module — mod
insert 插入 — insmod
remove 删除 — rmmod

三、模块的加载

载module有两种方法

  1. 通过insmod命令手工将module载入内核
  2. 根据需要载入module(demand loaded module)

四、模块的卸载

当内核的某一部分在使用某个module时,该module是不能被卸载的。

例如,如果系统mount了VFAT文件系统,不能卸载VFAT module。每一个module有一个计数器(module
count)。可以利用lsmod命令来得到它的值

五、ARM-Linux系统的启动和初始化

  • 使用bootloader将内核映像载入
  • 内核数据结构初始化—内核引导第一部分
  • 外设初始化—内核引导第二部分
  • init进程和inittab脚本
  • rc启动脚本
  • Shell的启动

六、移植的基本概念

移植,英文为 Porting。从广义上讲,移植包括软件移植和硬件移植。
从狭义上讲,移植就是指软件移植,即将一个软件从一个平台迁移到另外一个与其不同的平台上工作

1. 从一个硬件平台移植到另外一个硬件平台

- Linux操作系统移植。

比如将基于 x86体系的 Linux移植到基于 ARM体系的嵌入式 Linux。 首先是工具链的移植,因为基于 x86体系的
gcc就不能用在基 于 ARM的体系中,所以在 PC机上编译时要建立交叉编译工具 链。同时还要考虑 binutils、glibc等移植。

- 内核移植

内核移植主要包括两方面的工作,一是 arch目录下的体系 结构的移植,如从 i386移植到 arm,二是移植 drivers目录下的许多硬件驱动程序。最后是应用程序的移植

2. 从一个操作系统移植到另一个操作系统

这种形式的移植也是最常见的。比如将 Windows系统下运行的程序移植到 Linux/Unix系统中,
这时需要考虑操作系统提供的 API,以及所调用的函数库等。

3. 从一种软件库环境移植到另一种软件库环境

这种类型的移植也是比较常见的,例如基于 Qt 3.0库的应用程序移植到 Qt 4.0库环境中去。
再如基于 glibc库环境的程序移植到基于 uclibc库环境。

ARM-Linux内核基础知识相关推荐

  1. Linux驱动 简单的Linux驱动基础知识

    Linux驱动 简单的Linux驱动基础知识 一.简述         记--Linux驱动学习笔记. Linux驱动程序初始化硬件设备,并提供硬件控制接口给更上一层的应用调用. 例如使用QT应用程序 ...

  2. 嵌入式Linux系统基础知识

    一.嵌入式Linux系统的构成 1.硬件 2.内核 3.应用程序(形成根文件系统) 二.构建嵌入式Linux系统的主要任务 1.内核部分 2.应用程序部分 嵌入式Linux的开发大致可分为三个层次:引 ...

  3. Linux系统基础知识

    Linux系统基础知识 1.在Linux系统中,以文件方式访问设备.   2. Linux内核引导时,从文件 /etc/fstab中读取要加载的文件系统. 3. Linux文件系统中每个文件用 ino ...

  4. Linux操作系统基础知识学习

    Q1.什么是GNU?Linux与GNU有什么关系? A: 1)GNU是GNU is Not Unix的递归缩写,是自由软件基金会(Free Software Foundation,FSF)的一个项目, ...

  5. ARM Linux 内核 panic 之cache 一致性 ——cci-400 cache一致互联

    ARM Linux 内核 panic 之cache 一致性 --cci-400 cache一致互联 CCI-400 集合了互联和一致性功能,有 2 个 ACE slave 接口和 3 个 ACE-Li ...

  6. 第三十四期-ARM Linux内核的中断(4)

    作者:罗宇哲,中国科学院软件研究所智能软件研究中心 上一期中我们介绍了ARM Linux内核中外设中断处理的部分流程,这一期我们将继续介绍ARM Linux内核的外设中断处理流程中与中断描述符相关的部 ...

  7. linux内核基础和配置编译原理

    2020-8-8 星期六 北京 闷热天 总结linux内核基础和配置编译原理,分两部分总结.仅作为技术积累,方便日后查阅.参考了网上的一些笔记. 第一部分:内核基础 2.14.1.内核和发行版的区别 ...

  8. linux系统下io的过程,Linux系统基础知识:IO调度

    Linux系统基础知识:IO调度 IO调度发生在Linux内核的IO调度层.这个层次是针对Linux的整体IO层次体系来说的.从read()或者write()系统调用的角度来说,Linux整体IO体系 ...

  9. Linux入门基础知识

    注:内容系兄弟连Linux教程(百度传课:史上最牛的Linux视频教程)的学习笔记. Linux入门基础知识 1. Unix和Linux发展历史 二者就像父子关系,当然Unix是老爹.1965年,MI ...

  10. 权限认证php,2016年Linux认证基础知识:php做权限管理

    2016年Linux认证基础知识:php做权限管理 在学习Linux认证过程中,每个人会遇到每个人不同的问题,或小或大,那么你知道在Linux下,php怎么做权限管理?下面跟yjbys小编来看看最新的 ...

最新文章

  1. 谈谈近况,谈谈自由职业,谈谈金饭碗
  2. LoRDEC 利用二代数据纠错PacBio 数据( lordec-src_0.9.tar.bz2)
  3. springMVC中Dispatcher中的/和/*的区别
  4. C++中类成员函数的重载、覆盖和隐藏的区别,超清楚!
  5. 常见的NoSQL数据库
  6. UVA 10404 - Bachet's Game
  7. Knative Service 是如何指定端口和协议的
  8. linux脚本base64加密当时,【加密算法】Base64
  9. python 拼音 四线格_Python 中拼音库 PyPinyin 的用法
  10. 免费JSON格式的服务接口
  11. 数学建模算法python源码_热传导方程之显示差分算法(python源码)
  12. 黑马 docker 学习笔记
  13. 在我们人生的大道上,肯定会遇到许许多多的困难。但我们是不是都知道,在前进的道路上,搬开别人脚下的绊脚石,有时恰恰是为自己铺路?
  14. html meta标签之http-equiv(转)
  15. 实例三十八:银行卡问题
  16. 如何在Windows中使用截图工具进行屏幕截图
  17. Linux/Unix-stty命令详解
  18. 对于国内数据交换平台的分析
  19. 微信小程序_文档_08_组件_媒体组件_地图_画布_开放能力
  20. QT中QDatetime中文系统中获取英文系统的结果

热门文章

  1. 什么是隐私计算,它是怎样保护我们的隐私安全
  2. YOLOv6:又快又准的目标检测框架开源啦《转载》
  3. 【每日早报】2019/06/10
  4. Adobe illustrator插件开发-Color-颜色空间-AIColorSpaceSuite-自定义颜色-AICustomColorSuite-AIColorConversion-AI插件开发
  5. 获取全国最新企业工商名录
  6. matlab 中乘号怎么打,MATLAB入门-基本操作
  7. H5横屏开发、vue横屏开发@令狐张豪
  8. 给你个消灭“痕迹”大全
  9. 现代且古典——从试玩版浅析《FF7RE》的战斗系统
  10. 最女孩子不要急,容易追到的不长久