• 嵌入式linux内核制作


     今天来总结一下mini2440的内核制作过程。
      一、
        将内核文件拷贝至目标目录,解压。
      二、清除中间文件
        命令:make distclean
      三、配置内核文件
        将开发板厂商制作好的内核文件拷贝至内核文件目录,并命名为.config,退出保存。
        这里有个特别坑的,就是老师给的内核文件在配置时保留了他自己PC的信息,所以我开始编译内核一直无法成功。

      

      就是这个挨千刀的错误。解决办法嘛,其实也蛮简单,修改一下编译选项。
                命令:make menuconfig ARCH=arm,然后找到下图这个

      

        一定要把前面的清空,删掉!!! 然后在Uboot目录下tools文件夹中找到mkimage,将这个文件复制到/bin/中
      四、编译内核文件
        做好以上几步,就可以成功地编译了。
        命令:make uImage ARCH=arm CROSS_COMPILE=arm-linux-
        操作部分就以上这么多。然后有关内核的一些知识神马的,我听完也忘了,这里就抄袭一下国嵌论坛里的吧,以后要用到来这里看看。

    ------------------------------------------------------------------------------------------------
    华    丽    丽    的    分    割    线  华    丽    丽    的    分    割    线 华    丽    丽    的    分    割    线 
    ------------------------------------------------------------------------------------------------

    一.内核简介:
    1.系统架构
    (1)Linux是由用户空间和内核空间构成的


    (2)用户空间主要是用户应用程序以及一些C库文件,配置文件。一般是看得见的。


    (3)内核空间主要是系统调用接口,狭义上的内核,处理器架构相关的代码。


    (4)划分两个空间的理由:处理器有不同的工作模式,不同的模式权限不一样,可以运行的指令不一样。两个空间对应不同的工作模式(操作级别),程序执行的两种不同的状态。可以起到系统保护作用。比如用户空间级别较低,内核空间级别高。


    (5)通过系统调用和硬件中断可以在两种空间相互切换。




    2.内核架构(狭义上内核,纯代码)
    (1)系统调用接口
    (2)进程管理(创建进程---fork,exec,停止进程--kill,exit,控制通信---signal,POSIX机制,共享CPU--进程调度)
    (3)存储管理(内存分配,回收,控制多个进程安全的共享内存区域)
    (4)CPU架构相关代码(为的是提高至移植性)
    (5)设备驱动程序
    (6)网络协议栈(只是协议,与硬件无关)
    (7)虚拟文件系统(隐藏各种文件系统的具体操作细节,提供统一的文件操作接口)


    3.源代码目录简介
    (1)ARCH:存放体系结构相关的代码。下设子目录,分别对应具体的CPU,没格子目录还有boot,mm,以及kernel三个子目录,分别对应系统引导以及存储管理,和系统调用


    (2)documentation:内核文档,包含帮助信息,修改信息等


    (3)drivers:设备驱动目录


    (4)include:内核所需要的头文件目录。与平台无关的头文件在/include/linux子目录下。平台相关的则放在include相应的子目录中。


    (5)fs:存放各种文件系统的实现代码。每个子目录对应一种文件系统。公用的源代码则用于实现VFS。


    (6)net:网络协议的实现目录。


    (7)管理源代码:SourceInsight软件。

  • 相关阅读:
    CJOJ 1308 【HNOI 2002 】营业额统计 / CodeVS 1296 营业额统计(STL,二分)
    CJOJ 1131 机器分配 / Luogu 2066 机器分配 (动态规划)
    CJOJ 2482 【POI2000】促销活动(STL优先队列,大根堆,小根堆)
    CJOJ 2484 函数最小值 / Luogu 2085 函数最小值(STL优先队列,堆)
    POJ 2296 Map Labeler / ZOJ 2493 Map Labeler / HIT 2369 Map Labeler / UVAlive 2973 Map Labeler(2-sat 二分)
    Luogu 1111 修复公路(最小生成树)
    POJ 3683 Priest John's Busiest Day / OpenJ_Bailian 3788 Priest John's Busiest Day(2-sat问题)
    POJ 3207 Ikki's Story IV
    洛谷 P1456Monkey King
    洛谷 P1231教辅的组成
  • 原文地址:https://www.cnblogs.com/51qianrushi/p/4294315.html
Copyright © 2020-2023  润新知