RM新时代网站-首页

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

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

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

Linux項(xiàng)目開發(fā),你必須了解Systemd服務(wù)!

武漢萬象奧科 ? 2024-06-18 17:59 ? 次閱讀

1.Systemd簡(jiǎn)介

Systemd是什么,以前linux系統(tǒng)啟動(dòng)init機(jī)制,由于init一方面對(duì)于進(jìn)程的管理是串行化的,容易出現(xiàn)阻塞情況,另一方面init也僅僅是執(zhí)行啟動(dòng)腳本,并不能對(duì)服務(wù)本身進(jìn)行更多的管理。Systemd就是為了解決這些問題而誕生的。它的設(shè)計(jì)目標(biāo)是,為系統(tǒng)的啟動(dòng)和管理提供一套完整的解決方案,根據(jù)Linux慣例,字母d是守護(hù)進(jìn)程(daemon)的縮寫,Systemd這個(gè)名字的含義,就是它要守護(hù)整個(gè)系統(tǒng)。使用了Systemd,就不需要再用init了。Systemd取代了initd,成為系統(tǒng)的第一個(gè)進(jìn)程(PID 等于 1),其他進(jìn)程都是它的子進(jìn)程。

Systemd是目前Linux系統(tǒng)上主要的系統(tǒng)守護(hù)進(jìn)程管理工具,有如下特點(diǎn):

1.支持并行化任務(wù)

2.同時(shí)采用socket式與D-Bus總線式激活服務(wù);

3.按需啟動(dòng)守護(hù)進(jìn)程(daemon);

4.利用Linux的cgroups監(jiān)視進(jìn)程;

5.支持快照和系統(tǒng)恢復(fù);

6.維護(hù)掛載點(diǎn)和自動(dòng)掛載點(diǎn);

7.各服務(wù)間基于依賴關(guān)系進(jìn)行精密控制。

Systemd可以管理所有系統(tǒng)資源,不同的資源統(tǒng)稱為 Unit(單元),Unit一共分成以下12種。

1.Service:裝守護(hù)進(jìn)程的啟動(dòng)、停止、重啟和重載操作,是最常見的一種 Unit 文件

2.Target:多個(gè)Unit構(gòu)成的一個(gè)邏輯組,用于對(duì) Unit 文件進(jìn)行邏輯分組,引導(dǎo)其它 Unit 的執(zhí)行。它替代了 SysV-init 運(yùn)行級(jí)別的作用,并提供更靈活的基于特定設(shè)備事件的啟動(dòng)方式

3.Device:硬件設(shè)備,主要用于定義設(shè)備之間的依賴關(guān)系

4.Mount:文件系統(tǒng)的掛載點(diǎn),可以替代過去的/etc/fstab 配置文件

5.Automount:自動(dòng)掛載點(diǎn),相當(dāng)于 SysV-init 的 autofs 服務(wù)

6.Path:用于監(jiān)控指定文件或路徑的變化,并觸發(fā)其它 Unit 運(yùn)行

7.Scope:不是用戶創(chuàng)建的,而是 Systemd 運(yùn)行時(shí)產(chǎn)生的,描述一些系統(tǒng)服務(wù)的分組信息

8.Slice:進(jìn)程組,用于表示一個(gè) CGroup 的樹,通常也不是用戶創(chuàng)建的

9.Snapshot:Systemd快照,可以切回某個(gè)快照

10.Socket:監(jiān)控來自于系統(tǒng)或網(wǎng)絡(luò)的數(shù)據(jù)消息,用于實(shí)現(xiàn)基于數(shù)據(jù)自動(dòng)觸發(fā)服務(wù)啟動(dòng)

11.Swap:虛擬內(nèi)存的交換分區(qū)

12.Timer Unit:定時(shí)器,用于配置在特定時(shí)間觸發(fā)的任務(wù),替代了 Crontab 的功能

2.SystemdService配置文件

