ILD

pivot_root完全切换rootfs到tmpfs方案设计
2022-10-10
路由器固件升级通常有两种方案:对于双系统,直接写入到另外一个系统,然后切换到另外一个系统启动。这种方案是很安全的,因为升级的时候,另外一个系统是空闲状态,可以安全的写入。对于单系统,情况要复杂很多,因为当前要升级的分区,已经挂载为root了,不能直接进行升级,否则进程运行可能会出现错误。可以将升级程

你真的了解snprintf吗
2022-10-10
函数原型:#include int snprintf(char *str, size_t size, const char *format, ...);看看musl库的实现:src/stdio/snprintf.c#include #include

netlink dump
2022-10-17
最近在实现netlink的dump接口的时候,发现它调用了2次,用户程序使用libnl,但是用户程序的cb只执行了一次,内核调用栈如下:第一次:[240030.960400] CPU: 2 PID: 6021 Comm: ipaccount Not tainted 4.4.198 #0[240030

stty设置终端宽度,解决ps w显示命令不全的问题
2022-11-16
在路由器串口,或者xterm远程web终端执行ps w命令的时候,命令显示不全,好像最多只显示80列宽。这个原因是tty的默认宽度是80。ps会读取这个宽度,超过的截断了,如下: 149 root 0:00 netd 151 root 0:00 [kworker/0:3-ip

tcp poll() no POLLHUP when remote side's socket closed
2022-11-30
最近在实现xproxy的时候,想要用poll(),监视远程套接字的关闭,根据man手册。可以events等于0,在revents中监视POLLHUP。但是测试,远端套接字关闭的时候,没有POLLHUP事件,如果监听POLLIN,则有POLLIN事件,此时read()返回0,read之后,再监听POL

tcp keepalive set
2022-12-1
RFC 1122 要求,tcp默认的keepalive不能短于2小时,Keep-alive packets MUST only be sent when no data or acknowledgement packets have been received for the connection

一个hostapd进程支持多个BSSID
2023-1-31
Multiple BSSID (mBSSID) is a feature where you can have multiple virtual APs on one physical device. Here is an example how you can dynamically create

内核nat如何支持分片的udp包
2023-4-17
在nat的时候,会根据5元组查找出对应的connection,然后进行ip和port的替换,那么问题来了,对于一个很大的UDP包,会进行分片,后续分片的ip包是没有udp头的,也就是没有端口,那么这个包是没有5元组的,也就得不到这个包所属的连接,那怎么办呢?原来内核是会对UDP进行合并的。net/i

使用forfiles查找大文件
2023-4-19
c盘满了,想要清理大文件,但是windows的搜索框不能用了,然后搜索使用命令行,来查找大文件。forfiles /S /M * /C "cmd /c if @fsize GEQ 100000 echo @fsize @path" > D:\largefiles.txt

Preemption Disabling
2023-4-26
内核有些地方会单独使用禁止抢占,那哪些情况下会单独禁止抢占,而不使用spin lock呢?最常用的场景就是per-processor data,每cpu变量。因为其它cpu不会访问这个cpu的数据,那么只要禁止抢占,就可以保证只有当前task访问每cpu数据,否则task A的关键区可能被task

Copyright © linuxdev.cc 2017-2024. Some Rights Reserved.