自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

逆风水手的博客

Linux内核深度解析

  • 博客(155)
  • 资源 (2)
  • 收藏
  • 关注

原创 Centos8.2网卡配置文件解释

Centos8.2网卡配置文件解释。

2023-05-19 00:15:00 1610

原创 【Linux】ko文件查询内部信息方法

在 Linux 中,可以使用 objdump 命令来反汇编 ko 文件并查看其中的宏定义值。其中,-d 参数表示反汇编目标文件,grep 命令用于查找特定的宏定义。

2023-05-18 10:03:38 4517

原创 【Linux】配置系统默认启动内核版本方式

这是一个在Linux系统中使用的命令行,用户通过该命令行查看并编辑GRUB2引导加载程序环境变量。

2023-05-16 14:31:45 3044

原创 Vim使用之高亮关键字方法

请注意,以上命令只会影响当前打开的 Vim 编辑器窗口。如果您想要永久更改 Vim 的配置,可以将命令添加到。是您想要使用的颜色主题的名称。例如,要使用 “morning” 主题,可以输入命令。查看当前可用的颜色主题:在 Vim 中,输入命令。,然后按下 Tab 键即可查看当前可用的颜色主题。更改当前的颜色主题:在 Vim 中,输入命令。开启语法高亮:在 Vim 中,输入命令。关闭语法高亮:在 Vim 中,输入命令。

2023-05-16 11:05:22 4091

原创 【Linux】使用工具替换linux内核的3中方式

使用rpm包手动安装内核 - 您可以手动下载内核的rpm包并使用rpm命令安装。这种方法需要手动下载和安装内核,因此需要更多的手动操作和技能。可以在CentOS官方网站或其他第三方网站上下载内核rpm包。使用源代码手动编译内核 - 可以从Linux内核官方网站下载源代码并手动编译内核。这种方法需要更多的技能和操作,但可以更灵活地定制内核,以适应您的特定需求。使用第三方工具 - 您可以使用第三方工具,例如KernelCare或Ksplice,更新内核而无需重新启动服务器。

2023-05-15 19:33:59 1676

原创 【PCIE】pcie设备协议分析和crash后定位

headerLog和协议的对应入截图中内容completer id就是完成的ID,对应的BDF ,如下图 b5:00.0。

2023-05-15 19:28:47 923 1

原创 【Linux】Centos系统更新内核方法(使用前请备份数据!)

注意:在更新指定版本的CentOS系统中的内核版本时,请确保备份所有重要数据,并小心操作,以免意外损坏系统。其中,version是要安装的特定版本号。请注意,在安装特定版本时,你需要使用正确的版本号。这将显示当前正在运行的内核版本。这将列出所有可用的内核版本。

2023-05-15 18:00:20 818

原创 【Linux内核】解读Linux系统结构

Linux系统的内核。

2023-05-15 01:00:00 591

原创 【LInux 命令使用】systemctl和sysctl命令的区别

内核参数是操作系统内核的设置,控制着各种系统行为和性能特征。使用sysctl命令,可以列出当前系统上所有可用的内核参数,并且可以查看和修改这些参数的值。systemctl是一个系统服务管理工具,用于控制和管理systemd系统和服务。使用systemctl命令,可以查看和管理当前运行的所有系统服务的状态、日志和依赖关系等信息。systemctl主要用于管理和控制系统服务,而sysctl主要用于管理和控制内核参数。systemctl和sysctl是两个不同的命令,它们在Linux系统中有不同的功能。

2023-05-15 00:45:00 2109

原创 【Linux内核解析-linux-5.14.10】文件系统知识点以及解答(建议收藏)

答:要在Linux中创建LVM,需要使用“pvcreate”命令来创建物理卷,“vgcreate”命令来创建卷组,并使用“lvcreate”命令来创建逻辑卷。其中,“source_file”是要传输的源文件,“username”是远程主机的用户名,“destination_host”是远程主机的名称或IP地址,“/destination_folder”是目标文件夹的路径。答:要在Linux中设置自动挂载,可以编辑“/etc/fstab”文件,该文件包含系统启动时需要挂载的所有文件系统的信息。

2023-05-15 00:30:00 1197

原创 【Linux内核】关于Linux同步机制知识点整理