每一個(gè)被管理單元(Unit)都需要有一個(gè)配置文件用于告知systemd對(duì)于該單元(Unit)的管理方式。Systemd默認(rèn)從目錄/etc/systemd/system/讀取配置文件,但是里面存放的大部分文件都是符號(hào)鏈接,指向目錄/lib/systemd/system,配置文件存放于/lib/systemd/system/,開機(jī)啟動(dòng)后會(huì)在/etc/systemd/system目錄建立軟鏈接文件,systemctl enable命令用于在/etc/systemd/system/與/lib/systemd/system/兩個(gè)目錄之間建立符號(hào)鏈接關(guān)系。systemctl disable命令用于在兩個(gè)目錄之間撤銷符號(hào)鏈接關(guān)系,相當(dāng)于撤銷開機(jī)啟動(dòng)。配置文件的后綴名,就是該Unit的種類,比如sshd.socket;如果命令行中省略后綴名,Systemd默認(rèn)后綴名為.service,所以當(dāng)systemctl enable sshd會(huì)被理解成systemctl enable sshd.service。

以sshd.service的配置為例,可用”systemctl cat sshd.service”命令查看sshd服務(wù)的配置文件:

# /lib/systemd/system/ssh.service [Unit] Description=OpenBSD Secure Shell server Documentation=man:sshd(8) man:sshd_config(5) After=network.target auditd.service ConditionPathExists=!/etc/ssh/sshd_not_to_be_run [Service] EnvironmentFile=-/etc/default/ssh ExecStartPre=/usr/sbin/sshd -t ExecStart=/usr/sbin/sshd -D $SSHD_OPTS ExecReload=/usr/sbin/sshd -t ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartPreventExitStatus=255 Type=notify RuntimeDirectory=sshd RuntimeDirectoryMode=0755 [Install] WantedBy=multi-user.target Alias=sshd.service

通常一個(gè)service服務(wù)單元的配置包含3個(gè)區(qū)塊:Unit,Service和Install。

2.1 Unit區(qū)塊

[Unit]區(qū)塊通常是配置文件的第一個(gè)區(qū)塊,用來定義 Unit 的元數(shù)據(jù),以及配置與其他 Unit 的關(guān)系。它的主要字段如下:

Description:簡(jiǎn)短描述

Documentation:文檔地址

Requires:當(dāng)前Unit依賴的其他Unit,如果它們沒有運(yùn)行,當(dāng)前Unit會(huì)啟動(dòng)失敗

Wants:與當(dāng)前Unit配合的其他Unit,如果它們沒有運(yùn)行,當(dāng)前Unit不會(huì)啟動(dòng)失敗

BindsTo:與Requires類似,它指定的 Unit 如果退出,會(huì)導(dǎo)致當(dāng)前Unit停止運(yùn)行

Before:如果該字段指定的Unit也要啟動(dòng),那么必須在當(dāng)前Unit之后啟動(dòng)

After:如果該字段指定的Unit也要啟動(dòng),那么必須在當(dāng)前Unit之前啟動(dòng)

Conflicts:這里指定的Unit 不能與當(dāng)前Unit同時(shí)運(yùn)行

Condition...:當(dāng)前Unit運(yùn)行必須滿足的條件,否則不會(huì)運(yùn)行

Assert...:當(dāng)前Unit運(yùn)行必須滿足的條件,否則會(huì)報(bào)啟動(dòng)失敗

2.2 Service區(qū)塊

[Service]區(qū)塊用來Service的配置,只有Service類型的Unit才有這個(gè)區(qū)塊。它的主要字段如下:

Type:定義啟動(dòng)時(shí)的進(jìn)程行為。它有以下幾種值。

Type=simple:默認(rèn)值,執(zhí)行ExecStart指定的命令,啟動(dòng)主進(jìn)程

Type=forking:以fork方式從父進(jìn)程創(chuàng)建子進(jìn)程,創(chuàng)建后父進(jìn)程會(huì)立即退出

Type=oneshot:一次性進(jìn)程,Systemd會(huì)等當(dāng)前服務(wù)退出,再繼續(xù)往下執(zhí)行

Type=dbus:當(dāng)前服務(wù)通過D-Bus啟動(dòng)

Type=notify:當(dāng)前服務(wù)啟動(dòng)完畢,會(huì)通知Systemd,再繼續(xù)往下執(zhí)行

Type=idle:若有其他任務(wù)執(zhí)行完畢,當(dāng)前服務(wù)才會(huì)運(yùn)行

