准备工作  内核开发是编写代码以及调试各种系统组件的漫长过程。一开始这似乎是一个让人畏惧的任务,但是并不需要大量的工具集来编写自己的内核。这个内核开发教程主要涉及使用GRUB将内核加载到内存中。GRUB需要被定向到受保护的二进制镜像中,这个镜像就是我们将要构建的内核。  使用本教程,你至少需要具备C语言基础,并且强烈推荐了解x86汇编知识,它允许你操作处理器中特定的寄存器。所以你至少需要一个可以生
一、总体流程图根据《嵌入式Linux开发完全手册》:二、移植一个新内核大致步骤1.  官网下载源码,解压缩2.  打补丁(怎么打,可以查看内核文档)3.  配置 (1)Makemenuconfig (2)使用默认配置文件,在此基础上修改    在arch/arm/config下找到相似的配置文件xxx_defconfig。执行m
[Linux 基础] -- 第三课:Linux 内核对设备树的处理 前言:一、从源头分析 -- 内核 head.S 对 dtb 的简单处理现在我们开始第一节,我们要从源头分析,uboot 将一些参数,设备树文件传递给内核,那么内核如何处理这些设备树文件呢?我们需要从内核的一个执行文件 head.S 开始分析。1.1、r0,r1,r2 三个寄存器的设置BootLoader 启动内核时,会设
memory cgroup mem_cgroup是cgroup体系中提供的用于memory隔离的功能。 admin可以创建若干个mem_cgroup,形成一个树型结构。可以将进程加入到这些mem_cgroup中。
转载 2013-05-12 01:20:00
196阅读
2评论
内核异常级别:1、 bugBug是指那些不符合内核的正常设计,但内核能够检测出来并且对系统运行不会产生影响的问题,比如在原子上下文中休眠。2、 Oops程序在内核态时,进入一种异常情况,比如引用非法指针导致的数据异常,数组越界导致的取指异常,此时异常处理机制能够捕获此异常,并将系统关键信息打印到串口上,正常情况下Oops消息会被记录到系统日志中去。3、 Panic当Oops发生在中断上下文中或者在
准备工作硬件:笔记本系统: Ubuntu18.04 64位下载内核1、先安装ubuntu18.04的系统。2、到内核官网下载最新的内核code: https://www.kernel.org/如图所示下载最新kernel 例如 Linux-4.19:3、将下载的内核 Linux-4.19 保存到 /usr/src/ 目录下: (/usr/src 一般就是用来存放Linux的内核源码)4、进入Lin
今天给大家介绍一种比较新奇的程序性能优化方法—大页内存(HugePages),简单来说就是通过增大操作系统页的大小来减小页表,从而避免快表缺失。这方面的资料比较贫乏,而且网上绝大多数资料都是介绍它在Oracle数据库中的应用,这会让人产生一种错觉:这种技术只能在Oracle数据库中应用。但其实,大页内存可以算是一种非常通用的优化技术,应用范围很广,针对不同的应用程序,最多可能会带来50%的性能提升
LKM(可加载内核模块)简介    LKM的全称为Loadable Kernel Modules,中文名为可加载内核模块,主要作用是用来扩展linux的内核功能。LKM的优点在于可以动态地加载到内存中,无须重新编译内核。由于LKM具有这样的特点,所以它经常被用于一些设备的驱动程序,例如声卡,网卡等等。当然因为其优点,也经常被骇客用于rootkit技术当中。
Linux内核学习(七):linux kernel内核启动(一):概述篇这一篇让我们来大致的了解一下Linux内核的启动过程这篇文章不涉及源码,重在让你知道这个linux内核的启动过程,源码详细的部分会放在源码篇去解读。本文内容全部来自韦神的《嵌入式Linux应用开发完全手册》1 Linux内核启动过程概述Linux 的启动过程可以分为两部分:架构/开发板相关的引导过程、后续的通用启动过程。如图
    了解LINUX TCP/IP的参数配置是网络性能调优的前提,但是要清楚的记得这几十个参数也不容易,为了方便下次查看,所以查找了linux的manual手册和网上的资料。主要列出了“/proc/sys/net/ipv4”下面的参数。1.IP 参数ip_always_defrag: 在LINUX早期的版本中出现,现在已经没有了,就不作说明了。ip_autoconfig:这个
