最新资讯

  • linux信号| 学习信号四步走 | 学习信号需要打通哪些知识脉络?

linux信号| 学习信号四步走 | 学习信号需要打通哪些知识脉络?

2025-05-08 21:00:58 0 阅读

        前言: 本节内容主要讲解linux下信号的预备知识以及信号的概念, 信号部分我们将会分为几个阶段进行讲解:信号的概念, 信号的产生, 信号的保存。本节主要讲解信号

        ps:本节内容适合学习了进程相关概念的友友们进行观看哦

目录

什么是信号

常见的信号有哪些

进程如何认识信号

前台启动与后台启动

信号的种类

信号的处理方式

键盘数据如何变成信号

针脚

中断向量表


什么是信号

         在我们生活当中, 有许多都是信号的模式。 ——比如我今天点了一个外卖, 我点了之后就在宿舍打游戏了。 之后, 外卖小哥到了, 给我打了一个电话, 敲我的门。 那么这种情况, 就叫做信号产生当我收到这个信号的时候, 我可能有事情, 那么我即便收到了信号, 也不会立即处理, 而是把事情忙完之后, 再进行处理。 也就意味着, 信号暂时得被我记录下来。 ——我们取外卖的动作, 就叫做信号处理; 外卖小哥给我们打电话叫做信号的产生; 而我们可能在做更重要的事情, 比如打游戏, 我们得等一等, 所以我们会把信号产生的这个事情记录下来, 在合适的时候进行处理, 这个就叫做信号保存 整个流程下来, 就叫做信号产生到信号处理的生命周期!

常见的信号有哪些

        我们的上课铃声, 我们的门铃, 取快递,爸爸妈妈都脸色不太好, 古代的冲锋号, 狼烟等等都叫做信号。 

进程如何认识信号

        虽然计算机内部有信号, 但是我们的进程是怎么认识信号的呢?

  •         对于进程来说, 进程一定能够识别并处理信号的能力
  •         并且, 进程即便没有收到信号, 也能知道那些信号该怎么处理。——这个信号处理能力是必须是属于进程内置功能的一部分。
  •         当进程真的收到了一个具体的信号的时候, 进程可能并不会立即处理信号, 因为进程可能在做更重要的事。 
  •         进程当信号产生, 到信号被处理, 这个中间一定有着时间窗口, 所以进程必须有临时保存信号的能力。

        所以, 综上, 我们就知道, 什么叫做认识信号?——认识信号就是能够先识别信号, 然后知道信号的处理方法。 就比如我们人, 我们知道了红灯, 门铃这些信号该干什么, 是因为我们记住了这些信号的识别方法和处理方法。

前台启动与后台启动

我们运行下面这个程序

#include
using namespace std;
#include


int main()
{
  while (true)
  {
    cout << "i am a crazy process" << endl;
  }                                                                                                                                                                                  return 0;
}

然后运行结果如下:

        我们除了进程再运行, 其他看不出什么问题。 但是呢, 上面的进程一直在跑, 我们按什么都没有用, 所以这个时候我们ctrl + c, 就可以让进程退出。 

        为了更好的测试我们这里让程序睡眠上一秒钟:

#include
using namespace std;
#include


int main()
{
  while (true)
  {
    cout << "i am a crazy process" << endl;
    sleep(1);
  }                                                                                                                                                                                  return 0;
}

这个程序运行起来了, 但是问题是我们再输入什么都没有用了。 这是为什么?这是因为我们启动的进程是一个前台进程什么是前台进程, 这种我们的进程启动后, 我们的bash进程就不再接收任何指令了, 这种进程, 就叫做前台进程。 

现在, 我们在进程运行的时候输入一个&, 这个的意思是后台进程。

        因为进程的作用就是打印数据, 所以他还会在命令行上打印数据, 并且我们可以在命令行上输入指令, bash会接收这些指令。

        但是问题是我们使用ctrl + c杀不掉这个进程了, 如下图:

