分类目录


一、概述 在 Linux 内核中,preempt_count 是一个用于跟踪抢占和中断深度的计数器。它是一个 per-CPU 变量,意味着每个处理器核心有自己的 preempt_count。这个计数器
2024-12-22 20:47:23
    
阅读数: 282
    
评论数: 0

一、概述 在 Linux 系统中,内核日志级别决定了哪些类型的消息会被输出到内核日志缓冲区。这些消息可以通过 dmesg 命令查看。日志级别从 0 到 7,分别对应不同的重要程度: 0 (KERN_
2024-12-22 20:47:03
    
阅读数: 662
    
评论数: 0

一、概述 在 Linux 内核开发中,__init 宏是一个特殊的宏,用于标记某些函数或数据是初始化代码或数据。当内核启动并完成初始化后,这部分被标记为 __init 的代码和数据可以被丢弃,以节省内
2024-12-22 20:46:40
    
阅读数: 197
    
评论数: 0

一、概述 在Linux内核中,EXPORT_SYMBOL宏允许内核模块导出符号(通常是函数或变量),使得其他模块可以在它们自己的代码中使用这些符号。这是一种模块间通信的机制,允许模块共享代码而不需要将
2024-12-22 20:45:58
    
阅读数: 327
    
评论数: 0

一、概述 Linux下内存管理是通过段页式管理,内存分配是以页为单位,而页是通过段管理,各个段之间是独立的。 二、BSS段 Block Started by Symbol的简称,是用来存储程序中未初
2024-12-22 20:45:32
    
阅读数: 824
    
评论数: 0

一、概述 内核中init_task变量是进程0使用的进程描述符,也是Linux系统中第一个进程描述符。 smp amp bmp 非对称多处理(Asymmetric multiprocessin
2024-12-22 20:45:08
    
阅读数: 293
    
评论数: 0

一、概述 在kernel进入c语言阶段后,会开始执行start_kernel函数,它负责进行kernel正式运行前各个功能的初始化:打印一些信息、内核工作城要的模块的初始化被依次调用(譬如内存管理、调
2024-12-22 20:42:24
    
阅读数: 396
    
评论数: 0

在bootloader的帮助下,内核被载入到内存中,内核映像被加载到内存并获得控制权之后,内核启动流程开始。通常,内核映像以压缩形式存储,并不是一个可以执行的内核。因此内核的首要工作是自解压内核映像。
2024-12-22 20:41:40
    
阅读数: 289
    
评论数: 0

一、概述 在Linux内核中,debug_objects是一个用于对象生命周期检测的调试框架,它能够帮助开发者发现对象使用中的错误,比如在对象完全初始化之前使用它们,或者在释放后再次使用(通常称为
2024-12-22 20:40:39
    
阅读数: 396
    
评论数: 0

一、概述 在Linux内核中,控制组(cgroups)是一个功能,它允许内核对进程进行分组,并对这些分组施加不同类型的资源限制和监控。控制组可以用来限制资源使用(如CPU时间、系统内存、网络带宽等),
2024-12-22 20:40:23
    
阅读数: 336
    
评论数: 0

一、概述 cmake是一个跨平台的编译自动配置工具,它并不直接构建最终的软件,它只是通过读取CMakeLists.txt配置文件,然后按配置输出定义式的Makefile或project文件。 二、变量
2024-12-22 20:39:49
    
阅读数: 292
    
评论数: 0

一、概述 在Linux环境下,pthread_rwlock_t 是一个用于实现读写锁的数据类型,它属于POSIX线程(pthreads)库。读写锁允许多个线程同时读取共享数据,但是如果一个线程想要写入
2024-12-22 20:39:32
    
阅读数: 279
    
评论数: 0

一、概述 在Linux系统中,sem_t 是 POSIX 信号量的数据类型,定义在 <semaphore.h> 头文件中。POSIX 信号量用于进程或线程间的同步,它可以用来保护共享资源或者在进程/线
2024-12-22 20:38:52
    
阅读数: 438
    
评论数: 0

一、概述 在Linux系统中,chmod 是一个用于更改文件或目录权限的命令。chmod 的名称来源于 "change mode" 的缩写。文件和目录的权限决定了谁可以读取、写入或执行该文件。 文件和
2024-12-22 20:38:10
    
阅读数: 213
    
评论数: 0

1、指定cmake的最小版本 CMAKE_MINIMUM_REQUIRED(VERSION 2.8) 这行命令是可选的,也可以不写这句话,但如果CMakeLists.txt文件中使用了一些高版本cma
2024-12-22 20:37:49
    
阅读数: 254
    
评论数: 0

数组指针 是一个指向数组的一个指针. int (*p)[4]; char (*p)[4]; ()操作符和[]优先级相等, 从左向右进行运算, 因此p先和()里的*结合, 所以断定这是指针, 然后再和[
2024-12-22 20:37:18
    
阅读数: 278
    
评论数: 0

C语言允许用户使用typedef关键字来定义自己习惯的数据类型名称。 typedef的4种用法 1、为基本数据类型定义新的类型名 系统默认的所有基本类型都可以利用typedef关键字来重新定义类型名,
2024-12-22 20:37:03
    
阅读数: 283
    
评论数: 0

修饰变量的声明 例如: 若a.c中需要用b.c中的变量 int v,可以在a.c中声明extern int v,然后就可以引用变量v。能够被其他模块extern引用到的变量通常是全局变量。 还有一点是
2024-12-22 20:36:37
    
阅读数: 337
    
评论数: 0

第1章 认识对象 1.面向对象分析(object-oriented analysis,OOA)的主要任务是分析问题域中的对象、对象之间的关系,然后构造出该问题域的分析模型。分析模型必须简洁、明确地抽象
2024-12-22 20:36:13
    
阅读数: 361
    
评论数: 0

第一章 C++初步认识 C++对C的“增强”,表现在两个方面: (1)在原来面向过程的机制基础上,对C语言的功能做了不少扩展 (2)增加了面向对象的机制   面向对象和面向过程不是矛盾的,而是各有用途
2024-12-22 20:34:52
    
阅读数: 364
    
评论数: 0