Docker —— 隔離的基本操作(1)

Docker —— 隔離的基本操作(1)

    • 1. 用戶和權限隔離
    • 2. 進程隔離
    • 3. 文件系統隔離
    • 4. 資源隔離(Cgroups)
    • 5. 網絡隔離
    • 6. 安全增強(SELinux/AppArmor)
    • 7. 容器技術(Docker/LXC)
    • 總結
  • dd
    • 基本語法
    • 常見用途示例
      • 1. 磁盤/分區備份(克隆)
      • 2. 創建空文件(預分配空間)
      • 3. 銷毀磁盤數據(安全擦除)
      • 4. 復制 ISO 到 U 盤(制作啟動盤)
      • 5. 修改文件部分內容
      • 6. 測試磁盤讀寫速度
    • 注意事項
    • 總結
  • mkfs
    • 基本語法
    • 常見文件系統類型
      • `mkfs` 命令參數詳解
      • 常見文件系統專用參數示例
        • 1. ext4 文件系統
        • 2. FAT/VFAT 文件系統
        • 3. XFS 文件系統
    • 常用操作示例
      • 1. 格式化分區為 ext4(Linux 常用)
      • 2. 格式化 U 盤為 FAT32(兼容 Windows/macOS)
      • 3. 格式化并啟用 XFS(適合大文件)
      • 4. 檢查設備后再格式化
    • 高級選項
      • 1. 調整 inode 數量(適用于大量小文件)
      • 2. 啟用文件系統加密(ext4)
      • 3. 指定塊大小(block size)
    • 注意事項
    • 總結
  • df
  • `df` 命令詳解
    • 基本語法
    • 常用選項
    • 常用示例
    • 輸出字段說明
    • 實用技巧
  • mount
  • `mount` 命令詳解
    • 基本語法
    • 常用選項
    • 常用掛載選項 (`-o`)
    • 常用示例
    • `/etc/fstab` 文件格式
    • 卸載文件系統
    • 常見問題解決

我們之前已經了解了Docker技術架構演進的一個基本路線,如果還沒有了解的小伙伴可以點擊這里:

https://blog.csdn.net/qq_67693066/article/details/147678726

今天我們在學習Docker之前,我們先來了解一下操作系統自帶的隔離,主要是要大家意識到,隔離并不是Docker的獨家,操作系統自己早就實現了隔離,并且這些命令對于之后的Docker學習也是有幫助的。

Linux 操作系統通過多種機制實現進程、用戶、文件系統、網絡等資源的隔離,確保安全性和穩定性。以下是 Linux 的主要隔離技術及其實現方式:


1. 用戶和權限隔離

Linux 使用 用戶(User)和組(Group) 進行權限控制,確保不同用戶只能訪問授權資源:

  • uid(用戶ID)和 gid(組ID):每個進程和文件都有所屬用戶和組。
  • chmodchown:控制文件訪問權限(rwx)。
  • sudosu:限制普通用戶執行特權操作。
  • /etc/passwd/etc/shadow:存儲用戶信息,密碼加密存儲。

示例:

# 查看當前用戶信息
id
# 修改文件權限
chmod 600 /path/to/file  # 僅所有者可讀寫
chown user:group /path/to/file

2. 進程隔離

Linux 內核通過 命名空間(Namespaces) 實現進程間的隔離:

命名空間類型作用
PID進程ID 獨立(不同命名空間的進程看不到彼此)
Mount (mnt)文件系統掛載點隔離
Network (net)獨立網絡棧(IP、端口、路由表等)
UTS主機名和域名隔離
IPC進程間通信(消息隊列、共享內存等)隔離
User用戶和組ID 隔離(容器內 root ≠ 宿主機 root)
Cgroup (cgroup)控制資源使用(CPU、內存等)

示例:查看進程的命名空間

ls -l /proc/$$/ns  # 查看當前進程的命名空間

3. 文件系統隔離

  • chroot:修改進程的根目錄,限制其訪問范圍(早期容器技術)。
  • OverlayFS:聯合文件系統(Docker 使用),實現分層存儲。
  • mount --bind:掛載特定目錄,實現文件訪問控制。

示例:使用 chroot 創建隔離環境

