ILD

使用tc构造包延迟
2023-11-17
碰到一个问题dns响应慢,导致dnsmasq的udp套接字关了,然后回复icmp端口不可达报文给dns server。需要制造dns包延迟的场景。tc qdisc add dev eth1 root netem delay 5000ms需要编译netem模块:sch_netem.ko

login命令与telnet登录
2024-1-19
之前一直好奇,telnet和linux系统等,登录功能到底是哪个模块负责的。比如,对于telnet连接,是telnet负责吗,还是telnet启动的shell进程负责。启动一个telnet服务进程:# telnetd然后在另外一个主机登录,弹出登录提示:Xrouter login:此时在telnet

pass file descriptors to other process
2024-1-28
最近再看libfuse的文档,有一篇文档doc/how-fuse-works,里面讲到fuse如何mount。When your user mode program calls fuse_main() (lib/helper.c),fuse_main() parses the arguments p

-D_FILE_OFFSET_BITS=64没有一致定义的坑
2024-3-14
在开发fuse的时候,使用libfuse,这个库要求定义 -D_FILE_OFFSET_BITS=64,如果没有定义这个宏,在包含fuse头文件的时候,fuse头文件会报错。我的源码fuse相关的操作都在fuse_fs.c源文件,因此只有编译这个源文件的时候定义了这个宏。cc -MT obj/fus

poll event using eventfd
2024-5-13
在主线程等待子线程的事件发生,可以使用pthread_cond_wait(),缺点是,如果主线程使用poll做多路复用,那么pthread_cond_wait()无法融合进去。一种解决方案是创建一个匿名管道,然后子线程写数据,主线程读数据。这种方案确实可行。缺点是,唤醒多少次,就要收多少数据,另外就

malloc memory fragmentation and madvise system call
2024-5-24
最近在写一个程序,涉及到文件上传和下载,它大量用到动态内存分配,下载的时候会预缓存文件内容,因此下载的时候,内存占用可以达到20MB。但是空闲的时候,内存占用并没有降到和程序刚启动的时候一样低,而是有9M的样子。 我们知道,malloc在分配小块的时候,是使用的data segment

about /dev/tty
2024-8-7
man 4 tty/dev/tty是一个字符设备,major number是5,minor number是0。它一个进程的控制终端(controlling terminal)的别名(synonym)。如果一个进程没有控制终端,那么它访问devfs的时候,就没有/dev/tty这个文件。/dev/tt

how to get the controlling terminal of a process
2024-8-7
使用ps的时候,可以显示进程的终端$ ps PID TTY TIME CMD 31313 pts/4 00:00:00 bash 31900 pts/4 00:00:00 ps那么,ps是怎么获取的信息呢?1 读取/proc/pid/stat第7列,就是tty

controlling terminal
2024-8-8
每个进程可以有控制终端,通常从交互式shell启动的程序,它的标准输出和标准错误输出到控制终端,它的标准输入从控制终端读取输入。控制终端收到CTRL+C等按键时,会发送信号给控制终端前的端进程组(foreground process group)。注意是发给group,因为前端进程可能有多个,比如

linux special file permissions: setuid, setgid, sticky bits
2024-9-5
Normal file permissions 我们平常接触的文件权限是3个8进制数:分别表示,owner user、owner group、others的读、写、执行权限。比如7557是4+2+1,表示文件所有者,有读、写、执行权限。5是4+1,表示文件所在组,有读和执行权限。5是4+1,表

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