Linux入門攻堅——23、DNS和BIND基礎入門1

DNS——Domain Name Service,協議(C/S,53/udp,53/tcp)
BIND——Berkeley Internet Name Domain,ISC(www.isc.org)

互聯網絡上主機之間的通信依靠的是IP,而人或程序一般使用機器名稱,名稱轉換為地址的過程,解析,計算機名稱(域名稱)轉換為IP地址,域名解析。

本地名稱解析配置文件:hosts
? ? Linux系統:/etc/hosts
? ? Windows系統:%WINDOWS%/system32/drivers/etc/hosts
? ? 如:1.1.1.1 www.mysitename.com
? ? ? ? ? ? 2.2.2.2? www.isc.org

當本地主機訪問www.mysitename.com時,查詢這個名稱解析配置文件,找到對應的IP,訪問之。當網絡上的主機很少時,每臺機器維護一個本地的配置文件還比較容易,但隨著網絡擴展,主機越來越多,這種方式就無法適應。

在網上一臺服務器上維護一個hosts,所有主機要訪問某個名稱時,就到這臺機器上查找hosts文件,但是當超過一定規模時,對這個hosts文件的維護和訪問查找也變得困難和緩慢。

于是開始劃片而治,形成DNS樹狀結構,namespace,名稱空間。
Top Level Domain:tld,頂級域
? ? com,edu,mil,gov,net,org,int,。。。

頂級域分三類:組織域、國家域(.cn、.jp、...)、反向域。

域是一個范圍,域中有很多主機,主機的多少是域大小的根本因素。

一般域名是指的一個范圍,而常說的訪問某個域名,如www.abc.com,說的是主機的域名,即主機名加上域名,域名最右邊是點號,代表根,必須要有的,平時使用沒有是因為軟件幫我們自動添加。

理論上,客戶機訪問一個主機域名主機的過程:

上面圖示是一個理論上的過程,但是如果這樣,客戶機會很麻煩,實際中,客戶機不會頻繁的去訪問各個域管理機,而是會直接問詢設置中的域服務器,我們的主機IP地址設置中都會設置主DNS服務器地址,備DNS服務器地址等,客戶機是訪問這個DNS服務器的,由他來完成上面的過程。

DNS查詢類型:
? ? 遞歸查詢:發出一次查詢,就能得到最終結果的查詢,如客戶機向其DNS服務器發出的查詢。
? ? 迭代查詢:客戶機的DNS服務器查找到最終IP的過程,是迭代查詢,可能需要多次查詢。

這里,客戶機的DNS服務器只是一個代理,并不是真正的DNS服務器,只是負責幫助迭代查找域名對應IP的,而一個域的域服務器,才是這個域的負責者,負責維護記錄本域的所有信息。

名稱服務器:域內負責解析本域內的名稱的主機;域只是一個概念,落到實處,就是域的名稱服務器。
? ? 根服務器:13組服務器,這13組服務器中記錄了頂級域的名稱服務器與域名的對應信息。

解析類型:
? ? Name --> IP
? ? IP --> Name
? ? 注意:正反向解析是兩個不同的名稱空間,是兩顆不同的解析樹;
DNS服務器的類型:
? ? 主DNS服務器
? ? 輔助(從或備)DNS服務器
? ? 緩存DNS服務器
? ? 轉發器

