哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳細(xì)介紹eBPF的起源和工作原理及作用

Linux閱碼場 ? 來源:Linuxer ? 作者:Linuxer ? 2021-04-26 16:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文主要是對eBPF進(jìn)行介紹,帶大家了解eBPF是什么、通過eBPF可以做些什么事情。

1.BPF起源

BPF源頭起源于一篇1992年的論文,這篇論文主要提出一種新的網(wǎng)絡(luò)數(shù)據(jù)包的過濾的框架,如下圖所示。

0e3f3b48-a4b1-11eb-aece-12bb97331649.png

提出bpf的原因其實也很簡單,早期我們從網(wǎng)卡中接收到很多的數(shù)據(jù)包,我們要想從中過濾出我們想要的數(shù)據(jù)包,我們需要將網(wǎng)卡接收的數(shù)據(jù)包都要從內(nèi)核空間拷貝一份到用戶空間。然后,用戶程序在對這些進(jìn)行過濾。那么,我們可以從中就能夠發(fā)現(xiàn)一個問題。數(shù)據(jù)包必須全部拷貝。然后再過濾出所需的數(shù)據(jù)包,那么對于那些不需要的數(shù)據(jù)包,我們拷貝的操作是無效的、浪費的。并且對于內(nèi)存數(shù)據(jù)的拷貝是很費cpu系統(tǒng)的資源的。所以,這篇論文,就提出了一種新的框架,在內(nèi)核中直接過濾,這也可以避免一些無用的、浪費的拷貝。

其背后的思想其實就是:與其把數(shù)據(jù)包復(fù)制到用戶空間執(zhí)行用戶態(tài)程序過濾,不如把過濾程序灌進(jìn)內(nèi)核去。

這種新的框架,其實還是很容易理解的。大概的理解就是,當(dāng)我們從網(wǎng)卡接收到一個數(shù)據(jù)包的時候,我們數(shù)據(jù)鏈路層,將數(shù)據(jù)包額外的拷貝一份。然后這個新的數(shù)據(jù)包就交給BPF程序進(jìn)行處理,這個BPF根據(jù)用戶編寫的過濾規(guī)則對這個新的數(shù)據(jù)包進(jìn)行匹配。如果符合此規(guī)則就將數(shù)據(jù)包放到接收隊列中,那么用戶事后就可以從接收隊列中將這個數(shù)據(jù)包從內(nèi)核空間拷貝到用戶空間,這樣就減少了無用的數(shù)據(jù)包的拷貝。

像tcpdump/wireshark等用戶工具就是基于BPF框架實現(xiàn)的。其大概實現(xiàn)的過程就是,編寫B(tài)PF指令集的過濾規(guī)則,然后創(chuàng)建raw/packet類型的套接字socket,將網(wǎng)卡設(shè)置為混雜模式。在通過setsockopt函數(shù)將BPF代碼拷貝到內(nèi)核,并attach到相關(guān)聯(lián)的socket套接字上。當(dāng)網(wǎng)卡接收到數(shù)據(jù)包的時候,因為設(shè)置的混雜模式,那么就會額外的拷貝一份新的數(shù)據(jù)包,然后在根據(jù)BPF的代碼進(jìn)行過濾,將符合規(guī)則的數(shù)據(jù)包接收到socket套接字的接收隊列里面。最后用戶程序就可以從這個接收隊列獲取到過濾后的數(shù)據(jù)包了。這類工具的實現(xiàn)流程就是大概這個樣子。

2.偽機(jī)器碼、BPF指令集、JIT

使用過tcpdump工具的應(yīng)該都見過在tcpdump命令后面會加一些表達(dá)式,用來表示過濾規(guī)則。

如:sudo tcpdump -d -i lo tcp and dst port 7070

注意不要以為這個表達(dá)式就是BPF程序了,其實這不是的。這個表達(dá)式是要經(jīng)過編譯過后才會變成BPF程序的。在我們早期是生產(chǎn)這類編譯器,那么是如何將這個表達(dá)式編譯出BPF指令集的呢?

tcpdump的實現(xiàn)是基于libcap庫的,tcpdump使用的過濾表達(dá)式是使用libcap庫進(jìn)行解析的,生成我們BPF指令集。那為什么沒有單獨做成一個這類的編譯器?究其原因就是但是的BPF框架使用的功能較少,只用在了網(wǎng)絡(luò)的數(shù)據(jù)包過濾方面。除此之外,當(dāng)時的BPF指令集個數(shù)很少,所以沒有必要花費大量的資源單獨做一個編譯器。但是隨著BPF的發(fā)展,指令集的復(fù)雜、支持的BPF程序類型越來越多,就急需要一個編譯器了。那這個就是我們后面將要提到的eBPF和clang/llvm編譯器了。