这是因为在Linux终端中, 一次登录中, 一个终端, 一般会配上一个bash。 每一个登录, 只允许一个进程是前台进程, 可以允许多个后台进程。 像这种后台进程只能使用kill -9 PID杀掉这个进程。 

        现在我们要说的是, 为什么我们运行一个myprocess后, 再输入ls等指令就没用了呢?——这是因为我们./myprocess默认是前台进程启动。 而我们说过, 每一个登录, 其实只允许一个进程是前台进程。 要知道, 我们的bash也是进程, 而且也是前台进程!那么, 当我们的./myprocess后, 我们的./myprocess就变成了前台进程, 而bash变成了后台进程, 那么再在bash里面输入就没有作用了。 所以, 前台和后台的本质区别就是——谁来获取键盘输入!当我们运行myprocess之后, 获取键盘输入的就是我们的myprocess了, 所以再输入指令没有反应, 因为myprocess不会对指令做出反应!因为bash收不到指令

        再回过头来看我们的这个问题——为什么我们myprocess &, 让进程后台运行之后ctrl + c后杀不掉这个./myprocess进程呢? ——这是因为当我们的后台运行myprocess接收ctrl + c的进程是我们的bash进程, myprocess接收不到命令, 也就不能杀掉这个进程。 

        那么问题又来了, 我们的bash进程ctrl + c后, 为什么不会被干掉呢? 这是因为我们的bash进程内部对于ctrl +c做了特殊的处理。 

        那么, 当我们myprocess后台运行的时候, 随让我们同样可以看到打印, 但是请问这个时候我们可以继续输入指令吗? 

        答案是可以的, 就像上图, 当我们后台运行myprocess进程, 这个时候虽然会继续向显示器上面打印数据, 但是当我们输入指令, 即便这个指令会被数据断开, 但是bash命令会忽略这些后台打印的数据。 

         也就是说, 表面上看我们的指令是被扰乱的, 但是其实这些指令并没有被扰乱, 这个指令还是完整的输给了前台进程。 我们为什么看到的是乱的仅仅是因为我们在进行输入的时候, 字符在显示器上面被回显出来了, 我们在输出上面互相干扰了。 ——我们输入有输入缓冲区, 输出有输出缓冲区输入缓冲区也就是bash的输入缓冲区, 我们使用ls命令, 本质上是ls输入到bash的输入缓冲区当中。 并且, 不光光是给输入缓冲区了, 同时也给了输出缓冲区显示器上面给我们回显了。 

       每当我们登录上一个终端, 每一个终端都会配上一个bash。 一般情况下,bash是前台进程, 他会获取终端的键盘输入, 但是当我们执行一个进程的时候, 它默认会变成一个前台进程, bash会变成一个后台。 整个的在我们的进程一次登录当中, 只允许一个进程是前台, 多个进程是后台。 

        而之所以我们的ctrl + c能够杀掉前台进程, 是为什么——ctrl + c是我们的键盘输入, 是被前台进程收到的。 ——所以在进程ctrl + c的时候, 本质是被前台进程解释成为收到了信号,这个信号是2号信号。 

信号的种类

        kill -l可以查看我们当前的linux系统一共支持多少信号。 ——注意, 没有0号信号, 没有32, 33好信号。 一共62个信号。 其中, 1 ~31被称为普通信号,后面的信号被称为实时信号。 什么是实时信号——我们说过, 一个信号产生了, 那么我们可以不去立即处理, 这种叫做普通信号, 而一旦信号产生了, 我们必须尽快处理, 这种信号被称为实时信号。  

        我们的ctrl + c 其实就是出发了二号信号——SIGINT.

信号的处理方式

        当我们收到一个信号的时候, 我们会在合适的时候处理这个信号。 信号的处理方式是什么——

  •         就比如当我们路过红路灯的时候, 遇到绿灯, 我们会走, 红灯我们会停下来——这就是我们处理信号的默认动作;
  •         有一些人看到红灯之后不管红灯, 直接闯红灯——这就叫忽略;
  •         红灯亮的时候, 有些人天生就是显现包, 红灯一亮, 他就唱歌, 他就跳舞等等, 这些动作是他们自己按照自己的想法来的——这就叫做自定义动作。 这种自定义动作通常叫做信号的捕捉。 

        我们上面说的收到二号信号的默认动作, 就是终止自己。 

如何捕捉信号呢?就是使用下面的函数:

        这里的signal函数, 谁要调用它, 就要传送两个参数, 第一个参数就是上面的signal标号。 而后面的hander就是谁调用这个函数, 执行这个信号的自定义捕捉动作!!! 未来如果我们想收到一个信号, 并在收到这个信号时, 让他自定义去执行动作, 就把要执行的动作和信号通过这个函数进行绑定!——即这个函数, 是用来修改特性进程对信号的处理工作的。 

        第一个参数是int类型, 传送的是信号的编号。 确定的是哪一个信号。 所以, 我们就要传送这个信号的编号。 下面是宏定义:

        然后, 定义下面的代码,并执行:

        然后我们就会发现, 原本的ctrl + c会直接退出, 但是现在不退出了, 而是执行我们的自定义的动作。 那么我们就验证了, 我们的ctrl + c其实就是要发送信号。 并且默认动作和自定义动作只会执行一个。 

        注:想要让它退出, 就是要使用exit调用。 

        还有一个问题就是为什么我们使用signal的时候, 要把它放在一开始, 而不是放在后面或者中间位置呢? 

        这是因为signal只需要设置一次, 往后进程的生命周期里面, 所有的都有效。那么问题是——我们的hander方法是我们的在调用signal函数的时候就调用的还是后面遇到信号的时候再调用的呢? 就比如我们和别人做约定, 我们需要遇到红灯就唱歌。那么我们是定下约定的时候就唱歌呢? 还是遇到红灯再唱歌呢?一定是我们遇到红灯时再唱歌, 那么是不是如果看不到红灯, 那么就永远不需要执行约定。——类似的, 也就是说, 我们后续没有收到这个信号 那么这个新创建的方法, 就永远也不需要调用

        注:有些信号可以被捕捉, 有些不可以被捕捉。 比如9号,19号信号。 