ExecStart:?jiǎn)?dòng)當(dāng)前服務(wù)的命令

ExecStartPre:?jiǎn)?dòng)當(dāng)前服務(wù)之前執(zhí)行的命令

ExecStartPost:?jiǎn)?dòng)當(dāng)前服務(wù)之后執(zhí)行的命令

ExecReload:重啟當(dāng)前服務(wù)時(shí)執(zhí)行的命令

ExecStop:停止當(dāng)前服務(wù)時(shí)執(zhí)行的命令

ExecStopPost:停止當(dāng)其服務(wù)之后執(zhí)行的命令

RestartSec:自動(dòng)重啟當(dāng)前服務(wù)間隔的秒數(shù)

Restart:定義何種情況Systemd會(huì)自動(dòng)重啟當(dāng)前服務(wù),可能的值包括always(總是重啟)、on-success、on-failure、on-abnormal、on-abort、on-watchdog

TimeoutSec:定義Systemd停止當(dāng)前服務(wù)之前等待的秒數(shù)

Environment:指定環(huán)境變量

2.3 Install區(qū)塊

[Install]通常是配置文件的最后一個(gè)區(qū)塊,用來定義如何啟動(dòng),以及是否開機(jī)啟動(dòng)。它的主要字段如下:

WantedBy:它的值是一個(gè)或多個(gè)Target,當(dāng)前Unit激活時(shí)(enable)符號(hào)鏈接會(huì)放入/etc/systemd/system目錄下面以Target名+.wants后綴構(gòu)成的子目錄中

RequiredBy:它的值是一個(gè)或多個(gè)Target,當(dāng)前Unit激活時(shí),符號(hào)鏈接會(huì)放入/etc/systemd/system目錄下面以Target 名+ .required后綴構(gòu)成的子目錄中

Alias:當(dāng)前Unit 可用于啟動(dòng)的別名

Also:當(dāng)前Unit激活(enable)時(shí),會(huì)被同時(shí)激活的其他Unit

3.服務(wù)監(jiān)控啟動(dòng)

3.1 socket觸發(fā)的服務(wù)

涉及網(wǎng)絡(luò)的服務(wù),可以通過 socket 來觸發(fā)啟動(dòng)。也就是說服務(wù)本身在沒連接業(yè)務(wù)時(shí)不用一直空跑著,可以讓systemd 幫忙監(jiān)聽一個(gè) socket ,以減少資源消耗。當(dāng)真正有業(yè)務(wù)連接進(jìn)來時(shí),才喚醒目標(biāo)服務(wù)。要達(dá)成這樣的配置,目標(biāo)服務(wù)程序在實(shí)現(xiàn)上也有一定要求。

開發(fā)一個(gè)常規(guī)的網(wǎng)絡(luò)服務(wù),一般有以下幾個(gè)關(guān)鍵步驟:

1.創(chuàng)建一個(gè)socket

2.調(diào)用bind將該socket綁定一個(gè)端口

3.調(diào)用listen監(jiān)聽端口,將該socket變成監(jiān)聽文件描敘符fd

4.調(diào)用accept接收一個(gè)客戶端連接,得到一個(gè)新的連接文件描敘符fd

5.讀寫連接socket的fd,完成業(yè)務(wù)邏輯

借助 systemd 強(qiáng)大且通用的服務(wù)功能,它可以幫忙完成前兩步,并且將 socket 的 fd 傳給被激活的程序,后者就只要從第3步開始實(shí)現(xiàn)工作。

由socker觸發(fā)的服務(wù)對(duì)應(yīng)于 systemd 的配置文件要有兩個(gè),后綴分別是.socket與.service ,除后綴外的文件名要相同,這樣就能自動(dòng)關(guān)聯(lián),例如名為hello-world-socket的服務(wù):

hello-world-socket.socket

[Unit] Description=Hello World Socket [Socket] ListenStream=0.0.0.0:1234

hello-world-socket.service

[Unit] Description=Hello World Socket Service [Service] ExecStart=/absolute/path/to/hello-world-socket.exe

如上,.socket的配置,需要有[Socket]段,ListenStream字段表示了要監(jiān)聽的地址與端口。相應(yīng)的 .service 配置,與之前例子一樣,描敘了如何啟動(dòng)服務(wù)。因?yàn)檫@是想由 socket 激活的 service ,故沒有配置重啟字段。

