当前位置: 首页 > news >正文

Linux 常见的冷知识集锦

一、前言

在这里插入图片描述

本文旨在记录那些常见的Linux概念和名词,但这些又没经常直接使用到,更多在底层运行,见过却又不是特别清楚的碎片知识,以温故知新。

二、知识点和概念说明

2.1、POSIX标准/协议

POSIX(Portable Operating System Interface可移植操作系统接口)是IEEE为在UNIX操作系统上运行软件而定义API的一系列互相关联的标准的总称,其正式称呼为IEEE Std 1003,POSIX.1 已经被国际标准化组织(International Standards Organization,ISO)命名为 ISO/IEC 9945-1:1990 标准。简言之,POSIX就是Unix的一种标准,主要就是IEEE当时为了提高unix生态的兼容性和应用程序的可移植性。这样,任何一个 基于POSIX 兼容的操作系统编写的程序,都可以在任何其它的 POSIX 操作系统上编译执行。之后,这些遵循Posix标准的程序就可跨平台进行POSIX系统调用,即调用一组通用的API。
在这里插入图片描述

相关资源:IEEE Std 1003.1-2001、

Linux之父linus在其书中提到:POSIX标准是一个可以适用于数以百计的UNIX系统调用(system call)中的任意一个的一套冗长规则, 计算机要执行任务(从读、 写、 开机和关机开始) 就需要这个标准。 Linux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions);其中,系统调用是操作系统本身的接口,是面向底层硬件的。通过系统调用,可以使得用户态运行的进程与硬件设备(如CPU、磁盘、打印机等)进行交互,是操作系统留给应用程序的一个接口。对于库函数(Library function),是把函数放到库里,一般是一些常用到的函数写入lib文件里,供其他人使用的一种方式,库函数调用是面向应用开发的;由于版权原因,库函数的源代码一般是不可见的,但在头文件中你可以看到它对外的接口。最常见的比如开源的标准 C 库glibc ,它提供了丰富的 API(Application Programming Interface),这些API都是遵循POSIX标准的,API的函数名,返回值,参数类型等都必须按照POSIX标准来定义。即广义的POSIX兼容也就指定这些接口函数兼容,其并不管API具体如何实现。目前的POSIX主要分为四个部分:Base Definitions、System Interfaces、Shell and Utilities和Rationale。

2.2、MPI-IO标准/协议

2.3、RDMA(远程直接内存访问)

RDMA(Remote Direct Memory Access)是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能。它消除了外部存储器复制和上下文切换的开销,因而能解放内存、带宽和CPU用于改进更多应用系统的性能。

另外这里我们不得不提到DMA,即直接内存访问,它是一种完全由硬件执行I/O交换的工作方式.在这种方式中, DMA 控制器(DMAC)从CPU 完全接管对总线的控制,数据交换不经过CPU ,而直接在内存和IO设备之间进行,减少大批量数据传输时CPU 的开销,也是实现zero-copy的前提。

在传统通信模式中,使用TCP/IP协议的应用程序几乎都会采用应用编程接口:UNIX BSD的套接字(socket),来实现网络进程之间的通信。无论编写客户端程序还是服务端程序,系统都需要为每个TCP连接都要创建一个socket句柄,导致每次传输通信,都要经过OS和协议栈的管理,无论是Socket同步通信还是异步通信,都会存在CPU占用过高的现象。这种传统的TCP/IP通信,发送和接收数据的过程中,都是在源端应用层数据从上向下逐层拷贝封装,目的端从下向上拷贝和解封装,需要CPU多次参与,比较慢。对此,才有了DMA和RDMA更好的数据处理实现。

在这里插入图片描述

RDMA让计算机可以直接存取其他计算机的内存,而不需要经过处理器的处理。RDMA可将数据从一个系统快速移动到远程系统的内存中,过程中,本地用户空间虚拟内存与RNIC网卡直接进行数据传输不涉及到系统内核,没有额外的数据移动和复制,不会对操作系统造成任何影响。RDMA通信过程中,发送和接收,读/写操作中,都是RNIC直接和参与数据传输的已经注册过的内存区域直接进行数据传输,速度快,不需要CPU参与,RDMA网卡接替了CPU的工作。

RDMA 的工作过程如下:

1)当一个应用执行RDMA 读或写请求时,不执行任何数据复制.在不需要任何内核内存参与的条件下, RDMA 请求从运行在用户空间中的应用中发送到本地NIC( 网卡)。
2) NIC 读取缓冲的内容,并通过网络传送到远程NIC。
3) 在网络上传输的RDMA 信息包含目标虚拟地址、内存钥匙和数据本身.请求完成既可以完全在用户空间中处理(通过轮询用户级完成排列) ,或者在应用一直睡眠到请求完成时的情况下通过内核内存处理.RDMA 操作使应用可以从一个远程应用的内存中读数据或向这个内存写数据。
4) 目标NIC 确认内存钥匙,直接将数据写入应用缓存中.用于操作的远程虚拟内存地址包含在RDMA 信息中。

使用RDMA的优势如下:

  • 零拷贝(Zero-copy): 应用程序直接执行数据传输,数据能够被直接发送到缓冲区或者能够直接从缓冲区里接收,而不需要被复制到网络层。
  • 内核旁路(Kernel bypass) - 应用程序可以直接在用户态执行数据传输,不需要在内核态与用户态之间做上下文切换。
  • 不需要CPU干预(No CPU involvement) - 应用程序可以访问远程主机内存而不消耗远程主机中的任何CPU。远程主机内存能够被读取而不需要远程主机上的进程(或CPU)参与。远程主机的CPU的缓存(cache)不会被访问的内存内容所填充。
  • 消息基于事务(Message based transactions) - 数据被处理为离散消息而不是流,消除了应用程序将流切割为不同消息/事务的需求。
  • 支持分散/聚合条目(Scatter/gather entries support) - RDMA原生态支持分散/聚合。也就是说,读取多个内存缓冲区然后作为一个流发出去或者接收一个流然后写入到多个内存缓冲区里去。

相关文章:

Linux 常见的冷知识集锦

