Linux - Note (Things You Never Should Do in the Kernel) 在面向新开发人员的 Linux 内核编程邮件列表中,人们会提出一些常见问题。几乎每次提出这些问题时,回答总是“不要这样做!”,让困惑的提问者想知道他们闯入了什么样的奇怪开发社区。这是偶尔发布的系列文章中的第一篇,旨在解释为什么做这些事情通常不是一个好主意。然后,为了弥补这些指责,我们打破了所有的规则 2023-09-22 linux #kernel#linux#c
锐捷 - 认证流程抓包分析 寻找认证服务器 通过抓包发现3个与众不同的包,下面紧接着就是锐捷认证服务器的回复包,协议开始变成EAP协议。 接下来,我们对包的内容进行一波分析, c8:7f:54:c9:b2:df 不是我的mac地址吗?前面也是6字节,说明前面大概率也是一个mac地址,而且是固 2023-07-13 锐捷 #ruijie#rust
Linux - copy_to_user vs copy_to_user_no_fault static __always_inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long n) { if (!check_copy_size(from, n, tr 2023-07-04 linux #linux
C++和Java的差异 多态差异 先说结论,C++的多态因为虚函数的缘故,他的表现和Java的略与不同,虚函数。当C++程序员进行Java开发的时候如若不能立即切换,可能会因为他们所谓的反直觉导致代码编写出现差异 源代码 C++ Code #include <iostream> class Father { public 2023-07-01 c++ #java#c++#polymorphism
LLVM - Linux配置/安装LLVM环境 本次编译及运行测试均在Deepin(Debian)平台。 下载源代码 首先我们得克隆llvm-project完整的代码,不能只下载llvm子项目的代码(这样只有旧版才能编译的了)。 github git clone https://github.com/llvm/llvm-project gitee 2023-06-30 llvm #llvm#rust#c++
C++ - 类型操作 forward std::forward 是一个函数模板,通常与右值引用(rvalue references)结合使用。它的主要作用是实现完美转发(perfect forwarding),确保在函数模板中能够保留传入参数的值类别(左值或右值)。这个特性在泛型编程和模板代码中非常重要,可以避免不必要的 2023-06-28 c++ #c#c++#type-operation#std#forward#move
锐捷 - SuConfig.dat解密Rust版 pub fn decode_config(file_path: &str) { let mut file_bytes = std::fs::read(file_path).unwrap(); let mut dst = vec![0u8; 2048]; decode_dat( 2023-03-13 rust #rust#ruijie
Termux - 安装VSCode Server 首先我们需要更新升级一下已安装的包(不然安装node的时候大概率会爆炸!): pkg update && pkg upgrade 接下来我们需要安装我们需要的库: pkg install -y python nodejs yarn git 如果安装太慢了 记得换一下源或者挂个梯子! 使用yarn安装 2022-10-30 termux #termux#vscode#rust