1 2 3 4 5 ··· 8 下一页
摘要: 目录进程的概念进程的创建进程的状态进程的调度进程的死亡僵尸进程孤儿进程僵尸进程处理方式僵尸进程的产生、危害及避免方法进程间通信管道匿名管道命名管道FIFO消息队列system V IPCPOSIX IPC内核中的消息队列关系信号量system V IPCPOSIX IPC内核中的信号量关系共享内存s 阅读全文
posted @ 2026-03-01 20:20 main_c 阅读(1) 评论(0) 推荐(0)
摘要: 目录线程的概念线程模型线程状态线程调度pthread接口类型接口线程的创建线程的死亡线程正常终止exit/pthread_exitpthread_joinpthread_cancel线程间通信互斥锁(Mutex)条件变量(Condition Variable)信号量(Semaphore)参考 本文将 阅读全文
posted @ 2026-03-01 19:59 main_c 阅读(8) 评论(0) 推荐(0)
摘要: @目录定义产生死锁的原因竞争资源引起进程死锁进程推进顺序不当引起死锁嵌套锁资源耗尽死锁产生的必要条件处理死锁的基本方法实验如何排查死锁topgdbstrace代码检查ThreadSanitizer (TSan)Valgrind参考 定义 所谓死锁,就是指两个或两个以上的进程在执行过程中,因争夺资源而 阅读全文
posted @ 2026-03-01 16:23 main_c 阅读(8) 评论(0) 推荐(0)
摘要: 目录名词解释物理内存RAM到内存空间内存映射MMU物理内存管理数据结构伙伴系统slab机制slob机制slub机制虚拟内存虚拟内存管理数据结构缺页异常do_page_dault匿名页面缺页异常本件映射缺页异常写时复制缺页异常总结页面回收算法LRU算法二次机会算法OOM Killer机制工具topvm 阅读全文
posted @ 2026-03-01 13:29 main_c 阅读(2) 评论(0) 推荐(0)
摘要: Linux 内核源码版本:6.6LTS 总体而言,内核的启动可以概括为下面几个步骤: 实模式的入口函数_start:在header.S中,这里会进入main函数,它复制bootloader的各个参数,执行基本硬件设置,解析命令行参数。 保护模式的入口函数startup_32:在compressed/ 阅读全文
posted @ 2026-02-26 19:12 main_c 阅读(11) 评论(0) 推荐(0)
摘要: Linux 内核源码版本:6.6LTS 模块是内核中非常重要的机制,它为Linux内核向外提供了一个接口,其全称为动态可加载内核模块(Loadable Kernel Module)。Linux内核之所以提供模块机制,是因为它本身是一个单内核(monolithic kernel)。单内核的最大有点是效 阅读全文
posted @ 2026-02-26 19:08 main_c 阅读(2) 评论(0) 推荐(0)
摘要: @目录进程和程序进程结构体进程的创建内核线程进程的终止孤儿进程僵尸进程进程的出生和演化0号进程1号进程2号进程0号进程演变为idle进程调度进程优先级时间片调度算法经典调度算法Linux \(O(n)\)调度算法Linux \(O(1)\)调度算法Linux CFS调度算法EEVDF调度算法进程切换 阅读全文
posted @ 2026-02-26 19:07 main_c 阅读(3) 评论(0) 推荐(0)
摘要: @目录背景知识原子操作内存屏障自旋锁定义自旋锁变种自旋锁的改进信号量定义互斥体定义读写锁定义读写信号量总结RCU定义等待队列定义参考 linux-6.12 背景知识 临界区:是指访问和操作共享数据的代码段,这些资源无法同时被多个执行线程访问,访问临界区的执行线程或代码路径称为并发源。 为了避免临界区 阅读全文
posted @ 2026-02-26 19:03 main_c 阅读(2) 评论(0) 推荐(0)
摘要: 目录背景内核线程代码测试后台守护进程代码测试进程权限代码测试设置优先级代码测试per-cpu变量代码测试参考 背景 关于进程管理的介绍参考Linux内核学习——进程管理 内核线程 编写一个内核模块,创建一组内核线程,每个CPU一个内核线程 在每个内核线程中,打印当前CPU的状态 在每个内核线程中,打 阅读全文
posted @ 2026-02-26 11:38 main_c 阅读(1) 评论(0) 推荐(0)
摘要: 目录获取系统的物理内存信息代码测试分配内存代码测试slab 内存分配测试VMA测试注意参考 环境:Linux arch-dev 6.18.9-arch1-2 #1 SMP PREEMPT_DYNAMIC Mon, 09 Feb 2026 17:16:33 +0000 x86_64 GNU/Linux 阅读全文
posted @ 2026-02-09 23:59 main_c 阅读(1) 评论(0) 推荐(0)
摘要: 简介 LubanCat-A1是野火科技基于全志(Allwinner) H618设计的一款低功耗、高性能单板电脑。 LubanCat-A1使用了一颗包含四核Cortex-A53处理器、Arm Mali-G31 MP2图形处理器的SOC, 搭配千兆网口、HDMI、USB2.0等外设接口。 LubanCa 阅读全文
posted @ 2026-01-25 19:56 main_c 阅读(2) 评论(0) 推荐(0)
摘要: 简介 Orange Pi Prime采用了全志H5 Cortex-A53四核64位高性能处理器,集成2GB DDR3内存、WiFi+蓝牙、DC供电等。 Orange Pi Prime集成了千兆以太网,RJ45板载网络、板载存储、LED指示灯,Low-Level外设,并且兼容树莓派GPIO口,拥有独特 阅读全文
posted @ 2026-01-19 22:01 main_c 阅读(1) 评论(0) 推荐(0)
摘要: Name Mangling 什么是Name Mangling 编程语言组织程序,都有一定的可见范围,比如Java的包、C/C++的文件。就像我们平时使用的文件夹一样,有了这些组织机制,变量、函数的命名在一定程度上就可以重复。 但在程序链接时,这些机制多少都要失效一些,就像每个小朋友在家都叫宝宝,到了 阅读全文
posted @ 2026-01-18 16:11 main_c 阅读(1) 评论(0) 推荐(0)
摘要: @目录default constructorcopy constructor参考 default constructor 当编译器需要构造函数的时候,而类本身没有定义构造函数时,会被合成出来,被合成的构造函数只会执行编译器所需的动作。 带有default constructor的成员对象 如果一个类 阅读全文
posted @ 2026-01-18 15:32 main_c 阅读(1) 评论(0) 推荐(0)
摘要: RK3506G 是一款高性能的三核 Cortex A7 应用处理器,专为智能语音交互、音频输入/输出处理、图像输出处理以及其他数字多媒体应用而设计。 内置 2D 硬件引擎和显示输出引擎,以最小化 CPU 负载,满足图像显示需求。 内置丰富的外设接口,如 SAI、PDM、SPDIF、音频 DSM、音频 阅读全文
posted @ 2026-01-15 22:59 main_c 阅读(9) 评论(0) 推荐(0)
摘要: 学习Emacs 参考 GNU Emacs Manuals Online 专业 Emacs 入门 Master Emacs in 21 Days 阅读全文
posted @ 2026-01-13 00:15 main_c 阅读(0) 评论(0) 推荐(0)
摘要: 本文旨在介绍Linux下分析内存的各种工具及其背后的原理。 背景 在Linux 性能优化基础中引入了诸多内存性能分析工具,同时为了更好地理解Linux内核内存管理,需要对Linux下内存分析工具做一个简单分析。 free $ free -m total used free shared buff/c 阅读全文
posted @ 2026-01-13 00:05 main_c 阅读(3) 评论(0) 推荐(0)
摘要: @目录背景第一个镜像安装依赖下载工具配置构建环境开始构建配置环境查看配置开始构建启动镜像参考 背景 Yocto 项目(YP)是一个开源协作项目,它帮助开发者创建基于 Linux 的自定义系统,且不受硬件架构的限制。 该项目提供了一套灵活的工具集,以及一个供全球嵌入式开发者共享技术、软件栈、配置和最佳 阅读全文
posted @ 2026-01-03 14:20 main_c 阅读(10) 评论(0) 推荐(0)
摘要: @目录目录结构阅读顺序定位内核入口整体流程阅读文档阅读简单驱动参考 Linux 内核源码版本:6.6LTS 一个基于Linux内核的操作系统,一般应该包含以下部分: bootloader,比如GRUB和SYSLINUX,它负责将内核加载进内存,系统上电或者BIOS初始化完成后执行。 init程序,负 阅读全文
posted @ 2025-10-14 22:59 main_c 阅读(1) 评论(0) 推荐(0)
摘要: TCP/IP RFC TCP/IP 标准是在一系列称为 RFC 的文档中发布的。RFC 是目前仍在发展的描述 TCP/IP 和 Internet 内部工作的一系列报告、协议的提议以及协议标准。 虽然 TCP/IP 标准通常由 RFC 发布,但不是所有的 RFC 都被最终指定为标准。RFC 是由个人编 阅读全文
posted @ 2025-10-14 22:23 main_c 阅读(2) 评论(0) 推荐(0)
摘要: 文章目录 构造函数析构函数显式调用析构函数 异常与构造函数和析构函数参考 本文将说明为什么构造函数不可以为虚函数以及析构函数什么场景下需要是虚函数 构造函数 在C++中,基类的构造函数不能定义为虚函数,主要有以下几个原因: 构造过程的顺序:构造函数的调用顺序是从基类到派生类的。如果基类的构造函数是虚 阅读全文
posted @ 2025-10-14 22:20 main_c 阅读(14) 评论(0) 推荐(0)
摘要: References Google C++ Style Guide Google 开源项目风格指南——中文版 阅读全文
posted @ 2025-09-14 23:18 main_c 阅读(0) 评论(0) 推荐(0)
摘要: 文章目录 简介接口常见问题多台RS485设备如何连接传输距离modbus的关系如何解决多设备地址冲突问题 参考 简介 RS-485(目前称为EIA/TIA-485,RS是Recommend Standard的缩写)是通信物理层的标准接口,是一种信号传输方法,是OSI(开放系统互联)模型的第一级。RS 阅读全文
posted @ 2025-09-14 23:10 main_c 阅读(49) 评论(0) 推荐(0)
摘要: 文章目录 类与对象参考 类与对象 由于C++是面向对象的程序设计语言,因此了解一下“面向对象的程序设计”是必须的。这篇文章主要总结了面向对象的程序设计的基本概念以及面向对象的程序设计的基本特征,作为初学C++的参考 一、什么是面向对象的程序设计 我们都知道以前学习的C语言是面向过程的程序设计,它是由 阅读全文
posted @ 2025-09-02 23:54 main_c 阅读(1) 评论(0) 推荐(0)
摘要: C++是一门这样的编程语言: 兼顾底层计算机硬件系统和高层应用抽象机制从实际问题出发,注重零成本抽象、性能、可移植性、与C兼容语言特性和细节很多,学习成本较高,是一门让程序员很难敢说精通的语言 C++是自由的,支持5种编程风格: 面向过程编程数据抽象编程面向对象编程泛型编程函数式编程 C++的重要历 阅读全文
posted @ 2025-09-02 23:42 main_c 阅读(1) 评论(0) 推荐(0)
摘要: 什么是闭包 维基百科解释: 在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures),是在支持头等函数的编程语言中实现词法绑定的一种技术。闭包在实现上是一个结构体,它存储了一个函数(通常是其入口地址)和一个关联的环境 阅读全文
posted @ 2025-03-03 20:17 main_c 阅读(0) 评论(0) 推荐(0)
摘要: 介绍 快速排序(Quicksort),又称分区交换排序(partition-exchange sort),是一种排序算法,最早由东尼·霍尔提出。在平均状况下,排序 n {\displaystyle n} n个项目要 O ( n log ⁡ n ) {\displaystyle \ O(n\log n 阅读全文
posted @ 2025-03-03 09:47 main_c 阅读(1) 评论(0) 推荐(0)
摘要: 简介 冒泡排序(Bubble Sort)又称为泡式排序,是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端 阅读全文
posted @ 2025-03-02 23:35 main_c 阅读(7) 评论(0) 推荐(0)
摘要: 简介 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动有关。 阅读全文
posted @ 2025-03-02 23:23 main_c 阅读(2) 评论(0) 推荐(0)
摘要: 简介 插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到 O ( 1 ) \displaystyle O(1) O(1)的额外空间 阅读全文
posted @ 2025-03-02 23:10 main_c 阅读(2) 评论(0) 推荐(0)
摘要: 什么是RAII RAII(Resource Acquisition Is Initialization,资源获取即初始化)是一种C++编程习惯和原则,旨在通过资源的生命周期管理来保证资源的安全和有效使用。RAII的核心思想是将资源的获取和释放绑定到对象的生命周期。当对象被创建时,它会分配相应的资源; 阅读全文
posted @ 2025-03-02 13:29 main_c 阅读(3) 评论(0) 推荐(0)
摘要: 什么是RVO RVO(Return Value Optimization) RVO是一种编译器优化技术,它避免了从函数返回时创建临时对象。当函数返回一个临时对象(通常是由构造函数直接初始化的匿名对象)时,RVO允许编译器省略创建和销毁临时对象的过程,而是直接在接收对象的位置构造返回值。 当编译器确定 阅读全文
posted @ 2025-03-02 13:11 main_c 阅读(1) 评论(0) 推荐(0)
摘要: 文章目录 基础数值类型原始字符串字面常量(raw string literal)类型别名声明类内初始化列表初始化返回值定义尾置返回类型`constexpr`构造函数用`string`对象处理文件名引用限定(reference qualifier)成员函数引用折叠规则auto & decltypeau 阅读全文
posted @ 2025-03-02 13:02 main_c 阅读(1) 评论(0) 推荐(0)
摘要: run-time type information or run-time type identification (RTTI) RTTI(Runtime Type Information)是C++中的一个特性,允许程序在运行时获取类型信息。它主要用于多态(尤其是基于类的多态)时,帮助判断对象的实际 阅读全文
posted @ 2025-03-02 00:51 main_c 阅读(1) 评论(0) 推荐(0)
摘要: 文章目录 递归尾递归递归的消除 递归 传统地递归过程就是函数调用,涉及返回地址、函数参数、寄存器值等压栈(在x86-64上通常用寄存器保存函数参数),这样做的缺点有二: 效率低,占内存如果递归链过长,可能会栈溢出 尾递归 尾递归是递归的一种特殊情形,是一种特殊的尾调用,即在尾部直接调用自身的递归函数 阅读全文
posted @ 2025-03-01 23:53 main_c 阅读(1) 评论(0) 推荐(0)
摘要: 文章目录 准备ramdisk创建RAM Disk创建一个ramdisk块设备 将虚拟机镜像导入到ramdisk中从ramdisk上启动虚拟机 参考 准备ramdisk linux中创建ramdisk可以有一下在两种方法: 创建RAM Disk 第一种方法是创建内存文件 首先创建一个目录,这个目录可以 阅读全文
posted @ 2025-02-24 23:34 main_c 阅读(1) 评论(0) 推荐(0)
摘要: 本文总结下C++中的一些术语。 英文翻译abstract抽象的abstraction抽象性、抽象件abstract data type,ADT抽象数据类型access访问access level访问级别,public、private、protected等级access section访问区段,pub 阅读全文
posted @ 2025-02-24 18:58 main_c 阅读(0) 评论(0) 推荐(0)
摘要: 文章目录 Overload(重载)Override(覆盖)Overwrite(改写,盖写,覆盖)特殊情况 这几个词经常现且override和overwrite的中文翻译容易混淆,建议以英文为准。 Overload(重载) 重载的概念最好理解,在同一个类声明范围中,定义了多个名称完全相同、参数(类型或 阅读全文
posted @ 2025-02-24 12:12 main_c 阅读(1) 评论(0) 推荐(0)
摘要: gcc14.2.0 -std=gnu++11 在C++中,有两种class data members:static和nonstatic,以及三种class member functions:static、nonstatic和virtual。 我们需要了解一个具有不同类型成员的类,在内存中是如何存在的 阅读全文
posted @ 2025-02-24 12:12 main_c 阅读(0) 评论(0) 推荐(0)
摘要: 文章目录 简介内存模型内存位置指令重排内存序数据竞争 原子性atomic类型标志和栅栏 volatile线程线程的构造线程的析构joindetachthis_thread杀死threadthread_local 同步死锁死锁产生的四个必要条件死锁预防死锁避免 互斥量多重锁call_once条件变量 阅读全文
posted @ 2025-02-23 23:58 main_c 阅读(1) 评论(0) 推荐(0)
1 2 3 4 5 ··· 8 下一页