![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 56
逆风水手
虚拟的狂欢,现实的荒原
展开
-
使用 strace 进行调试
strace 是可用于调试任何正在运行的程序的最佳工具之一。在我们深入之前,您需要熟悉系统调用。熟悉它们非常重要,因为 strace 公开了程序正在使用的系统调用。因此,在介绍 strace 之前,先介绍一些常见的系统调用。系统调用是“应用程序和 Linux 内核之间的基本接口”。如果您查看手册页,您会发现有很多系统调用,但我不会列出所有系统调用,而是列出您会看到的更常见的调用。Open() - 用于打开或创建文件的系统调用Read() - 用于读取文件的系统调用。原创 2024-04-17 17:45:39 · 528 阅读 · 0 评论 -
Linux镜像iso文件下载方式--SCAS 开源镜像站,速度快
Linux镜像文件下载地址--SCAS 开源镜像站,速度快。原创 2024-03-23 14:13:48 · 280 阅读 · 0 评论 -
【linux】[OOM]now anon-rss:0kB, file-rss:0kB, shmem-rss:280kB
anon-rss:这表示没有映射到文件的内存量,即匿名内存。匿名内存通常是进程通过 malloc()或类似的方法动态分配的内存。在你的例子中,anon-rss 是 0 kB,表示没有这种类型的内存被使用。file-rss:这表示映射到文件的内存量。如果一个进程打开了一个文件并将其映射到内存,那么这部分内存就会被计入file-rss。在你的例子中,file-rss 也是 0 kB,表示没有这种类型的内存被使用。shmem-rss:这表示共享内存量。原创 2023-10-10 18:26:32 · 1057 阅读 · 0 评论 -
【Linux】inittab系统启动时sysinit含义
null::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout 这个命令的意思是,在系统启动时不运行这个命令,而是在系统运行过程中,当需要创建一个从 /proc/self/fd/1 到 /dev/stdout 的符号链接时,再运行这个命令。在这个上下文中,“null” 是一个特殊的关键字,用于指示这个命令不需要在系统启动时运行,而是在系统运行过程中根据需要运行。这种语法是 init 系统的一部分,用于控制系统启动过程中哪些命令应该在哪个阶段运行。原创 2023-10-07 17:31:45 · 540 阅读 · 0 评论 -
【Linux】package ‘python-yaml‘ has no installation candidate 如何解决
如果上述步骤仍然无法解决问题,您可以尝试使用 pip 安装 python-yaml 包。确保您的软件源列表中包含了正确的软件源。确保您的系统已经更新到最新版本。原创 2023-09-06 19:02:56 · 1368 阅读 · 0 评论 -
【Linux】内核宏定义解释postcore_initcall,arch_initcall,subsys_initcall
是一个宏,用于在Linux内核初始化过程中注册一个后期初始化函数。是一个宏定义,用于指定注册的函数在内核初始化的哪个阶段执行。是要注册的函数的名称,它是一个后期初始化函数。后期初始化函数是在内核初始化过程的最后阶段执行的函数。这些函数通常用于执行一些需要在其他子系统初始化之后才能进行的操作。截图汇总,是一个后期初始化函数,可能用于初始化PCI总线的相关内容。通过调用宏将后期初始化函数注册到内核中,可以确保在内核初始化的最后阶段执行该函数,从而完成相应的后期初始化工作。原创 2023-08-11 01:00:00 · 864 阅读 · 0 评论 -
【Linux】系统内核中System.map中字段含义解释
可以通过命令行过来初始化内容。地址表示的是函数的地址。原创 2023-08-10 14:59:00 · 393 阅读 · 0 评论 -
【Linux】内核线程创建 kthread_run 函数和内核中断
以PCIE的热插拔内核线程创建为例说明注意:内核线程和RTOS的线程略有不同,这里Linux上创建以后直接运行,RTOS上有的是需要加入到调度队列中后才会执行,比如RT-Thread的系统kthread_run 是 Linux 内核中的一个函数,用于创建和运行内核线程(Kernel Thread)。在 Linux 内核中,线程是一种轻量级的执行单位,可以独立运行并共享进程资源。原创 2023-08-04 16:19:04 · 1479 阅读 · 0 评论 -
内核中常用宏定义详解 container_of和list_entry
作用:用于根据结构体成员的指针计算出对应的结构体的指针这个宏包含了三个参数:ptr:结构体成员的指针。type:结构体类型。member:结构体成员变量的名称。宏的作用是根据给定的结构体成员的指针 ptr,返回对应的结构体的指针。它使用了指针运算和类型转换来实现。宏的具体实现如下:首先, 将一个空指针强制类型转换为指向 type 类型的指针,并且取得该指针指向的内存地址。接着, 取得了结构体成员 member 的偏移量,也就是 member 相对于结构体起始地址的偏移量。 将偏移量转换为字符指针,原创 2023-07-31 16:33:16 · 159 阅读 · 0 评论 -
【Linux】Busybox编译错解决
编译的时候我选择了编译静态库所以出这个问题。原创 2023-05-28 18:56:19 · 245 阅读 · 0 评论 -
【Linux】Top命令参数解释
load average: 0.97, 0.41, 0.21:系统在过去1分钟、5分钟和15分钟内的平均负载值。S:进程状态 (D=不可中断的睡眠状态, R=运行, S=睡眠, T=跟踪/停止, Z=僵尸进程)。ni:用于调整进程优先级的用户进程空间占用率 (nice value)。%Cpu(s):指示各种CPU时间的使用百分比。NI:进程的nice值,用于调整进程的优先级。%CPU:该进程当前占用CPU的时间百分比。%MEM:该进程占用物理内存的百分比。TIME+:该进程占用CPU的总时间。原创 2023-05-26 22:03:43 · 1073 阅读 · 0 评论 -
Centos8.2网卡配置文件解释
Centos8.2网卡配置文件解释。原创 2023-05-19 00:15:00 · 1358 阅读 · 0 评论 -
【Linux】Centos系统更新内核方法(使用前请备份数据!)
注意:在更新指定版本的CentOS系统中的内核版本时,请确保备份所有重要数据,并小心操作,以免意外损坏系统。其中,version是要安装的特定版本号。请注意,在安装特定版本时,你需要使用正确的版本号。这将显示当前正在运行的内核版本。这将列出所有可用的内核版本。原创 2023-05-15 18:00:20 · 738 阅读 · 0 评论 -
PCIE内核注册详解
这个文件定义了PCIe驱动程序结构体和相关的函数。驱动程序需要包含这个头文件才能使用PCIe相关的函数和结构体。:这个文件包含了PCIe驱动程序的核心注册函数和。这些函数用于向内核注册和注销PCIe驱动程序。:这个文件包含了PCIe设备探测相关的函数。当系统检测到一个新的PCIe设备时,内核会调用这些函数来确定是否有与该设备匹配的驱动程序。:这个文件包含了PCIe设备初始化相关的函数。一旦驱动程序被匹配到一个PCIe设备,内核会调用这些函数来初始化设备并分配资源。原创 2023-04-26 00:15:00 · 1217 阅读 · 0 评论 -
进程树pstree介绍
gnome-session-b进程会启动gnome-shell进程,它是GNOME桌面环境的窗口管理器,负责管理所有的窗口和工作区。同时,还有一些其他的进程,如ibus-daemon(输入法管理器)、gsd-a11y-settings(辅助功能设置)、gsd-color(颜色管理器)等等,它们都是GNOME桌面环境中的服务进程,负责提供一些特定的功能和服务。它可以将进程展示为树形结构,其中每个进程都是一个节点,而每个节点下面的子节点是该进程的子进程。原创 2023-04-22 00:15:00 · 2167 阅读 · 0 评论 -
Linux 操作系统中应该掌握的知识
local name = $1 # 定义第二个参数. echo “Hello, $name!” # 使用它. } greet John #=> Hello, John!原创 2023-04-21 00:45:00 · 976 阅读 · 0 评论 -
【Linux】网络配置ifonfig解读
在Linux系统中,IP地址的配置信息通常存储在网络接口配置文件中。不同的发行版可能会将这些文件存放在不同的位置。其中,是指网卡名称或其他类型设备名称。在一些新型发行版本上(如Ubuntu 18.04),采用了Netplan工具来管理网络连接。在这种情况下,则需要编辑修改对应目录下 YAML 配置文件进行 IP 地址相关设置。无论哪种方式, 修改完IP地址后一定要重启网卡服务使其生效,可以使用systemctl restart networking 命令实现。原创 2023-04-21 07:30:00 · 509 阅读 · 0 评论 -
Linux新的设备或分区挂载到系统中mount使用方法,开机自动挂载方法
如果您想在每次系统启动时自动挂载设备或分区,可以将挂载信息添加到。创建挂载点,可以在任何目录下创建一个新目录作为挂载点,例如。在卸载设备或分区之前,确保不再使用它,并使用。确定要挂载的设备或分区的设备名,例如。命令将设备或分区挂载到挂载点上。挂载完成后,您可以通过。命令卸载设备或分区。原创 2023-04-20 08:15:00 · 4433 阅读 · 1 评论 -
【Linux内核解析-linux-5.14.10】网络管理模块
总之,内核中的网络管理模块涉及到多个方面,包括网络协议栈、网络设备驱动程序、网络接口管理、连接管理和套接字管理、数据包过滤和转发、网络安全和加密等。数据包过滤和转发:数据包过滤和转发是内核中的一个重要模块,它们负责对网络数据包进行过滤和转发。连接管理和套接字管理:连接管理和套接字管理是内核中的一个重要模块,它们负责管理网络连接和套接字的状态、配置和数据传输等操作。连接管理和套接字管理通常包括连接的建立、维护和关闭、套接字的创建、绑定和监听等操作,可以使用API来实现。原创 2023-04-16 20:48:26 · 403 阅读 · 0 评论 -
分析解读内核的内存管理模块
INIT_MM_CONTEXT(init_mm): 初始化该 mm_struct 的上下文信息,包括进程的状态、信号处理等信息。.cpu_bitmap: 表示该 mm_struct 用于哪些 CPU,使用 CPU_BITS_NONE 宏进行初始化。.mm_rb: 红黑树的根节点,用于存储 vm_area_struct 结构体,表示当前进程的虚拟地址空间。.mm_users: 表示使用该 mm_struct 的用户数量,该成员变量使用原子变量进行初始化。.arg_lock: 用于保护进程的参数列表的自旋锁。原创 2023-04-06 20:21:35 · 177 阅读 · 0 评论