因为一直想从事安全方面的工作,所以,我也要学习和熟悉Linux内核,以及内核相关的开发。在研究内核的开始,就必须构建一套开发环境,这个是每个程序员好像做某个特定事情之前,必须要经历的步骤。我选用的Ubuntu18.04作为开发机,然后采用了linux-4.19.157这个版本的内核。第一步就是下载内核,直接在 https://www.kernel.org/ 下载,选择你需要的内核下载下来就好。解压
续前节:linux下的 c 和 c++ 开发工具及linux内核开发工具 继续工具的介绍:ftrace   ftrace 除了 trace-cmd 这个命令行前端工具之外,还有一个图形化显示前端工具叫 kernelshark,非常好用,有时间片显示和过滤功能。kernelshark 和 trace-cmd 都可以使用apt安装。使用方法是先用trace-cmd产生trace.dat文件
转载 6月前
41阅读
一、Linux内核配置编译 1. 交叉编译设置:make ARCH=arm CROSS_COMPILE=arm-linux-注:也可以直接修改顶层Makefile ARCH        ?= arm CROSS_COMPILE   ?= arm-linux-  2. 加载默认设置:make mini2440_defconfig① make mini2440_config:
答: 直接在openwrt的make menuconfig中打开CONFIG_KERNEL_DEVMEM选项即可
转载 2019-12-10 11:43:00
700阅读
2评论
                          内核功能简介内核,是基于硬件的第一层软件扩充,是操作系统的核心,提供操作系统最基础的功能,是操作系统的基础。它为众多应用软件提供计算机硬件的安全访问的一部分软件,这种访问资源是有限的,并且内核决定一个程序对某
转载 2024-10-18 10:49:19
20阅读
经过将近两天的努力,终于将内核编译成功。现做笔记如下: 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阅读
内存管理的配置和大页信息是进程间共享的,由主进程创建并共享给其他进程。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
295阅读
本文主要参考LDD3 第四章及linux设备驱动开发详解(宋宝华)的第22章调试嵌入式内核的方法如下:一、 首先要在编译内核打开许多调试选项,这样在驱动程序出错时就会打印出尽可能多的调试信息。二、 通过printk, oops, strace, /proc,等进行观察调试(最常用)三、 目标机插桩,如打上KGDB补丁,利用gdb, kgdb工具在主机端调试目标机。四、 利用仿真器,仿真器可以直接
转载 2024-05-25 19:28:04
75阅读
Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。Configure脚本配置工具就是基础之一,它是autoconf的工具的基本应用。 configure是一个shell脚本,它可以自动设定源程序以符合各种不同平台上Unix系统的特性,
转载 9月前
21阅读
什么是core dump?分析core dump是Linux应用程序调试的一种有效方式,core dump又称为“核心转储”,是该进程实际使用的物理内存的“快照”。分析core dump文件可以获取应用程序崩溃时的现场信息,如程序运行时的CPU寄存器值、堆栈指针、栈数据、函数调用栈等信息。Core dump是Linux基于信号实现的。Linux中信号是一种异步事件处理机制,每种信号都对应有默认的异
转载 2024-02-19 11:52:44
301阅读
检查Makefile的配置项1.检查交叉编译工具链。 CROSS_COMPILE ?= /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-2.确认ARCH = arm。主要目的是为了编译时能找到arch/arm目录。可能出现的错误:make: *** arm/kernel.git/arch/arm: Is a directory.
1、内核调试配置选项内核拥有多项用于调试的功能,但是这些功能会造成额外的输出并导致性能下降,因此,内核通常都是禁止掉调试功能。 内核调试相关的配置项主要集中在内核配置菜单"Kernel hacking"中,在使用下面的调试手段时,先确保内核相关的调试 配置项已经开启。2、BUG()和BUG_ON()#ifndef HAVE_ARCH_BUG #define BUG() do { \ printk
Linux系统中,有一个非常重要的工具叫做busybox。它是一个单一的可执行文件,集成了大量的Unix工具和命令,可以在嵌入式系统中节省空间和提高效率。其中一个常用的命令是devmem,用于读写设备的物理内存地址。 devmem命令的用法非常简单,通常用于直接访问硬件设备的寄存器或内存映射。在Linux系统中,每个硬件设备都有其对应的内存地址,通过devmem命令可以直接读写这些内存地址的内
原创 2024-04-02 10:51:10
392阅读
dev/mem: 物理内存的全镜像。可以用来访问物理内存。/dev/kmem: kernel看到的虚拟内存的全镜像。可以用来访问kernel的内容。调试嵌入式Linux内核时,可能需要查看某个内核变量的值。/dev/kmem正好提供了访问内核虚拟内存的途径。现在的内核大都默认禁用了/dev/kmem,打开的方法是在 make menuconfig中选中 device drivers -->
linux kernel 移植步骤linux kernel 移植步骤1.准备准备:linux-2.6.32 kernel(linux-2.6.32.tar.bz2)2.目录结构认清kernel的目录结构,了解目录的作用。2.1 根目录目录文件解压并查看:$ tar -xvf linux-2.6.32.tar.bz2 $ cd linux-2.6.32 $ ls2.2 目录的作用arch:硬件体系结
1、新建一个我们临时的工作目录mkdir deb2、新建我们程序的目录mkdir hello3、编写我们的程序我们以我们最熟悉的helloworld程序做起,hello.c代码如下#include <stdio.h> int main() { printf("Hello world!\n"); return 0; }Makefile文件如下:OBJS=hello.
linux内核源代码位于/usr/src/linux/目录下include/ 子目录包含了建立内核代码时所需的大部分包含文件(例如 #include),这个模块利用其他模块重建内核init/ 子目录包含了内核的初始化代码,这是内核开始工作的起点。arch/ 子目录包含了所有硬件结构特定的内核代码drivers/ 目录包含了内核中所有设备驱动程序,如块设备fs/ 目录包含所有文件系统的代码,如ext
正如我们所知道的那样,电脑只能够处理低级的二进制值,并不能直接处理字符。当一个文本文件被存储时,文件中的每一个字符都被映射成二进制值,实际存储在硬盘中的正是这些“二进制值”。之后当程序打开文本文件时,所有二进制值都被读入并映射回原始的可读字符。只有当所有需要访问这个文件的程序都能够“理解”它的编码,即二进制值到字符的映射时,这个“保存和打开”的过程才能很好地完成,这也确保了可理解数据的往返过程。如
    MMC        MMC全称MultiMedia Card,由西门子公司和SanDisk公司1997年推出的多媒体记忆卡标准。MMC卡尺寸为32mm x24mm x 1.4mm,它将存贮单元和控制器一同做到了卡上,智能的控制器使得MMC保证兼容性和灵活性。    &n
Linux系统中,我们经常会使用各种命令行指令来操作系统和硬件设备。其中,devmem是一个常用的Linux指令,用于读取和写入物理内存地址的内容。通过devmem指令,用户可以直接访问设备的内存空间,进行一些特定操作,比如查看设备的寄存器值、更改设备的配置参数等。 通常情况下,用户需要root权限才能够使用devmem指令,因为直接操作物理内存可能会对系统稳定性造成影响。在使用devmem
原创 2024-04-08 09:59:45
944阅读
  • 1
  • 2
  • 3
  • 4
  • 5