主DNS服務器:維護所負責解析的域內解析庫服務器;解析庫由管理員維護;
從DNS服務器:從主DNS服務器或其他的從DNS服務器那里“復制”(區域傳遞)一份解析庫;
? ? 序列號:解析庫的版本號,前提:主服務器解析庫內容發生變化,其序列號遞增;從服務器通過序列號判斷是否需要同步解析庫;
? ? 刷新時間間隔:從服務器從主服務器請求同步解析庫的時間間隔;
? ? 重試時間間隔:從服務器從主服務器請求同步解析庫失敗時,再次嘗試的時間間隔;應小于刷新間隔,否則沒有意義了。
? ? 過期時長:從服務器始終聯系不到主服務器時,多久之后放棄從服務器角色,停止提供服務;?
? ? “通知”機制:主服務器內容修改后,主動通知從服務器。? ?
區域傳遞:
? ? 全量傳遞:傳遞整個解析庫;
? ??增量傳遞:傳遞解析庫變化的那部分內容;
DNS:
? ? Domain:
? ? ? ? 正向:FQDN --> IP
? ? ? ? 反向:IP --> FQDN
? ? ? ? 各需要一個解析庫來分別負責本地域名的正向和反向解析
? ? ? ? 正向區域:
? ? ? ? 反向區域:
FQDN:Full Qualified Domain Name,完全合格域名,或完全限定域名,正式域名
? ? www.mydomain.com.
一次完整的查詢請求經過的流程:
? ? Client --> hosts文件?--> Local Cache DNS --> DNS Server(recursion) --> Server Cache?--> iteration(迭代)?
? ? 解析答案:
? ? ? ? 肯定答案:
? ? ? ? 否定答案:請求的條目不存在等原因導致無法返回結果;

? ? ? ? 權威答案:
? ? ? ? 非權威答案:

區域解析庫:由眾多RR組成
資源記錄:Resource Record,RR
? ? 有記錄類型的概念,記錄類型:A,AAAA,PTR,SOA,NS,CNAME,MX

? ?SOA:Start Of Authority,起始授權記錄:一個區域解析庫有且僅能有一個SOA記錄,而且必須為解析庫的第一條記錄;
? ??A:internet Address,作用,FQDN?--> IP
? ? AAAA:FQDN?--> IPv6
? ? PTR:PoinTeR,IP?--> FQDN
? ? NS:Name Server,專用于標明當前區域的DNS服務器
? ? CNAME:Canonical Name,別名記錄
? ? MX:Mail eXchanger,郵件交換器,一個域接收郵件的主機

資源記錄定義的格式:
? ? 語法:name [TTL]? IN? ?rr_type? ?value??
? ? 注意:1)TTL可從全局繼承;2)@可用于引用當前區域的名字;3)同一個名字可以通過多條記錄定義多個不同的值,此時DNS服務器會以輪詢方式響應;4)同一個值也可能有多個不同的定義名字,通過多個不同的名字指向同一個值進行定義,此僅表示通過多個不同的名字可以找到同一個主機;

? ? SOA
? ? ? ? name:當前區域的名字,如:"mydomain.com.";
? ? ? ? value:由多部分組成
? ? ? ? 1)當前區域的主DNS服務器的FQDN,也可以使用當前區域的名字;
? ? ? ? 2)當前區域管理員的郵箱地址,但地址中不能使用@符號,一般用.替換,如:admin.mydomain.com;
? ? ? ? 3)(主從服務協調屬性的定義以及否定答案的統一的TTL)

? ? 例如:mydomain.com.? 86400 IN SOA? ns.mydomain.com.? admin.mydomain.com.? ? (
? ? ? ? 2024051001;序列號
? ? ? ? 2H? ;刷新時間
? ? ? ? 10M? ;重試時間
? ? ? ? 1W? ;過期時間
? ? ? ? 1D? ;否定答案的TTL值
? ? ? ? ?)

? ? NS
? ? ? ? name:當前區域的名字
? ? ? ? value:當前區域的某DNS服務器的名字,如ns.mydomain.com.;
? ? ? ? ? ? 注意:一個區域可以有多個NS記錄;

? ? ? ? 如:
? ? ? ? mydomain.com.? ?IN? ?NS? ? ns1.mydomain.com.
? ? ? ? mydomain.com.? ?IN? ?NS? ? ns2.mydomain.com.
? ? ? ? 注意:
? ? ? ? ? ? 1)相鄰的兩個資源記錄的name相同時,后續的可省略;
? ? ? ? ? ? 2)對NS記錄而言,任何一個ns記錄后面的服務器名字,都應該在后續有一個A記錄

? ? MX
? ? ? ? name:當前區域的名字
? ? ? ? value:當前區域的某郵件服務器(smtp服務器)的主機名;
? ? ? ? ? ? 一個區域內,MX記錄可有多個,但每個記錄的value之前應該有一個數字(0~99),表示此服務器的優先級,數字越小優先級越高;