键盘数据如何变成信号

        根据冯诺依曼体系结构, 我们的进程是不能直接访问硬件, 也就是键盘的。 它必须由它的管理者直接访问, 所以我们键盘的按下, 肯定是由操作系统第一个知道的。 ——操作系统是如何知道键盘被按下, 并且把键盘里面的数据输入到自己里面的呢? 也可以换一个说法就是操作系统是怎么知道键盘上有数据了的呢?现在看下面一张图:

        想要知道键盘有数据, 最好的方法就是操作系统定期去检查这个键盘。 因为linux下一切皆文件, 所以键盘也是文件键盘也有自己的文件描述符有自己的内核缓冲区键盘读取的本质, 就是把键盘硬件的数据拷贝到键盘文件的缓冲区里面。 

        可是计算机中的外设太多, 操作系统怎么知道我们应该向哪个外设中拿到什么数据呢?另外, 我们知道, 我们的cpu, 虽然是不和外设直接打交道的, 但是这是在数据层面。 在控制层面, 我们的cpu还是能读懂外设的。 如何读懂外设? 就是利用cpu周边的针脚, 利用一种叫做中断号的概念!    

针脚

  •         我们的cpu上面有很多很多的针脚, 这些针脚是集成在主板上面的, 而我们的键盘显示器内存, 各种设备也是插在主板上面的。 我们对应的键盘, 是直接能够和cpu连接到的。 我们虽然cpu不从键盘当中读取数据, 但是键盘能够从硬件层面上发送一个硬件中断。 
  •         也就是说, 操作系统在进行我们工作的时候, 就忙自己的, 但是一旦键盘上面有数据, 键盘就会通过硬件单元, 把我们的键盘当中的信息发送给cpu。
  •         那么我们要知道什么? 我们要知道的是, 从外设到内存, 再到cpu, 轮询的检查, 对于操作系统的负担是很大的。 所以操作系统不会去检查硬件里面是否有数据, 而是硬件有数据了, 通过硬件中断, 来给我们的cpu发送中断, 来让操作系统完成拷贝。 每一种中断, 都有一种中断号的概念。        
  •         这个中断号及类似于123456789这种数字, 假如我们的键盘的中断号是1, 未来他有数据, 就直接通过cpu连接的针脚, 向cpu内发送某个中断号, 然后针脚接收中断号的高低电频, 由cpu来解释这些电频, 确定中断号是几。 所以, 也就是说, 当键盘中有数据, cpu就能获取这个键盘的中断号, 他就记下来了。——这个过程更进一步理解就是:我们知道cpu里面有寄存器, 可以保存数据。 cpu中的寄存器凭什么可以保存数据? 本质上就是对我们的寄存器在充放电的过程,键盘给cpu发送高低电频,我们的针脚能够识别这些高低电频,  而cpu里面的寄存器里面有一个个硬件单元,这些高低电频给寄存器里面的硬件单元充放电。 并且这些电频有高有低, 到了软件层面,就被解释成为了一个个二进制。 

中断向量表

        在我们的软件层面上, 我们的操作系统内, 比较靠前的位置, 当操作系统开机的时候, 就会生成一张中断向量表。

        这个中断向量表里面是方法的地址, 主要是包括直接访问外设的方法, 主要是磁盘, 还有各种显示器, 键盘的设备。 这里面其实放着的就是函数指针, 所以他会指向操作系统当中的某个位置。 

        所以, 我们的外设, 一旦获取了数据, 就会通过中断单元, 将数据写到cpu的寄存器当中, cpu的寄存器就获得了一个中断号, cpu拿着中断号去操作系统的中断向量表当中寻找外设的方法。 然后执行这个方法, 而这个方法, 才是我们的数据从外设拷贝到内存中的方法。 操作系统在将数据从外设拿到内存的时候就会判断。 判断这个数据是数据还是控制, 如果是控制, 比如ctrl + c。呢么操作系统就会把ctrl + c转化为2号信号, 发送给进程。 进程进而直接终止。 

这里有一个概念, 叫做信号的产生和我们的代码的运行是异步的。 这是为什么? 
        就比如我们老师给我们上课, 如果老师这个时候口渴了, 想要喝水, 他就让学生A去买水。 这个时候老师就和全班同学说先上自习, 等张三回来再上课。 这个过程, 就叫做同步的。 但是第二天, 老师又口渴了, 老师又让学生A去买水, 但是这个老师这次开始不等张三了, 他就继续上课。 张三呢, 随时随地可能回来, 老师不管, 老师就做他自己的工作。 两人之间你做你的, 我做我的, 互不干扰, 这叫做异步。 ——也就是说, 我们今天再运行我们的代码的时候, 他什么时候产生我们并不知道。 他可能随时随地地产生, 但是我们不需要等待这个信号。 这就说信号和我们的代码的执行是异步的。 ——这就有了信号的概念——信号是进程之间时间异步通知的一种方式, 属于软中断!

——————以上就是本节全部内容哦, 如果对友友们有帮助的话可以关注博主, 方便学习更多知识哦!!!

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

搜索文章

Tags

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