自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 fork() 的魔法:为什么同一个变量竟存着两个值?

本文解析了Unix/Linux系统调用fork()的工作原理。fork()通过一次调用两次返回创建子进程:父进程返回子进程PID,子进程返回0。关键机制是写时复制(COW),初始共享内存,写入时触发独立复制。代码验证显示父子进程变量虚拟地址相同但物理内存独立。设计上,父进程需PID管理子进程,子进程通过0确认身份。内核实现中,fork()复制进程描述符并设置不同返回值。总结指出,COW使内存"看似共享实则独立",返回值差异是内核刻意设计,虚拟地址相同是假象,物理内存已分离。

2025-09-12 15:56:59 1375

原创 Linux(Ubuntu)基础7:一文学会Shell脚本编程

本文是一份全面的Shell脚本编程指南,主要包含以下内容: Shell基础介绍 解释Shell作为用户与内核桥梁的作用 说明Ubuntu系统默认使用bash解析器 介绍如何查看系统支持的Shell解析器类型 Shell脚本基础 讲解脚本基本格式(Shebang开头) 演示第一个"Hello World"脚本 说明脚本执行的两种方式及权限要求 变量与运算符 介绍系统变量、自定义变量和特殊变量 说明变量定义规则和算术运算方法 详细讲解特殊变量($n、$#、$*、$@、$?)的用法 流程控制

2025-09-09 10:48:17 1504

原创 Linux(Ubuntu)基础6:常用命令之磁盘类和进程线程类

本文总结了Linux系统中常用的磁盘管理和进程线程命令。磁盘类命令包括:df(查看磁盘空间)、du(统计目录大小)和fdisk(磁盘分区工具)。进程线程类命令包含:ps(查看进程状态)、top(实时监控进程)、kill/killall(终止进程)、pstree(树状显示进程)以及nice/renice(调整进程优先级)。这些命令通过不同参数组合可实现详细的系统监控和管理功能,是Linux系统运维的基础工具。

2025-09-08 09:51:27 698

原创 Linux(Ubuntu)基础5:常用命令之文件权限类和压缩解压类

Ubuntu系统文件权限与压缩命令摘要 文件权限管理: 权限查看:ls -l显示文件属性,首位表示类型(-文件/d目录/l链接) chmod命令:修改权限,支持符号(u/g/o/a+/-/=)和数字(755/644)模式,-R递归修改 chown/chgrp:修改所有者/组,需sudo权限 压缩解压工具: tar:支持.tar/.tar.gz/.tar.bz2格式 压缩:tar -czvf 包名.tar.gz 文件 解压:tar -xzvf 包名.tar.gz -C 目录 zip/unzip:跨平台格式 压

2025-09-06 19:50:42 1167

原创 Linux(Ubuntu)基础4:常用命令之时间日期类和搜索查找类

本文总结了Linux中时间日期和搜索查找两类高频命令的用法。时间日期类包括date(查看/设置系统时间,支持自定义格式)和cal(查看日历,支持多月份显示)。搜索查找类涵盖find(按路径/属性搜索文件)、grep(按内容搜索文本)及管道符|(组合多命令实现复杂筛选)。文中详细列出各命令的核心参数、语法格式和典型应用场景,如日期格式转换、文件类型筛选、日志分析等,并配有实操示例。这些命令是系统管理、日志处理和日常运维的基础工具。

2025-09-06 18:00:04 869

原创 Linux(Ubuntu)基础3:常用命令之文件目录类

本文总结了Ubuntu中常用的Linux文件目录命令,包括目录导航(pwd、cd、ls)、目录创建(mkdir、touch)、文件操作(cp、mv、rm)、内容查看(cat、more、less、head、tail)以及软链接(ln)和历史命令(history)。重点介绍了各命令的基本语法、常用参数及典型应用场景,特别强调了一些危险操作(如rm -rf)的注意事项。建议通过实践操作来熟悉这些基础命令,逐步掌握Linux文件系统管理的基本技能。

2025-09-06 16:36:32 1065

原创 Linux(Ubuntu)基础2:常用命令之帮助命令

Linux系统提供了多种获取命令帮助的方式:1. --help选项快速查看命令基本用法和选项;2. man命令查看详细手册,包含语法、选项说明等;3. info命令提供更结构化的详细帮助;4. whatis命令显示命令简短描述;5. apropos通过关键词搜索相关命令。此外还介绍了常用快捷键如Ctrl+C停止进程、Ctrl+L清屏等。这些帮助工具适用于不同场景,从快速查询到深入学习,是Linux用户必备的基础知识。

2025-09-06 15:02:00 452

原创 Linux(Ubuntu)基础1:文件目录与结构

Linux系统采用FHS标准的树状目录结构,从根目录(/)开始。系统核心目录包括存放命令的/bin、/sbin,配置文件/etc,设备文件/dev,以及虚拟文件系统/proc和/sys等,这些目录对普通用户主要只读。用户相关目录包含用户主目录/home,root用户的/root,应用程序/usr,动态文件/var,临时文件/tmp,以及挂载点/mnt和/media。Linux遵循"一切皆文件"原则,所有设备、进程都以文件形式管理,通过绝对路径唯一标识,并实施严格的权限隔离确保系统安全。

2025-09-06 14:30:07 979

原创 一文弄懂vim编辑器的使用

Vim高效文本编辑指南:Vim是一款基于模式化操作的高效文本编辑器,提供三种核心模式:普通模式(导航/编辑)、插入模式(文本输入)和命令模式(执行操作)。关键功能包括:1)hjkl光标移动与w/b/e快速跳转;2)dd/yy/p文本编辑;3)/查找和:s替换;4):wq文件操作。通过配置.vimrc可启用行号、智能缩进等实用功能。进阶技巧包含可视化选择、分屏编辑和宏录制。建议从基础命令入手,逐步掌握组合操作如d3w(删除3词)以提升效率。