? ? ? ? 如:mydomain.com.? ?IN? ? MX? ? 10? ?mx1.mydomain.com.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?IN? ? MX? ? 20? ?mx2.mydomain.com.

? ? ? ? 注意:對MX記錄而言,任何一個MX記錄后面的服務器名字,都應該在后續有一個A記錄

? ? A
? ? ? ? name:某主機的FQDN,如www.mydomain.com.
? ? ? ? value:主機名對應主機的IP地址

? ? ? ? 如:
? ? ? ? ? ? www.mydomain.com.? ?IN? ? A? 1.1.1.1
? ? ? ? ? ??www.mydomain.com.? ?IN? ? A? 1.1.1.2

? ? ? ? ? ? mx1.mydomian.com.? ?IN? ? A? ?1.1.1.3
? ? ? ? ? ??mx2.mydomian.com.? ?IN? ? A? ?1.1.1.3

? ? ? ? 注意:為避免用戶寫錯名稱時給錯誤答案,可通過泛域名解析進行解析至某特定地址;
? ? ? ? ? ? *.mydomain.com.? ? IN? A? 1.1.1.4
? ? ? ? ? ? mydomain.com.? ? ? IN? A? 1.1.1.4

? ? AAAA
? ? ? ? name:FQDN
? ? ? ? value:IPv6

? ? PTR
? ? ? ? name:IP,有特定格式,把IP地址反過來寫,如:1.2.3.4,要寫成:4.3.2.1;而且有特定后綴:in-addr.arpa,所以完整寫法為:4.3.2.1.in-addr.arpa.
? ? ? ? value:FQDN

? ? ? ? 如:
? ? ? ? ? ? 4.3.2.1.in-addr.arpa.? ? ? ?IN? ? PTR? ? www.mydomain.com.
? ? ? ? ? ? 簡寫成:4? ?IN? PTR? ?www.mydomain.com.
? ? ? ? 注意:網絡地址及后綴可省略;主機地址依然需要反著寫;

? ? CNAME
? ? ? ? name:別名的FQDN
? ? ? ? value:正式名字的FQDN

? ? ? ? 如:? web.mydomain.com.? ? IN? ? CNAME? ? www.mydomain.com.

DNS and BIND:

子域授權:每個域的名稱服務器,都是通過其上級名稱服務器在解析庫中進行授權
? ? 類似根域授權tld:
? ? ?com.? ?IN? ? NS? ? ns1.com.
? ? ?com.? ?IN? ? NS? ? ns2.com.
? ? ?ns1.com.? ?IN? ? A??? ? 2.2.2.1
? ? ?ns2.com.? ?IN? ? A??? ? 2.2.2.2

? ? mydomain.com. 在.com.的名稱服務器上,解析庫中添加資源記錄:
? ? mydomain.com.? ? ?IN? ? NS? ? ? ns1.mydomain.com.
? ? mydomain.com.? ? ?IN? ? NS? ? ? ns2.mydomain.com.
? ? mydomain.com.? ? ?IN? ? NS? ? ? ns3.mydomain.com.
? ??ns1.mydomain.com.? ?IN? ?A? ? ?3.3.3.1
? ??ns2.mydomain.com.? ?IN? ?A? ? ?3.3.3.2
? ??ns3.mydomain.com.? ?IN? ?A? ? ?3.3.3.3

? ? glue record:粘合記錄

域名注冊:
? ? 代理商:萬網,新網;godaddy

? ? 注冊完成以后,想自己用專用服務來解析怎么做?
? ? ? ? 管理后臺:把NS記錄指向的服務器名稱,和A記錄指向的服務器地址設為自己的;

BIND的安裝配置

dns服務,程序包名bind,程序名named
程序包:
? ??bind、bind-libs、bind-utils
? ? bind-chroot:以/var/named/chroot/為根

bind:
? ? 服務腳本:/etc/rc.d/init.d/named
? ? 主配置文件:/etc/named.conf,/etc/named.rfc1912.zones,/etc/rndc.key
? ? 解析庫文件:/var/named/ZONE_NAME.ZONE
? ? ??注意:
????????1)一臺物理服務器可以同時為多個區域提供解析
? ? ? ? 2)必須要有根區域文件:/var/named/named.ca
? ? ? ? 3)應該有兩個(如果包括IPv6,應該更多)實現localhost和本地回環地址的解析庫;
? ? rndc:remote name domain controller,默認與bind安裝在同一主機,且只能通過127.0.0.1來連接named進程,提供輔助性的管理功能,使用953/tcp端口。