在systemctl的大多數(shù)子命令中,如start,其參數(shù)默認(rèn)是假定.service單元配置的。例如systemctl start hello-world-socket 等效于 systemctl start hello-world-socket.service 。但在這個(gè)例子中,有兩種同名單元配置,且按要求先只啟動(dòng) hello-world-socket.socket ,所以要寫完整的單元名:

systemctl start hello-world-socket.socket

3.2 定時(shí)器觸發(fā)的服務(wù)

對(duì)于定時(shí)器觸發(fā)的服務(wù)首先要配置一個(gè) .timer 單元文件,例如:

hello-world.timer

[Unit] Description=The Hello-World Timer [Timer] OnCalendar=*-*-* *:*:00

其中,OnCalendar 的配置格式同 crontab ,上例表示每分鐘觸發(fā)。

然后需要一個(gè)同名的 .service 單元文件。本文開頭編譯的 hello-world.exe 正好可作為該定時(shí)器啟動(dòng)的程序,例如:

hello-world.service

[Unit] Description=The Hello-World Timer [Service] Type=oneshot ExecStart=/absolute/path/to/hello-world.exe StandardOutput=file:/absolute/path/to/stdout-file

然后啟動(dòng)定時(shí)器,并查看狀態(tài):

systemctl start hello-world.timer systemctl status hello-world.timer

4.服務(wù)異常重運(yùn)行

為了確保服務(wù)在遭遇故障時(shí)能夠自動(dòng)重啟。在Systemd的服務(wù)單元文件中,Restart指令是控制服務(wù)重啟行為的核心設(shè)置。本文章將探討Restart=on-failure與Restart=always這兩個(gè)選項(xiàng)的區(qū)別,幫助開發(fā)人員對(duì)系統(tǒng)服務(wù)做出更適合的選擇。Restart指令定義了當(dāng)服務(wù)停止時(shí)Systemd的行為。它可以精細(xì)控制服務(wù)在遇到不同退出情況時(shí)是否應(yīng)該重啟。這是確保關(guān)鍵服務(wù)可靠性的重要機(jī)制,尤其是在生產(chǎn)環(huán)境中,服務(wù)的持續(xù)運(yùn)行對(duì)業(yè)務(wù)至關(guān)重要

4.1 Restart=on-failure:智能重啟

當(dāng)服務(wù)單元文件中設(shè)置了Restart=on-failure時(shí),Systemd會(huì)在服務(wù)因錯(cuò)誤退出時(shí)嘗試重啟服務(wù)。"錯(cuò)誤退出"通常是指服務(wù)以非零狀態(tài)碼結(jié)束運(yùn)行,這可能是由于程序崩潰、遇到未處理的異?;蚱渌钦G闆r導(dǎo)致的。例如,如果你的服務(wù)由于內(nèi)存不足而崩潰,on-failure將確保服務(wù)嘗試重新啟動(dòng)。但如果服務(wù)是由于正常的系統(tǒng)維護(hù)任務(wù)而被停止,或者開發(fā)人員故意停止服務(wù)進(jìn)行調(diào)試,那么它將不會(huì)被重啟。

其應(yīng)用場(chǎng)景如下:

生產(chǎn)環(huán)境:在不希望因?yàn)榫S護(hù)或更新操作而自動(dòng)重啟服務(wù)的生產(chǎn)環(huán)境中使用。

故障排除:當(dāng)服務(wù)可能需要在出現(xiàn)問題時(shí)停止,以便進(jìn)行故障排除時(shí)。

有條件的重啟:當(dāng)你只想在服務(wù)因特定問題而停止時(shí)重啟。

4.2 Restart=always:無條件重啟

與on-failure相對(duì)的是Restart=always選項(xiàng)。不管服務(wù)是如何終止的,系統(tǒng)都會(huì)嘗試將其重啟。這意味著即使服務(wù)被管理員有意關(guān)閉,或者服務(wù)正常結(jié)束,Systemd也會(huì)立即嘗試將其重啟。