2025-09-04 12:45:40 875

原创 CMake中set 命令的 5 种核心用法

本文介绍了CMake中变量的定义与使用方法,包括普通变量、路径变量、文件列表变量和编译选项变量。通过set命令可以定义不同类型的变量,如存储项目信息、管理文件路径、设置编译参数等。特别说明了条件设置变量的方法,可根据不同情况动态调整变量值。这些变量定义方式能提高CMake脚本的可读性和可维护性,避免代码重复,实现灵活的构建配置。

2025-08-19 09:38:12 400

原创 真相!开关罢工的真实原因——阵亡的MOS管!(全面了解MOS管)

在调试智能车时因误操作(先开电源后开电机驱动)导致开关失效,电路始终导通。经排查,发现是PMOS管体二极管被大电流击穿,造成源漏极直通。文章详细剖析了MOS管的结构、分类、工作原理及关键参数,并解释了该开关电路的设计初衷(避免机械开关打火损耗)。最后列举了MOS管在电源管理、数字逻辑、电机驱动等领域的广泛应用。案例揭示了功率电路中MOS管的脆弱性及保护措施的重要性。

2025-07-21 13:10:04 1138

原创 STM32开发常见的CMSIS到底是个啥?

CMSIS是ARM制定的Cortex微控制器软件接口标准,旨在统一不同厂商Cortex-M芯片的底层开发接口。其核心作用是通过标准化寄存器定义、启动文件、系统时钟配置等关键功能,使开发者只需更换头文件和少量配置,即可复用大部分代码(如GPIO、UART操作)在不同芯片间移植。CMSIS包含8个模块,最常用的是Core(内核基础)和Driver(外设驱动),其他模块如DSP、RTOS等针对特定需求。该标准显著降低了跨芯片开发的学习成本和代码重写工作量,是Cortex-M生态的重要基础设施。

2025-07-01 02:27:59 1237

原创 关于ESP32硬件定时器报错问题

本文记录了一个ESP32编程问题的解决过程。作者在实现定时器中断功能时发现教程范例代码报错,通过追踪函数定义发现是旧版API已被弃用。文章对比了新旧版本的差异,给出了新版定时器中断的实现代码,并通过LED闪烁示例演示了周期性中断和单次中断的用法。同时指出关键注意事项,包括timerBegin()函数的参数设置限制和频率计算方法。最后作者引用老师的话强调编程学习的态度:所有技术问题都是可以解决的,关键在于持续探索。全文展现了一个具体技术问题的分析解决过程,对ESP32开发者具有实用参考价值。

2025-06-23 22:26:12 373

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除