安裝:yum install bind -y

安裝完畢,查看安裝的文件:rpm -ql bind

安裝后的文件及目錄:

? /var/named/named.ca:是全球的13個根節點服務器;

;       This file holds the information on root name servers needed to
;       initialize cache of Internet domain name servers
;       (e.g. reference this file in the "cache  .  <file>"
;       configuration file of BIND domain name servers).
;
;       This file is made available by InterNIC 
;       under anonymous FTP as
;           file                /domain/named.cache
;           on server           FTP.INTERNIC.NET
;       -OR-                    RS.INTERNIC.NET
;
;       last update:    April 11, 2017
;       related version of root zone:   2017041101
;
; formerly NS.INTERNIC.NET
;
.                        3600000      NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
A.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:ba3e::2:30
;
; FORMERLY NS1.ISI.EDU
;
.                        3600000      NS    B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.      3600000      A     192.228.79.201
B.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:84::b
;
; FORMERLY C.PSI.NET
;
.                        3600000      NS    C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12
C.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:2::c
;
; FORMERLY TERP.UMD.EDU
;
.                        3600000      NS    D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.      3600000      A     199.7.91.13
D.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:2d::d
;
; FORMERLY NS.NASA.GOV
;
.                        3600000      NS    E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10
E.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:a8::e
;
; FORMERLY NS.ISC.ORG
;
.                        3600000      NS    F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241
F.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:2f::f
;
; FORMERLY NS.NIC.DDN.MIL
;
.                        3600000      NS    G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4
G.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:12::d0d
;
; FORMERLY AOS.ARL.ARMY.MIL
;
.                        3600000      NS    H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.      3600000      A     198.97.190.53
H.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:1::53
;
; FORMERLY NIC.NORDU.NET
;
.                        3600000      NS    I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17
I.ROOT-SERVERS.NET.      3600000      AAAA  2001:7fe::53
;
; OPERATED BY VERISIGN, INC.
;
.                        3600000      NS    J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.      3600000      A     192.58.128.30
J.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:c27::2:30
;
; OPERATED BY RIPE NCC
;
.                        3600000      NS    K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129
K.ROOT-SERVERS.NET.      3600000      AAAA  2001:7fd::1
;
; OPERATED BY ICANN
;
.                        3600000      NS    L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.      3600000      A     199.7.83.42
L.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:9f::42
;
; OPERATED BY WIDE
;
.                        3600000      NS    M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33
M.ROOT-SERVERS.NET.      3600000      AAAA  2001:dc3::35
; End of file

? /var/named/named.localhost:本地localhost的解析庫

$TTL 1D
@	IN SOA	@ rname.invalid. (0	; serial1D	; refresh1H	; retry1W	; expire3H )	; minimumNS	@A	127.0.0.1AAAA	::1

/var/named/named.loopback::本地回環地址的解析庫

$TTL 1D
@	IN SOA	@ rname.invalid. (0	; serial1D	; refresh1H	; retry1W	; expire3H )	; minimumNS	@A	127.0.0.1AAAA	::1PTR	localhost.

/etc/named.conf:主配置文件
? 全局配置:options{}
? 日志子系統配置:logging{}
? 區域定義:本機能夠為哪些zone進行解析,就定義哪些zone:
? ? zone “ZONE_NAME” IN? {}
? 包含的文件:include “”

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//options {listen-on port 53 { 127.0.0.1; };listen-on-v6 port 53 { ::1; };directory       "/var/named";dump-file       "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";allow-query     { localhost; };recursion yes;dnssec-enable yes;dnssec-validation yes;/* Path to ISC DLV key */bindkeys-file "/etc/named.iscdlv.key";managed-keys-directory "/var/named/dynamic";
};logging {channel default_debug {file "data/named.run";severity dynamic;};
};zone "." IN {type hint;file "named.ca";
};include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

/etc/named.rfc1912.zones:其他區域的定義