内核抢占是指内核在某些情况下可以抢占正在运行的进程或线程,以保证内核的响应能力和稳定性。内核抢占通常发生在中断处理程序中,当中断处理程序需要执行一些紧急的操作时,可以抢占正在运行的进程或线程,以保证中断处理程序的及时响应。在多线程编程中,需要考虑线程安全性,使用合适的同步机制和设计,来保证程序的正确性和可靠性。线程的使用可以提高程序的并发性和响应能力,但是需要注意线程安全性和同步机制的设计。同步机制是一种操作系统提供的机制,用于协调多个进程或线程之间的访问共享资源,防止出现竞态条件和死锁等问题。

2023-05-14 16:07:49 795

原创 【Linux内核】信号量semaphore机制

信号量机制是一种用于控制并发访问的同步机制,常用于多进程或多线程之间的协调。在Linux内核中,信号量机制是通过struct semaphore结构体来实现的。每个semaphore结构体包含一个计数器和一个等待队列,它们用于跟踪当前可用的资源数量以及正在等待这些资源的进程或线程。当某个进程或线程需要访问共享资源时,它会先尝试获取信号量。如果信号量的计数器大于0,表示有可用的资源,该进程或线程就可以继续执行,并将信号量计数器减1;

2023-05-14 15:54:15 1978

原创 PCIE之PCS和PMA含义

在PCIe(Peripheral Component Interconnect Express)中,PCS和PMA都是物理层子层(Physical Layer Sublayer)的组成部分。PCS和PMA一起工作,使得PCIe可以实现高速、可靠的数据传输。

2023-05-14 01:00:00 8833

原创 PCIe的capability扩展空间字段解释

这是一段关于高级错误报告的信息,其中包含多个字段和值。

2023-05-13 16:51:13 4442

原创 【Linux内核】RW读写锁机制

Linux内核中读写锁的机制是一种多读单写的锁机制,它允许多个读操作同时进行,但只能有一个写操作进行。当有写操作时,所有读操作都会被阻塞,直到写操作完成。rwlock_t:这个结构体定义了一个读写锁对象,它包含了锁状态、等待队列等信息。:这个结构体定义了一个读写信号量,它用于控制读写操作的并发性。内核中的读写锁被广泛地应用在文件系统、网络协议栈、设备驱动等各个子系统中,例如在文件系统中,读写锁用于保护文件的读写操作,以确保同一时间只有一个线程可以写入文件,而多个线程可以同时读取文件。

2023-05-13 16:31:12 807

原创 Linux系统crash后定位方法-PCIE举例

在Linux操作系统中,"crash"通常是指一种用于分析系统崩溃(crash)的工具或方法。当系统发生崩溃时,可能会产生一些关键信息,如错误日志、内存转储文件等。使用crash工具可以分析这些信息,以便了解崩溃的原因和上下文。crash工具是一个基于命令行的工具,它可以加载系统转储文件,然后提供一系列命令来查看和分析系统状态。例如,可以使用crash工具来查看进程列表、线程列表、内存映射、堆栈跟踪、寄存器值等信息。crash还支持多种操作系统架构和文件系统类型。

2023-05-13 16:01:30 3252

原创 【Linux内核】自旋锁spinlock机制

define __lockfunc __section(".spinlock.text") __lockfunc 是一个宏,用于将下面的函数定义放置到 . spinlock . text 段中。. spinlock . text 是Linux内核中专门用于存放自旋锁相关代码的代码段。由于自旋锁是用于保护共享资源的关键机制,因此其实现需要非常高效和可靠。将自旋锁相关代码放置在独立的代码段中,可以使得该部分代码具有更好的可读性、可维护性和可移植性,并且不会被其他部分的代码所干扰。

2023-05-13 12:54:36 2111

原创 PCIE-Capability能力集协议解释

分别对应和协议对照,nextpoiter=0表示后面没有capacity了。

2023-05-13 00:15:00 529 1

原创 PCIE设备在设备上枚举过程

在枚举过程结束时,Root Port (RP)必须设置以下寄存器:Primary Bus, Secondary Bus和Subordinate Bus numbersMemory Base和LimitIO Base和IO Limit。

2023-05-12 00:30:00 1741

原创 PCIE使用的有效的命令

红色框框中的第一列对应具体的偏移,第二列对应的是设备的capability id, 第三列对应的是next capability id的偏移。pci capbility配置空间 -xxx。pcie扩展配置空间-xxxx。pci标准配置头空间 -x。

2023-05-11 14:14:01 702

原创 Linux系统查看.a静态和.so动态文件中内容方法

