流浪 Linux: 外置 USB SSD 安装 ArchLinux
注: ArchLinux 系统为滚动更新, 变化很快, 所以本文中的安装方法可能很快就过时了, 仅供参考. 实际安装时建议去阅读官方文档.
最近, 突然 (也没有那么突然) 有了一大堆 PC: 4 个笔记本, 2 个台式主机 (M-ATX 主板), 1 个小主机 (迷你主机). 嗯, 多到用不过来. 但是, 窝又不能固定使用其中一个, 可能今天用这个, 明天又用那个.
如果在每个上面都安装 ArchLinux, 太麻烦了, 并且数据不互通, 实际使用就更加麻烦. 恰好, 有一个空闲的 1TB SSD (2.5 英寸 SATA), 就用这个来实现 流浪 Linux 吧: 插到哪里都能用 !
主机 (台式机, 笔记本, 小主机) 就像恒星, SSD 就像行星, 那条 USB 数据线, 嗯, 就像引力 (狗头)
8 万亿比特, 从母系统出发, 跨越 3000 亿 CPU 时钟周期的时空, 到达另一颗邻居 “恒星”, 史称流浪 Linux 计划.
等下, 为什么要安装 ArchLinux ? 嗯, 因为加法比减法容易.
在软件包已经编译好的 GNU/Linux 操作系统中, ArchLinux 基本上算是安装最复杂, 同时也是可定制程度最高的发行版. 如果想获得更高的修改/定制能力, 那么基本上只能用 Gentoo, LFS 这种直接从源代码编译的了, 当然从源代码编译会比 ArchLinux 更麻烦很多倍.
ArchLinux 的基础系统 (base) 很小, 大约只有一百多个软件包 (目前约 143 个). 其余软件包都是需要哪个再安装哪个, 所以多余的软件包很少. 像 Debian/Fedora/Ubuntu 这种发行版, 其基础系统就有好几千个软件包, 如果遇到不想要的软件, 还要一个一个去卸载, 很麻烦 (加法比减法容易).
另外, 窝使用 ArchLinux 好多年了, 习惯了 (比如窝的 胖喵拼音 就优先适配 ArchLinux GNOME). 老了, 不想再换系统了, 所以继续使用 ArchLinux (狗头)
这里是 穷人小水滴, 专注于 穷人友好型 低成本技术. (本文为 65 号作品. )
相关文章:
- 《安装 Fedora CoreOS 操作系统》 https://blog.csdn.net/secext2022/article/details/139805083
- 《胖喵拼音输入法 (pmim-ibus) 安装说明》 https://blog.csdn.net/secext2022/article/details/138447270
参考资料:
- https://archlinux.org/
- https://www.gentoo.org/
- https://archlinux.org/download/
- https://wiki.archlinux.org/title/Installation_guide
- https://wiki.archlinux.org/title/GRUB
- https://wiki.archlinux.org/title/Users_and_groups
- https://wiki.archlinux.org/title/Sudo
目录
- 1 硬件设备
- 2 安装准备
- 2.1 下载 ArchLinux 安装 iso 镜像
- 2.2 制作安装 U 盘
- 2.3 分区准备
- 3 安装过程
- 3.1 从安装 U 盘启动
- 3.2 主要安装命令
- 3.3 进入 GNOME 桌面环境
- 3.4 安装中文字体和 ibus 输入法
- 3.5 安装胖喵拼音 (可选)
- 3.6 安装别的应用软件 (可选)
- 4 流浪测试
- 4.1 小主机 (7 号) CPU r7-5825u
- 4.2 笔记本 (4 号) CPU i5-6200u
- 4.3 笔记本 (9 号) CPU r5-5625u
- 4.4 台式机 (6 号) CPU r5-5600g
- 5 总结与展望
- 附录 1 pacman 安装软件包日志
1 硬件设备
安装 ArchLinux 在小主机 (GMK M5 plus) 上进行, 具体硬件配置为: CPU AMD r7-5825u (8 核 16 线程), 内存 64GB DDR4-3200 (32GB x2).
安装目标: 1TB SSD (2.5 寸 SATA), 使用 USB 3.0 (type-C) 硬盘盒.
安装 U 盘: 普通 16GB 老旧 U 盘.
2 安装准备
在实际开始安装前, 需要做一些准备工作.
2.1 下载 ArchLinux 安装 iso 镜像
首先从官网下载安装 iso 镜像文件: https://archlinux.org/download/
这个安装 iso 每个月都会更新, 下载最新的即可.
推荐使用国内镜像, 比如: https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/2025.01.01/
下载后检查文件是否损坏: https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/2025.01.01/sha256sums.txt
74b109b4b36d20bef8f4203e30b8d223e0ab297a09d1a1213a02894472aa530a archlinux-2025.01.01-x86_64.iso
74b109b4b36d20bef8f4203e30b8d223e0ab297a09d1a1213a02894472aa530a archlinux-x86_64.iso
6e1cc58adf2afcfa1884a3d452704a63b5e2c7cd38622d32a9a20ac285dd7ffd archlinux-bootstrap-2025.01.01-x86_64.tar.zst
6e1cc58adf2afcfa1884a3d452704a63b5e2c7cd38622d32a9a20ac285dd7ffd archlinux-bootstrap-x86_64.tar.zst
执行命令:
> ls -l archlinux-2025.01.01-x86_64.iso
-rw-r--r-- 1 s2 s2 1231060992 1月25日 13:56 archlinux-2025.01.01-x86_64.iso
> sha256sum archlinux-2025.01.01-x86_64.iso
74b109b4b36d20bef8f4203e30b8d223e0ab297a09d1a1213a02894472aa530a archlinux-2025.01.01-x86_64.iso
很好, 文件数据完整.
2.2 制作安装 U 盘
需要使用下载的 iso 镜像文件, 制作一个可以启动的安装 U 盘.
警告: 此过程会删除 U 盘上的所有数据文件, 如果有重要数据请提前备份 !!
推荐使用图形界面软件 Fedora Media Writer, 可以从 flathub 安装: https://flathub.org/zh-Hans/apps/org.fedoraproject.MediaWriter
选择 U 盘以及刚才下载的 iso 文件, 点击 “写入” 开始制作.
正在写入中.
制作完成.
使用命令行也可以制作安装 U 盘, 比如:
警告: 请确保命令输入正确, 特别是选择了正确的目标设备 (of=
) ! 误操作可能造成很严重的数据丢失 !!
sudo dd if=archlinux-2025.01.01-x86_64.iso of=/dev/sdb status=progress
注意此处 /dev/sdb
是目标设备 (U 盘), 请根据具体情况修改 !! 如果输入错误, 可能造成整个分区表都没了, 丢失所有数据 !
为了避免这个风险, 建议使用上面的图形界面软件.
在 Windows 推荐使用 Rufus 制作安装 U 盘: https://rufus.ie/
2.3 分区准备
警告: 此过程可能会丢失 SSD 上的全部数据, 请提前备份重要数据 !!
提前对目标 SSD 进行分区格式化. 窝这里使用 gparted 分区好了:
这个分区方案仅供参考 ! Linux 在分区方面是非常灵活的, 有各种五花八门的玩法.
分区表: GPT
(用于 UEFI 启动) (必需)
-
分区 1 (必需): EFI 系统分区 (ESP)
容量几十 MB 即可, 格式化为 FAT32, 并设置好标识 (esp, boot). 这个分区是 UEFI 启动所必需的, 如果没有, 系统就无法启动.
-
分区 2 (可选):
/boot
分区 (启动分区)容量 1GB ~ 2GB 即可, 不需要太大. 格式化为
ext4
(推荐). 这个分区存放 grub 引导程序 (以及配置), Linux 内核镜像, initcpio (initrd) 等系统启动所必需的文件.这个分区不是必需的, 可以和前面的 esp 分区合并, 也可以和后面的 btrfs 数据分区合并, 但是窝还是喜欢把 /boot 单独拿出来.
-
分区 3 (必需): 主要数据分区 (btrfs)
剩余的容量全部分给这个分区, 格式化为
btrfs
(推荐), 并使用 subvol.窝觉得 btrfs 功能强大, 很好用, 并且已经使用好几年了. 这里窝提前创建两个 subvol, 计划分别挂载到
/
(根分区) 和/home
. subvol 使用上和分区差不多, 但是不同 subvol 占用的存储空间是统一分配的, 这样就不会遇到多个分区容量分的太大或太小的麻烦. 其中/
用来装系统, 自己的文件数据都放在/home
, 这样如果万一系统坏了, 方便修复 (虽然最近几年窝都没遇到系统损坏).
最后多说一句, 不要创建 swap 分区. swap 用于内存不够的时候, 充当虚拟内存, 这个基本用不到. 但是, swap 会缩短 SSD 的寿命 (因为有大量写入) !! 如果以后真的需要使用 swap, 在 btrfs 里面创建 swap 文件 是更好的选择.
3 安装过程
准备完毕, 可以开始安装了.
为了方便, 可以在手机上打开官方安装指导文档: https://wiki.archlinux.org/title/Installation_guide
3.1 从安装 U 盘启动
关机, 将上面制作好的安装 U 盘插到小主机, 开机, 按 ESC 键进入 BIOS 设置. (在开机时, 需要快速连续多次按 ESC 键)
设置从 U 盘启动:
保存并重启:
如果无法启动, 需要在 BIOS 设置中关闭 安全启动 (secure boot).
ArchLinux 安装启动界面.
启动中.
启动完毕, 好了, 我们来到了 root 命令行.
3.2 主要安装命令
-
(1) 验证从 UEFI 正常启动:
# cat /sys/firmware/efi/fw_platform_size 64
这里显示 64, 很好, 说明是 64 位 UEFI 平台.
-
(2) 检查网络连接是否正常, 比如:
ping www.baidu.com
这边用的有线以太网, 启动后直接就连网好了.
-
(3) 查看系统时间是否正常:
timedatectl
-
(4) 挂载分区 (这部分命令仅供参考, 请根据具体分区情况修改).
使用
fdisk -l
以及blkid
查看磁盘分区情况. 然后挂载 (根目录/
):mount /dev/sda3 /mnt -o subvol=@root_arch202501c7,compress=zstd
按照 ArchLinux 的安装方法, 安装之后系统的
/
在安装时应该挂载到/mnt
.-o subvol=
指定 subvol 的名称,compress=zstd
选项启用文件系统压缩. btrfs 对 SSD 有专门优化, 启用压缩可以减少写入, 延长 SSD 寿命.继续挂载 (
/home
):# mkdir /mnt/boot # mkdir /mnt/home # mount /dev/sda3 /mnt/home -o subvol=@home202501c7,compress=zstd,nosuid,nodev
挂载指定 subvol 到
/home
.nosuid,nodev
可以使系统更安全.继续挂载 (
/boot
,/boot/efi
):# mount /dev/sda2 /mnt/boot -o nosuid,nodev,noatime # mkdir /mnt/boot/efi # mount /dev/sda1 /mnt/boot/efi -o nosuid,nodev,noatime
将之前准备好的 ext4 分区挂载到
/boot
, ESP 分区挂载到/boot/efi
.挂载完毕, 使用
mount
命令查看当前挂载状态: -
(5) 设置软件源 (软件包仓库地址):
# reflector --verbose --country "China" -l 20 -p https --sort rate --save /etc/pacman.d/mirrorlist [2025-01-31 20:44:53] INFO: rating 9 mirror(s) by download speed [2025-01-31 20:44:53] INFO: Server Rate Time [2025-01-31 20:44:53] INFO: https://mirrors.tuna.tsinghua.edu.cn/archlinux/ 84558.85 KiB/s 0.09 s [2025-01-31 20:44:54] INFO: https://mirrors.aliyun.com/archlinux/ 8444.93 KiB/s 0.91 s [2025-01-31 20:44:55] INFO: https://mirrors.jlu.edu.cn/archlinux/ 6694.63 KiB/s 1.15 s [2025-01-31 20:44:56] INFO: https://mirrors.nju.edu.cn/archlinux/ 6682.76 KiB/s 1.16 s [2025-01-31 20:44:57] INFO: https://mirrors.xjtu.edu.cn/archlinux/ 6943.86 KiB/s 1.11 s [2025-01-31 20:44:59] INFO: https://mirrors.hust.edu.cn/archlinux/ 6544.83 KiB/s 1.18 s [2025-01-31 20:45:00] INFO: https://mirrors.shanghaitech.edu.cn/archlinux/ 6090.84 KiB/s 1.27 s [2025-01-31 20:45:02] INFO: https://mirrors.qlu.edu.cn/archlinux/ 17097.03 KiB/s 0.45 s [2025-01-31 20:45:03] INFO: https://mirrors.jxust.edu.cn/archlinux/ 7713.46 KiB/s 1.00 s # cat /etc/pacman.d/mirrorlist ################################################################################ ################# Arch Linux mirrorlist generated by Reflector ################# ################################################################################# With: reflector --verbose --country China -l 20 -p https --sort rate --save /etc/pacman.d/mirrorlist # When: 2025-01-31 12:45:03 UTC # From: https://archlinux.org/mirrors/status/json/ # Retrieved: 2025-01-31 12:44:53 UTC # Last Check: 2025-01-31 12:26:38 UTCServer = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch Server = https://mirrors.qlu.edu.cn/archlinux/$repo/os/$arch Server = https://mirrors.aliyun.com/archlinux/$repo/os/$arch Server = https://mirrors.jxust.edu.cn/archlinux/$repo/os/$arch Server = https://mirrors.xjtu.edu.cn/archlinux/$repo/os/$arch Server = https://mirrors.jlu.edu.cn/archlinux/$repo/os/$arch Server = https://mirrors.nju.edu.cn/archlinux/$repo/os/$arch Server = https://mirrors.hust.edu.cn/archlinux/$repo/os/$arch Server = https://mirrors.shanghaitech.edu.cn/archlinux/$repo/os/$arch
此处我们使用
reflector
工具, 自动选择最快的国内镜像.这个方法来自文章: (知乎的一个回答)
-
(6) 安装初始软件包:
pacstrap -K /mnt base linux linux-firmware linux-zen grub amd-ucode intel-ucode iptables-nft efibootmgr man-db man-pages
其中
base
是系统的基础软件包 (最小系统),linux
是标准内核,linux-firmware
是固件包 (让硬件正常工作),linux-zen
是一种优化内核 (目前窝用这个),grub
是引导程序 (用于系统启动),amd-ucode
是 AMD CPU 的微码更新包,intel-ucode
是 Intel CPU 的微码更新包,efibootmgr
用于管理 UEFI 启动菜单 (grub 依赖这个).执行完这条命令, 系统的软件包基本上就装好了 !
-
(7) 生成挂载配置 (fstab):
genfstab -U /mnt >> /mnt/etc/fstab
查看生成结果:
cat /mnt/etc/fstab
-
(8) 进入新系统 (arch-chroot):
arch-chroot /mnt
然后就进入了新安装的系统 !
-
(9) 补充安装软件包:
pacman -S nano sudo btrfs-progs fish reflector
nano
是一个文本编辑器,sudo
用于管理 root 权限,btrfs-progs
用于管理 btrfs 文件系统,fish
是一个 shell. -
(10) 配置系统:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
设置时区.
hwclock --systohc
同步硬件时钟.
nano /etc/locale.gen
取消注释
en_US.UTF-8
和zh_CN.UTF-8
, 保存 (Ctrl+O, Ctrl+X). 然后执行:locale-gen
nano /etc/locale.conf
编辑文件, 输入:
LANG=en_US.UTF-8
nano /etc/hostname
编辑文件, 输入主机名.
-
(11) 生成 initcpio:
mkinitcpio -P
-
(12) 安装 GRUB:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB --removable
将 GRUB 安装到 UEFI.
--removable
的作用是, 插到别的系统, 直接可以启动, 无需修复 UEFI 启动菜单.grub-mkconfig -o /boot/grub/grub.cfg
生成 GRUB 配置文件.
-
(13) 创建新用户:
useradd -m s202501c7l
此处
s202501c7l
是用户名.passwd s202501c7l
为新用户设置登录密码.
chsh -s /usr/bin/fish s202501c7l
为新用户设置 shell.
gpasswd -a s202501c7l wheel
将新用户加入
wheel
组 (管理员权限). -
(14) 配置 sudo:
EDITOR=nano visudo
取消注释
%wheel
这一行, 也就是允许 wheel 组执行任意命令.passwd -l root
禁止 root 登录.
至此, 新系统就安装配置完成了, 撒花 ~
3.3 进入 GNOME 桌面环境
慢着, 不安装图形桌面环境, 不好用呀 ?
GNU/Linux 有许多种桌面可选, 比如 GNOME, KDE. 窝使用 GNOME 好多年了, 所以继续使用 GNOME.
-
(1) 安装 GNOME 桌面:
pacman -S gnome networkmanager pipewire
然后执行:
# systemctl enable gdm # systemctl enable NetworkManager
这两句很重要, 否则桌面环境开机不会自动启动.
-
(2) 退出 chroot 环境:
exit
然后卸载
/mnt
:umount -R /mnt
关机:
poweroff
-
(3) 拔掉安装 U 盘, 开机, 按 ESC 进入 BIOS 设置.
设置从 USB SSD 启动, 保存退出.
-
(4) 启动中:
GNOME 登录界面:
成功进入桌面, 撒花 ~
3.4 安装中文字体和 ibus 输入法
打开终端, 然后:
sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-extra ibus ibus-libpinyin
刚装好系统, 只占用了大约 7GB 存储空间.
把系统设置为中文, 重启.
在这里设置中文输入法.
至此, 系统就可以正常使用了, 撒花 ~
3.5 安装胖喵拼音 (可选)
本章节为可选内容, 读者可以跳过.
-
(1) 配置 flathub 国内镜像: https://mirror.sjtu.edu.cn/docs/flathub
并安装软件: https://flathub.org/zh-Hans/apps/io.github.fm_elpac.pmim_ibus
flatpak install io.github.fm_elpac.pmim_ibus
-
(2) 安装基础开发工具:
sudo pacman -S base-devel
从 AUR 下载并解压: https://aur.archlinux.org/packages/librush-bin
打包:
makepkg
安装:
sudo pacman -U librush-bin-0.1.0-1-x86_64.pkg.tar.zst
-
(3) 下载词库并安装 (文件复制过去):
> ls -l ~/.var/app/io.github.fm_elpac.pmim_ibus/config/pmim/pmim_sys.db -r--r--r-- 1 s2 s2 17551360 1月28日 20:07 /home/s2/.var/app/io.github.fm_elpac.pmim_ibus/config/pmim/pmim_sys.db
换了新的硬件之后, 输入法快了很多, 平均响应时间只有 3 毫秒 (狗头)
3.6 安装别的应用软件 (可选)
本章节为可选内容, 读者可以跳过.
比如:
sudo pacman -S chromium gnome-tweaks git podman code gimp inkscape blender ffmpeg mediainfo mpv ddcutil read-edid kicad freecad krita elementary-icon-theme elementary-wallpapers gtk-theme-elementary sound-theme-elementary android-tools scrcpy nodejs deno wasmer ttf-droid electron intel-compute-runtime hip-runtime-amd hiprt fuse-overlayfs slirp4netns kicad-library kicad-library-3d krita-plugin-gmic intel-gpu-tools radeontop htop lsof strace iotop libva-utils vdpauinfo sndio vulkan-driver
chromium (浏览器), gnome-tweaks (GNOME 高级设置), git (版本控制系统), podman (运行容器), code (文本编辑器), gimp (图片编辑器), inkscape (矢量图 svg 编辑器), blender (3D 建模/动画), ffmpeg (多媒体文件处理), mpv (视频播放器), ddcutil (控制显示器亮度), kicad (PCB 绘制), freecad (工程 3D 建模), krita (绘图), android-tools (Android 工具), scrcpy (控制手机).
4 流浪测试
系统装好了, 接下来进行实际的流浪测试.
4.1 小主机 (7 号) CPU r7-5825u
额 … . 系统就是在这个小主机上安装的, 不需要流浪. 但是, 还有流浪回来 ?
这是正常工作 (使用) 状态的系统负载:
用命令行查看系统信息:
> uname -a
Linux SC202501C7LA 6.12.10-zen1-1-zen #1 ZEN SMP PREEMPT_DYNAMIC Sat, 18 Jan 2025 02:26:52 +0000 x86_64 GNU/Linux
> lscpu
架构: x86_64CPU 运行模式: 32-bit, 64-bitAddress sizes: 48 bits physical, 48 bits virtual字节序: Little Endian
CPU: 16在线 CPU 列表: 0-15
厂商 ID: AuthenticAMD型号名称: AMD Ryzen 7 5825U with Radeon GraphicsCPU 系列: 25型号: 80每个核的线程数: 2每个座的核数: 8座: 1步进: 0Frequency boost: 启用CPU(s) scaling MHz: 43%CPU 最大 MHz: 4546.0000CPU 最小 MHz: 400.0000BogoMIPS: 3992.42标记: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacyabm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip pku ospke vaes vpclmulqdq rdpid overflow_recovsuccor smca fsrm debug_swap
Virtualization features: 虚拟化: AMD-V
Caches (sum of all): L1d: 256 KiB (8 instances)L1i: 256 KiB (8 instances)L2: 4 MiB (8 instances)L3: 16 MiB (1 instance)
NUMA: NUMA 节点: 1NUMA 节点0 CPU: 0-15
Vulnerabilities: Gather data sampling: Not affectedItlb multihit: Not affectedL1tf: Not affectedMds: Not affectedMeltdown: Not affectedMmio stale data: Not affectedReg file data sampling: Not affectedRetbleed: Not affectedSpec rstack overflow: Mitigation; Safe RETSpec store bypass: Mitigation; Speculative Store Bypass disabled via prctlSpectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitizationSpectre v2: Mitigation; Retpolines; IBPB conditional; IBRS_FW; STIBP always-on; RSB filling; PBRSB-eIBRS Not affected; BHI Not affectedSrbds: Not affectedTsx async abort: Not affected
> free -h总计 已用 空闲 共享 缓冲/缓存 可用
内存: 62Gi 4.0Gi 55Gi 78Mi 3.7Gi 58Gi
交换: 0B 0B 0B
> df -h
文件系统 大小 已用 可用 已用% 挂载点
dev 32G 0 32G 0% /dev
run 32G 1.5M 32G 1% /run
efivarfs 128K 34K 90K 28% /sys/firmware/efi/efivars
/dev/sda3 946G 69G 876G 8% /
tmpfs 32G 18M 32G 1% /dev/shm
tmpfs 32G 4.2M 32G 1% /tmp
tmpfs 1.0M 0 1.0M 0% /run/credentials/systemd-journald.service
/dev/sda3 946G 69G 876G 8% /home
/dev/sda3 946G 69G 876G 8% /home/s202501c7l_r
/dev/sda2 7.8G 411M 7.0G 6% /boot
/dev/sda1 511M 288K 511M 1% /boot/efi
tmpfs 6.3G 3.5M 6.3G 1% /run/user/1000
4.2 笔记本 (4 号) CPU i5-6200u
这个是 10 年前的老旧笔记本, 准备淘汰.
> lscpu
架构: x86_64CPU 运行模式: 32-bit, 64-bitAddress sizes: 39 bits physical, 48 bits virtual字节序: Little Endian
CPU: 4在线 CPU 列表: 0-3
厂商 ID: GenuineIntel型号名称: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHzCPU 系列: 6型号: 78每个核的线程数: 2每个座的核数: 2座: 1步进: 3CPU(s) scaling MHz: 49%CPU 最大 MHz: 2800.0000CPU 最小 MHz: 400.0000BogoMIPS: 4800.00标记: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperfpni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadowflexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities
Virtualization features: 虚拟化: VT-x
Caches (sum of all): L1d: 64 KiB (2 instances)L1i: 64 KiB (2 instances)L2: 512 KiB (2 instances)L3: 3 MiB (1 instance)
NUMA: NUMA 节点: 1NUMA 节点0 CPU: 0-3
Vulnerabilities: Gather data sampling: Vulnerable: No microcodeItlb multihit: KVM: Mitigation: Split huge pagesL1tf: Mitigation; PTE Inversion; VMX conditional cache flushes, SMT vulnerableMds: Mitigation; Clear CPU buffers; SMT vulnerableMeltdown: Mitigation; PTIMmio stale data: Mitigation; Clear CPU buffers; SMT vulnerableReg file data sampling: Not affectedRetbleed: Mitigation; IBRSSpec rstack overflow: Not affectedSpec store bypass: Mitigation; Speculative Store Bypass disabled via prctlSpectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitizationSpectre v2: Mitigation; IBRS; IBPB conditional; STIBP conditional; RSB filling; PBRSB-eIBRS Not affected; BHI Not affectedSrbds: Mitigation; MicrocodeTsx async abort: Not affected
> free -h总计 已用 空闲 共享 缓冲/缓存 可用
内存: 15Gi 1.4Gi 13Gi 326Mi 1.3Gi 14Gi
交换: 0B 0B 0B
4.3 笔记本 (9 号) CPU r5-5625u
> lscpu
架构: x86_64CPU 运行模式: 32-bit, 64-bitAddress sizes: 48 bits physical, 48 bits virtual字节序: Little Endian
CPU: 12在线 CPU 列表: 0-11
厂商 ID: AuthenticAMD型号名称: AMD Ryzen 5 5625U with Radeon GraphicsCPU 系列: 25型号: 80每个核的线程数: 2每个座的核数: 6座: 1步进: 0Frequency boost: 启用CPU(s) scaling MHz: 46%CPU 最大 MHz: 4388.0000CPU 最小 MHz: 400.0000BogoMIPS: 4591.79标记: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacyabm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip pku ospke vaes vpclmulqdq rdpid overflow_recovsuccor smca fsrm debug_swap
Virtualization features: 虚拟化: AMD-V
Caches (sum of all): L1d: 192 KiB (6 instances)L1i: 192 KiB (6 instances)L2: 3 MiB (6 instances)L3: 16 MiB (1 instance)
NUMA: NUMA 节点: 1NUMA 节点0 CPU: 0-11
Vulnerabilities: Gather data sampling: Not affectedItlb multihit: Not affectedL1tf: Not affectedMds: Not affectedMeltdown: Not affectedMmio stale data: Not affectedReg file data sampling: Not affectedRetbleed: Not affectedSpec rstack overflow: Mitigation; Safe RETSpec store bypass: Mitigation; Speculative Store Bypass disabled via prctlSpectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitizationSpectre v2: Mitigation; Retpolines; IBPB conditional; IBRS_FW; STIBP always-on; RSB filling; PBRSB-eIBRS Not affected; BHI Not affectedSrbds: Not affectedTsx async abort: Not affected
> free -h总计 已用 空闲 共享 缓冲/缓存 可用
内存: 62Gi 1.7Gi 60Gi 19Mi 934Mi 60Gi
交换: 0B 0B 0B
4.4 台式机 (6 号) CPU r5-5600g
> lscpu
架构: x86_64CPU 运行模式: 32-bit, 64-bitAddress sizes: 48 bits physical, 48 bits virtual字节序: Little Endian
CPU: 12在线 CPU 列表: 0-11
厂商 ID: AuthenticAMD型号名称: AMD Ryzen 5 5600G with Radeon GraphicsCPU 系列: 25型号: 80每个核的线程数: 2每个座的核数: 6座: 1步进: 0Frequency boost: 启用CPU(s) scaling MHz: 66%CPU 最大 MHz: 4464.0000CPU 最小 MHz: 400.0000BogoMIPS: 7785.54标记: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip pku ospke vaes vpclmulqdq rdpid overflow_recov succor smca fsrm debug_swap
Virtualization features: 虚拟化: AMD-V
Caches (sum of all): L1d: 192 KiB (6 instances)L1i: 192 KiB (6 instances)L2: 3 MiB (6 instances)L3: 16 MiB (1 instance)
NUMA: NUMA 节点: 1NUMA 节点0 CPU: 0-11
Vulnerabilities: Gather data sampling: Not affectedItlb multihit: Not affectedL1tf: Not affectedMds: Not affectedMeltdown: Not affectedMmio stale data: Not affectedReg file data sampling: Not affectedRetbleed: Not affectedSpec rstack overflow: Mitigation; Safe RETSpec store bypass: Mitigation; Speculative Store Bypass disabled via prctlSpectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitizationSpectre v2: Mitigation; Retpolines; IBPB conditional; IBRS_FW; STIBP always-on; RSB filling; PBRSB-eIBRS Not affected; BHI Not affectedSrbds: Not affectedTsx async abort: Not affected
> free -h总计 已用 空闲 共享 缓冲/缓存 可用
内存: 27Gi 1.5Gi 24Gi 20Mi 1.3Gi 25Gi
交换: 0B 0B 0B
5 总结与展望
嗯, 流浪了一圈, 又回来了. 流浪 Linux 计划, 大成功 !! 确实可以方便的做到, 插到哪里都能启动使用.
ArchLinux 使用命令行安装比较麻烦, 但是这种麻烦基本上是一次性的, 装好系统之后, 好几年都不用重装系统. ArchLinux 从最小系统开始, 需要什么装什么, 做加法而不是减法, 所以可以获得更精简, 更干净, 更小的系统, 有更强的定制能力. 同样功能的组件 (比如内核, 引导程序, 编辑器, 桌面) 有好多种可供选择.
Linux 高度灵活, 可定制, 所以可以很容易的安装到外置 USB SSD 上, 到处流浪. Linux 系统对资源的消耗较少, 不需要很高的硬件性能, 在老旧的硬件上也能流畅运行, 降低了成本, 对穷人友好.
安装到内置 (SATA / M.2 NVMe) SSD 上的过程, 和这个差不多, 只是流浪不太方便.
附录 1 pacman 安装软件包日志
这是新安装的 ArchLinux 系统使用 pacman 安装软件包的日志, 仅供参考.
> cat /var/log/pacman.log | grep "PACMAN\] Running"省略部分结果[PACMAN] Running 'pacman -r /mnt -Sy --config=/tmp/pacman.conf.nSDu --disable-sandbox --cachedir=/mnt/var/cache/pacman/pkg --noconfirm base linux linux-firmware linux-zen grub nano sudo fish btrfs-progs amd-ucode intel-ucode man-db man-pages'[PACMAN] Running 'pacman -S iptables-nft'[PACMAN] Running 'pacman -S efibootmgr'[PACMAN] Running 'pacman -S pacman-mirrorlist'[PACMAN] Running 'pacman -S gnome'[PACMAN] Running 'pacman -S networkmanager'[PACMAN] Running 'pacman -S flatpak chromium electron nodejs deno code git'[PACMAN] Running 'pacman -S noto-fonts noto-fonts-cjk noto-fonts-extra'[PACMAN] Running 'pacman -S gimp inkscape blender ffmpeg mediainfo mpv podman kicad freecad'[PACMAN] Running 'pacman -S intel-compute-runtime hip-runtime-amd hiprt fuse-overlayfs slirp4netns kicad-library kicad-library-3d'[PACMAN] Running 'pacman -S ibus ibus-libpinyin'[PACMAN] Running 'pacman -S gnome-tweaks'[PACMAN] Running 'pacman -S ddcutil'[PACMAN] Running 'pacman -S read-edid'[PACMAN] Running 'pacman -S elementary-icon-theme elementary-wallpapers gtk-theme-elementary sound-theme-elementary'[PACMAN] Running 'pacman -S krita krita-plugin-gmic'[PACMAN] Running 'pacman -S android-tools scrcpy ttf-droid'[PACMAN] Running 'pacman -S wasmer'[PACMAN] Running 'pacman -S reflector'[PACMAN] Running 'pacman -S base-devel'[PACMAN] Running 'pacman -S intel-gpu-tools'[PACMAN] Running 'pacman -S radeontop'[PACMAN] Running 'pacman -S htop'[PACMAN] Running 'pacman -S lsof strace'[PACMAN] Running 'pacman -S iotop'[PACMAN] Running 'pacman -S libva-utils'[PACMAN] Running 'pacman -S vdpauinfo'[PACMAN] Running 'pacman -S sndio vulkan-driver'[PACMAN] Running '/usr/bin/pacman -U /home/s2/aur/librush-bin/librush-bin-0.1.0-1-x86_64.pkg.tar.zst'
目前一共安装了 1018 个软件包:
> pacman -Q | wc -l
1018
本文使用 CC-BY-SA 4.0 许可发布.
相关文章:
流浪 Linux: 外置 USB SSD 安装 ArchLinux
注: ArchLinux 系统为滚动更新, 变化很快, 所以本文中的安装方法可能很快就过时了, 仅供参考. 实际安装时建议去阅读官方文档. 最近, 突然 (也没有那么突然) 有了一大堆 PC: 4 个笔记本, 2 个台式主机 (M-ATX 主板), 1 个小主机 (迷你主机). 嗯, 多到用不过来. 但是, 窝又不能…...
开启 AI 学习之旅:从入门到精通
最近 AI 真的超火,不管是工作还是生活里,到处都能看到它的身影。好多小伙伴都跑来问我,到底该怎么学 AI 呢?今天我就把自己学习 AI 的经验和心得分享出来,希望能帮到想踏入 AI 领域的朋友们! 一、学习内容有哪些 (一)编程语言 Python 绝对是首选!它在 AI 领域的生态…...
笔记:使用ST-LINK烧录STM32程序怎么样最方便?
一般板子在插件上, 8脚 3.3V;9脚 CLK;10脚 DIO;4脚GND ST_Link 19脚 3.3V;9脚 CLK;7脚 DIO;20脚 GND 烧录软件:ST-LINK Utility,Keil_5; ST_Link 接口针脚定义: 按定义连接ST_Link与电路板; 打开STM32 ST-LINK Uti…...
开发环境搭建-4:WSL 配置 docker 运行环境
在 WSL 环境中构建:WSL2 (2.3.26.0) Oracle Linux 8.7 官方镜像 基本概念说明 容器技术 利用 Linux 系统的 文件系统(UnionFS)、命名空间(namespace)、权限管理(cgroup),虚拟出一…...
925.长按键入
目录 一、题目二、思路三、解法四、收获 一、题目 你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。 你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字&am…...
【数据采集】案例01:基于Scrapy采集豆瓣电影Top250的详细数据
基于Scrapy采集豆瓣电影Top250的详细数据 Scrapy 官方文档:https://docs.scrapy.org/en/latest/豆瓣电影Top250官网:https://movie.douban.com/top250写在前面 实验目的:基于Scrapy框架采集豆瓣电影Top250的详细数据。 电脑系统:Windows 使用软件:PyCharm、Navicat Python…...
doris:主键模型的导入更新
这篇文档主要介绍 Doris 主键模型基于导入的更新。 整行更新 使用 Doris 支持的 Stream Load、Broker Load、Routine Load、Insert Into 等导入方式,向主键模型(Unique 模型)导入数据时,如果没有相应主键的数据行,…...
日志2025.2.1
日志2025.2.1 1.做了敌人状态机 public class EnermyStateMachine { public EnermyState currentState { get; private set; } public void InitializeState(EnermyState startState) { currentState startState; currentState.Enter(); } public void Change…...
RK3568使用QT操作LED灯
文章目录 一、QT中操作硬件设备思路Linux 中的设备文件操作硬件设备的思路1. 打开设备文件2. 写入数据到设备3. 从设备读取数据4. 设备控制5. 异常处理在 Qt 中操作设备的典型步骤实际应用中的例子:控制 LED总结二、QT实战操作LED灯设备1. `mainwindow.h` 头文件2. `mainwindo…...
Rank-analysis-1.2——一款基于LCU API的排位分析工具,大四学生独立开发
LOL Rank Record Analysis:一款基于LCU API的排位分析工具,大四学生独立开发! 大家好!我是河南科技学院的大四学生,今天给大家分享一个我自己开发的软件——LOL Rank Record Analysis。这是一个基于 Riot 提供的 LCU …...
关于系统重构实践的一些思考与总结
文章目录 一、前言二、系统重构的范式1.明确目标和背景2.兼容屏蔽对上层的影响3.设计灰度迁移方案3.1 灰度策略3.2 灰度过程设计3.2.1 case1 业务逻辑变更3.2.2 case2 底层数据变更(数据平滑迁移)3.2.3 case3 在途新旧流程兼容3.2.4 case4 接口变更3.2.5…...
代码随想录-训练营-day17
235. 二叉搜索树的最近公共祖先 - 力扣(LeetCode) /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/class S…...
C++,STL,【目录篇】
文章目录 一、简介二、内容提纲第一部分:STL 概述第二部分:STL 容器第三部分:STL 迭代器第四部分:STL 算法第五部分:STL 函数对象第六部分:STL 高级主题第七部分:STL 实战应用 三、写作风格四、…...
《数据可视化新高度:Graphy的AI协作变革》
在数据洪流奔涌的时代,企业面临的挑战不再仅仅是数据的收集,更在于如何高效地将数据转化为洞察,助力决策。Graphy作为一款前沿的数据可视化工具,凭借AI赋能的团队协作功能,为企业打开了数据协作新局面,重新…...
abc 390 D(暴搜 复杂度用 bell数 证明 n 的集合的划分方法的数目)
D题意: 将 长度为 N 的数组 划分为集合 有多少种不同的 异或和 这道题做出来和bell 数没什么关系,如果要证明复杂度那么就需要bell 数 #include <bits/stdc.h> using namespace std; typedef pair<int, int> PII; #define int long long i…...
AJAX综合案例——图书管理
黑马程序员视频地址: AJAX-Day02-10.案例_图书管理AJAX-Day02-10.案例_图书管理_总结_V1.0是黑马程序员前端AJAX入门到实战全套教程,包含学前端框架必会的(ajaxnode.jswebpackgit),一套全覆盖的第25集视频,…...
计算机网络 笔记 网络层 3
IPv6 IPv6 是互联网协议第 6 版(Internet Protocol Version 6)的缩写,它是下一代互联网协议,旨在解决 IPv4 面临的一些问题,以下是关于 IPv6 的详细介绍: 产生背景: 随着互联网的迅速发展&…...
Web服务器启动难题:Spring Boot框架下的异常处理解析
摘要 在尝试启动Web服务器时遇到了无法启动的问题,具体错误为org.springframework.boot.web.server.WebServerException。这一异常表明Spring Boot框架在初始化Web服务器过程中出现了故障。通常此类问题源于配置文件错误、端口冲突或依赖项缺失等。排查时应首先检查…...
在LINUX上安装英伟达CUDA Toolkit
下载安装包 wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda-repo-rhel8-12-8-local-12.8.0_570.86.10-1.x86_64.rpm 安装RPM包 sudo rpm -i cuda-repo-rhel8-12-8-local-12.8.0_570.86.10-1.x86_64.rpm sudo dnf clean all sudo dnf…...
计算机视觉和图像处理
计算机视觉与图像处理的最新进展 随着人工智能技术的飞速发展,计算机视觉和图像处理作为其中的重要分支,正逐步成为推动科技进步和产业升级的关键力量。 一、计算机视觉的最新进展 计算机视觉,作为人工智能的重要分支,主要研究如…...
Spring Boot 日志:项目的“行车记录仪”
一、什么是Spring Boot日志 (一)日志引入 在正式介绍日志之前,我们先来看看上篇文章中(Spring Boot 配置文件)中的验证码功能的一个代码片段: 这是一段校验用户输入的验证码是否正确的后端代码,…...
ComfyUI中For Loop的使用
研究了半天,终于弄明白了如何使用For Loop。 1、在For中节点,必须有输出连接到For Loop End的initial_value点,才能确保节点执行完毕后才 进入下一轮循环,否则,可能导致节点没执行完,就进入下一个循环了。…...
网站快速收录:利用网站导航优化用户体验
本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/44.html 网站快速收录与用户体验的提升密切相关,而网站导航作为用户访问网站的“指南针”,其优化对于实现这一目标至关重要。以下是一些利用网站导航优化用户体验&am…...
FLTK - FLTK1.4.1 - 搭建模板,将FLTK自带的实现搬过来做实验
文章目录 FLTK - FLTK1.4.1 - 搭建模板,将FLTK自带的实现搬过来做实验概述笔记my_fltk_test.cppfltk_test.hfltk_test.cxx用adjuster工程试了一下,好使。END FLTK - FLTK1.4.1 - 搭建模板,将FLTK自带的实现搬过来做实验 概述 用fluid搭建UI…...
c#aot做跨平台动态库
c#aot技术,很多人都觉得是垃圾,没有用,其实还是很有用的。.net发展这么多年,有很多很好的功能,你可以把这些功能做成动态库供rust调用,供c/c调用。你还真别看不起这些功能,当你需要,…...
使用Pygame制作“打砖块”游戏
1. 前言 打砖块(Breakout / Arkanoid) 是一款经典街机游戏,玩家控制一个可左右移动的挡板,接住并反弹球,击碎屏幕上方的砖块。随着砖块被击碎,不仅能获得分数,还可以体验到不断加速或复杂的反弹…...
Autosar-以太网是怎么运行的?(原理部分)
写在前面: 入行一段时间了,基于个人理解整理一些东西,如有错误,欢迎各位大佬评论区指正!!! 1.TCP/IP协议详解 TCP/IP协议包含了一系列的协议,也叫TCP/IP协议族(TCP/IP P…...
小程序-基础加强-自定义组件
前言 这次讲自定义组件 1. 准备今天要用到的项目 2. 初步创建并使用自定义组件 这样就成功在home中引入了test组件 在json中引用了这个组件才能用这个组件 现在我们来实现全局引用组件 在app.json这样使用就可以了 3. 自定义组件的样式 发现页面里面的文本和组件里面的文…...
线程池以及在QT中的接口使用
文章目录 前言线程池架构组成**一、任务队列(Task Queue)****二、工作线程组(Worker Threads)****三、管理者线程(Manager Thread)** 系统协作流程图解 一、QRunnable二、QThreadPool三、线程池的应用场景W…...
Cubemx文件系统挂载多设备
cubumx版本:6.13.0 芯片:STM32F407VET6 在上一篇文章中介绍了Cubemx的FATFS和SD卡的配置,由于SD卡使用的是SDIO通讯,因此具体驱动不需要自己实现,Cubemx中就可以直接配置然后生成SDIO的驱动,并将SD卡驱动和…...
NeetCode刷题第19天(2025.1.31)
文章目录 099 Maximum Product Subarray 最大乘积子数组100 Word Break 断字101 Longest Increasing Subsequence 最长递增的子序列102 Maximum Product Subarray 最大乘积子数组103 Partition Equal Subset Sum 分区等于子集和104 Unique Paths 唯一路径105 Longest Common Su…...
网站快速收录:如何设置robots.txt文件?
本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/34.html 为了网站快速收录而合理设置robots.txt文件,需要遵循一定的规则和最佳实践。robots.txt文件是一个纯文本文件,它告诉搜索引擎爬虫哪些页面可以访问ÿ…...
(超实用教程)利用MSF制作exe程序木马
msfvenom 是攻击载荷(payload)生成器 格式: msfvenom -p windows/meterpreter/reverse_tcp LHOST192.168.110.32 LPORT4456 -f exe -o payload1.exe -p:指定需要使用的payload -f:指定输出格式 -o:保…...
Spring Boot + Facade Pattern : 通过统一接口简化多模块业务
文章目录 Pre概述在编程中,外观模式是如何工作的?外观设计模式 UML 类图外观类和子系统的关系优点案例外观模式在复杂业务中的应用实战运用1. 项目搭建与基础配置2. 构建子系统组件航班服务酒店服务旅游套餐服务 3. 创建外观类4. 在 Controller 中使用外…...
4 [危机13小时追踪一场GitHub投毒事件]
事件概要 自北京时间 2024.12.4 晚间6点起, GitHub 上不断出现“幽灵仓库”,仓库中没有任何代码,只有诱导性的病毒文件。当天,他们成为了 GitHub 上 star 增速最快的仓库。超过 180 个虚假僵尸账户正在传播病毒,等待不…...
Java基础——分层解耦——IOC和DI入门
目录 三层架构 Controller Service Dao 编辑 调用过程 面向接口编程 分层解耦 耦合 内聚 软件设计原则 控制反转 依赖注入 Bean对象 如何将类产生的对象交给IOC容器管理? 容器怎样才能提供依赖的bean对象呢? 三层架构 Controller 控制…...
10 Flink CDC
10 Flink CDC 1. CDC是什么2. CDC 的种类3. 传统CDC与Flink CDC对比4. Flink-CDC 案例5. Flink SQL 方式的案例 1. CDC是什么 CDC 是 Change Data Capture(变更数据获取)的简称。核心思想是,监测并捕获数据库的变动(包括数据或数…...
F. Greetings
题目链接:Problem - F - Codeforces 题目大意:给你n个线段, 求有多少对(两个)线段满足完全覆盖, 例如: 设一个线段有a,b两点, 满足 ai < aj < bj < bi (i,j为每个线段的下…...
深度学习练手小例子——cifar10数据集分类问题
CIFAR-10 是一个经典的计算机视觉数据集,广泛用于图像分类任务。它包含 10 个类别的 60,000 张彩色图像,每张图像的大小是 32x32 像素。数据集被分为 50,000 张训练图像和 10,000 张测试图像。每个类别包含 6,000 张图像,具体类别包括&#x…...
Sqoop源码修改:增加落地HDFS文件数与MapTask数量一致性检查
个人博客地址:Sqoop源码修改:增加落地HDFS文件数与MapTask数量一致性检查 | 一张假钞的真实世界 本篇是对记录一次Sqoop从MySQL导入数据到Hive问题的排查经过的补充。 Sqoop 命令通过 bin 下面的脚本调用,调用如下: exec ${HAD…...
FastAPI + GraphQL + SQLAlchemy 实现博客系统
本文将详细介绍如何使用 FastAPI、GraphQL(Strawberry)和 SQLAlchemy 实现一个带有认证功能的博客系统。 技术栈 FastAPI:高性能的 Python Web 框架Strawberry:Python GraphQL 库SQLAlchemy:Python ORM 框架JWT&…...
AI编程:如何编写提示词
这是小卷对AI编程工具学习的第2篇文章,今天讲讲如何编写AI编程的提示词,并结合实际功能需求案例来进行开发 1.编写提示词的技巧 好的提示词应该是:目标清晰明确,具有针对性,能引导模型理解问题 下面是两条提示词的对…...
【LLM-agent】(task5)构建哲学家多智能体
note 通过编排动作设置哲学家智能体的"示例任务",目的是让 Agent 更好地理解如何回答问题。主要包括设置示例问题、定义思考过程、应用到所有哲学家。建立了一个"先思考,后总结"的回答模式,这种方式相当于给AI提供了一个…...
31. 下一个排列
参考题解:https://leetcode.cn/problems/next-permutation/solutions/80560/xia-yi-ge-pai-lie-suan-fa-xiang-jie-si-lu-tui-dao- 找到下一个排列,即找到下一个大于当前数的更大的数。 当没有比当前更大的数的时候,那么就返回最小的数&…...
牛客周赛 Round 78
题目目录 A-时间表查询!解题思路参考代码 B-一起做很甜的梦!解题思路参考代码 C-翻之解题思路参考代码 D-乘之解题思路参考代码 E-在树上游玩解题思路参考代码 A-时间表查询! \hspace{15pt} 今天是2025年1月25日,今年的六场牛客寒…...
100.1 AI量化面试题:解释夏普比率(Sharpe Ratio)的计算方法及其在投资组合管理中的应用,并说明其局限性
目录 0. 承前1. 夏普比率的基本概念1.1 定义与计算方法1.2 实际计算示例 2. 在投资组合管理中的应用2.1 投资组合选择2.2 投资组合优化 3. 夏普比率的局限性3.1 统计假设的限制3.2 实践中的问题 4. 改进方案4.1 替代指标4.2 实践建议 5. 回答话术 0. 承前 如果想更加全面清晰地…...
jEasyUI 转换 HTML 表格为数据网格
jEasyUI 转换 HTML 表格为数据网格 引言 随着互联网技术的飞速发展,前端框架和库的应用越来越广泛。jEasyUI 是一款功能强大的 jQuery UI 扩展库,它提供了丰富的 UI 组件,其中数据网格(DataGrid)是 jEasyUI 中一个非常重要的组件。本文将详细介绍如何使用 jEasyUI 将一个…...
好用的翻译工具
最近看到个好用的翻译工具,叫沉浸式翻译 沉浸式翻译 - 双语对照网页翻译插件 | PDF翻译 | 视频字幕翻译 我下载的是谷歌插件 点击下载插件会跳转到使用文档,跟着一步步操作即可 翻译的效果,我这里用的是免费版的,如果需要加强&…...
Selenium 使用指南:从入门到精通
Selenium 使用指南:从入门到精通 Selenium 是一个用于自动化 Web 浏览器操作的强大工具,广泛应用于自动化测试和 Web 数据爬取中。本文将带你从入门到精通地掌握 Selenium,涵盖其基本操作、常用用法以及一个完整的图片爬取示例。 1. 环境配…...
字节iOS面试经验分享:HTTP与网络编程
字节iOS面试经验分享:HTTP与网络编程 🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 目录 字节iOS面试经验分享:HTT…...