Linux
Linux preempt_count
一、概述
在 Linux 内核中,preempt_count 是一个用于跟踪抢占和中断深度的计数器。它是一个 per-CPU 变量,意味着每个处理器核心有自己的 preempt_count。这个计数器
2024-12-22 20:47:23
阅读数: 282
评论数: 0
Linux
Linux修改kernel log level
一、概述
在 Linux 系统中,内核日志级别决定了哪些类型的消息会被输出到内核日志缓冲区。这些消息可以通过 dmesg 命令查看。日志级别从 0 到 7,分别对应不同的重要程度:
0 (KERN_
2024-12-22 20:47:03
阅读数: 662
评论数: 0
Linux
Linux源码__init宏
一、概述
在 Linux 内核开发中,__init 宏是一个特殊的宏,用于标记某些函数或数据是初始化代码或数据。当内核启动并完成初始化后,这部分被标记为 __init 的代码和数据可以被丢弃,以节省内
2024-12-22 20:46:40
阅读数: 197
评论数: 0
Linux
Linux源码 EXPORT_SYMBOL
一、概述
在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
Linux
Linux init_task描述符
一、概述
内核中init_task变量是进程0使用的进程描述符,也是Linux系统中第一个进程描述符。
smp amp bmp
非对称多处理(Asymmetric multiprocessin
2024-12-22 20:45:08
阅读数: 293
评论数: 0
Linux
linux 内核启动进程分析
一、概述
在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
Linux源码cgroup_init_early
一、概述
在Linux内核中,控制组(cgroups)是一个功能,它允许内核对进程进行分组,并对这些分组施加不同类型的资源限制和监控。控制组可以用来限制资源使用(如CPU时间、系统内存、网络带宽等),
2024-12-22 20:40:23
阅读数: 336
评论数: 0
Linux
cmake 预定义变量
一、概述
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
Linux信号量sem_t
一、概述
在Linux系统中,sem_t 是 POSIX 信号量的数据类型,定义在 <semaphore.h> 头文件中。POSIX 信号量用于进程或线程间的同步,它可以用来保护共享资源或者在进程/线
2024-12-22 20:38:52
阅读数: 438
评论数: 0
Linux
Linux chmod命令
一、概述
在Linux系统中,chmod 是一个用于更改文件或目录权限的命令。chmod 的名称来源于 "change mode" 的缩写。文件和目录的权限决定了谁可以读取、写入或执行该文件。
文件和
2024-12-22 20:38:10
阅读数: 213
评论数: 0
C/C++
CMakeLists.txt语法
1、指定cmake的最小版本
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
这行命令是可选的,也可以不写这句话,但如果CMakeLists.txt文件中使用了一些高版本cma
2024-12-22 20:37:49
阅读数: 254
评论数: 0
C/C++
数组指针 指针数组 函数指针 函数指针数组
数组指针
是一个指向数组的一个指针.
int (*p)[4]; char (*p)[4];
()操作符和[]优先级相等, 从左向右进行运算, 因此p先和()里的*结合, 所以断定这是指针, 然后再和[
2024-12-22 20:37:18
阅读数: 278
评论数: 0
C/C++
C typedef
C语言允许用户使用typedef关键字来定义自己习惯的数据类型名称。
typedef的4种用法
1、为基本数据类型定义新的类型名
系统默认的所有基本类型都可以利用typedef关键字来重新定义类型名,
2024-12-22 20:37:03
阅读数: 283
评论数: 0
C/C++
c extern关键字
修饰变量的声明
例如:
若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++程序设计--谭浩强》读书笔记
第一章 C++初步认识
C++对C的“增强”,表现在两个方面:
(1)在原来面向过程的机制基础上,对C语言的功能做了不少扩展
(2)增加了面向对象的机制
面向对象和面向过程不是矛盾的,而是各有用途
2024-12-22 20:34:52
阅读数: 364
评论数: 0