nm是"Symbol table Namer"的缩写。nm命令可以列出目标文件中定义和引用的符号,并且可以根据不同的选项以不同的格式显示这些符号信息。在Linux系统上,nm命令通常与C/C++编译器一起使用,用于查看编译后的二进制文件(例如可执行文件、静态库文件、共享库文件)中的符号表信息。

2023-05-09 19:28:28 4968

原创 PCIE配置空间分配时机

PCIe的配置空间(Configuration Space)和BAR空间(Base Address Register Space)是由BIOS进行配置和分配的,而不是由操作系统申请的。在启动时,BIOS会扫描PCIe设备并为每个设备分配一个唯一的地址空间。这个地址空间包括了设备的配置空间和BAR空间。其中,配置空间用于存储设备的配置信息,如设备ID、厂商ID、中断号等。而BAR空间则用于映射设备的I/O端口和内存地址。当操作系统启动后,它可以通过读取配置空间中的信息来了解设备的属性和功能。

2023-05-08 20:57:20 1284

原创 linux系统查询二进制BIn文件方法

Binary Ninja 是一款商业的反汇编和逆向工程工具,可以用来分析二进制文件的代码逻辑、函数调用关系和数据结构等信息。这些方法和工具都可以用来分析二进制文件,每种方法和工具都有其独特的功能和优势,可以根据具体情况选择合适的方法来进行分析。这些方法和工具都可以用来分析二进制文件,每种方法和工具都有其独特的功能和优势,可以根据具体情况选择合适的方法来进行分析。objdump 命令可以显示二进制文件的汇编代码、符号表和其他信息,可以用来分析二进制文件的结构和代码逻辑。这个命令会显示二进制文件的汇编代码。

2023-05-08 17:03:35 2021

原创 【Linux内核】内核常用链表宏解释

这段代码是一个宏定义,用于遍历一个链表中所有的元素,并且在遍历过程中可以安全地删除元素。具体来说,这个宏定义的功能是:遍历链表中所有的元素,从头节点开始,直到尾节点结束。对于每个元素,使用给定的结构体成员变量名找到它所属的结构体对象,并且将该对象的指针赋值给给定的变量名。在遍历过程中,可以安全地删除当前元素,因为它在删除前会先保存下一个元素的指针,保证不会影响遍历的正确性。

2023-05-08 02:30:00 3507

原创 在 CentOS 上搭建 FTP 服务方法

如果 vsftpd 服务已经成功启动,应该会看到“active (running)”的状态信息。现在,可以使用 FTP 客户端连接到 CentOS 服务器并上传或下载文件了。配置 vsftpd。检查 vsftpd 服务是否已经启动。设置 vsftpd 服务开机自启。启动 vsftpd 服务。安装 vsftpd 服务。

2023-05-07 06:15:00 886

原创 PCIE-打印系统中的PCI设备树的信息的方法

这个代码是用来打印系统中的PCI设备树的信息的。在Linux系统中,PCI设备树是由一些PCI总线和PCI设备组成的树形结构,这个代码的目的就是遍历整个PCI设备树,打印每个设备的信息。该函数首先打印该总线上每个PCI设备的信息,包括它们的厂商ID(vendor ID)和设备ID(device ID),然后递归地调用自身来打印任何下级总线上的设备信息。接着,代码使用一个循环来迭代系统中的所有根PCI总线,并对每个总线调用"dump_pci_tree"函数,从而打印整个PCI设备树的信息。

2023-05-06 17:48:06 401

原创 Linux工具来监控服务器使用记录方法

Auditd是Linux系统上的一个内核级审计框架,可以记录系统上的所有事件,包括用户登录、文件修改、进程创建等。您可以通过配置Auditd来记录用户登录和执行的命令,并将记录保存在日志文件中。Syslog是Linux系统上的一个系统日志服务,可以记录系统事件和用户活动。您可以使用Syslog来记录用户登录和执行的命令,并将记录保存在日志文件中。OpenSSH是Linux系统上的一个安全Shell协议,可以记录所有用户登录和执行的命令。

2023-05-05 20:06:54 943

原创 Linux 系统[centos8.2]上启动 Samba 服务

在 Linux 系统上,Samba 的配置文件位于 /etc/samba/smb.conf。打开该文件并按照您的需求进行配置。例如,您需要指定共享目录和访问权限。如果 Samba 服务已经成功启动,您应该会看到“active (running)”的状态信息。现在,可以在其他计算机上访问共享的目录了。安装 Samba 服务。检查 Samba 服务是否已经启动。设置 Samba 服务开机自启。启动 Samba 服务。