偽機(jī)器碼:假的機(jī)器碼,機(jī)器碼都是能夠在物理機(jī)上直接執(zhí)行的,偽機(jī)器碼不能夠直接執(zhí)行,需要在虛擬機(jī)上執(zhí)行。

BPF指令集:BPF指令集就是一個偽機(jī)器碼,是不能夠在物理機(jī)上直接執(zhí)行的,需要一個虛擬機(jī)才能夠執(zhí)行。我們都知道不同的處理器體系結(jié)構(gòu)有自己的不同指令集,這邊的BPF指令集可以理解為在BPF虛擬機(jī)上執(zhí)行的指令集。

JIT:just in time 的縮寫,我們將編譯好的BPF指令集需要在虛擬機(jī)上執(zhí)行,虛擬機(jī)需要一條一條的解析為本機(jī)機(jī)器碼才能夠執(zhí)行,所以這個執(zhí)行效率會很低,但是如果我們的處理器有了JIT就能夠?qū)⑽覀傿PF直接直接編譯為能夠在機(jī)器直接執(zhí)行的機(jī)器碼,這樣大大提高了執(zhí)行的速度。

3.eBPF介紹

eBPF是extend BPF的簡稱,擴(kuò)展的BPF。我們剛了解BPF了,都知道BPF的功能比較單一只能夠作用于網(wǎng)路的數(shù)據(jù)包的過濾上,但是擴(kuò)展后的BPF的功能得到了很大的豐富,可以這樣說基本上可以使用在Linux各個子系統(tǒng)中。除了功能上的擴(kuò)展,BPF程序的指令集也變得相當(dāng)復(fù)雜了,所以就出現(xiàn)了專門用于編譯BPF程序的clang/llvm編譯。在框架上BPF的框架也發(fā)生了變化,所以擴(kuò)展后的BPF不再是早期的BPF的可以比擬的。因而,早期的BPF被稱為cBPF,擴(kuò)展后的BPF被稱為eBPF。

現(xiàn)在看下擴(kuò)展后的BPF的框架,如下圖所示:

1192a3c0-a4b1-11eb-aece-12bb97331649.png

注意:我們后面說的BPF指的是cBPF和eBPF的統(tǒng)稱,除非特別說明。

雖然,框架發(fā)生變化,但是其基本的思想還沒有發(fā)生變化的。都是將BPF程序進(jìn)行編譯后生成字節(jié)碼,然后將BPF字節(jié)碼注入到內(nèi)核中,當(dāng)發(fā)生事件觸發(fā)的時候,我們就會執(zhí)行相應(yīng)的BPF程序。

現(xiàn)在,我們對cBPF和eBPF進(jìn)行對比:

一、cBPF支持的功能比較單一,只能夠作用于網(wǎng)絡(luò)的數(shù)據(jù)包的過濾上。而eBPF除了能夠支持網(wǎng)絡(luò)的數(shù)據(jù)包的過濾上,也支持其他的事件類型,如上圖中的XDP、Perf Event、kprobe、tracepoint等等。cBPF的功能在eBPF其實對應(yīng)的就是Socket的部分。

二、引入Map機(jī)制。在cBPF我們通過接收隊列將過濾后數(shù)據(jù)獲取出來,但是在eBPF我們可以將數(shù)據(jù)放到Map空間中。Map空間是用戶空間和內(nèi)核空間共享的,所以一般是在內(nèi)核中將數(shù)據(jù)存入到Map空間中,然后在用戶空間取出數(shù)據(jù)。

三、指令集變得更復(fù)雜了,與此同時,有了專門的用于編譯BPF字節(jié)碼的編譯器clang/llvm。

四、還有在安全機(jī)制方面等等一些改變。

4.eBPF類型和Map機(jī)制

首先,看下eBPF支持的類型,其中BPF_PROG_TYPE_SOCKET_FILTER對應(yīng)的就是早期cBPF的功能。只不過在eBPF中使用的框架不再是以前的cBPF的框架了,但是其實現(xiàn)的功能是一樣的。

bpf_prog_typeBPF prog 入口參數(shù)(R1)程序類型

BPF_PROG_TYPE_