zone "localhost.localdomain" IN {type master;file "named.localhost";allow-update { none; };
};zone "localhost" IN {type master;file "named.localhost";allow-update { none; };
};zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {type master;file "named.loopback";allow-update { none; };
};zone "1.0.0.127.in-addr.arpa" IN {type master;file "named.loopback";allow-update { none; };
};zone "0.in-addr.arpa" IN {type master;file "named.empty";allow-update { none; };
};

在解析庫中@代表區域名,就是這里的如localhost.localdomain、localhost

啟動:service named start
查看:通過結果,看到服務只是監聽在127.0.0.1,不會對外服務。
任何服務程序如果期望其能夠通過網絡被其他主機訪問,至少應該監聽在一個能與外部主機通信的IP地址上;

修改方法:將/etc/named.conf中options的第一行刪除或在地址中增加本機的IP地址,如下:
listen-on port 53 { 192.168.138.139; 127.0.0.1; };
緩存名稱服務器的配置:監聽外部地址即可,如上配置后,就成為了緩存名稱服務器。

dnssec:負責dns安全,一般建議關閉
? 關閉dnssec
主配置文件中還需要將allow-query { localhost; } 改為{ any; },recursion yes表示允許遞歸查找。

至此,一個緩存名稱服務器就完成了。

主DNS名稱服務器
? ? (1)在主配置文件/etc/named.rfc1912.zones中定義區域
? ? zone "ZONE_NAME" IN {
? ? ? ? type master | slave | hint | forward;? ?
????????// master:主區域? slave:從區域;hint:根域;forward:轉發
? ? ? ? file "ZONE_NAME.zone";
? ? ? ? };

zone "mytest.com" IN {type master;file "mytest.com.zone";
};

? ? (2)定義區域解析庫文件
? ? ? ? 出現的內容:
? ? ? ? ? 宏定義:$TTL、$ORIGIN
? ? ? ? ? 資源記錄:RR
? ? 示例:/var/named/mytest.com.zone

$TTL 86400
$ORIGIN mytest.com.
@       IN      SOA     ns1.mytest.com.  admin.mytest.com. (20240510011H5M7D1D )IN      NS      ns1IN      NS      ns2IN      MX 10   mx1IN      MX 20   mx2
ns1     IN      A       192.168.138.101
ns2     IN      A       192.168.138.102 
mx1     IN      A       192.168.138.103 
mx2     IN      A       192.168.138.104 
www     IN      A       192.168.138.101
ftp     IN      CNAME   www

檢查主配置文件是否存在語法錯誤:named-checkconf,將檢測/etc/named.conf及其包含的文件如/etc/named.rfc1912.zones
檢查解析庫文件語法:named-checkzone “zone_name” zone_name.file
如:named-checkzone "mytest.com" /var/named/mytest.com.zone

? ? (3)文件權限

名稱解析相關的文件屬主是root,屬組是named,要將自己創建的文件權限修改:

至此,主DNS服務器配置完畢,可以解析相關域的名稱了。
使用dig命令測試,我們創建的mytest.com區域中有www主機,就解析這個主機:
dig -t A www.mytest.com @192.168.138.139

修改mytest.com.zone文件,添加幾個www.mytest.com的A記錄,即同一個域名多個IP,然后重新加載:service named reload,也可以使用rndc reload
不使用restart,是因為restart會導致很多緩存等信息全部丟失,而reload只是重新加載解析庫文件,其他信息還在。然后再次測試解析:

如果在dig命令中不加@server,則會使用/etc/resolv.conf配置文件中的dns服務器進行解析:

測試命令dig:
? dig [-t type]? name? [@SERVER]? ?[query options]
? dig用于測試dns系統,因此,不會查詢hosts文件進行解析;
? 查詢選項:
? ? +[no]trace:是否跟蹤解析過程
? ? +[no]recurse:是否進行遞歸解析
對于測試的結果,要注意的是flags標記值:

host命令:
? host [-t type] name [SERVER]

nslookup命令:
? nslookup [-option] [name | -] [server]
? 交互式模式:nslookup>
? ? ? server IP:指明使用哪個DNS Server進行查詢;
? ? ? set q=RR_TYPE:指明查詢的資源記錄類型;
???????? ? ? NAME:要查詢的名稱
? ??

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10503.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10503.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10503.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