2023-05-05 01:00:00 3625

原创 一个杀死进程的shell脚本

请注意,需要将“your_process_name”替换为要查询和杀死的实际进程名称。此外,您可能需要使用sudo权限来杀死某些进程。将上述代码保存为一个名为。

2023-05-04 10:33:34 1375

原创 【Linux内核解析-linux-5.14.10-内核源码注释】内核源码中宏定义理解

这是Linux内核中的一些宏定义,用于定义代码和数据的属性和位置。__init: 这是一个宏定义,用于标记函数为内核初始化代码。这些代码只在内核启动时执行一次,然后就不再需要了。该宏定义会将函数放置在.init.text节(section)中。__initdata: 这是一个宏定义,用于标记数据为内核初始化数据。这些数据只在内核启动时使用一次,然后就不再需要了。该宏定义会将数据放置在.init.data节(section)中。__exitdata: 这是一个宏定义,用于标记数据为内核退出数据。

2023-05-03 00:45:00 1097

原创 【Linux内核解析-linux-5.14.10-内核源码注释】MM内存管理内核启动初始化源码解析

这是Linux内核中的mm_init函数的代码,其作用是初始化内存管理相关的组件和数据结构。static: 这是一个函数声明修饰符,表示该函数只在当前文件中可见。: 这是函数的返回类型和修饰符,表示该函数是内核初始化代码。: 这是一个函数调用,用于初始化页表扩展(page_ext)的内存管理器。该函数要求页表必须是连续的,而且必须大于MAX_ORDER,除非使用了SPARSEMEM。: 这是一个函数调用,用于初始化内存调试和硬化相关的组件。: 这是一个函数调用,用于为内存分配器kFence分配内存池。

2023-05-02 00:30:00 1631

原创 【Linux内核解析-linux-5.14.10-内核源码注释】内核启动kernel_init解释

声明一个静态整型函数,该函数不会被其他文件访问,使用__ref标记表示该函数是可重定位的,并且该函数不需要任何参数。: 等待kthreadd线程完成初始化,函数会阻塞当前进程,直到指定的完成对象完成。: 调用函数进行内核初始化,该函数包括了内核的大部分初始化工作。: 在进行异步初始化代码之前,需要进行同步操作,以确保所有异步初始化代码都已经完成。: 释放kprobe初始化时申请的内存空间。

2023-05-01 17:22:46 1534 1

原创 Linux的 strace使用方法

其中,为要执行的命令,可以是可执行文件或shell命令。strace将输出进程执行的所有系统调用及其参数和返回值,以及其他一些信息。

2023-04-30 00:45:00 2101

原创 Linux系统查看命令行的函数调用栈方法

strace是一个非常强大的Linux系统调用跟踪工具,可以帮助我们调试和分析进程执行过程中的问题。下面介绍一下strace的使用方法。pstack是一个Linux下的进程堆栈跟踪工具,可以显示进程的函数调用栈。perf是一个Linux下的性能分析工具,可以显示进程的函数调用栈。在命令行中执行gdb命令,进入gdb调试工具。其中,为进程的PID。其中,为进程的PID。其中,为进程的PID。

2023-04-29 00:15:00 1359

原创 Shell语法解释特殊符号 # %

在 Bash 中,符号通常表示删除字符串的后缀。具体来说,表示从变量$var的结尾删除匹配模式pattern的子串,并返回删除后的字符串。例如,如果$namebin的值为file.bin,那么的结果就是file,因为它删除了$namebin变量结尾的.bin后缀。需要注意的是,符号只会删除一个匹配模式,如果变量结尾有多个匹配模式,只会删除最后一个匹配模式。另外,符号还可以与%%符号连用,表示删除最长匹配模式的后缀。

2023-04-28 11:30:31 4361

原创 笠翁对韵-喜欢拿走

《笠翁对韵》清·李渔 著卷上一 东  天对地,雨对风。大陆对长空。山花对海树,赤日对苍穹。雷隐隐,雾蒙蒙。日下对天中。风高秋月白,雨霁晚霞红。牛女二星河左右,参商两曜斗西东。十月塞边,飒飒寒霜惊戍旅;三冬江上,漫漫朔雪冷渔翁。  牛女:牛郎、织女二星。河,银河。 参商:二星名。《左传·昭元年》载,传说高辛氏有二子,长阏伯,季实沉。兄弟不睦,日寻戈矛。帝迁阏于商丘,主辰;迁沉于大夏,主参,使之永不相遇。 斗:北斗七星。 戍旅:守边塞的兵卒。  河对汉,绿对红。雨伯对雷公。烟楼对雪洞,月殿对天宫。云叆叇