SOCKET_FILTERstruct __sk_buff用于過濾進(jìn)出口網(wǎng)絡(luò)報文,功能上和 cBPF 類似。

BPF_PROG_TYPE_

KPROBEstruct pt_regs用于 kprobe 功能的 BPF 代碼。

BPF_PROG_TYPE_

TRACEPOINT這類 BPF 的參數(shù)比較特殊,根據(jù) tracepoint 位置的不同而不同。用于在各個 tracepoint 節(jié)點運行。

BPF_PROG_TYPE_

XDPstruct xdp_md用于控制 XDP(eXtreme Data Path)的 BPF 代碼。

BPF_PROG_TYPE_

PERF_EVENTstruct bpf_perf_event_

data用于定義 perf event 發(fā)生時回調(diào)的 BPF 代碼。

BPF_PROG_TYPE_

CGROUP_SKBstruct __sk_buff用于在 network cgroup 中運行的 BPF 代碼。功能上

和 Socket_Filter 近似。具體用法可以參考范例

test_cgrp2_attach。

BPF_PROG_TYPE_

CGROUP_SOCKstruct bpf_sock另一個用于在 network

cgroup 中運行的 BPF 代碼,范例 test_cgrp2_sock2 中就展示了一個利用 BPF 來控制 host 和 netns 間通信的例子。

Map機(jī)制的優(yōu)勢:

Map機(jī)制引入的原因,其中一個最大的原因就是通信。對于Map空間是用戶和內(nèi)核共享的,我們可以在內(nèi)核中將處理后的數(shù)據(jù)直接存入Map空間。然后,可以從用戶空間中進(jìn)行獲取。這樣就是大大方便了通信。除此之外,我們在內(nèi)核中進(jìn)行數(shù)據(jù)處理后,相應(yīng)的數(shù)據(jù)的占用的空間就會變小的很多,然后,在將數(shù)據(jù)存入到Map空間中。想比較于cBPF需要將數(shù)據(jù)獲取到后,在進(jìn)行處理,這樣可以大大節(jié)省存儲空間。

Map機(jī)制下的常見的數(shù)據(jù)類型:

CategorySourceBpf_map_type用途

ArrayArraymap.cBPF_MAP_TYPE_ARRAY

BPF_MAP_TYPE_CGROUP_ARRAY BPF_MAP_TYPE_PERF_EVENT_ARRAY BPF_MAP_TYPE_PERCPU_

ARRAY BPF_MAP_TYPE_

ARRAY_OF_MAPS實際就是數(shù)組,所以所有的 key 必須是整數(shù)。

BPF_MAP_TYPE_PROG_

ARRAY該類型是一個特例,主要用于自定義函數(shù),利用

JUMP_TAIL_CALL令跳轉(zhuǎn)

HashHashmap.cBPF_MAP_TYPE_HASH

BPF_MAP_TYPE_PERCPU_HASH BPF_MAP_TYPE_

LRU_PERCPU_HASH BPF_MAP_TYPE_HASH_OF_

MAPS真正意義上的 map 數(shù)據(jù)類型,如果 key 值為整數(shù)以外的類型必須使用

Stack

TraceStackmap.cBPF_MAP_TYPE_STACK_TRACE真正意義上的 map 數(shù)據(jù)類型,如果 key 值為整數(shù)以外的類型必須使用存儲特定應(yīng)用在某一特定時間點的棧狀態(tài)(包括內(nèi)核態(tài)和用戶態(tài)),key 只有兩個:分別為內(nèi)核棧 id 和

用戶棧 id,利用 bpf_get_stackid()獲取;

Longest Prefix

Match

TrieLpm_trie.cBPF_MAP_TYPE_LPM_

TRIE基于 Longest Prefix

Match 前綴樹實現(xiàn),適宜處理以 CIBR 為鍵值時的情況

5.BPF程序編寫使用的語言

對于早期的cBPF程序的編寫,一般都是直接使用BPF指令集來編寫程序。像tcpdump這類工具,提供的使用方法可以類似于高級語言的人性化的表達(dá)式的使用,但是其實還是一樣的,只不過是讓libcap進(jìn)行解析了。BPF程序的編寫難度是極高的。

后來,由于BPF的擴(kuò)展,急需要一種高級語言來編寫B(tài)PF程序,就出現(xiàn)了c語言編程。通過c語言進(jìn)行編寫,然后,通過clang/llvm將c語言編譯為BPF字節(jié)碼,然后在注入到內(nèi)核中。但是對于注入的方式,還是需要通過自己手動的方式才能夠注入。