# 創建一個簡單的隔離環境
mkdir -p /jail/{bin,lib64}
cp /bin/bash /jail/bin/
cp /lib64/{ld-linux-x86-64.so.2,libc.so.6} /jail/lib64/
chroot /jail /bin/bash  # 進入隔離環境

4. 資源隔離(Cgroups)

Control Groups (cgroups) 限制進程的資源使用:

  • CPU:分配 CPU 時間片。
  • Memory:限制內存使用。
  • I/O:控制磁盤讀寫帶寬。
  • Network:限制網絡帶寬。

示例:使用 cgroups v2 限制進程內存

# 創建 cgroup
mkdir /sys/fs/cgroup/memory/mycgroup
echo 100000000 > /sys/fs/cgroup/memory/mycgroup/memory.limit_in_bytes
# 將進程加入 cgroup
echo $$ > /sys/fs/cgroup/memory/mycgroup/cgroup.procs

5. 網絡隔離

  • Network Namespace:每個容器/進程有獨立的網絡棧。
  • iptables/nftables:防火墻規則隔離流量。
  • veth 虛擬設備:連接不同網絡命名空間。
  • bridge:虛擬交換機管理容器網絡。

示例:創建網絡命名空間

ip netns add mynetns  # 創建網絡命名空間
ip netns exec mynetns ip a  # 在命名空間內執行命令

6. 安全增強(SELinux/AppArmor)

  • SELinux(Security-Enhanced Linux):強制訪問控制(MAC),限制進程權限。
  • AppArmor:基于配置文件限制進程能力。

示例:查看 SELinux 狀態

sestatus

7. 容器技術(Docker/LXC)

容器是上述隔離技術的組合:

  • Docker:使用 Namespaces + Cgroups + OverlayFS 實現輕量級虛擬化。
  • LXC:Linux 原生容器,直接調用內核功能。

示例:運行一個 Docker 容器

docker run -it --rm alpine sh

總結

隔離類型技術作用
用戶隔離uid/gid, sudo限制用戶權限
進程隔離Namespaces進程間資源隔離
文件系統隔離chroot, OverlayFS限制文件訪問
資源隔離Cgroups限制 CPU、內存等
網絡隔離Network Namespace, iptables獨立網絡環境
安全增強SELinux, AppArmor防止提權攻擊
容器Docker, LXC綜合隔離

我們今天主要來看進程隔離和文件隔離,但是在這之前,我們先了解幾個命令:

dd

dd 是 Linux/Unix 系統中一個強大的 磁盤和文件操作工具,主要用于 數據復制、轉換和備份。它可以直接訪問設備文件,適用于磁盤克隆、創建鏡像文件、數據擦除等場景。


基本語法

