问题这段时间实验室要完成一个内存故障注入工具和寄存器故障注入工具,在编写驱动的过程中,调试起来很麻烦(一般都是printk打印出来的,调试起来太不方便),于是想“可不可以在调试设备驱动的时候,利用一个小工具来读写内存某块区域的值以及CPU中寄存器的值?这点前辈的大神已经为我们找到了,参见《LDD3》的《第十五章 内存映射和DMA》目前已经有这样的工具了devmem和devkmem,就是通过mma
转载
2020-03-17 17:33:00
418阅读
问题这段时间实验室要完成一个内存故障注入工具和寄存器故障注入工具,在编写驱动的过程中,调试起来很麻烦(一般都是printk打印出来的,调试起来太不方便),于是想“可不可以在调试设备驱动的时候,利用一个小工具来读写内存某块区域的值以及CPU中寄存器的值?这点前辈的大神已经为我们找到了,参见《LDD3》的《第十五章 内存映射和DMA》目前已经有这样的工具了devmem和devkmem,就是通过mmap
转载
2019-09-05 11:32:00
129阅读
2评论
转自:https://www.cnblogs.com/arnoldlu/p/10721614.html 关键词:/dev/mem、/dev/kmem、mmap、__va、__pa、remap_pfn_range等等。 在日常工作中常有直接操作寄存器或者某一物理地址的需求,busybox中提供了dev
转载
2020-05-06 18:10:00
417阅读
朱荟潼 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课http://mooc.study.163.com/course/USTC 1000029000知识笔记1.arch/ 支持不同的CPU的源代码——X86。2.init/ 内核启动相关的代码基本在此目录下。main.c Linux内核启动的起点:start_kernel。start_kernel 相当于普通C程序的main(
转载
2023-07-12 20:41:31
81阅读
一般在Linux系统中的/usr/src/linux*.*.*(*.*.*代表的是内核版本,如2.4.23)目录下就是内核源代码(如果没有类似目录,是因为还没安装内核代码)。另外还可从互连网上免费下载。注意,不要总到http://www.kernel.org/去下载,最好使用它的镜像站点下载。请在http://www.kernel.org/mirrors/里找一个合适的下载点,再到pu
转载
2024-05-08 20:19:58
114阅读
/bin这是存放ls, mv, rm,mkdir, rmdir, gzip, tar, telnet及ftp等等常用执行程序的地方,有时候这个目录的内容与/usr/bin是一样的。/boot没错,这里就是放置你 Linux 核心与开机相关档案的地方,这个目录底下的vmlinuz-xxx 就是Linux 的 Kernel 。而如果你的开机管理程序选择grub的话,那么这个目录内还有/boot/gru
转载
2024-04-30 19:54:20
11阅读
编译正点原子的出厂 Linux 内核源码,为后面移植linux做准备。研究对象如下:1)、linux内核镜像文件“uImage”路径为“arch/arm/boot”;2)、设备树文件“stm32mp157d-atk.dtb”路径为“arch/arm/boot/dts”3)、默认配置文件“stm32mp1_atk_defconfig”路径为“arch/arm/configs”1、创建“aliente
转载
2024-08-07 08:52:51
303阅读
红帽是一家专注于开源技术的公司,其主要产品是针对企业级操作系统的Red Hat Enterprise Linux(RHEL)。作为一个基于开源的操作系统,RHEL的核心组成部分是Linux源码。Linux源码是指Linux操作系统的底层代码,它是Red Hat基于GNU开发者和其他开源社区的协作努力而创建的。
Linux源码的开放性使得任何人都可以查看、修改和分发它,这创造了一个全球范围内自由参
原创
2024-02-05 10:58:22
90阅读
盘点Linux内核源码中使用宏定义的若干技巧(1)在C中,宏定义的概念虽然简单,但是真要用好却并不那么容易,下面从Linux源码中抽取一些宏定义的使用方法,希望能从中得到点启发:1. 类型检查比如module_init的宏定义:点击(此处)折叠或打开#define module_init(initfn) \
static inline initcall_t _
转载
2024-08-05 17:35:11
64阅读
第11章Linux内核源代码本章讲述在Linux内核源码中,应该从何处开始查找特定的内核函数。 本书并不要求读者具有C语言编程能力,也不要求读者有一份可参阅的Linux内核源码, 事实上,通过查看内核源码可以在一定深度上理解Linux操作系统,同时这也是一个很好的实 践机会。本章给出了对内核源码的概览:它们是如何编排的以及从何处开始查找特定代码。11.1怎样得到Linux内核源码所有主要的Linu
转载
2024-07-03 02:58:50
107阅读
源码包和RPM包的区别安装前的区别:概念上的区别
安装后的区别:安装位置不同安装位置源码包安装在指定位置当中,一般是/usr/local/软件名
源码包安装一般要指定安装路径,因为它无卸载命令,只需删除软件包即可安装位置不同带来的影响rpm包安装的服务可以使用系统服务管理命令(service)来管理。例如,rpm包安装的apache的启动方式:
/etc/rc.d/init.d/http
转载
2024-02-28 13:54:56
45阅读
在描述NET-SNMP安装过程之前,我们先来说一下什么是SNMP。 Simple Network Management Protocol (SNMP) 是一个被广泛使用的协议,可以监控网络设备(比如路由器)、计算机设备甚至是UPS。Net-SNMP是用于实施SNMP v1,SNMP v2,SNMPv3的应
转载
2024-08-13 20:04:09
59阅读
主要是要擅用源码包的说明文档、命令的说明手册和帮助选项 --help。解压源码包一般下载到的源包常见的为 gzip 工具压缩的 tar.gz 或者 bzip2 工具压缩的 tar.bz。分别使用命令 tar -zxvf package.tar.gz,和 tar -jxvf package.tar.bz 关于命令更多的说明可以使用 man 命令查看手册(manual),如 man tar 查看 ta
转载
2024-01-30 20:57:45
62阅读
Think in Java源码编译与安装1:将你的下载的源码解压到c:\TIJ4\code目录中2:安装JDK se5 最好是 jdk SE5 否则,需要修改源码中所有的build.xml中 equals arg1="1.5" 改成 equals arg1="1.6". 我用的是jdkse6放在:C:\Program Files\J
转载
2023-08-23 12:51:17
75阅读
常常有人问:我想学习内核,需要什么基础吗?Linus Torvalds本人是这样回答的:你必须使用过Linux。 这个……还是有点太泛了吧,我想下面几个基础可能还是需要的,尽管不一定必需: 1, 关于操作系统理论的最初级的知识。不需要通读并理解《操作系统概念》《现代操作系统》等巨著,但总要知道分时(time-shared)和实时(real-time)的区别是什么,进程是个什么东西,CPU和系
转载
2024-06-11 17:37:37
39阅读
安装源码包安装源码包,需要我们把源代码编译成可执行的二进制文件。源码包的编译用到了Linux系统里的编译器。常见的源码包一般都是用C语言开发的,因为C语言是Linux上最标准的程序语言。Linux上的C语言编译器称为gcc,利用它可以把C语言编译成可执行的二进制文件。所以,如果机器上没有安装gcc,就无法编译源码,可以使用命令yum install -y gcc来完成安装。安装源码包通常需要以下3
转载
2024-03-21 09:18:33
32阅读
支持软件的安装Linux下的绝大多数源码包都是用c语言编写的,还有少部分是用C++等其他程序语言编写的。所以,要想安装源码包,必须安装C语言编译器gcc (如果是用C++编写的程序,则还需要安装gcc-c++)。我们可以先检测一下gce是否已经安装,命令如下:[root@localhost ~]# rpm -qa | grep gcc
gcc-4.8.5-36.el7.x86_64如果没有安装gc
转载
2024-06-21 08:57:58
24阅读
文章目录一、下载 Linux 内核源码二、使用 VSCode 阅读 Linux 内核源码
一、下载 Linux 内核源码参考 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的 Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 ) 博客 , 下载 Linux 5.6.18 版本的内核源码 ;5.x
原创
2022-03-30 11:08:42
2458阅读
源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install),具体的安装方法一般作者都会给出文档,这里主要讨论配置(configure)。Configure是一个可执行脚本,它有很多选项,使用命令./configure –help输出详细的选...
转载
2011-12-26 22:05:00
156阅读
2评论
Documentation:提供文档帮助。arch:architecture(体系结构)的代码。block:块设备驱动。certs:与认证和签名相关代码。crypto:内核本身所用的加密API。实现了常用的加密和散列算法,还有一些压缩和加密算法。drivers:驱动代码,驱动是一个控制硬件的软件。这是内核中最大的一个目录。firmware:二进制固件,包含了让计算机读取和理解从设备发来的信号的代码
翻译
2022-05-22 16:09:20
653阅读