后來,就出現(xiàn)了BPF Compiler Collection(BCC),BCC 是一個 python 庫,但是其中有很大一部分的實現(xiàn)是基于 C 和 C++的,python 只不過實現(xiàn)了對 BCC 應(yīng)用層接口的封裝而已。使用bcc的最大好處是,用戶只需要關(guān)注BPF程序的設(shè)計,對于剩余的工作都不用管,包括編譯、解析 ELF、加載 BPF 代碼塊以及創(chuàng)建 map 等等基本可以由 BCC 一力承擔(dān),無需多勞開發(fā)者費心。

6.BPF工作原理總結(jié)

首先,看下BPF框架圖,如下圖所示:

12045e84-a4b1-11eb-aece-12bb97331649.jpg

一般我們都是通過c語言編寫B(tài)PF程序,然后通過clang/llvm編譯器,將BPF程序編譯為BPF字節(jié)碼。然后通過bpf系統(tǒng)調(diào)用,將BPF字節(jié)碼注入到內(nèi)核中,在注入的時候,我們必須要經(jīng)過BPF程序的驗證,來保證我們寫的BPF程序沒有問題,以防干掉我們的系統(tǒng)。然后,在判斷是否開啟了JIT,然后開啟了,還需要將BPF字節(jié)碼編譯為本機(jī)機(jī)器碼,以加快運行速度。

當(dāng)我們BPF程序attach的事件觸發(fā)了,就會執(zhí)行我們的BPF程序,然如是經(jīng)過JIT編譯過后的就能夠直接執(zhí)行,然后沒有開啟JIT就需要通過虛擬機(jī)進(jìn)行解析在執(zhí)行。在執(zhí)行BPF程序的過程中,會將需要保存的數(shù)據(jù)存儲到map空間中,用戶時候可以從map空間讀取出數(shù)據(jù)。BPF程序的大致流程就是這個樣子。

注意:BPF是基于事件觸發(fā)的。這是什么意思呢?

就是如果我們將BPF程序attach到某個事件上,當(dāng)這個事件觸發(fā)的時候,就會執(zhí)行我們這個BPF程序。其實這就是BPF的工作原理。

如,我們將BPF程序attach到kprobe類型的事件上,這個kprobe事件是個函數(shù),當(dāng)cpu執(zhí)行到這個函數(shù)的時候,就會觸發(fā)。然后就會執(zhí)行我們的BPF程序。

7.eBPF的作用

eBPF能夠用于內(nèi)核追蹤、應(yīng)用性能調(diào)優(yōu)/監(jiān)控、流量控制等方面,是非常有用的。

針對用于監(jiān)控、跟蹤使用的eBPF程序來說,主要是通過在內(nèi)核運行的過程中,來獲取內(nèi)核運行時的一些參數(shù)和統(tǒng)計信息。例如:系統(tǒng)調(diào)用的參數(shù)值、返回值,然后通過Map空間,將得到的信息傳遞給用戶態(tài)的程序,進(jìn)而可以在用戶程序中在進(jìn)行邏輯處理。

eBPF除了能夠獲取內(nèi)核運行的狀態(tài)信息,也能夠改變內(nèi)核的處理流程,可以在內(nèi)核某些路徑上加入直接的處理邏輯,來改變內(nèi)核的運行的流程。例如:XDP,就是在網(wǎng)卡驅(qū)動中,在進(jìn)入內(nèi)核協(xié)議棧之前插入eBPF的擴(kuò)展的網(wǎng)絡(luò)包的過濾和轉(zhuǎn)發(fā)功能。
編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11812

    瀏覽量

    219519
  • Extended
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    7744
  • MAP
    MAP
    +關(guān)注

    關(guān)注

    0

    文章

    50

    瀏覽量

    15879
  • BPF
    BPF
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    4750

