最新资讯

  • 【Linux】缓冲区和文件系统

【Linux】缓冲区和文件系统

2025-05-08 03:00:53 0 阅读

个人主页~


缓冲区和文件系统

  • 一、FILE结构
    • 1、fd
    • 2、缓冲区
      • (一)有换行有return全部打印
      • (二)无换行无return的C接口打印
      • (三)无换行无return的系统调用接口打印
      • (四)有换行无return的C接口打印
      • (五)无换行有return的C接口打印
      • (六)深入理解缓冲区在用户空间
  • 二、文件系统
    • 1、固态硬盘
    • 2、逻辑地址LBA
      • (一)数据块 Data Blocks
      • (二)inode表 inode Table
        • (1)直接块指针
        • (2)一次间接块指针
        • (3)二次间接块指针
        • (4)三次间接块指针
      • (三)inode位图 inode Bitmap
      • (四)块位图 Block Bitmap
      • (五)块组描述符表 Group Descriptor Table
      • (六)超级块 Super Block

一、FILE结构

1、fd

FILE是在C中封装起来的一个结构体,那我们访问文件的时候都是通过fd访问的,自然在FILE中是封装了fd的,FILE结构体中,int _file存放的就是fd,其他的成员基本都是与缓冲区有关的

2、缓冲区

(一)有换行有return全部打印

看下面一段代码:

(二)无换行无return的C接口打印

很显然的,我们打印出了所有我们需要的内容,我们再看下一段


理想状态下我们应该是打印出结果后然后进行while一直循环,实际上是一只不会打印,这是为什么呢?是的,待在缓冲区里

首先我们要知道,缓冲区的大概位置,我们上面贴了一张FILE结构体的结构图,我们可以很清楚地看到缓冲区是FILE的成员指针指向的一块位置,也就是说缓冲区一定在用户空间而不是内核空间

(三)无换行无return的系统调用接口打印

我们在调用上面三个函数的时候,都是调用的C接口,自然都待在缓冲区里了,我们再看下一个程序


在这个程序中我们直接调用系统调用接口write,所以它不会经过C语言的缓冲区,而是直接打印

(四)有换行无return的C接口打印

我们再来看一组程序

这个程序和(二)程序的区别就只有换行,这告诉我们,C语言缓冲区对于显式器是行缓冲的,C语言标准库的文件流有三种缓冲模式,分别是全缓冲、行缓冲和无缓冲

全缓冲 _IOFBF :通常用于对磁盘文件的操作,数据会先被存储在缓冲区中,直到缓冲区被填满或者调用 fflush 函数、关闭文件(fclose)时,才会将缓冲区中的数据写入实际的文件,在全缓冲模式下,不会因为遇到换行符而自动刷新缓冲区
行缓冲 _IOLBF :常见于标准输入、标准输出等终端设备相关的流,当遇到换行符( )时,会自动刷新缓冲区,将缓冲区中的数据写入对应的设备或文件,某些情况下即使没有换行符,缓冲区满时也会刷新
无缓冲 _IONBF :标准错误输出通常默认是无缓冲的,确保错误信息能够立即显示,在无缓冲模式下,数据会立即写入对应的设备或文件,不会进行缓冲,因此不存在行刷新的概念

(五)无换行有return的C接口打印



进程退出return的时候,也会对缓冲区进行刷新

(六)深入理解缓冲区在用户空间



我们打印在显示器上的内容和打印在文件中的内容不一致,只有write打印了一遍,其他是按照顺序打印了两遍,我们当然能看出来这是fork的锅,接下来我们就深入理解谈一谈缓冲区

首先我们分析第一张结果图,因为显示器是行缓冲的,所以我们C接口的打印放到缓冲区中一行就会被打印到屏幕上一行,三条语句执行完之后缓冲区是空的,然后write再往上写,所以整个打印出来的顺序也是按照代码中来的