tailwindcss大綱

布局 css說明地址aspect-ratio用于控制元素縱橫比Aspect Ratio - Tailwind CSSwidth <br />max-widthcontainer&#xff1a;用于將元素的寬度固定到當前斷點的組件Container - Tailwind CSScolumns用于控制元素內列數Columns - Tailwind CSSbreak-after用于控制列或頁在…

通義靈碼企業版正式發布,滿足企業私域知識檢索、數據合規、統一管理等需求

5 月 9 日阿里云 AI 峰會&#xff0c;阿里云智能集團首席技術官周靖人宣布&#xff0c;通義靈碼企業版正式發布&#xff0c;滿足企業用戶的定制化需求&#xff0c;幫助企業提升研發效率。 通義靈碼是國內用戶規模第一的智能編碼助手&#xff0c;基于 SOTA 水準的通義千問代碼模…

基于 element-ui 表格組件 el-table 導出表格數據

方法一&#xff1a;前端處理&#xff0c;直接導出 e-table 組件的表格數據 import XLSX from xlsx;/*** el-table 表格導出* param {*} idSelector id選擇器* param {*} name 導出表格名稱* param {*} remove 表格是否存在左/右固定列&#xff0c;存在則傳入true&#xff0c;反…

在MyBatis中,如何將數據庫中的字符串類型映射為枚舉類型?

在MyBatis中&#xff0c;如何將數據庫中的字符串類型映射為枚舉類型&#xff1f; 網上看了很多教程。說了很多&#xff0c;但是都沒說到重點&#xff01; 很簡單&#xff0c;xml文件中&#xff0c; 使用resultType&#xff0c;而不是使用resultMap就可以了。 resultType"…

用HAL庫改寫江科大的stm32入門例子8-1 DMA數據轉運

實驗1-實驗目的&#xff1a;通過DMA把buffer的數據搬運到buffer2當中。 //declare a buffer to store the data uint32_t buffer[3] {1,2,3};//declare a buffer to store the data uint32_t buffer2[3] {0,0,0}; DMA&#xff1a;是個搬運數據的小助手。 相關設置&#xff1…

Baidu Comate:釋放編碼潛能,革新軟件開發

Baidu Comate Baidu Comate&#xff0c;智能代碼助手&#xff0c;憑借著文心大模型的強大支撐&#xff0c;結合了百度多年的編程實戰數據和豐富的開源資源&#xff0c;形成了一款嶄新的編碼輔助利器。它不僅具備著高智能、多場景、價值創造的特質&#xff0c;更可廣泛應用于各…

實物仿真平臺設計方案:927-8路GMSL視頻注入回灌的自動駕駛半實物仿真平臺

8路GMSL視頻注入回灌的自動駕駛半實物仿真平臺 一、平臺介紹 產品基于8路GMSL視頻注入回灌的自動駕駛半實物仿真平臺旨在提高實驗室及研究生院師生在基礎軟件層開發、計算機視覺和深度學習方面的專業知識學習和實踐能力&#xff0c;為師生提供一個穩定軟件開發和多精度框…

匯編個位數求和實驗

title: 匯編求和實驗 keywords: 匯編 tags: [匯編] categories: 嵌入式 匯編求和實驗 剛開始學習匯編 給大家做個參考 實驗 5 子程序 5.1 實驗目的 ①掌握利用堆棧傳遞參數的子程序調用方法。 ②過程調用偽指令&#xff1a;PROC&#xff0c;ENDP&#xff0c;NEAR和FAR。 ③8088…

神經網絡權重初始化學習

在神經網絡中&#xff0c;權重初始化是一個關鍵步驟&#xff0c;它影響著模型的訓練效率和最終性能。使用正態分布作為初始值是一種常見且有效的策略&#xff0c;尤其是在深度學習中。 原理 為何使用分布初始化&#xff1f; 如果所有權重初始化為相同的值&#xff08;如全零初…

hive日常使用時忘記部分補充(不定時)