原文標(biāo)題:eBPF介紹

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    晶圓劃片機(jī)工作原理及操作流程詳解

    ,是半導(dǎo)體產(chǎn)業(yè)鏈的“芯片分割利器”。本文將詳細(xì)拆解其工作原理、核心技術(shù)及標(biāo)準(zhǔn)操作流程,同時介紹國產(chǎn)標(biāo)桿企業(yè)博捷芯的相關(guān)布局,為行業(yè)從業(yè)者及學(xué)習(xí)者提供全面參考。一、核心
    的頭像 發(fā)表于 03-26 20:40 ?175次閱讀
    晶圓劃片機(jī)<b class='flag-5'>工作原理</b>及操作流程詳解

    功率放大器的工作原理和應(yīng)用介紹

    功率放大器是電子設(shè)備中不可或缺的組成部分,廣泛應(yīng)用于通信、音頻、廣播、電視等領(lǐng)域。它的主要功能是將輸入信號的功率放大,以驅(qū)動負(fù)載(如揚聲器、天線、壓電陶瓷等)。下面將介紹功率放大器的工作原理及其
    的頭像 發(fā)表于 01-09 11:30 ?538次閱讀
    功率放大器的<b class='flag-5'>工作原理</b>和應(yīng)用<b class='flag-5'>介紹</b>

    水平與垂直式石英清洗機(jī)工作原理

    在半導(dǎo)體制造、光伏產(chǎn)業(yè)以及光學(xué)元件生產(chǎn)等對精度和潔凈度要求極高的領(lǐng)域,水平式與垂直式石英清洗機(jī)發(fā)揮著關(guān)鍵作用。以下是兩者工作原理的相關(guān)介紹:水平式石英清洗機(jī)的工作原理多槽分段清洗流程采
    的頭像 發(fā)表于 12-25 13:38 ?448次閱讀
    水平與垂直式石英清洗機(jī)<b class='flag-5'>工作原理</b>

    能否詳細(xì)介紹一下MOSFET在電機(jī)控制中的作用是什么?

    能否詳細(xì)介紹一下MOSFET在電機(jī)控制中的作用?
    發(fā)表于 12-22 13:11

    騰柱無橋PFC電路的工作原理和拓?fù)浣Y(jié)構(gòu)

    以單極性SPWM調(diào)制方式為例,說明圖騰柱PFC的工作原理。此處僅以正向AC-DC說明。后續(xù)會專門介紹DC-AC的功能介紹。
    的頭像 發(fā)表于 11-26 14:30 ?4260次閱讀
    騰柱無橋PFC電路的<b class='flag-5'>工作原理</b>和拓?fù)浣Y(jié)構(gòu)

    LLC工作原理詳細(xì)介紹

    1、LLC 電路拓?fù)?LLC 電路是由 2 個電感和 1 個電容構(gòu)成的諧振電路,故稱之為 LLC。其拓?fù)浣Y(jié)構(gòu)根據(jù) MOS 管的配列可以分為半橋或全橋類型。2 個電感分別為變壓器一次側(cè)漏感 (Lr) 和勵磁電感(Lm),電容為變壓器一次側(cè)諧振電容(Cr)。LLC 電路通過諧振能夠?qū)崿F(xiàn) MOS 管的軟開 (soft switching),減少開關(guān)損耗。另外 MOS 管的通態(tài)損耗也很低,換言之產(chǎn)生的焦耳熱也少,這樣就可以不額外使用散熱片進(jìn)行散熱。因為這些優(yōu)點,LLC 電路被廣泛使用在 DC/DC Converter 中。 為了方
    的頭像 發(fā)表于 10-12 11:21 ?7939次閱讀
    LLC<b class='flag-5'>工作原理</b><b class='flag-5'>詳細(xì)</b><b class='flag-5'>介紹</b>

    一文搞懂三極管的工作原理

    我們多多少少都知道三極管的作用是放大信號,但我猜你們有些人應(yīng)該沒怎么明白其工作原理吧?反正我之前只知道三極管是用來放大信號的,怎么實現(xiàn)的就不清楚了,而且網(wǎng)上大多數(shù)都講的不怎么好,本篇文章,我們就來詳細(xì)聊聊,保證一看就懂。
    的頭像 發(fā)表于 09-22 09:25 ?3020次閱讀
    一文搞懂三極管的<b class='flag-5'>工作原理</b>

    BNC 是什么接口?結(jié)構(gòu)特點、工作原理與核心作用

    說到底,BNC 接口不是 “過時的老接口”,而是為高頻、高清信號 “量身定制” 的專業(yè)接口 —— 它的結(jié)構(gòu)特點(中心針 + 絕緣層 + 屏蔽外殼)為信號穩(wěn)定傳輸打基礎(chǔ),工作原理(阻抗匹配 + 屏蔽抗干擾)解決高頻信號的核心痛點,在監(jiān)控、測試、廣電這些場景里,它的作用無可替
    的頭像 發(fā)表于 09-09 16:47 ?4317次閱讀
    BNC 是什么接口?結(jié)構(gòu)特點、<b class='flag-5'>工作原理</b>與核心<b class='flag-5'>作用</b>

    基于eBPF的Kubernetes網(wǎng)絡(luò)異常檢測系統(tǒng)

    作為一名在云原生領(lǐng)域深耕多年的運維工程師,我見過太多因為網(wǎng)絡(luò)問題導(dǎo)致的生產(chǎn)事故。傳統(tǒng)的監(jiān)控手段往往是事后諸葛亮,當(dāng)你發(fā)現(xiàn)問題時,用戶已經(jīng)在抱怨了。今天,我將分享如何利用 eBPF 這一革命性技術(shù),構(gòu)建一套能夠?qū)崟r檢測 Kubernetes 網(wǎng)絡(luò)異常的系統(tǒng)。
    的頭像 發(fā)表于 07-24 14:09 ?916次閱讀

    正弦波逆變器的工作原理與控制方式

    介紹了采用Boost PWM DC/DC變換器的正弦波逆變器的工作原理與控制方式,這是一種新型的正弦波逆變器。 純分享帖,點擊下方附件免費獲取完整資料~~~ 內(nèi)容有幫助可以關(guān)注、點贊、評論支持一下
    發(fā)表于 07-23 13:22

    一文讀懂三相變壓器的構(gòu)造和工作原理

    與維護(hù)管理,也能讓相關(guān)從業(yè)者和學(xué)者對其內(nèi)在運行機(jī)制有更清晰的認(rèn)識。那么,三相變壓器究竟是如何構(gòu)造的,又遵循怎樣的工作原理呢?以下是三相變壓器的構(gòu)造及工作原理詳細(xì)介紹
    的頭像 發(fā)表于 07-10 15:19 ?2596次閱讀
    一文讀懂三相變壓器的構(gòu)造和<b class='flag-5'>工作原理</b>

    煙氣檢測儀是如何工作的?工作原理大揭秘

    。紅外吸收技術(shù)具有選擇性好、精度高、穩(wěn)定性強(qiáng)等優(yōu)點,尤其適用于檢測 CO?、甲烷(CH?)等氣體。 以上所介紹的就是煙氣檢測儀的工作原理,有需要的話可以簡單了解一下。
    發(fā)表于 06-16 16:10

    GPIO配置的工作原理是什么?

    我使用 EZ-USB 配置實用程序,我想知道是否有人知道 GPIO 配置的工作原理。 例如,GPIO0 可以用作傳感器復(fù)位,我知道這個 GPIO0 用于重置傳感器,但我不明白的是選項用戶 GPIO 例如GPIO 1可以是User GPIO0,這是什么意思呢?
    發(fā)表于 05-19 06:56

    詳細(xì)介紹機(jī)場智能指路機(jī)器人的工作原理

    機(jī)場智能指路機(jī)器人主要依靠感知系統(tǒng)、定位系統(tǒng)、導(dǎo)航系統(tǒng)、智能交互系統(tǒng)和運動系統(tǒng)協(xié)同工作,來實現(xiàn)為旅客準(zhǔn)確指路和提供服務(wù)的功能,以下是其詳細(xì)工作原理: 感知系統(tǒng) 傳感器類型 :機(jī)器人配備了多種傳感器
    發(fā)表于 05-10 18:26

    水深傳感器分類及工作原理

    和超聲波水位計等幾種類型,以下是它們的具體介紹:一、壓力水位計工作原理:壓力水位計基于流體靜力學(xué)原理進(jìn)行工作。當(dāng)傳感器的感應(yīng)部分浸入水中時,會受到水對其產(chǎn)生的壓力。該壓
    的頭像 發(fā)表于 04-28 17:32 ?1779次閱讀
    水深傳感器分類及<b class='flag-5'>工作原理</b>
    济阳县| 文山县| 九台市| 通海县| 磐安县| 汝南县| 龙门县| 昆山市| 纳雍县| 泸西县| 桂平市| 永川市| 翁源县| 贵南县| 岚皋县| 香格里拉县| 嘉峪关市| 田东县| 应城市| 耒阳市| 翼城县| 启东市| 思南县| 田阳县| 秦皇岛市| 武义县| 渭源县| 大新县| 海盐县| 宣化县| 泉州市| 丰原市| 宜章县| 临泽县| 泗水县| 康保县| 姜堰市| 昂仁县| 定兴县| 永吉县| 将乐县|