然后我们分析最后一张图,第一个我们可以肯定的是,打印到文件一定不是行缓冲,那就更不是无缓冲,实际上,由于文件是在存储硬件当中的,由于我们的效率问题,对于这种存储类的缓冲条件都是全缓冲,把缓冲区塞满再写入存储硬件中比塞一点写一点效率高得多,所以前三句C接口调用的打印全部在缓冲区中,然后write将自己打印,然后我们就碰到了fork,创建子进程,父子进程此时共享代码段和数据段,因为它们都没有做修改,然后我们就碰到了return 0,前面我们提到:进程结束也是要清空缓冲区的,此时父或子进程某一个先结束(由调度器决定),其中一个进程清空缓冲区的行为会引起另一个进程的写实拷贝,此时我们就有两份缓冲区,两个进程都结束都要清空缓冲区,自然在缓冲区中的内容要打印两份了(在这里要注意了,不只是子进程修改数据会引起子进程的写时拷贝,父进程对数据做修改时父进程也要发生写时拷贝,被写时拷贝的数据再再发生修改就直接修改了,不发生写实拷贝

二、文件系统

文件一般存储在硬盘当中,我们已经学习了动态的文件,也就是进程打开文件访问文件的过程,现在我们来学习一下静态的文件,我们来直接学习一下固态硬盘

1、固态硬盘

固态硬盘是一种基于NAND闪存的存储单元,我们常用的笔记本上的固态硬盘存储单元类型一般都是TLC的,三层单元,每个单元存储3bits,寿命较短成本较低,它通过电荷存储数据,通过高低电平区分0/1

NAND闪存的写入操作只能在已擦除的块上进行,擦除的最小单位就是块,通常为128KB-4MB,写入的最小单位是页,通常为4KB,所以它读的速度特别快,可以到微秒级,因为需要先擦除块,写的速度较慢,只能到毫秒级,每个块的擦写次数有限,超过后就会失效,一般TLC的擦鞋上限在500-1500次

这样的性质会带来一些不太好的结果,比如我们要写的内容很小,假设为4KB,那么我们先要擦除高达4MB的块才能进行写入,所以我们通过算法,将写入分散到所有块,避免某些块因为多次擦除而失效

固态硬盘控制器中的核心逻辑叫做FTL ( Flash Translation Layer ) Flash翻译层,负责将文件系统的逻辑地址映射到物理地址,是不是有点像进程地址通过页表映射到物理地址呢

接下来我们要学习文件系统的逻辑地址LBA,因为我们很清楚FTL映射到物理地址的过程是与页表映射是相似的,而逻辑地址的组织方式与进程地址可是不同的,虽然是有相似之处的~

2、逻辑地址LBA

LBA 从 0 开始,按照连续的整数顺序依次为存储设备中的每个数据块编号,存储设备中的每个数据块都对应一个唯一的 LBA 值,比如第一个数据块的 LBA 是 0,第二个是 1,依此类推,我们对应的数据块有Super Block、Group Descriptor Table、Block Bitmap、inode Bitmap、inode Table、Data blocks六个,最理想的情况下它们的LBA按照我上面写的顺序从0到5

我们把一块固态硬盘,我们笔记本上有一些品牌比如说某L开头的品牌,在我们购买的时候是默认给你带1T固态的,一般的品牌就是512G,我们拿到笔记本之后会对电脑进行分区,C盘作为系统盘分到最多的内存,G盘作为游戏盘给到300多G,然后D盘用来学习写代码,留个200G,EF盘用来存一些其他的东西,这样一套流程下来我们就分好盘了,我们说对硬盘做管理当然也是先描述后组织,Block Group就是组织和管理磁盘空间的一种重要结构

在n个Block Group之前有一个叫做Boot Block(引导块)的区域,在计算机启动过程中起着至关重要的作用,它是计算机启动过程的起点,没有引导块中的引导代码,计算机就无法知道如何加载操作系统,也就无法正常启动

我们按照知识理解易难顺序倒着往前来说

(一)数据块 Data Blocks

用来存储数据的块,NAND FLASH 内部的数据块由多个page组成,通常大小为4KB(现在也有8KB和16KB),这个page就是我们前面提到的最小写入单位:页

(二)inode表 inode Table

inode全称为索引节点,是一种数据结构,用于存储单个文件的全部属性,一般来说每个文件都有一个inode

struct inode
{
	//inode编号
	//文件类型
	//权限
	//引用计数
	//拥有者
	//所属组
	
    // 直接块指针
    unsigned long i_block[NUM];
    // 一次间接块指针
    unsigned long i_ind_block;
    // 二次间接块指针
    unsigned long i_dind_block;
    // 三次间接块指针
    unsigned long i_tind_block;
}

其中inode编号每个文件都是不同的,我们主要说说数据块指针

(1)直接块指针

直接块指针的NUM一般是12,它指向的位置是我们可以直接用来存储的位置,如果我们内容比较小(12*4KB = 48KB以内),那么直接块指针可以直接访问这些数据

(2)一次间接块指针

如果内容大于48KB,就需要一次间接块指针,一次间接块指针指向一个间接块,这个间接块存储中存储着多个指向数据块的指针,如我们的内容在(4KB/4b)*4KB = 4MB以内,通过一次间接块指针和直接块指针就可以访问这些数据

(3)二次间接块指针

二次间接块指针指向一个二次间接块,这个二次间接块存储中存储着多个指向间接块的指针,与一次间接块指针类似,这样我们存储的范围就达到了(4KB/4b)*(4KB/4b)*4KB = 4GB

(4)三次间接块指针

同上,最终我们最大的存储范围达到了 (4KB/4b)*(4KB/4b)*(4KB/4b)*4KB = 4TB

(三)inode位图 inode Bitmap

我们通过位图来和inode一一对应,位图上对应的比特位为0,那么该inode就没有被使用,可以被分配,如果为1则被占用,当从1变为0时,该inode又可以被分配了,其实这个过程就是一个删除的过程,一旦一个文件的inode无了,那么这文件是真的无了

在文件系统中,标识文件不是看它的名字,而是看它的inode,一旦inode和文件取消绑定了,那么操作系统就找不到这个文件了,再次写入其他内容的时候也就会被擦除覆盖了,换而言之,删除恒等于可以被覆盖

(四)块位图 Block Bitmap

我们通过位图来和数据块page一一对应,位图上对应的比特位为0,那么该页page就没有被使用,可以被分配,如果为1则被占用,当从1变为0时,该page又可以被分配了,如果我们要删除一块空间,只需要将它的对应的位置0,到再次被写入的时候就会消失了,当然我们的NAND闪存是定期擦除的,过一段时间它自己就被擦除了

(五)块组描述符表 Group Descriptor Table

记录了该块组的详细信息,包括块位图的位置、inode 位图的位置、inode 表的起始位置等,用于定位和管理块组内的各种数据结构

(六)超级块 Super Block

超级块是文件系统的核心,记录了文件系统的全局信息,如块大小、inode 数量、空闲块数量等,为了防止超级块损坏导致文件系统无法使用,每个块组中可能会包含超级块的副本,不过并非所有块组都有


今日分享就到这里啦~

本文地址:https://www.vps345.com/9082.html

搜索文章

Tags

PV计算 带宽计算 流量带宽 服务器带宽 上行带宽 上行速率 什么是上行带宽? CC攻击 攻击怎么办 流量攻击 DDOS攻击 服务器被攻击怎么办 源IP 服务器 linux 运维 游戏 云计算 服务器安全 网络安全策略 防御服务器攻击 安全威胁和解决方案 程序员博客保护 数据保护 安全最佳实践 网络工程师 网络管理 软考 2024 2024年上半年 下午真题 答案 deepseek Ollama 模型联网 API CherryStudio ubuntu 阿里云 网络 网络安全 网络协议 llama 算法 opencv 自然语言处理 神经网络 语言模型 ssh Qwen2.5-coder 离线部署 RTSP xop RTP RTSPServer 推流 视频 进程 操作系统 进程控制 Ubuntu python MCP php 开发语言 Deepseek Deepseek-R1 大模型 私有化部署 推理模型 数据库 centos oracle 关系型 安全 分布式 macos windows conda jvm 虚拟机 javascript 前端 chrome edge harmonyos 华为 typescript 计算机网络 英语 debian PVE word图片自动上传 word一键转存 复制word图片 复制word图文 复制word公式 粘贴word图文 粘贴word公式 经验分享 tcp/ip ip协议 docker java 容器 ubuntu 18.04 安装教程 nginx 负载均衡 开发环境 vscode vue.js spring boot 笔记 数据库系统 USB转串口 CH340 c语言 tomcat 人工智能 adb DNS mysql android mcu 单片机 fastapi mcp mcp-proxy mcp-inspector fastapi-mcp agent sse 深度学习 计算机视觉 卷积神经网络 后端 机器学习 科技 ai 个人开发 zotero WebDAV 同步失败 代理模式 eureka onlyoffice 学习 高级IO epoll C# MQTTS 双向认证 emqx java-rabbitmq gcc centos 7 大数据 spark hive fstab kafka nlp json 数据分析 Dify c# pip https ssh漏洞 ssh9.9p2 CVE-2025-23419 jellyfin nas 环境变量 openvpn server openvpn配置教程 centos安装openvpn ide AI编程 集成学习 集成测试 c++ 并查集 leetcode 智能路由器 外网访问 内网穿透 端口映射 DeepSeek-R1 API接口 jenkins gitee gnu redis kylin ollama llm apache 部署 学习方法 asm node.js react.js 前端面试题 持续部署 Hyper-V WinRM TrustedHosts Docker Hub docker pull 镜像源 daemon.json Linux Linux PID 多层架构 解耦 运维开发 云原生 ddos qt stm32项目 stm32 dubbo vnc 宝塔面板访问不了 宝塔面板网站访问不了 宝塔面板怎么配置网站能访问 宝塔面板配置ip访问 宝塔面板配置域名访问教程 宝塔面板配置教程 自动化 WebUI DeepSeek V3 DeepSeek AI大模型 github 创意 社区 k8s kubernetes 微信 微信分享 鸿蒙 Image wxopensdk QT 5.12.12 QT开发环境 Ubuntu18.04 rabbitmq unix 物联网 iot YOLO efficientVIT YOLOv8替换主干网络 TOLOv8 pycharm Flask FastAPI Waitress Gunicorn uWSGI Uvicorn Agent LLM CrewAI audio vue音乐播放器 vue播放音频文件 Audio音频播放器自定义样式 播放暂停进度条音量调节快进快退 自定义audio覆盖默认样式 AI arm开发 架构 maxkb ARG 网络药理学 生信 生物信息学 gromacs 分子动力学模拟 MD 动力学模拟 数据结构 HarmonyOS Next DevEco Studio 链表 程序员创富 cursor pytorch transformer 计算机外设 bug oceanbase 传统数据库升级 银行 burp suite 抓包 EtherCAT转Modbus ECT转Modbus协议 EtherCAT转485网关 ECT转Modbus串口网关 EtherCAT转485协议 ECT转Modbus网关 sublime text 编辑器 svn 信息与通信 Dell R750XS 华为云 udp unity GPU环境配置 Ubuntu22 CUDA PyTorch Anaconda安装 http web安全 websocket 媒体 git elasticsearch C 进程地址空间 rtsp服务器 rtsp server android rtsp服务 安卓rtsp服务器 移动端rtsp服务 大牛直播SDK WSL2 上安装 Ubuntu 大模型技术 本地部署大模型 oracle fusion oracle中间件 面试 rust prometheus 监控k8s集群 集群内prometheus ESXi 聚类 嵌入式 linux驱动开发 嵌入式硬件 uni-app spring cloud compose devops 进程优先级 调度队列 进程切换 SRS 流媒体 直播 ip yum docker-compose docker compose matplotlib fonts-noto-cjk golang powerpoint dify Hive环境搭建 hive3环境 Hive远程模式 C语言 .netcore bash ui 华为od 虚拟现实 JAVA Java outlook 错误代码2603 无网络连接 2603 私有化 本地部署 vmware 卡死 ssl remote-ssh rust腐蚀 java-ee 小程序 微信小程序域名配置 微信小程序服务器域名 微信小程序合法域名 小程序配置业务域名 微信小程序需要域名吗 微信小程序添加域名 Alexnet 前端框架 开源 milvus 像素流送api 像素流送UE4 像素流送卡顿 像素流送并发支持 centos-root /dev/mapper yum clean all df -h / du -sh CPU 内存 主板 电源 网卡 aws googlecloud vue3 HTML audio 控件组件 vue3 audio音乐播放器 Audio标签自定义样式默认 vue3播放音频文件音效音乐 自定义audio播放器样式 播放暂停调整声音大小下载文件 互信 perf iftop 网络流量监控 HCIE 数通 windows 服务器安装 filezilla 无法连接服务器 连接被服务器拒绝 vsftpd 331/530 etcd 数据安全 RBAC gateway Clion Nova ResharperC++引擎 Centos7 远程开发 cron crontab日志 课程设计 本地环回 bind 远程连接 rdp 实验 思科 驱动开发 硬件工程 嵌入式实习 性能优化 jdk intellij-idea GaN HEMT 氮化镓 单粒子烧毁 辐射损伤 辐照效应 MacOS录屏软件 Cline yolov5 grafana 进程信号 实时音视频 实时互动 protobuf 序列化和反序列化 安装 mac 游戏程序 ios numpy virtualenv 机器人 VMware VMware创建虚拟机 策略模式 spring dell服务器 flutter VMware安装mocOS macOS系统安装 ue5 vr 缓存 灵办AI 串口服务器 电脑 软件需求 指令 ip命令 新增网卡 新增IP 启动网卡 多线程 目标检测 xcode 产品经理 agi microsoft vim windows日志 NFS ping++ springboot GCC aarch64 编译安装 HPC 腾讯云 视觉检测 爬虫 数据集 微服务 WebVM 自动化运维 流水线 脚本式流水线 rpc .net minicom 串口调试工具 测试工具 Linux 维护模式 go Linux无人智慧超市 LInux多线程服务器 QT项目 LInux项目 单片机项目 AIGC AI-native gpt log4j edge浏览器 ros 话题通信 服务通信 visual studio code Windsurf file server http server web server MacMini Mac 迷你主机 mini Apple 虚拟局域网 burpsuite 安全工具 mac安全工具 burp安装教程 渗透工具 Xinference RAGFlow postgresql django 系统安全 gpu算力 shell jar gradle WSL2 王者荣耀 docker run 数据卷挂载 交互模式 KylinV10 麒麟操作系统 Vmware AI写作 自动化编程 maven openwrt tar UOS 统信操作系统 sql ffmpeg 音视频 视频编解码 selenium Redis Desktop mybatis 远程工作 隐藏文件 隐藏目录 文件系统 管理器 通配符 TCP WebServer hadoop RAGFLOW 统信UOS 麒麟 bonding 链路聚合 database arm WLAN ros2 moveit 机器人运动 chatgpt llama3 Chatglm 开源大模型 rancher iBMC UltraISO 向日葵 银河麒麟 kylin v10 麒麟 v10 网络结构图 深度优先 图论 并集查找 换根法 树上倍增 嵌入式系统开发 监控k8s 监控kubernetes 命名管道 客户端与服务端通信 axure 富文本编辑器 wireshark 显示过滤器 ICMP Wireshark安装 域名服务 DHCP 符号链接 配置 pygame linux环境变量 1024程序员节 远程 命令 执行 sshpass 操作 zabbix LDAP deepseek-r1 大模型本地部署 电子信息 通信工程 毕业 多线程服务器 Linux网络编程 磁盘监控 低代码 温湿度数据上传到服务器 Arduino HTTP intellij idea export import save load 迁移镜像 rime ansible playbook 剧本 Cursor Trae IDE AI 原生集成开发环境 Trae AI nftables 防火墙 银河麒麟服务器操作系统 系统激活 无人机 KingBase 镜像下载 freebsd 5G 3GPP 卫星通信 博客 UEFI Legacy MBR GPT U盘安装操作系统 windwos防火墙 defender防火墙 win防火墙白名单 防火墙白名单效果 防火墙只允许指定应用上网 防火墙允许指定上网其它禁止 程序人生 kind 系统 黑苹果 rc.local 开机自启 systemd 软件测试 IPMI list 模拟实现 alias unalias 别名 政务 分布式系统 监控运维 Prometheus Grafana threejs 3D okhttp nvm 智能手机 NAS Termux Samba ai小智 语音助手 ai小智配网 ai小智教程 智能硬件 esp32语音助手 diy语音助手 selete express p2p VMware安装Ubuntu Ubuntu安装k8s postman mock mock server 模拟服务器 mock服务器 Postman内置变量 Postman随机数据 ESP32 迁移指南 深度求索 私域 知识库 tcpdump 僵尸进程 系统架构 设计模式 软件工程 环境配置 监控 交互 IIS服务器 IIS性能 日志监控 腾讯云大模型知识引擎 数据挖掘 网络用户购物行为分析可视化平台 大数据毕业设计 基础环境 oneapi 实战案例 主从复制 flash-attention 报错 华为认证 交换机 快捷键 旋转屏幕 自动操作 docker搭建pg docker搭建pgsql pg授权 postgresql使用 postgresql搭建 pillow 区块链 客户端 live555 rtsp rtp linux上传下载 docker搭建nacos详解 docker部署nacos docker安装nacos 腾讯云搭建nacos centos7搭建nacos gitlab 工业4.0 键盘 flask WSL win11 无法解析服务器的名称或地址 python2 ubuntu24.04 sqlserver YOLOv12 Ubuntu Server Ubuntu 22.04.5 html 豆瓣 追剧助手 迅雷 OD机试真题 华为OD机试真题 服务器能耗统计 ecmascript KVM 浪潮信息 AI服务器 rocketmq vSphere vCenter 软件定义数据中心 sddc seatunnel jmeter webrtc linux内核 open webui 3d 数学建模 计算生物学 生物信息 基因组 大语言模型 LLMs 云原生开发 K8S k8s管理系统 Portainer搭建 Portainer使用 Portainer使用详解 Portainer详解 Portainer portainer openstack Xen ue4 着色器 虚幻 安防软件 mongodb EtherNet/IP串口网关 EIP转RS485 EIP转Modbus EtherNet/IP网关协议 EIP转RS485网关 EIP串口服务器 目标跟踪 OpenVINO 推理应用 iperf3 带宽测试 FTP 服务器 rag ragflow ragflow 源码启动 安卓模拟器 Reactor C++ cpu 实时 使用 html5 firefox kamailio sip VoIP 大数据平台 开发 vue 路径解析 cuda cudnn anaconda mamba Vmamba ipython 程序 编程 性能分析 云桌面 微软 AD域控 证书服务器 TrueLicense 网易邮箱大师 OpenManus YOLOv8 NPU Atlas800 A300I pro asi_bench web3.py Chatbox 生活 微信小程序 miniapp 真机调试 调试 debug 断点 网络API请求调试方法 HiCar CarLife+ CarPlay QT RK3588 jupyter CLion ubuntu20.04 ros1 Noetic 20.04 apt 安装 串口驱动 CH341 uart 485 Kali Linux 黑客 渗透测试 信息收集 Doris搭建 docker搭建Doris Doris搭建过程 linux搭建Doris Doris搭建详细步骤 Doris部署 ollama下载加速 mount挂载磁盘 wrong fs type LVM挂载磁盘 Centos7.9 webstorm ux firewalld 读写锁 bcompare Beyond Compare 离线部署dify Ubuntu DeepSeek DeepSeek Ubuntu DeepSeek 本地部署 DeepSeek 知识库 DeepSeek 私有化知识库 本地部署 DeepSeek DeepSeek 私有化部署 强制清理 强制删除 mac废纸篓 设置代理 实用教程 代码调试 ipdb adobe 大模型部署 中间件 iis MQTT协议 消息服务器 代码 linux安装配置 权限 xml 源码剖析 rtsp实现步骤 流媒体开发 kali 共享文件夹 springcloud IM即时通讯 QQ 企业微信 剪切板对通 HTML FORMAT 安卓 虚拟显示器 远程控制 fd 文件描述符 蓝耘科技 元生代平台工作流 ComfyUI 中兴光猫 换光猫 网络桥接 自己换光猫 飞牛nas fnos 本地化部署 远程看看 远程协助 sqlite3 软件构建 fpga开发 鸿蒙系统 mq DigitalOcean GPU服务器购买 GPU服务器哪里有 GPU服务器 Invalid Host allowedHosts Ubuntu共享文件夹 共享目录 Linux共享文件夹 Docker Desktop tcp Ubuntu22.04 虚拟化 开发人员主页 系统开发 binder 车载系统 framework 源码环境 Linux的权限 Google pay Apple pay 压测 ECS camera Arduino frp idm 具身智能 Isaac Sim 虚拟仿真 ROS2 本地部署AI大模型 Unity Dedicated Server Host Client 无头主机 数据库架构 数据管理 数据治理 数据编织 数据虚拟化 elk arcgis iphone top Linux top top命令详解 top命令重点 top常用参数 zip unzip 软链接 硬链接 powerbi 信息可视化 ebpf uprobe 图像处理 分析解读 能力提升 面试宝典 技术 IT信息化 GameFramework HybridCLR Unity编辑器扩展 自动化工具 环境迁移 树莓派 VNC db npm thingsboard pyautogui 职场和发展 压力测试 prompt android studio 网络爬虫 ftp服务 文件上传 DIFY bot Docker 相差8小时 UTC 时间 react next.js 部署next.js 推荐算法 netty Qualcomm WoS Python QNN AppBuilder 群晖 ocr 硬件架构 dba XFS xfs文件系统损坏 I_O error CentOS Stream CentOS 直播推流 es kvm qemu libvirt 信号 文心一言 宠物 毕业设计 免费学习 宠物领养 宠物平台 蓝桥杯 状态管理的 UDP 服务器 Arduino RTOS 小艺 Pura X excel gitea 微信公众平台 智能电视 risc-v c GPU FunASR ASR opengl 电视剧收视率分析与可视化平台 cd 目录切换 计算机 virtualbox tensorflow DocFlow PX4 ROS IO 信号处理 ubuntu24 vivado24 匿名管道 notepad Wi-Fi web Socket apt 国内源 HarmonyOS 执法记录仪 智能安全帽 smarteye 硬件 设备 PCI-Express Open WebUI SysBench 基准测试 服务器时间 ecm bpm VR手套 数据手套 动捕手套 动捕数据手套 wsl 输入法 xpath定位元素 k8s集群资源管理 MNN Qwen HP Anyware av1 电视盒子 机顶盒ROM 魔百盒刷机 es6 qt6.3 g726 游戏服务器 Minecraft Helm k8s集群 DOIT 四博智联 lsb_release /etc/issue /proc/version uname -r 查看ubuntu版本 RoboVLM 通用机器人策略 VLA设计哲学 vlm fot robot 视觉语言动作模型 rclone AList webdav fnOS 技能大赛 Erlang OTP gen_server 热代码交换 事务语义 跨平台 Dell HPE 联想 浪潮 iDRAC R720xd kotlin copilot Kali keepalived sonoma 自动更新 vmamba 实习 xshell termius iterm2 远程桌面 gaussdb neo4j 数据仓库 数据库开发 智慧农业 开源鸿蒙 团队开发 Linux的基础指令 磁盘清理 宝塔面板 Mermaid 可视化图表 自动化生成 ruoyi 自动驾驶 n8n dity make vasp安装 css 内网渗透 靶机渗透 AI作画 服务器配置 单例模式 etl 聊天室 ci/cd AutoDL ufw ArcTS 登录 ArcUI GridItem arkUI 搜索引擎 searxng 开源软件 safari Linux权限 权限命令 特殊权限 chrome devtools chromedriver 测试用例 功能测试 历史版本 下载 asp.net大文件上传 asp.net大文件上传源码 ASP.NET断点续传 asp.net上传文件夹 asp.net上传大文件 .net core断点续传 .net mvc断点续传 nvidia VPN wireguard MAC SecureCRT langchain deep learning Zoertier 内网组网 SSH muduo X11 Xming 金仓数据库 2025 征文 数据库平替用金仓 Docker Compose VMware Tools vmware tools安装 vmwaretools安装步骤 vmwaretools安装失败 vmware tool安装步骤 vm tools安装步骤 vm tools安装后不能拖 vmware tools安装步骤 飞牛 视频平台 录像 视频转发 性能测试 视频流 存储 矩阵 其他 firewall minio TRAE 程序员 AP配网 AK配网 小程序AP配网和AK配网教程 WIFI设备配网小程序UDP开 进程程序替换 execl函数 execv函数 execvp函数 execvpe函数 putenv函数 OpenHarmony docker命令大全 Typore nac 802.1 portal c/c++ 串口 vpn mariadb r语言 数据可视化 硅基流动 ChatBox 支付 微信支付 开放平台 ArkTs ArkUI 图形渲染 vscode 1.86 网站搭建 serv00 jetty undertow grub 版本升级 扩容 小游戏 五子棋 远程登录 telnet Windows 大模型入门 大模型教程 sdkman pdf 显示管理器 lightdm gdm 用户缓冲区 强化学习 cocoapods lvm 磁盘挂载 磁盘分区 SenseVoice ceph Xterminal 相机 网络攻击模型 xfce 弹性计算 云服务器 裸金属服务器 弹性裸金属服务器 banner lb 协议 scikit-learn Mac内存不够用怎么办 ELF加载 eNSP 网络规划 VLAN 企业网络 kernel Web服务器 多线程下载工具 网络编程 PYTHON 大模型面经 大模型学习 显卡驱动 AnythingLLM AnythingLLM安装 渗透 mysql离线安装 ubuntu22.04 mysql8.0 源码 游戏机 hugo 网页服务器 web服务器 Nginx Netty 即时通信 NIO 混合开发 环境安装 JDK 交叉编译 雨云 NPS SWAT 配置文件 服务管理 网络共享 版本 gpt-3 llama.cpp DeepSeek行业应用 Heroku 网站部署 7z yolov8 命令行 基础入门 金融 半虚拟化 硬件虚拟化 Hypervisor 华为证书 HarmonyOS认证 华为证书考试 webgl opcua opcda KEPServer安装 容器技术 k8s资源监控 annotations自动化 自动化监控 监控service 监控jvm Linux Vim micropython esp32 mqtt ArkTS 移动端开发 大模型微调 思科模拟器 Cisco 服务器扩容没有扩容成功 序列化反序列化 nuxt3 考研 CosyVoice 在线office 毕设 京东云 人工智能生成内容 MQTT 消息队列 高效I/O ruby FTP服务器 Cookie sqlite su sudo 游戏引擎 线程 openssl 密码学 cfssl chrome 浏览器下载 chrome 下载安装 谷歌浏览器下载 MS Materials 模拟退火算法 MDK 嵌入式开发工具 论文笔记 拓扑图 MAVROS 四旋翼无人机 can 线程池 trea idea 算力 服务器管理 配置教程 服务器安装 网站管理 fork wait waitpid exit 高效远程协作 TrustViewer体验 跨设备操作便利 智能远程控制 springboot远程调试 java项目远程debug docker远程debug java项目远程调试 springboot远程 Playwright 自动化测试 MySql springsecurity6 oauth2 授权服务器 前后端分离 hibernate ssh远程登录 P2P HDLC 工具 统信 UOS1070e 健康医疗 互联网医院 双系统 GRUB引导 Linux技巧 代码托管服务 clickhouse 社交电子 同步 备份 建站 框架搭建 安全威胁分析 宝塔 回显服务器 UDP的API使用 Java Applet URL操作 服务器建立 Socket编程 网络文件读取 直流充电桩 充电桩 RAID RAID技术 磁盘 微信开放平台 微信公众号配置 飞牛NAS 飞牛OS MacBook Pro harmonyOS面试题 uv cnn W5500 OLED u8g2 TCP服务器 SEO 邮件APP 免费软件 chfs ubuntu 16.04 大屏端 漏洞 vite openEuler MCP server C/S unity3d 内核 yaml Ultralytics 可视化 Linux24.04 deepin RustDesk自建服务器 rustdesk服务器 docker rustdesk 网络穿透 火绒安全 Nuxt.js curl wget 多进程 AI代码编辑器 nacos wps EasyConnect 安装MySQL 致远OA OA服务器 服务器磁盘扩容 stable diffusion rnn 上传视频至服务器代码 vue3批量上传多个视频并预览 如何实现将本地视频上传到网页 element plu视频上传 ant design vue vue3本地上传视频及预览移除 redhat CORS 跨域 matlab 飞书 OpenSSH dns uniapp 恒源云 Linux awk awk函数 awk结构 awk内置变量 awk参数 awk脚本 awk详解 rustdesk 毕昇JDK 小智 Docker引擎已经停止 Docker无法使用 WSL进度一直是0 镜像加速地址 Reactor反应堆 Web应用服务器 make命令 makefile文件 xrdp conda配置 conda镜像源 jina SSL证书 边缘计算 x64 SIGSEGV SSE xmm0 稳定性 看门狗 k8s二次开发 集群管理 移动云 CDN pgpool VSCode 业界资讯 国产数据库 瀚高数据库 数据迁移 下载安装 鲲鹏 端口测试 odoo 服务器动作 Server action 田俊楠 glibc code-server mosquitto DBeaver composer 镜像 开机自启动 产测工具框架 IMX6ULL 管理框架 XCC Lenovo Ubuntu 24.04.1 轻量级服务器 AISphereButler embedding wsgiref Web 服务器网关接口 联网 easyconnect 代理 nfs echarts 网页设计 SSL 域名 skynet 浏览器自动化 Carla 智能驾驶 java-rocketmq Jellyfin LORA NLP Tabs组件 TabContent TabBar TabsController 导航页签栏 滚动导航栏 lio-sam SLAM Attention 国产操作系统 ukui 麒麟kylinos openeuler 虚拟机安装 黑客技术 ubuntu24.04.1 RAG 检索增强生成 文档解析 大模型垂直应用 URL NLP模型 自学笔记 小米 澎湃OS Android VPS pyqt Node-Red 编程工具 流编程 Kylin-Server RTMP 应用层 big data opensearch helm 可信计算技术 安全架构 fast 服务器主板 AI芯片 bat 大模型应用 MI300x 医疗APP开发 app开发 孤岛惊魂4 WebRTC 工作流 workflow samba 图片增强 增强数据 昇腾 npu open Euler dde 模拟器 教程 SSH 密钥生成 SSH 公钥 私钥 生成 聊天服务器 套接字 智能音箱 智能家居 IPMITOOL BMC 硬件管理 linux 命令 sed 命令 string模拟实现 深拷贝 浅拷贝 经典的string类问题 三个swap TrinityCore 魔兽世界 sysctl.conf vm.nr_hugepages 大文件分片上传断点续传及进度条 如何批量上传超大文件并显示进度 axios大文件切片上传详细教 node服务器合并切片 vue3大文件上传报错提示错误 vu大文件秒传跨域报错cors IPv4 子网掩码 公网IP 私有IP dash 正则表达式 文件分享 繁忙 服务器繁忙 解决办法 替代网站 汇总推荐 AI推理 宝塔面板无法访问 开机黑屏 云服务 雨云服务器 token sas SSH 服务 SSH Server OpenSSH Server 崖山数据库 YashanDB k8s部署 MySQL8.0 高可用集群(1主2从) ShenTong 国产化 python3.11 自动化任务管理 Ark-TS语言 easyui asp.net大文件上传下载 代码规范 saltstack 服务器数据恢复 数据恢复 存储数据恢复 raid5数据恢复 磁盘阵列数据恢复 cmos visualstudio 银河麒麟操作系统 服务器部署ai模型 yum源切换 更换国内yum源 服务器无法访问 ip地址无法访问 无法访问宝塔面板 宝塔面板打不开 IIS .net core Hosting Bundle .NET Framework vs2022 rsyslog 机柜 1U 2U Anolis nginx安装 linux插件下载 高效日志打印 串口通信日志 服务器日志 系统状态监控日志 异常记录日志 单元测试 三级等保 服务器审计日志备份 无桌面 DeepSeek r1 重启 排查 系统重启 日志 原因 远程过程调用 Windows环境 图形化界面 eclipse 热榜 流式接口 api React Next.js 开源框架 联想开天P90Z装win10 云耀服务器 内网环境 bootstrap 免费域名 域名解析 换源 Debian nextjs reactjs visual studio HarmonyOS NEXT 原生鸿蒙 wsl2 上传视频文件到服务器 uniApp本地上传视频并预览 uniapp移动端h5网页 uniapp微信小程序上传视频 uniapp app端视频上传 uniapp uview组件库 trae 小番茄C盘清理 便捷易用C盘清理工具 小番茄C盘清理的优势尽显何处? 教你深度体验小番茄C盘清理 C盘变红?!不知所措? C盘瘦身后电脑会发生什么变化? 大文件秒传跨域报错cors 办公自动化 pdf教程 网工 crosstool-ng ssrf 失效的访问控制 宕机切换 服务器宕机 less 云电竞 云电脑 todesk Ardupilot ShapeFile GeoJSON 大版本升 升级Ubuntu系统 影刀 #影刀RPA# vue-i18n 国际化多语言 vue2中英文切换详细教程 如何动态加载i18n语言包 把语言json放到服务器调用 前端调用api获取语言配置文件 g++ g++13 docker部署Python LInux deekseek 在线预览 xlsx xls文件 在浏览器直接打开解析xls表格 前端实现vue3打开excel 文件地址url或接口文档流二进 H3C 运维监控 sublime text3 环境搭建 Maven react native Office midjourney 日志分析 系统取证 DenseNet 信创 信创终端 中科方德 sentinel figma 搭建个人相关服务器 wordpress 无法访问wordpess后台 打开网站页面错乱 linux宝塔面板 wordpress更换服务器 个人博客 增强现实 沉浸式体验 应用场景 技术实现 案例分析 AR GoogLeNet 佛山戴尔服务器维修 佛山三水服务器维修 Spring Security 技术共享 我的世界 我的世界联机 数码 MobaXterm 文件传输 虚幻引擎 glm4 问题解决 我的世界服务器搭建 加解密 Yakit yaklang 干货分享 黑客工具 密码爆破 论文阅读 线性代数 电商平台 怎么卸载MySQL MySQL怎么卸载干净 MySQL卸载重新安装教程 MySQL5.7卸载 Linux卸载MySQL8.0 如何卸载MySQL教程 MySQL卸载与安装 阻塞队列 生产者消费者模型 服务器崩坏原因 冯诺依曼体系 C++软件实战问题排查经验分享 0xfeeefeee 0xcdcdcdcd 动态库加载失败 程序启动失败 程序运行权限 标准用户权限与管理员权限 ISO镜像作为本地源 Sealos env 变量 欧标 OCPP 进程间通信 备份SQL Server数据库 数据库备份 傲梅企业备份网络版 Ubuntu 24 常用命令 Ubuntu 24 Ubuntu vi 异常处理 lua 音乐服务器 Navidrome 音流 软件卸载 系统清理 resolv.conf 烟花代码 烟花 元旦 本地知识库部署 DeepSeek R1 模型 vllm 蓝牙 联机 僵尸毁灭工程 游戏联机 开服 空间 查错 nohup后台启动 网络建设与运维 网络搭建 神州数码 神州数码云平台 云平台 ECT转485串口服务器 ECT转Modbus485协议 ECT转Modbus串口服务器 音乐库 mysql安装报错 windows拒绝安装 AI员工 dns是什么 如何设置电脑dns dns应该如何设置 免密 公钥 私钥 笔灵AI AI工具 实时内核 sudo原理 su切换 服务网格 istio AI agent iventoy VmWare OpenEuler 反向代理 js grep PPI String Cytoscape CytoHubba Radius 抗锯齿 合成模型 扩散模型 图像生成 uni-file-picker 拍摄从相册选择 uni.uploadFile H5上传图片 微信小程序上传图片 scapy 知识图谱 IO模型 EMQX 通信协议 计算虚拟化 弹性裸金属 鸿蒙开发 移动开发 Qwen2.5-VL iNode Macos 物联网开发 语法 nosql MacOS 做raid 装系统 MVS 海康威视相机 游戏开发 sequoiaDB 负载测试 捆绑 链接 谷歌浏览器 youtube google gmail dock 加速 Python基础 Python教程 Python技巧 proxy模式 prometheus数据采集 prometheus数据模型 prometheus特点 性能调优 安全代理 7-zip Linux环境 VM搭建win2012 win2012应急响应靶机搭建 攻击者获取服务器权限 上传wakaung病毒 应急响应并溯源 挖矿病毒处置 应急响应综合性靶场 磁盘镜像 服务器镜像 服务器实时复制 实时文件备份 perl 远程服务 Ubuntu 22.04 算家云 算力租赁 AD域 win服务器架设 windows server minecraft 桌面环境 Apache Beam 批流统一 案例展示 数据分区 容错机制 CPU 使用率 系统监控工具 linux 命令 regedit 开机启动 HTTP 服务器控制 ESP32 DeepSeek 银河麒麟桌面操作系统 Kylin OS xss Claude cmake 分布式训练 netlink libnl3 语音识别 diskgenius 玩游戏 查询数据库服务IP地址 SQL Server ajax qt项目 qt项目实战 qt教程 沙盒 国标28181 视频监控 监控接入 语音广播 流程 SIP SDP word 状态模式 底层实现 多路转接 玩机技巧 软件分享 软件图标 授时服务 北斗授时 华为机试 USB网络共享 beautifulsoup umeditor粘贴word ueditor粘贴word ueditor复制word ueditor上传word图片 ueditor导入word ueditor导入pdf ueditor导入ppt 工具分享 对比 meld DiffMerge 一切皆文件 自定义客户端 SAS 银河麒麟高级服务器 外接硬盘 Kylin VS Code 根服务器 shell脚本免交互 expect linux免交互 AD 域管理 laravel 服务器部署 本地拉取打包 移动魔百盒 终端工具 远程工具 armbian u-boot junit hexo 浏览器开发 AI浏览器 项目部署 小智AI服务端 xiaozhi TTS EVE-NG CNNs 图像分类 Xshell 内网服务器 内网代理 内网通信 ftp lighttpd安装 Ubuntu配置 Windows安装 服务器优化 升级 CVE-2024-7347 代理服务器 需求分析 规格说明书 csrutil mac恢复模式进入方法 恢复模式 deepseak 豆包 KIMI 腾讯元宝 vscode1.86 1.86版本 ssh远程连接 deepseek r1 ranger MySQL8.0 LLM Web APP Streamlit deployment daemonset statefulset cronjob 极限编程 备选 网站 调用 示例 北亚数据恢复 oracle数据恢复 kerberos 大模型训练/推理 推理问题 mindie 多产物 nohup 异步执行 seleium IMX317 MIPI H265 VCU mcp服务器 client close TCP协议 网络文件系统 Headless Linux 计算机科学与技术 HistoryServer Spark YARN jobhistory 程序化交易 量化交易 高频交易 wpf 钉钉 Logstash 日志采集 端口聚合 windows11 flink 查看显卡进程 fuser navicat WINCC ArtTS 达梦 DM8 大大通 第三代半导体 碳化硅 System V共享内存 进程通信 ai工具 whistle v10 软件 项目部署到linux服务器 项目部署过程 超融合 软负载 docker desktop image h.264 AI Agent 字节智能运维 华为OD 可以组成网络的服务器 网卡的名称修改 eth0 ens33 cpp-httplib 端口 查看 ss web3 iTerm2 高德地图 鸿蒙接入高德地图 HarmonyOS5.0 pppoe radius 单一职责原则 docker部署翻译组件 docker部署deepl docker搭建deepl java对接deepl 翻译组件使用 Mac软件 IMM NAT转发 NAT Server hosts rpa EMUI 回退 降级 企业网络规划 华为eNSP 常用命令 文本命令 目录命令 ollama api ollama外网访问 tidb GLIBC 嵌入式Linux IPC WireGuard 异地组网 Linux find grep DevOps 软件交付 数据驱动 Docker快速入门 僵尸世界大战 游戏服务器搭建 zookeeper 多端开发 智慧分发 应用生态 鸿蒙OS 抓包工具 swoole 阿里云ECS ldap yashandb AzureDataStudio GIS 遥感 WebGIS qps 高并发 qt5 客户端开发 retry 重试机制 架构与原理 多个客户端访问 IO多路复用 TCP相关API 元服务 应用上架 pyicu gunicorn tailscale derp derper 中转 triton 模型分析 充电桩平台 充电桩开源平台 李心怡 端口号 开放端口 访问列表 IDEA 搜狗输入法 中文输入法 java-zookeeper zerotier 管道 锁屏不生效 NFC 近场通讯 智能门锁 VGG网络 卷积层 池化层 子系统 yum换源 LVM lvresize 磁盘扩容 pvcreate initramfs Linux内核 Grub SystemV 数字证书 签署证书 风扇控制软件 框架 考试 动静态库 AimRT 流量运营 Ubuntu20.04 2.35 脚本 css3 录音麦克风权限判断检测 录音功能 录音文件mp3播放 小程序实现录音及播放功能 RecorderManager 解决录音报错播放没声音问题 带外管理 fiddler 服务器正确解析请求体 Echarts图表 折线图 柱状图 异步动态数据 可视化效果 全文检索 图搜索算法 零售 信息安全 Unity插件 显示器 金仓数据库概述 金仓数据库的产品优化提案 蓝桥杯C++组 postgres Dify重启后重新初始化 终端 SVN Server tortoise svn termux 大模型推理 autodl chromium dpi localhost 行情服务器 股票交易 速度慢 切换 股票量化接口 股票API接口 solidworks安装 输入系统 智能合约 哈希算法 pyside6 界面 HAProxy ABAP openjdk IP配置 netplan 智能体开发 archlinux kde plasma 电路仿真 multisim 硬件工程师 硬件工程师学习 电路图 电路分析 仪器仪表 新盘添加 partedUtil GRE llamafactory 微调 网络原理 电脑桌面出现linux图标 电脑桌面linux图标删除不了 电脑桌面Liunx图标删不掉 linux图标删不掉 linuxdeployqt 打包部署程序 appimagetool webview 粘包问题 弹性服务器 用户管理 arkTs 打不开xxx软件 无法检查其是否包含恶意软件 分布式账本 信任链 共识算法 存储维护 NetApp存储 EMC存储 ardunio BLE 服务器ssl异常解决 autoware 配置原理 安全漏洞 Pyppeteer 内存管理 GPU训练 接口优化 Claude Desktop Claude MCP Windows Cli MCP macOS mm-wiki搭建 linux搭建mm-wiki mm-wiki搭建与使用 mm-wiki使用 mm-wiki详解 kubeless 西门子PLC 通讯 显卡驱动持久化 GPU持久化 IPv6 IPv6测试 IPv6测速 IPv6检测 IPv6查询 GeneCards OMIM TTD 分子对接 autodock mgltools PDB PubChem 解决方案 桌面快捷方式 UDP 软件开发 logstash 免费 商用密码产品体系 c/s IPv4/IPv6双栈 双栈技术 网路规划设计 ensp综合实验 IPv4过渡IPv6 IPv4与IPv6 物理地址 页表 虚拟地址 跨域请求 设计规范 massa sui aptos sei hdc 券商 股票交易接口api 类型 特点 pthread element-ui 上传视频并预览视频 vue上传本地视频及进度条功能 vue2选择视频上传到服务器 upload上传视频组件插件 批量上传视频 限制单个上传视频 区块链项目 PyQt PySide6 鸿蒙NEXT 飞腾处理器 设备树 macbook 三次握手 ubuntu安装 linux入门小白 Webserver 异步 servlet Python 视频爬取教程 Python 视频爬取 Python 视频教程 NVML nvidia-smi NVM Node Yarn PM2 RDP Bug解决 Qt platform OpenCV 支持向量机 文件存储服务器组件 动态规划 post.io 企业邮箱 搭建邮箱 星河版 机械臂 rtc 源代码管理 #STC8 #STM32 mvc 海康