![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
内核
刘星燎
弱小和无知不是生产的障碍,傲慢才是
展开
-
内核启动打印 version magic
一、问题描述:1、操作方法:原先内核使用海思提供的的Hi3531_SDK_V2.0.B.0,后为了解决内核崩溃问题升级内核,使用海思提供的Hi3531_SDK_V2.0.D.1后出现问题2、现象:编译内核并烧写到设备上有如下打印,导致ko无法正常加载bonding: version magic '3.0.8 SMP mod_unload ARMv7 ' should be '3....原创 2020-04-28 17:32:49 · 546 阅读 · 0 评论 -
ifreq和ifconf
一、文件/usr/include/net/if.h二、作用ifreq用来配置ip地址,激活接口,配置MTU等接口信息的。其中包含了一个接口的名 字和具体内容(是个共用体,有可能是IP地址,广播地址,子网掩码,MAC号,MTU或其他内容)。ifreq包含在ifconf结构中。而 ifconf结构通常是用来保存所有接口的信息的。/* * Interface request stru...转载 2018-10-10 17:24:02 · 1046 阅读 · 0 评论 -
ioctl在设置或获取套接字属性时的一些标识
所在文件sockios.h/* * INET An implementation of the TCP/IP protocol suite for the LINUX * operating system. INET is implemented using the BSD Socket * interface as the means of communication w...原创 2018-10-10 17:23:35 · 1783 阅读 · 0 评论 -
SIOCGMIIPHY,SIOCSMIIREG,SIOCGMIIPHY,SIOCETHTOOL
内核中定义在头文件 include/linux/sockios.h,定义如下:#define SIOCETHTOOL 0x8946 /* Ethtool interface */ ethtool 接口#define SIOCGMIIPHY 0x8947 /* Get address of MII PHY in use. */ ...转载 2018-10-10 17:23:02 · 1843 阅读 · 0 评论 -
linux内核虚拟内存和物理内存的映射
内存访问分为两种体系结构:一致性内存访问(UMA)和非一致性内存访问(NUMA)。NUMA指CPU对不同内存单元的访问时间可能不一样,因而这些物理内存被划分为几个节点,每个节点里的内存访问时间一致,NUMA体系结构主要存在大型机器、alpha等,嵌入式的基本都是UMA。UMA也使用了节点概念,只是永远都只有1个节点。本文讲的是UMA模型的嵌入式平台。每个节点又将物理内存划分为3个管理区,在x8...转载 2018-08-24 15:06:16 · 7747 阅读 · 0 评论 -
struct sched_param 结构体
作用描述调度参数的结构概要#include <sched.h>struct sched_param { int32_t sched_priority; int32_t sched_curpriority; union { int32_t reserved[8]; struct...翻译 2018-08-27 19:03:15 · 13740 阅读 · 0 评论 -
Linux下的task_struct结构体
1.首先什么是进程?1.1进程可以这样描述:1>进程是程序的一个执行实例;2>进程是正在执行的程序;3>进程是能分配处理器并由处理器执行的实体。按内核观点来谈进程:它担当分配系统资源(CPU时间,内存)的实体。1.2进程的两个基本元素一是程序代码(可能被执行相同程序的其他进程共享)二是和代码相关联的数据集。这里的“和代码相关联的数据集指的是数...转载 2018-08-27 14:42:40 · 5869 阅读 · 0 评论 -
rcS脚本文件
Linux在启动的时候最先调用该脚本文件,该文件具体执行什么工作完全由自己决定,但是为了规范将各个模块分开到不同的文件中,然后在该文件中执行这些脚本#必须含有这个第一行,表明是bash脚本#! /bin/sh #挂载fstab文件下的所有分区/bin/mount -a echo " _ _ _ _ _ _ _ _ _ _ _ _ ...原创 2018-07-09 15:23:02 · 843 阅读 · 0 评论 -
sched.h
#ifndef _LINUX_SCHED_H#define _LINUX_SCHED_H#include <uapi/linux/sched.h>struct sched_param { int sched_priority;};#include <asm/param.h> /* for HZ */#include <linux/cap...转载 2018-06-26 15:52:17 · 1711 阅读 · 0 评论 -
线程在linux中的实现
线程在linux中的实现线程机制提供了在同一程序内共享内存地址空间运行的一组线程,这些线程还可以共享打开的文件和其他资源。从linux内核的角度来说,并没有线程这个概念,linux把所有的线程都当做进程来实现,内核并没有准备特别的调度算法或是定义特别的数据结构来表示线程,而是将线程仅仅视为一个与其他进程共享某些资源的进程,每个线程都拥有唯一隶属于自己的task_struct,所以在内核中,...原创 2018-06-26 15:50:05 · 357 阅读 · 0 评论 -
进程终结
进程终结当一个进程终结的时候,内核必须释放所有的资源并通知父进程。通常这个任务是靠do_exit()来完成的,下面是所做的工作: 将test_struct中的标志程序设置为PF_EXITING调用del_timer_sync删除任一内核定时器,根据返回的结果,确保没有定时器在排队,也没有定时器处理程序在运行如果BSD的进程记账功能是开启的,do_exit调用acct_update_in...原创 2018-06-26 15:49:42 · 308 阅读 · 0 评论 -
进程描述符和任务结构
进程描述符和任务结构进程的列表存放在任务队列中,任务队列是一个双向的循环链表。链表中的每一项都是类型为task_struct的结构,称为进程描述符。进程描述符中包含有进程运行的所有信息,比如状态,标识符,优先级等等具体的介绍见https://blog.csdn.net/bit_clearoff/article/details/54292300 描述信息 说明 ...原创 2018-06-26 15:49:17 · 381 阅读 · 0 评论 -
进程家族树
进程家族树所有的进程都是PID为1的init进程的后代。内核在系统启动的最后阶段启动init进程init进程读取系统的初始化脚本(initscript)并执行其他的相关程序,最终完成系统启动的整个过程。系统中的每个进程必有一个父进程。拥有同一个父进程的所有进程被称为兄弟。进程间的关系存放在进程描述符中。每个task_struct都包含一个指向其父进程tact_struct、叫做par...原创 2018-06-26 15:48:53 · 4152 阅读 · 0 评论 -
进程的创建
进程的创建linux创建子进程是通过fork和exec来实现的,fork出的子进程与父进程的区别紧紧在于PID(进程ID),PPID(父进程ID)和某些资源和统计量不同。写时拷贝传统的forkO不统阅用直接把所有的资派复创给断创垃的进程。这种实现过于简单井且效率低下,因为它拷贝的数据也许井不共享.更糟的情况是,如果新进程打算立即执行一个新的映像.那么所有的烤贝都将前功尽弃。l...原创 2018-06-26 15:48:20 · 256 阅读 · 0 评论 -
进程
进程进程就是处于执行器的程序执行线程,简称线程(thread).是在进程中活动的对象。每个线程都拥有一个独立的程序计数器、进程栈和一组进程寄存器。内核调度的对象是线程.而不是进程。在现代操作系统中.进程提供两种虚拟机制:虚拟处理器和虚拟内存。虽然实际上可能是许多进程正在分享一个处理器,但虚拟处理器给进程一种假象,让这些进程觉得自己在独享处理器。而虚拟内存让进程在分配和苦理内存时觉得自己拥...原创 2018-06-26 15:47:56 · 165 阅读 · 0 评论 -
内核开发特点
1、内联函数(inline)使用内联函数时,该函数会在它所调用的位置上展开,这样做的原因是可以消除函数调用和返回带来的开销,不过代码会变长。在使用内联函数的时候通常会吧那些对时间要求比较高,而代码本身的长度比较短的函数定义为内联函数。定义内联函数的时候通常使用static作为关键字,并用inline来限定: static inline void eolf(insigned long t...原创 2018-06-22 17:48:11 · 536 阅读 · 0 评论 -
内核配置
理论内核中提供了许多的功能,支持了许多的硬件,因而有许多的东西需要配置,对于这些可以配置的选项,在配置文件中都是以CONFIG为前缀的,例如对SMP的配置选项是CONFIG_SMP,设置了该选项就启动SMP,否则SMP不起作用,编译的时候不会被编译。如下图为一个配置文件的部分截图: 对于这些配置选项中,有的是两个选项,有的是三个选项,三个选项的分别是Y,N,M。M的意思就是模块,选择该选...原创 2018-06-22 17:47:32 · 649 阅读 · 0 评论 -
内核源码树
目录 描述 arch 包含和硬件体系结构相关的代码,每种平台占一个相应的目录。和32位PC相关的代码存放在i386目录下,其中比较重要的包括kernel(内核核心部分)、mm(内存管理)、math-emu(浮点单元仿真)、lib(硬件相关工具函数)、boot(引导程序)、pci(PCI总线)和power(CPU相关状态)。 block 部分块设备驱动程序。...原创 2018-06-22 17:46:59 · 649 阅读 · 0 评论