黄山市网站建设_网站建设公司_Java_seo优化
2026/1/11 16:56:59 网站建设 项目流程

进程

  • fork:复制当前进程创建子进程。父子进程地址空间独立(写时复制 COW)
  • vfork:创建子进程但共享父进程地址空间,子进程必须立刻 exec/exit,否则会破坏父进程
  • clone:fork/pthread/container 的底层基础
  • execve:在当前进程中装载新程序
  • pause:进程挂起
  • exit / exit_group:线程、进程退出
  • wait:等待子进程退出,不 wait 就会产生僵尸进程
  • waitpid:等待指定 PID 的子进程
  • wait3:wait + 资源使用统计(rusage)
  • wait4:新一代

  • getpid:获取当前进程 PID
  • getppid:获取父进程 PID
  • setpgid:把进程加入/创建进程组
  • setsid:创建新会话
  • tcgetpgrp:查询前台进程组
  • tcsetpgrp:设置前台进程组
  • setuid:改变进程有效 UID
  • setgid:改变进程有效 GID

  • capset:设置 Linux Capability
  • prctl:通用进程控制接口
  • seccomp:系统调用过滤沙箱
  • getrlimit:查询进程资源限制(栈大小、文件数、CPU时间等)
  • setrlimit:设置进程资源限制(ulimit 的内核接口)

线程

  • setjmp:保存执行上下文
  • longjmp:非正常跳转

  • futex:用户态自旋 + 内核阻塞的最底层锁与条件变量原语
  • set_robust_list:线程异常退出时自动解锁 futex

  • sleep:秒级睡眠(基于 alarm + pause 实现)
  • nanosleep:纳秒级高精度睡眠
  • clock_nanosleep:指定时钟源的精确睡眠(单调/实时时钟)

内存

  • malloc:C 库堆分配器,内部用 brk + mmap 管理内存池
  • free:释放 malloc 分配的块(可能不立即归还内核,只回到用户态缓存)
  • mmap:分配虚拟内存,现代 malloc 的主力
  • munmap:销毁一个 VMA 映射区域,直接把虚拟地址空间还给内核
  • brk / sbrk:堆扩展,malloc 的老路径
  • remap_file_pages:重排页映射

  • msync:将内存映射区域的修改内容同步到磁盘文件
  • sync:刷新所有脏页
  • fsync:刷新某个 FD 的数据 + 元数据
  • fdatasync:只刷数据(更快)

  • mprotect:修改某个 VMA 的访问权限(R/W/X)
  • madvise:向内核提示该内存区域的使用模式(顺序访问/随机/不要换出等)
  • mincore:查询驻留页

IO

  • select:最早期的 I/O 多路复用接口,使用位图扫描 fd,O(n),有 1024 限制
  • poll:改进 select,使用数组,突破 fd 上限,但仍是 O(n)
  • pselect:select + 原子信号屏蔽控制,解决 select 信号竞态问题
  • epoll:Linux 专用高性能事件通知机制,O(1) 级,基于就绪事件回调
    • epoll_create:创建 epoll 实例(一个内核事件调度对象)
    • epoll_ctl:向 epoll 注册、修改、删除监听的 fd 及事件
    • epoll_wait:等待内核推送就绪事件(阻塞或超时)
  • eventfd / signalfd / timerfd:把信号/定时器/事件变成 epoll fd
  • io_uring:新一代内核异步 I/O 框架(替代 epoll + aio)

  • read / write:从 FD 读取 / 写入字节流(同步阻塞 IO)
  • pread / pwrite:带偏移的读写,不改变文件指针(线程安全)
  • sendfile / copy_file_range:内核零拷贝文件传输
  • readn / writen:保证读满 / 写满
  • readv / writev:向量 I/O,一次 IO 读写多个 buffer,减少 syscall 次数

文件

  • open:打开或创建文件,返回文件描述符 fd
  • openat:相对某个目录 fd 打开文件(解决路径竞态、沙箱安全)
  • openat2:新一代 open,支持 RESOLVE_* 沙箱约束
  • creat:等于open(O_CREAT|O_WRONLY|O_TRUNC)
  • close:关闭 FD,引用归零则释放资源

  • mkdir / rmdir:创建/删除目录
  • mount / umount:挂载/卸载
  • pivot_root:切换根文件系统
  • rename:重命名路径
  • unlink:删除文件名(目录项),可能延迟真正释放 inode
  • link / symlink:创建硬链接 / 符号链接

  • dup / dup2 / dup3:FD 复制与重定向(共享同一 file 结构)
  • lseek:改变“文件读写指针偏移”
  • SEEK_DATA / SEEK_HOLE:查询稀疏文件数据/空洞区间

  • ioctl:万能控制通道
  • fcntl:通用 fd 控制(flags、锁、dup),epoll / NIO 的开关
    • O_NONBLOCK:非阻塞
    • F_SETFL:修改 flag
    • F_SETLK:文件锁
    • F_DUPFD:复制 FD
    • FD_CLOEXEC:exec 时自动关闭

  • stat(path):通过路径查询 inode 信息
  • lstat(path):通过链接查询 inode 信息
  • fstat(fd):通过fd 查询 inode 信息
  • fstatat(dirfd,path,flags):相对目录查询
  • statx:新一代扩展 stat

  • access:按真实 UID/GID 测权限
  • faccessat:相对目录版测权限
  • chmod:路径权限修改
  • fchmod:FD权限修改
  • fchmodat:相对目录权限修改
  • chown 改属主
  • fchown:改FD
  • fchownat:改相对目录
  • lchown:改链接本身

