- 博客(1758)
- 资源 (19)
- 收藏
- 关注
原创 Linux: user: failure on close: groupdel: cannot remove the primary group of user ‘abc‘
摘要:删除用户组ABC失败,因为用户abc的主用户组是ABC。groupdel命令拒绝删除正在被使用的用户组。该问题是由于操作不当导致的。(50字)
2026-01-08 10:07:26
59
原创 perl: redhat9, perl-interpreter.rpm 一个包分成很多个小包
摘要:Red Hat 8的perl-interpreter软件包包含大量Perl模块文件(如Text/Abbrev.pm、Thread.pm等),而Red Hat 9的同名包仅包含核心二进制文件(/usr/bin/perl)和少量文档,缺失了原有模块。这表明在RHEL9中Perl模块可能被拆分到其他包中。对于手动安装的环境,建议改用dnf自动安装以确保依赖完整,避免因模块缺失导致的问题。
2026-01-06 13:02:39
312
原创 python: DeprecationWarning: Flags not at the start of the expression ‘.*(?i)ABC$‘ but at positi
正则表达式警告提示:(?!)语法应放在表达式开头以避免弃用警告。解决方案有两种:1)将忽略大小写标记(?i)移到正则开头,如'(?i).*_DUPLEX2$';2)使用flags=re.IGNORECASE参数替代内联标记。这两种方法都能消除警告并实现不区分大小写的匹配效果。
2026-01-06 09:06:02
107
原创 Linux: disk: dd 参数bs
dd命令默认使用512字节块大小,但合理设置bs参数可显著提升性能。当处理大文件时,建议将bs设为1M(1048576字节),这能平衡IO效率与内存消耗。典型应用包括磁盘克隆和大文件备份,优化后命令如dd if=src of=dest bs=1M status=progress。相比默认值,1M块大小通常可获得3-5倍性能提升,特别大的文件可尝试4M或8M块大小,但需根据硬件测试确定最佳值。
2026-01-04 13:05:33
537
原创 Linux: network: ipv6: proxy_ndp
这意味着,如果一个主机 A 询问主机 B 的 MAC 地址,而主机 B 不在主机 A 的直接链路上,但有一个启用了 proxy_ndp 的中间设备 C 知道主机 B 的 MAC 地址,那么设备 C 就会代表主机 B 回复主机 A 的请求。桥接 (Bridging):在某些复杂的桥接或虚拟化环境中,如果一个设备(如路由器或主机)需要为连接到其上的其他设备(如虚拟机或物理服务器)代理 NDP 消息,以确保它们能够被网络中的其他节点发现。将其值设置为 1 启用,设置为 0 禁用。
2026-01-04 13:00:35
196
原创 [英语学习] 双名词,名词修饰名词
本文讨论了RFC-5293文档中"communicating proxies"这一名词修饰名词的语法现象。作者指出communicating在这里名词化为形容词,表示"正在通信的",但对这种英语表达方式仍感陌生。分析认为理解障碍源于阅读量不足,需要通过刻意练习来掌握这类语法结构。摘要突出了技术文档中的语法难点及学习建议。
2025-12-30 09:45:07
136
原创 [英语单词]monkey around
摘要:英语短语"monkey around"源于对猴子活泼好动行为的观察,现用来形容人类无目的、不严肃的活动,带有轻微恶作剧性质。该表达暗指浪费时间、不专注或仅为娱乐而做无关紧要的事,类似中文的"闲逛"或"瞎搞"。其演变过程体现了从动物行为到人类活动的语言类比,生动传达了嬉闹、不认真的行为特征。(149字)
2025-12-27 15:45:41
314
原创 Linux: input这个group是谁加进来的?
摘要:在Linux系统中发现/etc/group文件中的input组是由systemd创建的。通过搜索发现该组定义在/usr/lib/sysusers.d/basic.conf配置文件中,systemd在此文件中定义了一系列硬件访问相关的用户组(如audio、video等)。input组(GID 104)专门用于系统级软件访问输入设备,类似于现有的audio和video组功能。相关UID/GID的详细说明可在systemd文档中的UDIS-GIDS.md文件查看。
2025-12-27 08:25:45
488
原创 [晕事]今天做了件晕事98,把openssl-libs 强制删掉了
摘要:用户尝试验证openssl相关rpm包的安装顺序依赖时,强制删除了openssl-libs导致系统无法登录。由于该包被众多程序依赖,删除后无法重新安装,且SSH登录也出现问题。尝试通过tftp-client下载so文件时发现虚拟机网络配置为NAT模式无法连接。目前亟需解决因关键依赖包缺失导致的系统故障问题。(149字)
2025-12-26 12:55:09
376
原创 Linux: genisoimage; isoinfo
本文介绍了ISO镜像文件的打包、查看和挂载操作。使用genisoimage命令可将指定目录打包为ISO文件,支持设置卷标等参数。通过isoinfo命令可查看ISO文件内容,支持列出文件、过滤搜索等。同时提供了挂载ISO镜像的方法,使用mount -o loop将ISO文件挂载到指定目录。文中还提到打包过程中可能出现的提示信息,但不会影响最终结果。这些命令适用于Linux环境下对ISO文件的基本操作。
2025-12-26 07:43:44
162
原创 C: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’
摘要:var-tracking-assignments 是编译器在优化时保留变量赋值标注的功能,旨在改善调试信息。建议与 -gdwarf-4 配合使用,即使禁用变量跟踪也可启用该功能(此时标注会被丢弃)。当遇到"变量跟踪大小限制超出"警告时,表示编译器因代码复杂超出内部跟踪容量,会尝试简化处理继续编译,这可能导致调试信息不够完整,影响调试时查看变量赋值历史的准确性,但通常不会导致编译失败。该功能默认与 -fvar-tracking 同时启用,除非启用了选择性调度。
2025-12-24 20:57:47
417
原创 [晕事]今天做了件晕事97,强制停止ctrl+c make
摘要:使用Ctrl+C强制停止make进程会发送SIGINT信号,可能导致部分文件不完整或构建目录状态不一致。若强制停止时恰逢目标文件生成,可能产生空文件影响后续构建。建议强制停止后执行make clean清理生成文件,确保下次构建的完整性和正确性。
2025-12-24 13:04:14
234
原创 Linux: gcc: pkgconf: 谁添加的-I选项
文章摘要:pkgconf是一个用于简化编译过程的工具,通过读取.pc文件自动获取库的编译和链接标志。它取代了传统的pkg-config,能查询库的头文件路径(-I)、库文件路径(-L)和依赖关系。示例展示了如何使用pkgconf获取OpenSSL的编译标志(--cflags)和链接标志(--libs),这些输出可直接嵌入Makefile。pkgconf提高了项目的可移植性,避免了手动指定路径的繁琐工作。
2025-12-10 13:38:50
857
原创 Rust 资料
Rust语言正在成为技术趋势,Google已将其应用于Android系统开发以提高安全性。学习Rust需要掌握其独特的语法特性,这凸显了大语言模型的重要性。未来编程可能转向新模式:开发者只需提供创意和思路,由AI模型完成具体代码实现。这种转变将改变传统编程方式,让创新者更专注于核心逻辑而非语法细节。
2025-12-09 12:40:03
229
原创 RHEL9: iptables 兼容rule
在RHEL 9系统中,iptables命令实际上链接到iptables-nft工具,最终指向xtables-nft-multi程序。虽然底层实现发生了变化,但新版本仍能兼容传统的iptables规则操作。测试表明,包括字符串匹配等复杂规则都能正常执行,用户无需担心兼容性问题,但可能需要调整相关脚本以适应新的命令路径。
2025-12-09 09:38:23
163
原创 Rust book,里的图片意义是一点都不直观
Ferris是Rust编程语言的社区吉祥物,是一只卡通螃蟹,名字源自"ferrous"(含铁的)一词。这只红色/橙色、大眼睛的友好螃蟹虽非官方指定,但已成为Rust社区的标志性形象,出现在各类活动与宣传中,体现了Rust社区的热情精神。其名称与Rust(铁锈)形成巧妙关联,但形象与编程语言的直观联系较弱。
2025-12-08 10:36:39
262
原创 gcc: 新的编译选项-fstrict-flex-arrays,__builtin_counted_by_ref
Oracle工程师开发了新的GCC编译选项-fstrict-flex-arrays和警告-Wstrict-flex-arrays,用于增强缓冲区溢出检测。该功能针对C语言柔性数组成员的安全隐患,填补了现有溢出检查机制的漏洞。文章详细分析了数组越界访问的各类场景,并指出新选项能更严格地检查这类安全问题。这些改进将帮助开发者更早发现潜在的内存安全问题,提升代码安全性。对于关注C/C++内存安全的开发者来说,这项GCC新特性值得深入研究。
2025-12-08 05:40:06
332
原创 C:error: ordered comparison of pointer with integer zero
C语言错误:指针与整数零的有序比较。该错误是由于将char*指针与int类型变量进行直接比较导致的,这是C语言中不允许的操作。指针比较应当使用NULL而非0,或确保比较双方类型一致。
2025-12-04 18:14:13
43
原创 flex: 版本升级问题
摘要:升级Flex工具从2.6.1到2.6.4版本后出现编译错误,提示yy248in、stdin、yy248out和stdout未定义。该问题源于2.6.4版本恢复了用户自定义yy_*宏的支持,并改进了宏定义隔离,导致旧代码不兼容。版本更新还包含多项可移植性改进和过时函数调用的移除。错误信息表明程序中的标准输入输出流和Flex生成变量未被正确声明。
2025-12-04 18:11:38
331
原创 Linux: ip route add 错误分析,unreachable
摘要:网络路由配置错误分析显示,当尝试添加路由"10.76.24.0/24 via 10.76.24.1 dev bgc"时,系统返回"Nexthop has invalid gateway"错误。错误代码-ENETUNREACH表明目标网关10.76.24.1不可达,原因是bgc接口未配置相应IP地址。内核源码分析揭示了nexthop检查的复杂逻辑,包括网关必须是本地接口地址或链路上可达地址等规则。该错误源于系统无法验证网关10.76.24.1的有效性,因为缺少必要
2025-12-03 20:33:55
530
原创 c: Clock skew detected. has a time stamp 5.6237s in the future
摘要:在容器化构建过程中出现"Clock skew detected"错误,原因是宿主机与容器间时间不同步。当宿主机的NTP设置异常时,会导致共享磁盘上的文件时间戳比容器内系统时间快(示例显示相差7秒)。这种时间不一致会干扰make等构建工具的正常运行,引发文件时间戳校验错误。建议检查并同步宿主机与容器的时间设置,确保NTP服务正常工作。
2025-12-03 20:28:56
288
原创 C:glibc少了pthread_nonshared.a/librt.so
摘要:glibc新版本删除了部分静态库文件。对比glibc-devel 2.28和2.34版本发现,2.34版本仅保留了libc_nonshared.a,而移除了libmvec_nonshared.a和libpthread_nonshared.a这两个静态库文件。这一变化可能影响依赖这些静态库的应用程序兼容性。
2025-12-02 13:08:08
136
原创 Linux: console: printk: console_no_auto_verbose
摘要:该commit引入了printk.console_no_auto_verbose参数,用于在系统异常时禁用自动提升控制台日志级别。默认情况下,系统会在oops/panic时提高日志级别以输出更多调试信息,但在低波特率(如9600)环境下,这可能导致关键信息丢失或触发看门狗重启。参数默认值为0(启用自动提升),建议仅在低波特率环境下禁用,其他情况保持开启以获取更多调试信息。该修改特别适用于使用kdump保存崩溃日志的环境,此时额外的控制台输出不再必要。
2025-12-02 08:38:35
266
原创 Linux: 网络:ping 一开始非常慢的一个情况
摘要:网络故障排查发现A到B的ping延迟1分钟,B到A完全不通。经抓包分析发现是中间路由器配置问题。最终确认是某跳路由器的子网范围设置过大,与其他路由冲突。调整缩小子网范围后问题解决。
2025-12-01 15:41:09
137
原创 Openssl 接口变了,1.1.1 -> 3.5.1
OpenSSL 3.0对EVP加密函数进行了重命名,在函数名中加入"get"或"get0"前缀,例如将EVP_CIPHER_CTX_key_length()改为EVP_CIPHER_CTX_get_key_length()。旧函数名保留为非废弃的宏别名。类似变更还包括EVP_CIPHER_iv_length()、EVP_CIPHER_CTX_iv_length()等函数。这些改动在OpenSSL 3.0文档中通过man EVP_EncryptInit说明,同时保持向后
2025-12-01 09:22:44
244
原创 c: error: taking address of rvalue [-fpermissive]
摘要:文章讨论了将整数值转换为字符串的函数在GCC 11.5中报错的问题。原代码试图对临时ostringstream对象取地址,违反了C++规则。提供了两种修改方案:1)使用具名ostringstream对象逐步转换;2)更推荐直接使用std::to_string()方法。后者更简洁高效,是C++标准库提供的直接转换方式。
2025-11-27 14:51:29
229
原创 Python,脚本自动格式化
Python代码格式化工具对比摘要: Black提供严格的自动格式化,减少代码审查争议;autopep8专注于PEP8合规性修复;Yapf由Google开发,在保持统一风格的同时提供更多配置选项。三者均可通过pip安装,支持命令行操作实现代码格式化。Black强调一致性,autopep8侧重标准符合,Yapf则兼顾规范与灵活性。
2025-11-27 12:55:08
356
原创 C:Error: no such instruction: `pshufb_xmm
摘要:代码中的PSHUFB_XMM指令报错,原因是新版本binutils已原生支持PSHUFB指令,导致原先的宏定义被删除。该改动源于2020年的一个提交(d7866e503bdc),移除了include/asm/inst.h文件,因为binutils 2.23及以上版本已直接支持包括PSHUFB在内的多个指令助记符。提交者通过对比对象文件哈希值验证了修改后机器码保持不变。
2025-11-26 09:44:21
185
原创 c: Error: invalid character ‘(‘ in mnemonic
摘要:内核5.14版本中,ENTRY宏已被弃用,需改用SYM_FUNC_START。在汇编代码中,使用ENTRY(aesni_gcm_dec)会导致非法助记符错误,将其替换为SYM_FUNC_START即可解决问题。该修改源于内核头文件中ENTRY宏已被重新定义为SYM_FUNC_START的别名。
2025-11-26 09:38:02
49
原创 Openssh: 链接timeout,超时send packet: type 80
摘要:SSH登录出现超时问题,调试日志显示客户端发送SSH2_MSG_GLOBAL_REQUEST(80)消息后未收到响应。分析可能原因包括网络问题、服务端未响应或本地程序繁忙。日志缺乏时间戳信息增加了分析难度。通过代码确认80号消息为全局请求,期待81(成功)或82(失败)响应,但最终因无响应导致超时。
2025-11-25 13:45:27
62
原创 c: multiple definition of `abc‘; gcc 11.5 vs 8.5
摘要:在GCC 8.5中,多个文件声明同名全局变量时,若仅部分初始化不会报错(如char *abc=0;和char *abc;),未初始化声明会被视为暂定定义并合并。但在GCC 11.5中,由于对C标准更严格的解释,此类情况会触发"multiple definition"错误。实验显示,GCC 8.5允许跨文件修改同一变量(如a.c初始化abc,b.c修改后值全局生效),而新版编译器要求使用extern明确声明外部变量。这种差异源于新版工具链对"暂定定义"处理的强化,
2025-11-25 11:25:13
250
原创 c: error: expected declaration specifiers or ‘...’ before string constant
文章摘要:当在C语言中使用未定义的宏(如ABC)或宏名称错误时,编译器会提示"字符串常量前必须有specifier"的错误。示例代码ABC("abc")中,若ABC未声明或拼写错误,就会触发该编译错误。这种情况通常发生在宏定义缺失或调用时使用了错误的宏名称。
2025-11-24 15:08:27
119
原创 Linux:kernel module: redhat9: tools/objtool/objtool-in.o] Error 1
摘要:在RedHat 9系统升级后,内核模块编译出现错误,提示tools/objtool/objtool-in.o] Error 1。解决方案是将Makefile中的SUBDIRS替换为M参数。虽然RedHat官方文档已改用M参数,但4.18内核的Makefile仍保留了对SUBDIRS的兼容支持,而5.14内核已移除该说明。这一变动缺乏明确文档说明,导致不熟悉该领域的开发者难以理解错误原因。建议在RedHat 9的release note中明确标注此变更。
2025-11-24 15:00:35
716
原创 开源软件:pstack
摘要:pstack工具用于打印运行程序的调用栈(backtrace),便于问题诊断。相比gdb提供的pstack功能,开源工具pstack(来自github.com/peadar/pstack)提供更丰富的特性,包括支持Python调用栈、显示更多框架(如_start和libc初始化函数)以及多种高级选项,如JSON输出、参数显示、多线程支持等。该工具还支持调试信息路径配置、重复采样、ELF/DWARF信息转储等功能,适用于复杂场景的调试需求。
2025-11-20 09:27:27
266
原创 c++: error: ISO C++17 does not allow dynamic exception specifications
摘要:在RedHat 9升级中遇到GCC 11.5对旧代码的兼容性问题,动态异常规范throw(def)报错。动态异常规范原本用于声明函数可能抛出的异常类型,作为调用约定。但由于运行时开销大、实用性有限、与模板冲突等问题,C++11废弃并在C++17移除了该特性。现代C++建议:可能抛异常时不声明异常规范,保证不抛异常时使用noexcept。
2025-11-20 08:21:25
557
原创 C: undefined reference to `yywrap‘,flex -> libfl-static
摘要:在RHEL系统中使用flex开发工具时需安装flex-devel包,该包提供了静态链接库文件/usr/lib/libfl.a和/usr/lib/libl.a。但在RHEL9中,相关包名已变更为libfl-static-2.6.4-9.el9.x86_64,功能相同但采用新的命名规范。开发时需注意不同RHEL版本间的包名差异。
2025-11-19 11:30:14
285
原创 Linux: virsh:dump
摘要: virsh dump命令用于Openstack虚拟机挂起/卡死时获取核心转储文件,便于后续分析。命令语法支持多种选项:--live保持运行状态,--crash标记崩溃状态,--reset转储后重置,三者互斥。--memory-only生成ELF格式文件(仅含内存和寄存器值),兼容crash工具;非ELF格式需专用工具解析(如vol)。建议同时生成两种格式(加--live)。注意权限问题及路径查看(使用--verbose),并避免过时的kvmdump格式。示例:virsh dump domain /p
2025-11-19 08:18:53
802
原创 Linux: DPDK: EAL: Cannot set up DMA remapping, error 28 (No space left on device)
摘要:本文分析了DPDK框架中出现的"DMA重映射设置失败(设备空间不足)"错误。该问题源于EAL组件在配置DMA时发现内存资源不足,具体表现为虽然预留了24个1GB的大页内存(总计约24GB),但系统缺少对应大小的hugetlbfs挂载点。文章剖析了DMA与大页内存的关系,指出过大的hugepagesize配置会快速耗尽内存资源。代码层面,当vfio_iommu的dma_avail为0时,会返回ENOSPC错误(错误码28)。建议合理配置大页内存大小以避免此类资源耗尽问题。
2025-11-18 08:25:32
73
原创 [开源软件] bvi十六进制编辑器
摘要:OpenStack虚拟机内高优先级应用程序死循环导致系统阻塞,常规诊断方法失效。建议通过分析内存dump定位问题,使用Linux下的十六进制编辑器bvi处理大内存文件。安装需ncursive-devel依赖,支持vi式操作和十六进制搜索,注意小端存储的字节顺序。工具说明需查阅英文文档,凸显专业英语的重要性。(149字)
2025-11-18 07:45:09
603
原创 Linux: crash: ps 需要注意的一个地方,volatility3
该摘要描述了进程和线程关系的分析。通过ps命令显示,"aim"进程(PID 3334/3335)启动了多个"cfed"线程(如5980等),其中5980是主线程。使用ps -g可以更清晰地看到5980与其他线程的父子关系。而Volatility3工具的分析结果显示这些线程的PPID(父进程ID)为0,与ps命令结果不一致,表明工具可能无法正确识别线程关系。这提示在进程分析中需要注意不同工具对线程处理的差异,特别是父子进程关系的识别可能存在问题。
2025-11-17 15:23:48
261
ngrep,可以根据字符串过滤抓取包
2025-10-26
免安装的perf程序,基于内核4.18.0-553.27.1
2024-12-07
Netlink 实际操作代码,实际可以参考iproute源代码做,这里只是方便自己使用的一个样例
2022-03-12
C,删除无用ifdef宏的工具
2023-02-03
MTU 相关知识总结点(一)
2022-10-17
ip添加vlan interface的strace日志
2022-03-29
免安装strace strace.zip
2021-07-20
Net-Interface-1.016.tar.gz
2021-01-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