dd if=輸入文件 of=輸出文件 [選項]
  • if(input file):輸入源(文件或設備,如 /dev/sda
  • of(output file):輸出目標(文件或設備)
  • 其他常用選項
    • bs:塊大小(默認 512B,建議設為 1M4K 提高效率)
    • count:復制的塊數
    • skip:跳過輸入文件開頭的塊
    • seek:跳過輸出文件開頭的塊
    • status=progress:顯示進度(GNU dd 支持)

常見用途示例

1. 磁盤/分區備份(克隆)

# 備份整個磁盤到鏡像文件
sudo dd if=/dev/sda of=/backup/sda.img bs=4M status=progress# 恢復鏡像到磁盤
sudo dd if=/backup/sda.img of=/dev/sda bs=4M status=progress
  • 適用場景:全盤備份、系統遷移。

2. 創建空文件(預分配空間)

# 創建一個 1GB 的空文件
dd if=/dev/zero of=testfile bs=1M count=1024
  • /dev/zero:提供空字符流。

我們來試試這個,這個比較方便:
在這里插入圖片描述
我們打開testfile,寫一行hello world:
在這里插入圖片描述
然后我們可以將所有的小寫字母轉換成大寫:

dd if=testfile of=testfile_2 conv=ucase

在這里插入圖片描述

3. 銷毀磁盤數據(安全擦除)

# 用零填充整個磁盤(不可恢復)
sudo dd if=/dev/zero of=/dev/sdb bs=4M status=progress# 隨機數據填充(更安全)
sudo dd if=/dev/urandom of=/dev/sdb bs=4M status=progress
  • 注意:操作不可逆,務必確認目標設備!

4. 復制 ISO 到 U 盤(制作啟動盤)

sudo dd if=ubuntu.iso of=/dev/sdb bs=4M status=progress conv=fsync
  • /dev/sdb 是 U 盤設備(用 lsblk 確認)。
  • conv=fsync:確保數據完全寫入。

5. 修改文件部分內容

# 替換文件開頭 1KB 為 0
dd if=/dev/zero of=file.bin bs=1K count=1 conv=notrunc
  • notrunc:不截斷原文件,僅覆蓋指定部分。

6. 測試磁盤讀寫速度

# 寫入速度測試
dd if=/dev/zero of=./testfile bs=1G count=1 oflag=direct# 讀取速度測試
dd if=./testfile of=/dev/null bs=1G count=1 iflag=direct
  • oflag=direct/iflag=direct:繞過緩存,測真實速度。

注意事項

  1. 謹慎操作

    • dd 直接操作設備,輸入錯誤可能導致數據丟失!
    • 務必確認 ifof 參數(如誤將 of=/dev/sda 寫成 if=/dev/sda 會覆蓋系統盤)。
  2. 進度查看

    • 較新版本的 dd 支持 status=progress
    • 舊版本可通過發送 USR1 信號查看進度:
      kill -USR1 $(pgrep ^dd)  # 另開終端執行
      
  3. 替代工具

    • pv:顯示進度條(需安裝):
      pv /dev/sda > sda.img
      
    • rsync:更安全的文件同步。

總結

用途命令示例
磁盤備份dd if=/dev/sda of=/backup/sda.img bs=4M status=progress
制作啟動盤dd if=ubuntu.iso of=/dev/sdb bs=4M conv=fsync
安全擦除磁盤dd if=/dev/urandom of=/dev/sdb bs=4M status=progress
創建大文件dd if=/dev/zero of=largefile bs=1M count=1024
測試磁盤速度dd if=/dev/zero of=./testfile bs=1G count=1 oflag=direct

dd 的核心功能就是“從輸入源(if)讀取原始數據,原封不動地寫入輸出目標(of)”,像一個二進制搬運工。

mkfs

mkfs(Make Filesystem)是 Linux 中用于 創建文件系統 的命令,相當于對磁盤或分區進行“格式化”。它會在目標設備(如分區、磁盤、鏡像文件)上寫入文件系統的元數據,使其能夠被操作系統識別和使用。


基本語法

mkfs [選項] 設備或文件

或通過指定文件系統類型:

mkfs.文件系統類型 [選項] 設備或文件

例如:

mkfs.ext4 /dev/sdb1  # 將 /dev/sdb1 格式化為 ext4
mkfs.vfat /dev/sdc1  # 格式化為 FAT32

常見文件系統類型

文件系統命令適用場景
ext4mkfs.ext4Linux 默認文件系統(推薦)
ext3mkfs.ext3舊版 Linux 兼容
ext2mkfs.ext2極簡需求(無日志功能)
XFSmkfs.xfs大文件、高性能(企業級)
Btrfsmkfs.btrfs支持快照、壓縮(現代文件系統)
FAT32mkfs.vfatU盤、跨平臺(Windows/macOS/Linux)
NTFSmkfs.ntfsWindows 專用(需 ntfs-3g 包)

mkfs 命令參數詳解

參數說明示例
-t fstype指定要創建的文件系統類型(如 ext3, ext4, xfs, vfat 等)mkfs -t ext4 /dev/sdb1
filesys目標設備文件名(如 /dev/sdb1)或鏡像文件mkfs.ext4 /dev/sdb1
blocks指定文件系統的磁盤塊數(一般自動計算,手動指定較少使用)mkfs.ext4 /dev/sdb1 204800(20萬塊)
-V詳細模式(顯示操作過程)mkfs -V -t ext4 /dev/sdb1
fs-options傳遞給具體文件系統的參數(需在 filesys 前指定)mkfs.ext4 -b 4096 /dev/sdb1

常見文件系統專用參數示例

1. ext4 文件系統
參數說明示例
-b block-size指定塊大小(如 1024, 4096mkfs.ext4 -b 4096 /dev/sdb1
-L volume-label設置卷標mkfs.ext4 -L "mydata" /dev/sdb1
-m reserved-blocks-percent保留空間百分比(默認5%)mkfs.ext4 -m 1 /dev/sdb1(設為1%)
-O feature啟用特性(如 encrypt, quotamkfs.ext4 -O encrypt /dev/sdb1
2. FAT/VFAT 文件系統
參數說明示例
-F fat-size指定 FAT 類型(12, 16, 32mkfs.vfat -F 32 /dev/sdc1
-I強制格式化整個設備(無分區表)mkfs.vfat -I /dev/sdd
3. XFS 文件系統
參數說明示例
-f強制覆蓋現有文件系統mkfs.xfs -f /dev/sdb2
-d agcount=N設置分配組數量(性能調優)mkfs.xfs -d agcount=4 /dev/sdb2

常用操作示例

1. 格式化分區為 ext4(Linux 常用)

sudo mkfs.ext4 /dev/sdb1
  • 選項
    • -L:設置卷標(如 -L "mydata"
    • -m 0:減少保留空間(默認 5%,-m 0 設為 0% 以最大化可用空間)

我們將剛剛的testfile格式化為ext4格式:
在這里插入圖片描述

2. 格式化 U 盤為 FAT32(兼容 Windows/macOS)

sudo mkfs.vfat -F 32 /dev/sdc1
  • -F 32:強制 FAT32 格式(默認可能格式化為 FAT16)

3. 格式化并啟用 XFS(適合大文件)

sudo mkfs.xfs -f /dev/sdb2
  • -f:強制覆蓋現有文件系統

4. 檢查設備后再格式化

lsblk                     # 確認設備路徑(如 /dev/sdb1)
sudo blkid /dev/sdb1      # 查看當前文件系統類型
sudo umount /dev/sdb1     # 先卸載(如果已掛載)
sudo mkfs.ext4 /dev/sdb1  # 再格式化

高級選項

1. 調整 inode 數量(適用于大量小文件)

sudo mkfs.ext4 -N 1000000 /dev/sdb1  # 分配 100 萬個 inode

2. 啟用文件系統加密(ext4)

sudo mkfs.ext4 -O encrypt /dev/sdb1

3. 指定塊大小(block size)

sudo mkfs.ext4 -b 4096 /dev/sdb1  # 4KB 塊(適合 SSD)

注意事項

  1. 數據會丟失!
    格式化會清空目標設備的所有數據,操作前務必確認設備路徑。

  2. 必須先卸載分區

    sudo umount /dev/sdb1  # 卸載
    sudo mkfs.ext4 /dev/sdb1
    
  3. SSD 優化
    對 SSD 建議使用 ext4f2fs,并啟用 TRIM:

    sudo mkfs.ext4 -E discard /dev/nvme0n1p1
    
  4. 修復誤格式化
    如果誤格式化,可嘗試用 testdiskphotorec 恢復數據(但不保證成功)。


總結

操作命令示例
格式化 ext4sudo mkfs.ext4 /dev/sdb1
格式化 FAT32sudo mkfs.vfat -F 32 /dev/sdc1
強制覆蓋現有文件系統sudo mkfs.xfs -f /dev/sdb2
設置卷標sudo mkfs.ext4 -L "mydata" /dev/sdb1
優化 SSDsudo mkfs.ext4 -E discard /dev/nvme0n1p1

df

df 命令詳解

df (Disk Filesystem) 命令用于顯示 Linux 系統中文件系統的磁盤空間使用情況。它可以顯示所有已掛載文件系統的可用空間和已用空間。

基本語法

df [選項] [文件或目錄]

常用選項

選項說明
-a顯示所有文件系統,包括虛擬文件系統
-h以人類可讀格式顯示 (KB, MB, GB)
-H類似 -h,但以 1000 為換算單位而非 1024
-i顯示 inode 使用情況而非塊使用情況
-k以 KB 為單位顯示
-l只顯示本地文件系統
-P使用 POSIX 輸出格式
-T顯示文件系統類型
-t <類型>只顯示指定類型的文件系統
-x <類型>排除指定類型的文件系統

常用示例

  1. 顯示所有文件系統使用情況

    df
    
  2. 以人類可讀格式顯示

    df -h
    

    輸出示例:

    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda1        20G  5.2G   14G  28% /
    tmpfs           1.9G     0  1.9G   0% /dev/shm
    
  3. 顯示指定文件系統的使用情況

    df -h /dev/sda1
    
  4. 顯示文件系統類型

    df -T
    
  5. 顯示 inode 使用情況

    df -i
    
  6. 只顯示 ext4 文件系統

    df -t ext4
    
  7. 排除特定文件系統類型

    df -x tmpfs
    

輸出字段說明

字段說明
Filesystem文件系統對應的設備文件
Size文件系統總大小
Used已用空間
Avail可用空間
Use%使用百分比
Mounted on掛載點

實用技巧

  1. 快速查看磁盤使用情況

    df -h --output=source,size,used,avail,pcent,target
    
  2. 按使用百分比排序

    df -h | sort -k5 -n -r
    
  3. 監控特定掛載點

    watch -n 1 'df -h /home'
    
  4. 結合 grep 過濾結果

    df -h | grep -v tmpfs
    

這個命令比較簡單,我們舉一個簡單的例子:
在這里插入圖片描述

df 命令是 Linux 系統管理員監控磁盤使用情況的重要工具,經常與 du 命令配合使用來分析和解決磁盤空間問題。

mount

mount 命令詳解

mount 命令用于掛載文件系統到 Linux 目錄樹中的指定掛載點。它是 Linux 系統管理中最基礎且重要的命令之一。

基本語法

mount [-選項] [設備] [掛載點]
mount [-選項] [-t 文件系統類型] [-o 掛載選項] 設備 掛載點

常用選項

選項說明
-a掛載 /etc/fstab 中所有文件系統
-t指定文件系統類型 (ext4, ntfs, vfat 等)
-o指定掛載選項 (多個選項用逗號分隔)
-l顯示已掛載設備及其標簽
-v顯示詳細執行過程
-r以只讀模式掛載
-w以讀寫模式掛載 (默認)

常用掛載選項 (-o)

選項說明
ro/rw只讀/讀寫掛載
remount重新掛載已掛載的文件系統
noexec不允許執行二進制文件
nosuid忽略 suid/sgid 位
nodev不解釋設備文件
sync/async同步/異步 I/O 操作
defaults使用默認選項 (rw, suid, dev, exec, auto, nouser, async)
user允許普通用戶掛載
nouser只允許 root 掛載 (默認)
loop掛載鏡像文件

常用示例

  1. 顯示當前已掛載的文件系統

    mount
    

    mount -l
    
  2. 掛載設備到目錄

    mount /dev/sdb1 /mnt/data
    

我們來試試:
在這里插入圖片描述

  1. 指定文件系統類型掛載

    mount -t ext4 /dev/sdb1 /mnt/data
    
  2. 掛載 ISO 鏡像文件

    mount -o loop ubuntu.iso /mnt/iso
    
  3. 掛載 USB 設備 (FAT32)

    mount -t vfat /dev/sdc1 /mnt/usb
    
  4. 掛載 Windows 共享 (CIFS/SMB)

    mount -t cifs //server/share /mnt/share -o username=user,password=pass
    
  5. 重新掛載為只讀

    mount -o remount,ro /dev/sdb1
    
  6. 掛載所有 /etc/fstab 中的文件系統

    mount -a
    
  7. 掛載帶特殊選項

    mount -o noexec,nosuid /dev/sdb1 /mnt/data
    

/etc/fstab 文件格式

/etc/fstab 文件用于定義自動掛載的文件系統,格式如下:

設備/UUID 掛載點 文件系統類型 掛載選項 dump fsck

示例:

/dev/sdb1 /mnt/data ext4 defaults 0 2
UUID=1234-5678 /mnt/usb vfat defaults 0 0

卸載文件系統

使用 umount 命令卸載:

umount /mnt/data

umount /dev/sdb1

常見問題解決

  1. 設備忙無法卸載

    fuser -vm /mnt/data  # 查看哪個進程在使用
    fuser -km /mnt/data  # 終止使用該掛載點的進程
    umount /mnt/data
    
  2. 掛載 NTFS 分區

    mount -t ntfs-3g /dev/sdb1 /mnt/ntfs
    
  3. 掛載時修復錯誤

    fsck /dev/sdb1
    mount /dev/sdb1 /mnt/data
    

mount 命令是 Linux 系統管理中不可或缺的工具,合理使用可以靈活管理各種存儲設備和網絡共享。

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

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

相關文章

PWN基礎-ROP技術-ret2syscall突破NX保護

ROP&#xff08;Return-Oriented Programming&#xff0c;返回導向編程&#xff09;是一種利用程序已有代碼片段來執行任意指令的攻擊技術&#xff0c;常用于繞過現代系統的安全機制&#xff0c;尤其是不可執行棧&#xff08;NX&#xff09;。 常規檢查一下&#xff1a; 32 位…

關于 js:2. 對象與原型鏈

一、對象 對象是&#xff1a; 鍵值對集合 所有非原始類型&#xff08;number、string、boolean、null、undefined、symbol、bigint&#xff09;都是對象 支持動態增刪屬性 每個對象都繼承自 Object.prototype&#xff0c;具備原型鏈結構 1. 對象的創建方式 字面量方式&a…

AtCoder 第404場初級競賽 A~E題解

A Not Found 【題目鏈接】 原題鏈接:A - Not Found 【考點】 枚舉,數組計數法 【題目大意】 找到在26個字母中,未輸出的一個字母,如果有多個,輸出其中一個即可。 【解析】 遍歷字符串,使用數組的記錄對應字母的出現次數,最后遍歷數組為0的下標,輸出對應的字母即…

檢測內存條好壞有工具,推薦幾款內存檢測工具

檢測內存條的好壞其實很重要&#xff0c;這直接就關系到計算機是不是能夠穩定的運行&#xff0c;也有一部分人就會關注內存檢測的工具。你應該如何來選擇的&#xff0c;不如看一下以下的這幾個。 MemTest86是一個比較受到大家喜歡的內存檢測工具&#xff0c;會支持各種類型&…

01Introduction

文本主題 關于協作式多智能體強化學習的簡介 文章目錄 文本主題一、MARL主要框架集中式訓練與執行 (CTE)集中式訓練分布式執行&#xff08;CTDE&#xff09;分布式訓練與執行&#xff08;DTE&#xff09; 二、Dec-POMDPjoint policy V and Q 一、MARL主要框架 MARL當前主流的…

小程序問題(記錄版)

1、樣式不生效 在h5上生效 但是 小程序上沒反應 解決辦法&#xff1a;解除組件樣式隔離 1、isolated 表示啟用樣式隔離&#xff0c;在自定義組件內外&#xff0c;使用 class 指定的樣式將不會相互影響&#xff08;一般情況下的默認值&#xff09; 2、apply-shared 表示頁面 wxs…

排列組合算法:解鎖數據世界的魔法鑰匙

在 C 算法的奇幻世界里&#xff0c;排列和組合算法就像是兩把神奇的魔法鑰匙&#xff0c;能夠幫我們解鎖數據世界中各種復雜問題的大門。今天&#xff0c;作為 C 算法小白的我&#xff0c;就帶大家一起走進排列和組合算法的奇妙天地。 排列算法&#xff1a;創造所有可能的順序…

深入探討 UDP 協議與多線程 HTTP 服務器

深入探討 UDP 協議與多線程 HTTP 服務器 一、UDP 協議&#xff1a;高效但“不羈”的傳輸使者 UDP 協議以其獨特的特性在網絡傳輸中占據一席之地&#xff0c;適用于對實時性要求高、能容忍少量數據丟失的場景。 1. UDP 的特點解析 無連接&#xff1a;無需提前建立連接&…

引用第三方自定義組件——微信小程序學習筆記

1. 使用 npm 安裝第三方包 1.1 下載安裝Node.js 工具 下載地址&#xff1a;Node.js — Download Node.js 1.2 安裝 npm 包 在項目空白處右鍵彈出菜單&#xff0c;選擇“在外部終端窗口打開”&#xff0c;打開命令行工具&#xff0c;輸入以下指令&#xff1a; 1> 初始化:…

數字化轉型是往哪轉?怎么轉?

寫在前面 當下數字化轉型的風還在吹&#xff0c;企業數字化轉型過程中以數字化項目滿足業務化需求&#xff0c;已有相關數字化平臺的話&#xff0c;就搞大平臺、大系統&#xff0c;解決數據孤島。政府數字化轉型亦是如此&#xff0c;某些省市發了系統優化整合的文&#xff0c;旨…

嵌入式學習--江協51單片機day2

今天學的不多&#xff0c;內容為&#xff1a;靜態、動態數碼管的控制&#xff0c;模塊化編程和lcd1602調試工具 數碼管的控制 由于內部電路的設計&#xff0c;數碼管每次只能顯示一個位置的一個數字&#xff0c;動態的實現是基于不同位置的閃爍頻率高。 P2_4,P2_3,P2_2控制位…

《數據結構:二叉搜索樹(Binary Search Tree)》

文章目錄 :red_circle:一、二叉搜索樹的概念:red_circle:二、二叉搜索樹的性能分析:red_circle:三、二叉搜索樹的操作&#xff08;一&#xff09;插入&#xff08;二&#xff09;查找&#xff08;三&#xff09;刪除 :red_circle:四、二叉搜索樹的實現代碼&#xff08;一&#…

【Linux相關】實時查看Nvidia-smi使用情況

【Linux相關】 實時查看Nvidia-smi使用情況 文章目錄 實時查看Nvidia-smi使用情況 實時查看Nvidia-smi使用情況 在本地終端執行下述語句 watch -n 1 nvidia-smi每一秒都會更新&#xff0c;將 1 改為其他數字可以滿足不同需求

Kotlin密封類優化Android狀態管理

Kotlin 的密封類&#xff08;Sealed Class&#xff09;確實是 Android 開發中管理復雜 UI 狀態的利器。它通過類型安全的層次結構&#xff0c;讓狀態管理代碼更加清晰簡潔。讓我們從實際開發場景出發&#xff0c;深入探討其應用&#xff1a; 一、密封類核心優勢 受限的類繼承…

JavaWeb:SpringBootWeb快速入門

介紹 Spring SpringBoot 入門程序 需求 步驟 修改端口 1.新建application.yml #設置端口 server:port: 8081入門程序-分析 為什么main方法能啟動web應用-內嵌tomcat 為什么tomcat能定位HelloController程序 請求先到DisPatcherServlet&#xff0c;根據路徑轉發 小結 1.…

Unity學習筆記二

文章目錄 3D數學公共計算結構體Mathf常用成員三角函數 向量Vector3基本成員點乘叉乘插值運算 四元數引出基本概念Quaternion結構體成員四元數運算 更多的Mono延遲函數協同程序多線程相關協程概念辨析協程本體協程調度器 Resources資源動態加載特殊文件夾Resources同步加載Resou…

為什么Transformer推理需要做KV緩存

一、我們先來回憶一下在transformer中KV在哪里出現過&#xff0c;都有什么作用&#xff1f; α的計算過程&#xff1a; 這里引入三個向量&#xff1a; 圖中的q為Query&#xff0c;用來匹配key值 圖中的k為key,用來被Query匹配 圖中的Value&#xff0c;是用來被進行加權平均的 由…

【大模型面試】大模型(LLMs)高頻面題全面整理(★2025年5月最新版★)

【大模型面試】大模型&#xff08;LLMs&#xff09;高頻面題全面整理&#xff08;★2025年5月最新版★&#xff09; &#x1f31f; 嗨&#xff0c;你好&#xff0c;我是 青松 &#xff01; &#x1f308; 自小刺頭深草里&#xff0c;而今漸覺出蓬蒿。 本筆記適合大模型初學者和…

JAVA:使用 iTextPDF 處理 PDF 的技術詳解

1、簡述 iTextPDF 是一個功能強大的 Java PDF 庫,可以用來創建、修改和處理 PDF 文檔。通過它,我們可以完成如生成 PDF、讀取 PDF 內容、添加水印、合并 PDF 等多種操作。本篇博客將詳細介紹 iTextPDF 的使用方法,并提供一些實踐樣例,幫助開發者快速上手。 樣例代碼: htt…

模態與非模態窗口及使用時的數據交互

模態窗口使用exec()方法顯示&#xff0c;會阻塞父窗口&#xff0c;直到對話框關閉&#xff1b; 非模態對話框允許同時操作主窗口和設置窗口&#xff0c;使用show()。 模態和非模態的主要區別在于用戶能否與父窗口交互&#xff0c;非模態更適合需要頻繁切換的場景。非模態窗口需…