信号

  • kill:向指定 PID 发送信号(可杀、可唤醒、可通知)
  • tgkill / gkill:向指定线程发送信号(线程级 kill)
  • abort:发送 SIGABRT 给自己并生成 core dump

  • sigaction:安装信号处理函数
  • sigprocmask:设置当前线程的信号屏蔽字
  • sigpending:查询当前被屏蔽但已到达的信号
  • sigsuspend:原子性解除屏蔽并进入睡眠,直到信号到来
  • sigqueue:带数据的信号发送(实时信号)

时间

  • clock_gettime:读取指定时钟源的当前时间(ns 精度)
  • clock_getres:查询该时钟的分辨率
  • clock_settime:设置系统实时时钟

  • setitimer:设置进程间隔定时器,到期发送 SIGALRM/SIGVTALRM
  • alarm:setitimer(ITIMER_REAL) 的秒级简化接口
  • ualarm:微秒级 alarm

  • timerfd_create:创建一个“定时器文件描述符”
  • timerfd_settime:启动/修改定时器
  • timerfd_gettime:查询剩余时间

  • hrtimer:高精度定时器核心
  • jiffies:低精度时间轮刻度
  • timekeeping:时钟源管理层

限制

  • sysconf:查询系统范围内的运行时限制或配置信息
    • _SC_OPEN_MAX:每进程最大打开文件数
    • _SC_PAGESIZE:页面大小
  • pathconf:查询指定路径(目录或文件)相关的运行时限制
    • _PC_NAME_MAX:目录项名最大长度
    • _PC_PATH_MAX:路径最大长度
  • fpathconf:查询已经打开的文件描述符对应文件/路径的运行时限制

设备

  • mknod:创建字符设备、块设备或命名管道(FIFO)文件。用户空间系统调用,内核创建 cdev 或 block_device
  • open / release:设备文件的打开和关闭操作

  • kmalloc / kfree:分配任意大小的内核内存
  • vmalloc / vfree:分配虚拟连续但物理不连续的内存
  • get_free_page:分配单页物理内存,返回页对齐指针,常用于 DMA 或 page cache

  • ioperm:设置单个端口 I/O 访问权限(通常给 root 使用)
  • iopl:设置整个进程的 I/O 权限级别(ring 0-3),可以直接执行 in/out 指令
  • inb/outb/inw/outw:直接访问 I/O 端口的指令(x86 体系)
  • request_region / release_region:内核请求/释放 I/O 端口范围,防止冲突

Socket

  • bind:将套接字绑定到本地 IP + 端口。TCP/UDP 服务器必须调用。
  • listen:监听 socket;SYN 半连接队列、accept 完成队列
  • connect:客户端发起连接请求,阻塞直到 TCP 三次握手完成
  • accept:从内核连接队列中取出一个“已完成三次握手的 socket”
  • send / recv:基本字节流 I/O(TCP/UDP 可用),阻塞或非阻塞模式
  • sendmsg / recvmsg:支持向量 I/O、控制消息 ancillary data、recv out-of-band 等高级功能
  • close:触发 FIN / ACK / TIME_WAIT 的关闭协议
  • SO_LINGER:close 时控制 FIN 行为
  • shutdown:半关闭套接字(禁止读或写),但套接字仍有效,可继续另一方向通信

  • getsockopt / setsockopt
    • TCP_NODELAY:禁用 Nagle
    • SO_RCVBUF:接收缓冲
    • SO_SNDBUF:发送缓冲
    • SO_REUSEADDR:端口复用
    • SO_KEEPALIVE:心跳
  • getsockname / getpeername:返回本地/对端 IP 端口
  • sockatmark:判断是否到达 OOB(Out Of Band)数据边界

  • socket:创建 TCP/UDP/RAW 等套接字,返回文件描述符
  • socketpair:创建一对本地(AF_UNIX)双向通信套接字,用于进程间通信(IPC)
  • domain/type/protocol:socket 参数,用于指定 AF_INET/AF_UNIX、SOCK_STREAM/RAW、IPPROTO_TCP/UDP

UDP

  • sendto:向一个“无连接 socket”直接投递一个 IP 数据报
  • recvfrom:从内核 UDP 收包队列中取出一个完整数据报,并告诉你是谁发的。
  • dg_echo:验证 recvfrom / sendto 是否正确工作
  • dg_cli:dg_echo 的客户端
  • mcast_join:多播加入

inet

  • inet_aton:把字符串 IPv4 → struct in_addr(二进制)
  • inet_ntoa:把 struct in_addr → 字符串 IPv4
  • inet_pton:字符串 → 二进制地址(IPv4/IPv6)
  • inet_ntop:二进制地址 → 字符串(IPv4/IPv6)

路由

  • sysctl
    • tcp_fin_timeout:FIN 等待时长
    • tcp_tw_reuse:TIME_WAIT 复用
    • ip_forward:是否路由转发
    • rmem_max / wmem_max:socket 最大缓冲
    • tcp_syncookies:SYN flood 防护
  • get_ifi_info
    • 网卡名:eth0 / wlan0
    • IP 地址
    • 子网掩码
    • 广播地址
    • 是否 UP
    • 是否支持多播

数据链路

  • BPF(Berkeley Packet Filter 分组过滤器)
    • tcpdump 的过滤规则
    • 防火墙 iptables/nftables
    • Android 的 netd / VPN / SELinux 网络隔离
  • DLPI(Data Link Provider Interface):ARP / IP / PPP
  • libpcap:用户态抓包库,基于 BPF 或 pcap 驱动抓取网络流量,可用于 tcpdump/wireshark
    • pcap_open_live
    • pcap_compile
    • pcap_loop

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询