這種策略適用于那些必須始終運(yùn)行的服務(wù),無論它們是因?yàn)楹畏N原因停止的。這確保了即使在進(jìn)行系統(tǒng)更新或維護(hù)時(shí),服務(wù)也能盡可能快地恢復(fù)運(yùn)行。

其應(yīng)用場(chǎng)景如下:

關(guān)鍵服務(wù):對(duì)于那些系統(tǒng)的核心功能,如數(shù)據(jù)庫(kù)服務(wù)或Web服務(wù)器,這些服務(wù)的任何停機(jī)時(shí)間都是不可接受的。

高可用性要求:在需要最大程度減少服務(wù)停機(jī)時(shí)間的環(huán)境中。

簡(jiǎn)化管理:在希望無論服務(wù)如何停止都能立即重啟的情況下。



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

    關(guān)注

    87

    文章

    11292

    瀏覽量

    209322
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    593

    瀏覽量

    27392
  • Unit
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    7929
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用 Mobaxterm 建立 Linux 服務(wù)器連接

    不同的會(huì)話類型。為了連接到 Linux 服務(wù)器,可以選擇以下會(huì)話類型之一: SSH :用于安全地連接到遠(yuǎn)程服務(wù)器。 Telnet :不安全的連接方式,不推薦使用,
    的頭像 發(fā)表于 11-11 09:06 ?417次閱讀

    systemd journal收集日志的三種方式

    隨著 systemd 成了主流的 init 系統(tǒng),systemd 的功能也在不斷的增加,比如對(duì)系統(tǒng)日志的管理。Systemd 設(shè)計(jì)的日志系統(tǒng)好處多多,這里筆者就不再贅述了,本文筆者主要介紹 s
    的頭像 發(fā)表于 10-23 11:50 ?233次閱讀
    <b class='flag-5'>systemd</b> journal收集日志的三種方式

    Linux開發(fā)怎么學(xué)?

    ,可以用于搭建各種網(wǎng)絡(luò)服務(wù)和應(yīng)用。學(xué)習(xí) Linux 網(wǎng)絡(luò)管理可以幫助你更好地了解和應(yīng)用 Linux 的網(wǎng)絡(luò)功能。 8.參與開源社區(qū): Linux
    發(fā)表于 10-10 14:34

    飛凌嵌入式ElfBoard ELF 1板卡-常見網(wǎng)絡(luò)服務(wù)搭建之SSH服務(wù)搭建

    ,常見的SSH客戶端有 putty、SSH Secure Shell Client 等。SSH特點(diǎn)1.SSH是安全的加密協(xié)議,用于遠(yuǎn)程連接Linux服務(wù)器。2.SSH默認(rèn)端口是22號(hào)端口,安全協(xié)議版本
    發(fā)表于 09-29 09:48

    飛凌嵌入式ElfBoard ELF 1板卡-常見網(wǎng)絡(luò)服務(wù)搭建之SSH服務(wù)搭建

    客戶端,常見的SSH客戶端有 putty、SSH Secure Shell Client 等。 SSH特點(diǎn) 1.SSH是安全的加密協(xié)議,用于遠(yuǎn)程連接Linux服務(wù)器。 2.SSH默認(rèn)端口是22號(hào)端口
    發(fā)表于 09-27 09:06

    【免費(fèi)分享】嵌入式Linux開發(fā)板【入門+項(xiàng)目,應(yīng)用+底層】資料包一網(wǎng)打盡,附教程/視頻/源碼...

    ?想要深入學(xué)習(xí)嵌入式Linux開發(fā)嗎?現(xiàn)在機(jī)會(huì)來了!我們?yōu)槌鯇W(xué)者們準(zhǔn)備了一份全面的資料包,包括原理圖、教程、課件、視頻、項(xiàng)目、源碼等,所有資料全部免費(fèi)領(lǐng)取,課程視頻可試看(購(gòu)買后看完整版),讓
    的頭像 發(fā)表于 09-05 10:45 ?272次閱讀
    【免費(fèi)分享】嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>開發(fā)</b>板【入門+<b class='flag-5'>項(xiàng)目</b>,應(yīng)用+底層】資料包一網(wǎng)打盡,附教程/視頻/源碼...

    Linux服務(wù)器性能查看方法

    Linux服務(wù)器性能查看是系統(tǒng)管理員和開發(fā)人員在日常工作中經(jīng)常需要進(jìn)行的任務(wù),以確保系統(tǒng)穩(wěn)定運(yùn)行并優(yōu)化資源使用。以下將詳細(xì)介紹多種Linux服務(wù)
    的頭像 發(fā)表于 09-02 11:15 ?1043次閱讀

    Linux 驅(qū)動(dòng)開發(fā)與應(yīng)用開發(fā)知道多少?

    一、Linux驅(qū)動(dòng)開發(fā)與應(yīng)用開發(fā)的區(qū)別開發(fā)層次不同:Linux驅(qū)動(dòng)開發(fā)主要是針對(duì)硬件設(shè)備進(jìn)行編程
    的頭像 發(fā)表于 08-30 12:16 ?747次閱讀
    <b class='flag-5'>Linux</b> 驅(qū)動(dòng)<b class='flag-5'>開發(fā)</b>與應(yīng)用<b class='flag-5'>開發(fā)</b>,<b class='flag-5'>你</b>知道多少?

    linux日志管理之journalctl命令

    journalctl 用來查詢 systemd-journald 服務(wù)收集到的日志。systemd-journald 服務(wù)systemd
    的頭像 發(fā)表于 08-14 18:18 ?2507次閱讀
    <b class='flag-5'>linux</b>日志管理之journalctl命令

    Systemd是什么?Systemd Service配置文件詳解

    Systemd是什么,以前linux系統(tǒng)啟動(dòng)init機(jī)制,由于init一方面對(duì)于進(jìn)程的管理是串行化的,容易出現(xiàn)阻塞情況,另一方面init也僅僅是執(zhí)行啟動(dòng)腳本,并不能對(duì)服務(wù)本身進(jìn)行更多的管理
    的頭像 發(fā)表于 07-22 18:03 ?1525次閱讀

    服務(wù)器操作系統(tǒng)有幾種?

    Linux+Apache+PHP,能夠適用語(yǔ)言有PHP5、html、及其CGI、偽靜態(tài)服務(wù)項(xiàng)目;如果對(duì)Linux系統(tǒng)軟件并 非很了解,能
    發(fā)表于 03-29 16:59

    鴻蒙實(shí)戰(zhàn)項(xiàng)目開發(fā):【短信服務(wù)

    崗位需要掌握那些核心技術(shù)點(diǎn)?為此鴻蒙的開發(fā)學(xué)習(xí)必須要系統(tǒng)性的進(jìn)行。 而網(wǎng)上有關(guān)鴻蒙的開發(fā)資料非常的少,假如你想學(xué)好鴻蒙的應(yīng)用開發(fā)與系統(tǒng)底層開發(fā)
    發(fā)表于 03-03 21:29

    linux服務(wù)器和windows服務(wù)

    和適用性。 首先,Linux服務(wù)器是一種基于開源的操作系統(tǒng),其內(nèi)核是由許多個(gè)人和組織共同開發(fā)和維護(hù)的。它具有高度的穩(wěn)定性和安全 性。由于Linux操作系統(tǒng)的開放性,用戶可以根據(jù)自己的需
    發(fā)表于 02-22 15:46

    盤點(diǎn)那些硬件+項(xiàng)目學(xué)習(xí)套件:STM32MP157 Linux開發(fā)板及入門常見問題解答

    來盤點(diǎn)一下,比較受歡迎幾款“硬件+項(xiàng)目”學(xué)習(xí)套件,以及一些初學(xué)者比較關(guān)注的問題。 盤點(diǎn)一:STM32MP157 Linux開發(fā)板 ▋開發(fā)板標(biāo)識(shí)圖 ▋
    發(fā)表于 02-01 14:25

    【年度精選】2023年度top5榜單——鴻蒙開發(fā)經(jīng)驗(yàn)

    的應(yīng)用。通過學(xué)習(xí)本教程,了解開源鴻蒙系統(tǒng)在不同場(chǎng)景下的應(yīng)用和實(shí)踐,激發(fā)對(duì)人工智能和開源鴻蒙系統(tǒng)的興趣和創(chuàng)造力。 2、開發(fā)一個(gè)520的HarmonyOS元
    發(fā)表于 01-10 17:19
    RM新时代网站-首页