`
zccst
  • 浏览: 3291778 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux内核理解初步

阅读更多
内核组成部分

系统调用接口

1,进程管理
2,内存管理
3,文件管理。vfs
4,网络管理。
架构和硬件  5,设备驱动。


Bootloader启动大多数都分为两个阶段

第一阶段主要包含依赖于CPU的体系结构硬件初始化的代码,通常都用汇编语言来实现。这个阶段的任务有:
基本的硬件设备初始化(屏蔽所有的中断、关闭处理器内部指令/数据Cache等)。
为第二阶段准备RAM空间。
如果是从某个固态存储媒质中,则复制Bootloader的第二阶段代码到RAM。
设置堆栈。

在第一阶段中为什么要关闭Cache?通常使用Cache以及写缓冲是为了提高系统性能,但由于Cache的使用可能改变访问主存的数量、类型和时间,因此Bootloader通常是不需要的。

跳转到第二阶段的C程序入口点。

第二阶段通常用C语言完成,以便实现更复杂的功能,也使程序有更好的可读性和可移植性。这个阶段的任务有:
初始化本阶段要使用到的硬件设备。
检测系统内存映射。
将内核映像和根文件系统映像从Flash读到RAM。
为内核设置启动参数。
调用内核。
分享到:
评论

相关推荐

    Linux内核编译资料

    Linux内核编译资料 嵌入式资料整合 适合初学Linux的人进行系统的理解和初步开发

    linux Android基础知识总结.pdf

    linux Android基础知识总结 1.Android编译系统分析 2.文件系统分析 3.制作交叉工具链 4.软件编译常识 5.设置模块流程分析 6.linux系统启动流程分析 7.linux下svn使用指南 ...9.linux内核的初步理解

    LINUX操作系统(电子教案,参考答案)

    在此同时讲解了Linux的基本的网络命令,这对于理解Linux的网络上面的基本运用有着很大的作用。 第14章:网络资源共享。本章主要介绍了NFS文件系统、NFS文件系统的架设、Samba的资源共享、打印机网络共享等内容。 第...

    [14本经典Android开发教程]-5-linux Android基础知识总结

    9. linux 内核的初步理解 -------------------------------------------------------- 已上传4本: [14本经典Android开发教程]-1-Android开发从入门到精通 http://download.csdn.net/detail/cleopard/8355245 [14本...

    Docker入门之创建镜像初步.pdf

    谨记:容器运行在Linux内核之上,不包含位于内核之上的glibc等库,以及ls等命令。如果容器中的程序依赖glibc等库或者依赖ls等命令,则容器自身应当包含这些设施。另外,容器中的程序等必须和内核兼容,否则将会遇到...

    BLueZ蓝牙驱动在优龙FSATRM9200上的移植

    之所以现在还没有全面实现“把蓝牙变成大白菜”的目标,作为Linux下实现蓝牙协议的官方组织BlueZ难咎其责:由于不提供step by step的编译安装文档,这对于还没有深刻理解编译工具链和shell脚本编程的普通Linux嵌入式...

    【操作系统实验报告】文件读入与导出

    (1)实验内容: ...通过在Linux操作系统上编写和调试简单程序,进一步熟悉Linux操作系统的使用,初步掌握linux环境下的C或C++编译和调试工具,为进一步理解和学习Linux操作系统的内核结构和核心机制作准备。

    xv6-improved:最低操作系统

    计划 先说说我的几个计划制定...因此,我的初步计划在于重新实现与Linux内核保持高度相似的系统调用接口。在系统调用完成的基础上,实现(或适应现有的开源实现)标准C语言库函数,细长讲现有的开源软件顺利的移植到xv6

    自己动手写操作系统(含源代码).part2

    Linus Torvalds当时是一名赫尔辛基大学计算机科学系的二年级学生,经常要用自己的电脑去访问大学主机上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这成为了 Linux第一个内核的...

    自己动手写操作系统(含源代码).part1

    Linus Torvalds当时是一名赫尔辛基大学计算机科学系的二年级学生,经常要用自己的电脑去访问大学主机上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这成为了 Linux第一个内核的...

    编程新手真言......

    第4章 语言最小内核(C) 83 4.1 C与C++是二种不同的语言 83 4.2 C的数组,指针与字符串 84 4.3 C的输入与输出流 84 4.4 C的类型系统与表达式 85 4.5 二进制指令看循环 85 4.6 所谓指针:当指针用于设计居多时 86 4.7 ...

Global site tag (gtag.js) - Google Analytics