zoukankan      html  css  js  c++  java
  • Linux内核@系统组成与内核配置编译

    Linux系统由什么组成?

    由用户空间(应用程序+GNU C标准库)和内核空间(系统调用接口+内核+内核架构代码)组成。

    Linux内核到底是什么?以及组成。

    ARM的七种操作级别?

    内核网络协议栈(Network Stack)的作用?

      为Linux提供了丰富的网络协议(TCP/IP、PPPOE)实现。将网络协议栈放在内核中为了提高网络性能,减少CPU开销。

    虚拟文件系统的作用?

    为了支持多种文件系统,并为它们提供统一的操作接口。

    Linux内核源代码结构

    关于每个文件夹中的具体内容分析:参考http://blog.chinaunix.net/uid-24219701-id-2843452.html

    Fedoar14系统中内核代码目录:

    Linux内核配置与编译

    内核配置命令(在内核根目录执行):

    执行配置命令前若原来已经编译过内核则先 $make mrproper

    $make config     基于文本模式的交互式配置。

    $make menuconfig   基于文本模式的菜单型配置(使用较多)。 y m n 三种形式。 

    $make gconfig           基于gtk+的图形工具。

    $make defconfig

    $make xconfig    基于Tcl/Tk的X图形配置界面。

    $make oldconfig     使用原有的配置文件(.config),但是会询问新增加的内核功能。

    常用内核配置选项参考:http://www.cnblogs.com/Robyte/archive/2010/06/09/2591274.html

    内核配置命令详细参考《Linux内核设计与实现》

    内核编译:

    内核配置完成之后,直接$make(注意如果内核是2.6之前的版本需要首先运行一下$make dep,2.6以后的版本不用因为代码之间的依赖关系会自动维护),在内核代码根目录下产生elf文件,但是此文件不是可执行的二进制文件。

    如果有模块编译一下模块:$make modules;

    然后安装模块:$make modules_install;

    然后:$make install,安装到/boot目录下。(这个过程也是内核安装过程,下面的内核安装是另一种方法)

    要生成可执行的二进制的内核文件还需要使用$make zImage或$make bzImage(前者用于编译小于512K的内核,后者用于编译大内核)。编译好后在arch/<cpu>/boot/下会生成二进制的内核文件。

    内核安装(x86平台):

    1. cp arch/i386/boot/bzImage /boot/vmlinuz-$version

    2. cp System.map /boot/System.map-$version

    3. rm /boot/System.map

    4. ln -s /boot/System.map-$version /boot/System.map

    5. 修改/etc/grub.conf 或者/etc/lilo.conf,添加一个新的title(类似下面)

    注:/boot/grub/menu.lst 可以查看当前系统加载的二进制内核文件。

    内核更新详细步骤参考:http://www.2cto.com/os/201312/265425.html

    内核模块编写、编译、安装、运行和卸载

    编译时asm/linkage.h找不到的问题:http://www.cnblogs.com/QuLory/archive/2012/10/23/2736339.html

    2.6以上的Linux内核使用kbuild的Makefile进行编译。

    关于kbuild参考系列文章:http://blog.csdn.net/yunsongice/article/details/6046537

  • 相关阅读:
    requests模块获取cookie和禁止重定向
    python 获取当前,上级,上上级路径
    jmeter正则表达提取器以及全局变量
    Linux性能监控软件netdata中文汉化版
    windows下搭建jenkins+allure+pytest
    Flask 重写wtforms验证器异常信息
    redis info 详解
    centos 安装setup命令的方法
    redis 配置
    linux 使用 vim 玩python
  • 原文地址:https://www.cnblogs.com/kwseeker-bolgs/p/4819313.html
Copyright © 2011-2022 走看看