request_mem_region仅仅是linux对IO内存的管理,意思指这块内存我已经占用了,别人就不要动了,也不能被swap出去。使用这些寄存器时,可以不调用request_mem_region,但这样的话就不能阻止别人对他的访问了。几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CP
转载 2014-10-01 09:16:00
531阅读
2评论
PCIe的内存地址空间、I/O地址空间和配置地址空间pci设备与其它接口的设备(如i2c设备)最大的不同是存在内存地址空间和配置地址空间,本文分析一下它们的用途。首先区分一下IO空间和内存空间 cpu会访问的设备一般有内存和外设寄存器,如下图所示。x86架构采用独立编址将内存操作与外设IO操作分开了才有了内存空间和IO空间的区分。x86平台cpu内部对内存和外设寄存器访问的指令也是不同的。arm等
参考:https://wiki.postgresql.org/wiki/9.1%E7%AC%AC%E4%B8%89%E5%8D%81%E4%B9%9D%E7%AB%A0摘记:PL/pgSQL是 PostgreSQL 数据库系统的一个可装载的过程语言。在PL/pgSQL中你可以把一块运算和一系列命令在数据库服务器里面组成一个块,因此这样就拥有了过程语言的力量并且简化 SQL 的使用,并且能大量节约客
同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。   异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。     举个不太恰当的例子,就像:   SendMessage(...) TRACE0("just like send"); PostMessa
转自:http://blog.csdn.net/skyflying2012/article/details/8672011 版权声明:本文为博主kerneler辛苦原创,未经允许不得转载。 转自:http://blog.csdn.net/skyflying2012/article/details/8
转载 2016-07-12 17:47:00
62阅读
2评论
内存管理的配置和大页信息是进程间共享的,由主进程创建并共享给其他进程。1 rte_config_init -> rte_eal_config_create1.1 mem_config存储内存的配置信息,挂在全局变量rte_config.mem_config下面,其结构体主要成员如下: 包括memzone/memsegs/heap等重要信息。struct rte_mem_config { v
转载 2024-04-02 11:03:52
302阅读
内核配置与编译1.清除临时文件、中间文件和配置文件Make clean (remove most generated files but keep the config)Make mrproper(remove all generated files +&n
转载 2024-08-30 23:29:20
47阅读
指示灯 描述 OVERSPEC 没有足够的电量为系统供电。NONRED和LOG指示灯可能也点亮 PS 一个电源故障或者被电源未插 LINK 保留 CPU CPU出现故障、丢失或者未正确安装 VRM 直流电-直流电稳压器丢失或者故障 LOG BMC日志或者系统错误日志满(系统错误日志达到75%满) MEM 内存故障 NMI 系统已收到一个硬件错误报告。(PCI和MEM指示灯也可能点亮) PCI PC
转载 2024-04-07 08:34:27
334阅读
经过将近两天的努力,终于将内核编译成功。现做笔记如下: 1.安装好基本系统后,首先要做的是升级刚安装好的基本系统,否则在进行后面步骤的时候会遇到老的内核(我的是2.6.8-2)被移除的麻烦。 aptitude update aptitude dist-upgrade (aptitude比apt-get更稳定,建议用aptitude,但是用aptitude后就尽量不要再用apt-get) 2.系统升
转载 2024-04-03 11:12:55
246阅读
  查看linux系统版本,内核,CPU,MEM,位数的相关命令 1.查看版本,内核 cat /etc/issue cat /proc/version uname -r 2.查看cpu,mem grep "model name" /proc/cpuinfo cat /proc/cpuinfo 文件会显示cpu的信息 processor 会从0开始
转载 2011-09-06 17:22:24
774阅读
  • 1
  • 2
  • 3
  • 4
  • 5