一、前言 本文旨在记录那些常见的Linux概念和名词,但这些又没经常直接使用到,更多在底层运行,见过却又不是特别清楚的碎片知识,以温故知新。 二、知识点和概念说明 2.1、POSIX标准/协议 POSIX(Portable Operating S…...

【喜报】科大睿智祝贺青岛海信网络科技通过CMMI5级评估

​ 青岛海信网络科技股份有限公司成立于1998年,是海信集团B2B产业的核心力量。其主要从事城市交通、公共交通、智慧公路、交通枢纽、智慧停车、智能网联、大数据管理、城市治理、应急管理、轨道交通智能化和医院、校园、园区等智能化建设领域的产品和解决方案开发、…...

2024全国大学生电子设计大赛全国初赛 E题 三子棋游戏装置 一等奖满分最简方案

感想:电赛初赛控制类题还是蛮简单的,别被五花八门的硬件搞懵了(决赛当我没说)。抓住核心,理念都是通用的。我是计科专业的,因此选择的控制类E题,相对来说背的知识要少很多,更考验智商…...

尚品汇-ES(三十一)

目录: (1)封装搜索相关实体对象 (2)搜索接口封装 (3)在service-list-client模块添加远程接口 (1)封装搜索相关实体对象 搜索参数实体:SearchParam 搜索参…...

NC 跳台阶

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 描述 一只青蛙一次…...

linux 文件编程

1. 标准IO 也称为标准输入输出(Standard Input/Output),是计算机编程中一种常见的IO操作方式,特别是在C语言及其衍生语言中广泛使用。它主要通过标准C库中的函数来实现,提供了丰富的接口用于数据的输入和输出。 文本文…...

【后端速成 Vue】实现动态表白墙

前言: 通过前面几篇的文章的讲解,已经学习到了很多的 Vue 指令了,那么现在就将学习到的指令利用起来,做一个小的 demo。 最终效果图: 通过效果图可以发现,一共有这几个功能: ● 渲染列表&…...

【日常开发】 java返回ECharts数据结构封装

java返回ECharts数据结构封装 一、前端页面示例图如下: 二、准备测试数据: 三、后端 格式封装代码: 四、最终结果: 🎈边走、边悟🎈迟早会好 一、前端页面示例图如下: 二、准备测试数据&am…...

Table表格控件实现单选功能

Table表格控件实现单选功能 <el-tableref"tableRef"height"385"style"--el-table-border-color: none"row-key"contractId"highlight-current-rowsingle-selectselect"handleSelect":data"contractInfo">&l…...

AI技术加速落地 港科广联手思谋打开智能缺陷检测新纪元

AI 技术应用落地的元年&#xff0c;工业是主战场&#xff0c;尤其是工业缺陷检测。 在“生产制造-缺陷检测-工艺优化-生产制造”的智能制造闭环链条中&#xff0c;基于AI的智能缺陷检测扮演着“把关者”的角色。但这个把关者长期以来却缺少一个称手的工具——样本量大、精度高…...

Python爬虫开发:BeautifulSoup、Scrapy入门

在现代网络开发中&#xff0c;网络爬虫是一个非常重要的工具。它可以自动化地从网页中提取数据&#xff0c;并且可以用于各种用途&#xff0c;如数据收集、信息聚合和内容监控等。在Python中&#xff0c;有多个库可以用于爬虫开发&#xff0c;其中BeautifulSoup和Scrapy是两个非…...

数据科学、数据分析、人工智能必备知识汇总-----常用数据分析方法-----持续更新

数据科学、数据分析、人工智能必备知识汇总-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/140174015 文章目录 一、对比分析法1. 按时间和地区2. 同比和环比 二、分组分析法三、结构分析法四、交叉分析法五、矩阵分…...

学习vue Router 一 起步,编程式导航,历史记录,路由传参

目录 起步&#xff0c;安装 1. 安装 2. 使用 命名路由 编程式导航 1. 字符串模式 2. 对象模式 3. 命名路由模式 历史记录 replace的使用 横跨历史 路由传参 1. query路由传参 2. 动态路由传参 3. 二者的区别 起步&#xff0c;安装 router 路由 因为vue是单页应用…...

Qt/C++最新地图组件发布/历时半年重构/同时支持各种地图内核/包括百度高德腾讯天地图

一、前言说明 最近花了半年时间&#xff0c;专门重构了整个地图组件&#xff0c;之前写的比较粗糙&#xff0c;有点为了完成功能而做的&#xff0c;没有考虑太多拓展性和易用性。这套地图自检这几年大量的实际项目和用户使用下来&#xff0c;反馈了不少很好的建议和意见&#…...

Laravel + Thinkphp 生成二维码

安装依赖 composer require endroid/qr-code 编写ThinkPhP代码 public function index() {// 创建二维码内容$qrCode new QrCode(Hello World);// 设置二维码的配置$qrCode->setSize(300);$qrCode->setMargin(10);// 获取二维码图像$writer new PngWriter();$result…...

2408C++,C++20的无侵入式反射

原文 C17基于结构绑定的编译期反射 事实上不需要宏的编译期反射在C17中已用得很多了,比如struct_pack的编译期反射就不需要宏,因为C17结构绑定可直接得到一个聚集类的成员的引用. struct person {int id;std::string name;int age; }; int main() {person p{1, "tom&qu…...

抽象工厂模式(Abstract factory pattern)- python实现

抽象工厂模式的通俗示例 想象一下&#xff0c;你正在经营一家家具店&#xff0c;你需要从不同的供应商那里采购不同的家具系列。有的供应商提供的是现代风格家具&#xff0c;包括现代沙发、现代椅子和现代桌子&#xff1b;而有的供应商提供的是古典风格家具&#xff0c;包括古…...

adb Connection reset by peer的解决方法

本文同步发于&#xff1a;https://www.cnblogs.com/yeshen-org/p/18350232 最近在编译一个老项目&#xff0c;项目中依赖了很多第三方库&#xff0c;用gradle编译要20-30分钟&#xff0c;而且内存开销很大。 公司配的15G内存的电脑&#xff0c;一次编译能用到14G。 编译的时候&…...

111111111

1111111111111111111...

搜维尔科技:Varjo XR-4使用UE5 打造最具沉浸感的混合现实环境

Varjo XR-4使用UE5打造最具沉浸感的混合现实环境 搜维尔科技&#xff1a;Varjo XR-4使用UE5 打造最具沉浸感的混合现实环境...

Stable Yogi Leather-Dress-Collection 不同采样器(Sampler)生成效果对比测评

Stable Yogi Leather-Dress-Collection 不同采样器&#xff08;Sampler&#xff09;生成效果对比测评 最近在玩 Stable Yogi 这个专门生成皮革服装的模型&#xff0c;发现一个挺有意思的现象&#xff1a;同样的描述词&#xff0c;换一个采样器&#xff0c;出来的图可能天差地别…...

OpenClaw夜间模式:Qwen3.5-9B定时爬取竞品数据并生成报告

OpenClaw夜间模式&#xff1a;Qwen3.5-9B定时爬取竞品数据并生成报告 1. 为什么需要夜间自动化竞品监控 作为独立开发者&#xff0c;我长期被一个问题困扰&#xff1a;每天早晨打开电脑&#xff0c;总需要花1-2小时手动收集各平台的竞品动态。直到发现OpenClaw可以配合Qwen3.…...

图文对话AI快速部署:Qwen3-VL-WEBUI Docker实战教程

图文对话AI快速部署&#xff1a;Qwen3-VL-WEBUI Docker实战教程 1. 认识Qwen3-VL-WEBUI 1.1 什么是Qwen3-VL-WEBUI&#xff1f; Qwen3-VL-WEBUI是一个基于Docker的图文对话AI解决方案&#xff0c;它将强大的Qwen3-VL视觉语言模型封装成易于使用的网页界面。通过这个工具&…...

2026年上海,这些行业内正规的GEO企业,你知道有哪些吗?

在上海这座充满活力与创新的城市&#xff0c;GEO&#xff08;地理信息&#xff09;行业发展得如火如荼。随着科技的不断进步&#xff0c;地理信息技术在各个领域的应用越来越广泛&#xff0c;众多正规的GEO企业也如雨后春笋般涌现。今天&#xff0c;就让我们一起来了解一下上海…...

GLM-OCR GPU算力优化实践:vLLM推理加速+令牌下采样,吞吐提升2.3倍

GLM-OCR GPU算力优化实践&#xff1a;vLLM推理加速令牌下采样&#xff0c;吞吐提升2.3倍 1. 项目背景与优化需求 GLM-OCR是一个基于GLM-V编码器-解码器架构构建的多模态OCR模型&#xff0c;专门为复杂文档理解而设计。这个模型集成了在大规模图文数据上预训练的CogViT视觉编码…...

光伏混合储能直流微电网simulink模型 1.直流微电网由锂电池,超级电容,光伏和直流负载组成 2

光伏混合储能直流微电网simulink模型 1.直流微电网由锂电池&#xff0c;超级电容&#xff0c;光伏和直流负载组成 2.光伏采用电导增量法实现最大功率输出 3.锂电池和超级电容采用直流母线电压控制策略&#xff0c;根据直流母线电压高低实现充放电 实现以下目标&#xff1a; 1.光…...

Mac 用户专属:解决 Stable Diffusion WebUI 在 macOS 上部署时遇到的 Git 和路径权限疑难杂症

Mac 用户专属&#xff1a;解决 Stable Diffusion WebUI 在 macOS 上部署时的疑难杂症 在 macOS 上部署 Stable Diffusion WebUI 时&#xff0c;许多用户会遇到一系列独特的问题&#xff0c;这些问题往往与 macOS 的文件系统、权限管理以及网络配置有关。本文将深入探讨这些问题…...

深度学习模型的解释性与可解释AI:从原理到实践

深度学习模型的解释性与可解释AI&#xff1a;从原理到实践 1. 背景介绍 深度学习模型在各种任务中取得了优异的性能&#xff0c;但它们通常被视为"黑盒"&#xff0c;缺乏可解释性。随着AI应用在关键领域的普及&#xff0c;模型的可解释性变得越来越重要。本文将深入…...

MS5540C传感器驱动开发:类SPI协议与校准算法详解

1. MS5540C传感器库深度解析&#xff1a;面向嵌入式工程师的底层驱动开发指南 MS5540C系列是TE Connectivity&#xff08;原Measurement Specialties&#xff09;推出的高精度、低功耗数字压力/温度复合传感器&#xff0c;广泛应用于潜水设备、气象站、工业过程监控及水下机器人…...

IT自动化运维平台建设解决方案:三阶段演进思路、平台架构与核心能力、关键功能模块、典型自动化场景与执行流程

该方案提出从人工运维向自动化、智能化演进&#xff0c;核心是通过统一平台整合Zabbix监控、脚本管理与工单系统&#xff0c;实现告警自动治愈与周期性任务自动化执行。方案采用分批推进策略&#xff0c;旨在提升效率、保障业务连续性并降低人为风险&#xff0c;最终落地智能化…...