2023-04-27 16:31:12 1097

原创 PCIE设备插入主板上后内核识别流程

pci_scan_device():PCIe设备扫描函数,用于扫描设备的PCIe配置空间,获取设备的厂商ID和设备ID。pci_match_device():PCIe设备匹配函数,用于根据设备的PCIe ID来查找相应的驱动程序。acpi_scan_add_device():ACPI设备枚举函数,用于根据设备的ACPI路径来识别设备。pci_device_probe():PCIe设备探测函数,用于调用驱动程序的probe函数来初始化设备。dev_set_name():设置设备名称函数,用于设置设备的名称。

2023-04-27 09:51:24 3685

原创 GitLab搭建自己的代码管理中心方法

对于二进制安装,直接解压缩安装包即可。配置GitLab:安装完成后,需要进行GitLab的配置,包括数据库连接、域名绑定、邮件设置等。安装必要的依赖:安装GitLab需要安装Ruby、PostgreSQL、Redis等依赖,可以使用系统自带的包管理器进行安装,也可以从官网下载安装包进行安装。安装必要的依赖:GitLab需要安装Ruby、PostgreSQL、Redis等依赖,需要先安装这些依赖。配置GitLab:安装完成后,需要进行GitLab的配置,包括数据库连接、域名绑定、邮件设置等。

2023-04-26 18:08:52 668

原创 命令行find查找删除指定文件夹下内容方法

可以使用find命令结合-mtime参数来删除一个文件夹下指定时间之前的内容。-type f-mtime +1-delete使用这个命令会直接删除文件夹中满足条件的文件,无法恢复,请谨慎使用。建议在执行删除操作之前先使用find命令查看一下将会被删除的文件列表,以免误删重要文件。

2023-04-26 00:15:00 4443

原创 PCIE内核注册详解

这个文件定义了PCIe驱动程序结构体和相关的函数。驱动程序需要包含这个头文件才能使用PCIe相关的函数和结构体。:这个文件包含了PCIe驱动程序的核心注册函数和。这些函数用于向内核注册和注销PCIe驱动程序。:这个文件包含了PCIe设备探测相关的函数。当系统检测到一个新的PCIe设备时,内核会调用这些函数来确定是否有与该设备匹配的驱动程序。:这个文件包含了PCIe设备初始化相关的函数。一旦驱动程序被匹配到一个PCIe设备,内核会调用这些函数来初始化设备并分配资源。

2023-04-26 00:15:00 1534

AER注入工具,和AER-DRV配套使用

AER注入工具,和AER-DRV配套使用

2023-08-28

aer故障注入工具,有需要下载

aer故障注入工具

2023-08-28

HCIA-欧拉操作系统培训手册

HCIA-欧拉操作系统培训手册,初手使用

2023-08-28

Linux命令行大全,内含中文版和英文版

Linux命令行大全,内含中文版和英文版

2023-08-28

PCI Hot-Plug Specification

PCI的热插拔协议

2023-08-28

pcie的recovery资料

pcie的recovery资料,有需要的可以下载查看

2023-08-28

pcie-aer 使用说明,中文版本

pcie-aer 使用说明,中文版本,AER相关内容可以参看

2023-08-28

qemu-8.0.0.tar.xz qemu源码

qemu源码分享

2023-05-26

re2c-3.0.tar.xz,是Google的一名程序员推出的注重速度的构建工具

ninja 是Google的一名程序员推出的注重速度的构建工具.一般在Unix/Linux上的程序通过make/makefile来构建编译,而ninja通过将编译任务并行组织,大大提高了构建速度。

2023-05-26

QEMU使用的工具,QEMU使用的工具

QEMU使用的工具

2023-05-26

emEditor.rar

一个文档阅读器,可以阅读CSV等各种文件,非常好的工具

2023-05-25

Arbor1-6-windows-x64-1-6-284.exe

一个pcie的好工具

2023-05-25

抢茅台脚本以及使用方法

抢茅台的方法,里面有脚本文件和python的安装包,小白可以学习使用,大佬绕行吧,哈哈

2021-01-08

linux-sys.zh 邢文鹏课件

linux-sys.zh 邢文鹏课件,分享给需要的小伙伴,一起进步,加油

2019-04-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除