1、date_formate、unix_timestamp、from_unixtime用法&#xff1a; 2、lag&#xff08;&#xff09;、lead()用法&#xff1a; lag&#xff08;)窗口函數返回分區中當前行之前行&#xff08;可以指定第幾行&#xff09;的值。 如果沒有行&#xff0c;則返回null。 lead()窗口…

pytest + yaml 框架 - 錄制接口轉 yaml 用例實現

pytest yaml 框架基本不用寫 python 代碼&#xff0c;只需寫yaml 文件用例就能實現接口自動化。 現在引入接口錄制功能&#xff0c;連 yaml 文件也不用寫了&#xff0c;點點點就能生成 yaml 用例文件了。 錄制功能在v1.3.4版本上實現 pip instal pytest-yaml-yoyo 環境準備 …

如何使用 ArcGIS Pro 制作地震動畫

在做某些匯報的時候&#xff0c;除了圖文&#xff0c;如果有動畫肯定會成為加分項&#xff0c;這里為大家介紹一下如何使用 ArcGIS Pro 制作地震動畫&#xff0c;希望能對你有所幫助。 添加時間 在圖層屬性內&#xff0c;選擇時間選項卡&#xff0c;圖層時間選擇每個要素具有…

鎵未來助力聯想筆記本GaN適配器標配化,賦能高效用戶體驗

鎵未來賦能筆記本電腦GaN適配器標配化 據悉&#xff0c;Lenovo 2024年推出搭配的多款新型筆記本原裝適配器電源ADL100UDGC3A&#xff0c;采用了鎵未來集成型Cascode技術氮化鎵功率器件G1N65R150PB。新款方案相較上一代工藝&#xff0c;體積減小23%&#xff0c;重量降低18%&…

秋招算法刷題10(棧和隊列)

0509 232.用棧實現隊列 class MyQueue {Deque<Integer> inStack;Deque<Integer> outStack;public MyQueue() {inStack new ArrayDeque<Integer>();outStack new ArrayDeque<Integer>();}public void push(int x) {inStack.push(x);}public int pop…

13.跳躍游戲

文章目錄 題目簡介題目解答解法一&#xff1a;貪心算法&#xff0b;動態規劃代碼&#xff1a;復雜度分析&#xff1a; 題目鏈接 大家好&#xff0c;我是曉星航。今天為大家帶來的是 跳躍游戲面試題 相關的講解&#xff01;&#x1f600; 題目簡介 題目解答 思路&#xff1a;這…

Vue3知識總結-2

目錄 通過key來管理狀態 事件處理 內聯事件處理器 方法事件處理器 事件傳參 獲取event 傳遞參數 傳參的過程中獲取事件對象 事件修飾符 阻止事件描述符 阻止事件冒泡 數組變化偵測 變更方式 替換一個數組 計算屬性 Class綁定 綁定對象 綁定數組 Style綁定 …

【Python 常用腳本及命令系列 3.3 -- Python 統計程序執行時間】

請閱讀【嵌入式開發學習必備專欄】 文章目錄 Python 統計程序執行時間 Python 統計程序執行時間 在Python中&#xff0c;可以使用time模塊來測量執行一個函數所需的時間。以下是一個基本的例子&#xff0c;展示了如何實現這一功能&#xff1a; import time def your_function…

element-plus 工作經驗總結

Element-plus 文章目錄 Element-plus忠告: 最好鎖定版本, 免得更新更出 BUG 來了el-drawer 設置 modal"false" 后, 遮罩元素仍存在, 點不了空白的地方el-tree 大數據量時接收 check-change 事件報錯導致涉及多個節點的操作沒執行完畢el-table 表頭 show-overflow-too…

前端小程序調用 getLocation 實現地圖位置功能,通過 緯度:latitude 經度: longitude 獲取當前位置

1、首先登錄一下 騰訊的位置服務 有賬號就登錄沒賬號就注冊&#xff0c; 點擊右上角的控制臺點擊左側的應用管理 ---> 我的應用 ---->> 創建應用 1、創建應用 2、列表就會顯示我們剛剛創建好的 key 3、點擊添加 key 4、按照要求填寫信息 我們用的是小程序 所以選擇…

二叉樹介紹

引入 定義 區別 定義不同 形態不同 基本形態