![](https://img-blog.csdnimg.cn/20201027153207503.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux
文章平均质量分 64
linux
Li-Yongjun
这个作者很懒,什么都没留下…
展开
-
使用 /proc/sysrq-trigger 进行系统调试和故障排除
/proc/sysrq-trigger 是 Linux 内核提供的一个接口,它允许用户通过写入特定命令来触发系统请求(SysRq)功能。原创 2024-07-03 22:41:56 · 992 阅读 · 0 评论 -
/proc/config.gz
有时候,我们想知道一个运行着的内核都打开了哪些编译选项,当然,查看编译环境的 .config 文件是一个不错的选择,除此之外,还有没有别的办法呢?当然有,那就是 /proc/config.gz。原创 2024-07-01 23:04:59 · 268 阅读 · 0 评论 -
您的计算机时间有误
SSL 证书具有一定的有效期限,一旦证书过期,它就不再被认为是可信的。所以,如果计算机的时间和服务器的时间不同步,可能会导致认为证书已过期,从而拒绝提供服务。原创 2024-06-11 21:45:00 · 287 阅读 · 0 评论 -
netplan
netplan 是 ubuntu 17.10 版本中引入的一种全新的命令行网络配置程序,用于在ubuntu系统中轻松管理和配置网络设置。原创 2024-05-27 01:02:28 · 779 阅读 · 0 评论 -
AppImage 创建快捷方式
在桌面右击,点击允许启动后,图标就显示正常了,双击图标,就可以正常运行了原创 2024-05-10 01:52:09 · 622 阅读 · 0 评论 -
ASAN
ASAN 是 Address Sanitizer 的简称,是 GCC 自带的内存问题检查工具,比较轻量级,非常适合单元测试时检查内存问题。使用也比较简单,只需要在编译时加上 `-fsanitize=address` 选项即可。原创 2024-04-25 22:15:00 · 834 阅读 · 0 评论 -
Linux kernel 墙上时间
果然,Linux 系统时间不走了。原创 2024-04-14 23:15:00 · 468 阅读 · 0 评论 -
性能优化——避免使用除法
ARM 硬件上不支持除法指令。编译器是通过调用 C 库函数来实现除法运算的,要花费 20~100 个周期。如果不能避免除法运算,那么就尽量使除数和被除数是无符号的整数。原创 2024-03-31 19:54:15 · 442 阅读 · 0 评论 -
gdb 调试记录
持续更新。。。原创 2024-03-05 22:34:49 · 468 阅读 · 0 评论 -
内核打印应用程序出错信息,DEBUG_USER
当用户程序由于异常而崩溃时,内核可以打印一条简短的消息来说明问题所在。这有时对调试很有帮助,但对生产系统没有任何作用。大多数人应该在这里说 N。此外,你需要在内核命令行上传递 user_debug=N 来启用此特性。原创 2024-02-29 22:32:54 · 811 阅读 · 0 评论 -
ASLR 和 PIE
ASLR 不负责代码段以及数据段的随机化工作,这项工作由 PIE 负责。但是只有在开启 ASLR 之后,PIE 才会生效。无论是 ASLR 还是 PIE,由于颗粒度问题,被随机化的都只是某个对象的起始地址,而在该对象的内部依然保持原来的结构,也就是说相对偏移是不会变的。原创 2024-02-26 21:43:45 · 730 阅读 · 0 评论 -
watchpoint
内存被踩,通过 watchpoint 找到真凶。原创 2024-02-22 21:57:10 · 414 阅读 · 0 评论 -
Kernel 地图
看内核代码,先看 Makefile 和 Kconfig。原创 2024-02-19 22:03:57 · 888 阅读 · 0 评论 -
PAGE_OFFSET
PAGE_OFFSET 的值支持通过 Kconfig 配置,其默认的值是 0xC0000000,即用户空间 3GB,内核空间 1GB。当然这个可以由我们动态配置,可以配置 PAGE_OFFSET 为 0x80000000,即用户空间和内核空间均为 2GB。原创 2024-01-31 23:15:00 · 348 阅读 · 0 评论 -
CPU 如何识别用户空间不同进程的虚拟地址
每个进程都有自己的页表。原创 2024-01-23 21:45:00 · 450 阅读 · 0 评论 -
内核调试 && 应用程序调试
内核调试和应用程序调试,底层都是使用 gdb,只不过受限于环境、系统等因素,使用了不同的辅助程序(设备)罢了。原创 2024-01-19 00:59:09 · 493 阅读 · 0 评论 -
x86 寄存器
8086 处理器内部有 8 个 16 位的通用寄存器,分别被命名为 AX、BX、CX、DX、SI、DI、BP、SP。原创 2024-01-17 22:15:00 · 839 阅读 · 0 评论 -
ARM 寄存器
Cortex A 系列的 ARM 处理器共有 40 个 32 位寄存器,其中 33 个为通用寄存器,7 个为状态寄存器。用户模式和系统模式共用同一组寄存器。原创 2024-01-11 21:37:25 · 1451 阅读 · 1 评论 -
pci_enable_device()
从协议中来,到协议中去。原创 2023-12-25 22:15:00 · 1235 阅读 · 0 评论 -
/dev/root
/dev/root 曾经是 /dev/mmcblk0p2 的软链接,在使用这个软链接将该设备挂载到根目录后,又将该软链接删除了。原创 2023-11-27 01:42:38 · 877 阅读 · 0 评论 -
DHCP Host Name
udhcpc 命令使用 -x hostname:xxx 选项,可以在 DHCP Discover 报文中添加 option 12 选项,即 Host Name。原创 2023-12-05 23:37:16 · 1094 阅读 · 0 评论 -
genimage 打包镜像
用户准备好待打包的原料:uboot.bin、zImage、rootfs 等,然后编写一个配置文件 genimage.cfg,描述如何进行打包,然后运行 genimage -c genimage.cfg 就可以打包好一个镜像。原创 2023-11-29 23:15:00 · 773 阅读 · 0 评论 -
uboot 添加命令
uboot 中有个 ping 命令,用来检查网络是否通畅。我们照着这个命令添加一个 ping2 命令。原创 2023-11-15 23:40:29 · 314 阅读 · 0 评论 -
uboot 和 内存地址
在 uboot 的 .config 和 Makefile 文件中,使用 CONFIG_SYS_TEXT_BASE 宏来指定代码的入口地址原创 2023-11-09 23:12:20 · 1168 阅读 · 0 评论 -
SD NAND
那有没有一款产品来解决这个现状呢?有,那就是 SD NAND。原创 2023-10-24 22:45:00 · 1457 阅读 · 2 评论 -
sched,进程调度窥探,进程调度直观感受
在 LInux Kernel 中,使用的最多的就是完全公平调度(CFS)算法。原创 2023-10-23 00:16:53 · 409 阅读 · 0 评论 -
进程数据结构——task_struct
内核在实现上述功能时,使用的最主要的一个数据结构就是 task_struct。原创 2023-10-17 22:45:00 · 388 阅读 · 0 评论 -
GCC 优化等级(O0、O1、O2、O3)对程序性能的影响
O3 直接将内层循环给优化掉了,10 次循环展开成 10 次指令,也是牛逼。这样一来,少了内层循环的边界判断。更重要的是,少一层跳转,就减少一次分支预测判断,这对指令执行的效率有显著提升。原创 2023-10-09 22:05:40 · 2895 阅读 · 0 评论 -
ARM Linux DIY(十四)摄像头捕获画面显示到屏幕
摄像头对应 /dev/video0,屏幕对应 /dev/fb0,所以我们只要写一个应用程序,读取 video0 写入到 fb0 就可以了。原创 2023-09-29 06:30:00 · 444 阅读 · 0 评论 -
per-cpu 变量
per-cpu 变量是 2.6 内核的一个有趣特性。当建立一个 per-cpu 变量时,系统中的每个处理器都会拥有该变量的特有副本。这看起来很奇怪,但它有其优点。对 per-cpu 变量的访问(几乎)不需要锁定,因为每个处理器在其自己的副本上工作。per-cpu 变量还可以保存在对应处理器的高速缓存中,这样,就可以在频繁更新时获得更好的性能。原创 2023-07-22 23:00:04 · 924 阅读 · 0 评论 -
CMA
CMA 全称叫做 continuous memory allocator,它是为了便于进行连续物理内存申请的一块区域,一般我们把这块区域定义为 reserved-memory。原创 2023-07-04 01:33:28 · 902 阅读 · 0 评论 -
linux 下查看 USB 设备
在每个 USB 设备目录下都有一些参数来展示该设备的属性信息。原创 2023-06-22 23:05:09 · 5472 阅读 · 1 评论 -
perf 工具测量 cache 命中率
今天我们使用 perf 工具,实际测量 cache miss 的比率是多少,这将会使你更加深刻地了解 cache 及其对性能的影响。原创 2023-06-22 20:28:01 · 2659 阅读 · 3 评论 -
iCache && dCache
L1 Cache 比较特殊,每个 CPU 会有两个 L1 Cache,分别为 iCache(指令高速缓存,Instruction Cache)和 dCache(数据高速缓存,Data Cache)。L2 和 L3 一般不区分指令和数据,可以同时缓存指令和数据。原创 2023-06-14 02:08:44 · 2383 阅读 · 0 评论 -
tcpdump
tcpdump -i enp0s3 -nn // 捕获 enp0s3 网卡上的所有网络数据包,不解析域名和端口。原创 2023-05-30 23:57:04 · 1504 阅读 · 0 评论 -
设备描述符
这就是设备描述符,它和 Spec 中的 Table 9-8 是一一对应的。原创 2023-05-28 14:03:43 · 1637 阅读 · 0 评论 -
/dev/kmem & /proc/kallsyms
使用 /dev/kmem,通过它可以访问内核虚拟内存。原创 2023-05-27 22:44:10 · 2031 阅读 · 0 评论 -
/dev/mem
恍然大明白,原来 devmem 命令就是读取 /dev/mem,命令名称都是取自这里啊!原创 2023-05-25 02:29:25 · 1103 阅读 · 0 评论 -
linux设备号——常见设备的主次设备号
常见设备的主设备号原创 2023-05-25 00:57:33 · 5259 阅读 · 0 评论 -
反汇编方法收集
ndisasm、gdb、objdump、radare2原创 2023-05-20 22:15:00 · 851 阅读 · 0 评论