Linux
Linux源码 EXPORT_SYMBOL
一、概述
在Linux内核中,EXPORT_SYMBOL宏允许内核模块导出符号(通常是函数或变量),使得其他模块可以在它们自己的代码中使用这些符号。这是一种模块间通信的机制,允许模块共享代码而不需要将
2024-12-22 20:45:58
阅读数: 324
评论数: 0
一、概述
Linux下内存管理是通过段页式管理,内存分配是以页为单位,而页是通过段管理,各个段之间是独立的。
二、BSS段
Block Started by Symbol的简称,是用来存储程序中未初
2024-12-22 20:45:32
阅读数: 821
评论数: 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
阅读数: 395
评论数: 0
在bootloader的帮助下,内核被载入到内存中,内核映像被加载到内存并获得控制权之后,内核启动流程开始。通常,内核映像以压缩形式存储,并不是一个可以执行的内核。因此内核的首要工作是自解压内核映像。
2024-12-22 20:41:40
阅读数: 289
评论数: 0
一、概述
在Linux内核中,debug_objects是一个用于对象生命周期检测的调试框架,它能够帮助开发者发现对象使用中的错误,比如在对象完全初始化之前使用它们,或者在释放后再次使用(通常称为
2024-12-22 20:40:39
阅读数: 395
评论数: 0
Linux
Linux源码cgroup_init_early
一、概述
在Linux内核中,控制组(cgroups)是一个功能,它允许内核对进程进行分组,并对这些分组施加不同类型的资源限制和监控。控制组可以用来限制资源使用(如CPU时间、系统内存、网络带宽等),
2024-12-22 20:40:23
阅读数: 335
评论数: 0
Linux
linux 统计代码行数
一、wc命令
wc(word count)命令是用来计算字数的,但它也可以用来计算行数。要统计一个文件的行数,可以使用以下命令:
wc -l filename
如果你想统计一个目录下所有.c文件的行
2024-12-22 20:40:05
阅读数: 258
评论数: 0
Linux
cmake 预定义变量
一、概述
cmake是一个跨平台的编译自动配置工具,它并不直接构建最终的软件,它只是通过读取CMakeLists.txt配置文件,然后按配置输出定义式的Makefile或project文件。
二、变量
2024-12-22 20:39:49
阅读数: 291
评论数: 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
阅读数: 436
评论数: 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
阅读数: 335
评论数: 0
第1章 认识对象
1.面向对象分析(object-oriented analysis,OOA)的主要任务是分析问题域中的对象、对象之间的关系,然后构造出该问题域的分析模型。分析模型必须简洁、明确地抽象
2024-12-22 20:36:13
阅读数: 360
评论数: 0
C/C++
《c++程序设计--谭浩强》读书笔记
第一章 C++初步认识
C++对C的“增强”,表现在两个方面:
(1)在原来面向过程的机制基础上,对C语言的功能做了不少扩展
(2)增加了面向对象的机制
面向对象和面向过程不是矛盾的,而是各有用途
2024-12-22 20:34:52
阅读数: 363
评论数: 0
C/C++
《C++ 标准程序库--侯捷》学习笔记
C++标准每5年会有一个新版本,1998年的C++98、2003年的C++03、2007年的C++TR1、2011年的C++11.
转换操作符
static_cast
将一个值以符合逻辑的方式转型。这
2024-12-22 20:31:10
阅读数: 405
评论数: 0
组织和策略问题
第0条 不要拘泥于小节(了解哪此东本西不应该标准化)
编程规范不应施加个人喜好或者过时的做法。
第1条 在高警告级别干净利落地进行编译
高度重视警告:使用编译器的最高警告级别。应该要求
2024-12-22 20:25:46
阅读数: 402
评论数: 0