安装 Fedora CoreOS 操作系统

首发日期 2024-06-16, 以下为原文内容:


有一台吃灰几年的 e5-26v3 古老机器, 最近翻出来用一下. 首先从安装操作系统开始.

目录

  • 1 FCOS 简介
  • 2 安装过程
    • 2.1 下载 iso 镜像文件并制作安装 U 盘
    • 2.2 编写安装配置文件
    • 2.3 编译安装配置文件
    • 2.4 从 U 盘启动并安装
  • 3 SSH 连接并测试
  • 4 总结与展望

1 FCOS 简介

Fedora CoreOS (简称 fcos) 是一个适用于服务器的 GNU/Linux 操作系统.

fcos 是一个基于 rpm-ostree 的不可变发行版本, 整个系统是一个只读镜像. 不同于大部分 GNU/Linux 的软件包管理方式, fcos 的基础系统镜像作为一个整体进行安装/测试/升级.

fcos 系统镜像很小, iso 安装文件不到 1GB. 系统干净, 安装的软件少, 可以减少潜在的未知安全漏洞数量, 减小攻击面, 提高安全性.

fcos 系统的安装非常简单方便, 只需一条命令 (类似于一键安装) ! 系统升级是全自动的, 经常升级系统有助于对抗已知安全漏洞攻击.

fcos 不建议使用传统的软件包 (RPM) 方式安装软件, 推荐使用容器 (podman) 运行负载应用.

参考资料:

  • https://fedoraproject.org/coreos/
  • https://coreos.github.io/rpm-ostree/

2 安装过程

2.1 下载 iso 镜像文件并制作安装 U 盘

下载地址: https://fedoraproject.org/coreos/download

在这里插入图片描述

在这里插入图片描述

下载 Live DVD, 下载之后:

> ls -lh fedora-coreos-40.20240519.3.0-live.x86_64.iso
-r--r--r-- 1 s2 s2 813M  6月15日 12:09 fedora-coreos-40.20240519.3.0-live.x86_64.iso

安装 Fedora Media Writer: https://flathub.org/zh-Hans/apps/org.fedoraproject.MediaWriter

准备一个总容量不小于 2GB 的 U 盘.

注意: 制作过程会删除 U 盘上的全部数据文件, 请提前备份重要数据 !!

在这里插入图片描述

选择下载好的 iso 镜像文件, 以及 U 盘, 点击 写入 开始制作.

2.2 编写安装配置文件

首先, 需要编写一个 fcos 安装配置文件, 比如 fc-server.bu (YAML 格式):

variant: fcos
version: 1.5.0
passwd:users:- name: coressh_authorized_keys:- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICHaotVMdOfQrHe4bEYtjAuzQr3LdIqYlDu0sgcKLXHD fc-server-202406
storage:files:- path: /etc/zincati/config.d/55-updates-strategy.tomlcontents:inline: |[updates]strategy = "periodic"[[updates.periodic.window]]days = [ "Tue", "Thu", "Sun" ]start_time = "03:00"length_minutes = 120
  • (1) 生成 SSH 密钥, 比如:

    ssh-keygen -t ed25519 -C fc-server-202406 -f ~/.ssh/id_ed25519-fc-server-202406
    

    其中 -t 指定密钥格式 (公钥算法), -C 指定注释, -f 指定私钥存储路径.

    生成的公钥:

    > cat ~/.ssh/id_ed25519-fc-server-202406.pub
    ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICHaotVMdOfQrHe4bEYtjAuzQr3LdIqYlDu0sgcKLXHD fc-server-202406
    

    注意以 .pub 结尾的是 公钥, 另一个文件是私钥.

    请注意保管私钥文件, 千万不要泄露 !


    fcos 系统直接使用 SSH 公钥登录 (认证), 完全不使用落后的用户名/密码方式, 可以显著提高安全性.

  • (2) 自动更新的重启时间窗口配置 (可选).

    对应配置文件: /etc/zincati/config.d/55-updates-strategy.toml

    [updates]
    strategy = "periodic"
    [[updates.periodic.window]]
    days = [ "Tue", "Thu", "Sun" ]
    start_time = "03:00"
    length_minutes = 120
    

    此处配置的重启时间窗口是: 周二, 周四, 周日, 北京时间 11:00 ~ 13:00 (UTC+0800, CST).

    需要注意配置文件中写的是协调世界时 (UTC), 需要换算时区.

    服务器只有在时间窗口内才会重启, 这样可以避免在不确定的时间突然重启. (默认自动更新配置是下载更新后立即重启)


参考资料:

  • https://docs.fedoraproject.org/en-US/fedora-coreos/producing-ign/
  • https://docs.fedoraproject.org/en-US/fedora-coreos/auto-updates/
  • https://coreos.github.io/zincati/usage/updates-strategy/

2.3 编译安装配置文件

有多种具体的方式, 此处介绍的是窝觉得比较方便的一种.

  • (1) 安装 toolbox: https://containertoolbx.org/

    > toolbox --version
    toolbox version 0.0.99.5
    
  • (2) 创建 fedora 容器:

    > toolbox create -d fedora -r 40
    Image required to create toolbox container.
    Download registry.fedoraproject.org/fedora-toolbox:40? [y/N]: y
    Created container: fedora-toolbox-40
    Enter with: toolbox enter fedora-toolbox-40
    > toolbox list
    IMAGE ID      IMAGE NAME                                    CREATED
    2e494d43af40  registry.fedoraproject.org/fedora-toolbox:40  22 hours agoCONTAINER ID  CONTAINER NAME        CREATED         STATUS   IMAGE NAME
    671f941552d5  fedora-toolbox-40     17 seconds ago  created  registry.fedoraproject.org/fedora-toolbox:40
    
  • (3) 安装 butane 工具:

    > toolbox enter fedora-toolbox-40
    ⬢[s2@toolbox ~]$ sudo dnf install -y butane
    

    版本信息:

    [s2@toolbox ~]$ butane --version
    Butane 0.20.0
    
  • (4) 进行编译:

    [s2@toolbox ~]$ butane --pretty --strict fc-server.bu > fc-server.ign
    

    生成文件:

    > cat fc-server.ign
    {"ignition": {"version": "3.4.0"},"passwd": {"users": [{"name": "core","sshAuthorizedKeys": ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICHaotVMdOfQrHe4bEYtjAuzQr3LdIqYlDu0sgcKLXHD fc-server-202406"]}]},"storage": {"files": [{"path": "/etc/zincati/config.d/55-updates-strategy.toml","contents": {"compression": "","source": "data:;base64,W3VwZGF0ZXNdCnN0cmF0ZWd5ID0gInBlcmlvZGljIgpbW3VwZGF0ZXMucGVyaW9kaWMud2luZG93XV0KZGF5cyA9IFsgIlR1ZSIsICJUaHUiLCAiU3VuIiBdCnN0YXJ0X3RpbWUgPSAiMDM6MDAiCmxlbmd0aF9taW51dGVzID0gMTIwCg=="}}]}
    }
    

2.4 从 U 盘启动并安装

注意: 安装系统会删除整个目标硬盘 (包括所有分区) 上的所有数据, 请提前备份重要文件 !!

注意: 安装系统会删除整个目标硬盘 (包括所有分区) 上的所有数据, 请提前备份重要文件 !!

注意: 安装系统会删除整个目标硬盘 (包括所有分区) 上的所有数据, 请提前备份重要文件 !!

  • (1) 将上面制作好的安装 U 盘插在目标机器上, 然后从 U 盘启动. 可能需要修改主板的 BIOS (UEFI) 启动设置.

    启动之后, 查看硬盘设备:

    $ sudo fdisk -l
    Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
    Disk model: KINGBANK KP230                          
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: gpt
    

    这里计划安装到 M.2 SSD 设备上, 名称 /dev/nvme0n1.

  • (2) 下载上面编译好的 fc-server.ign 文件:

    $ curl -O http://192.168.31.12:4507/fc-server.ign% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
    100   678  100   678    0     0  29652      0 --:--:-- --:--:-- --:--:-- 30818
    $ ls -l fc-server.ign
    -rw-r--r--. 1 core core 678 Jun 15 06:40 fc-server.ign
    
  • (3) 执行安装 ! (只需一条命令)

    sudo coreos-installer install /dev/nvme0n1 -i fc-server.ign
    

    安装很快完成, 然后重启:

    reboot
    

    记得拔掉安装 U 盘, 从新系统启动.

参考资料: https://docs.fedoraproject.org/en-US/fedora-coreos/bare-metal/

3 SSH 连接并测试

本机 SSH 配置 (从这里发起 SSH 连接):

> cat ~/.ssh/config
Host fc-serverHostName 192.168.31.2User coreIdentityFile ~/.ssh/id_ed25519-fc-server-202406

其中 HostName 填写服务器的 IP 地址, IdentityFile 是自己的私钥文件.

然后连接服务器, 并查看系统版本:

> ssh fc-server
Fedora CoreOS 40.20240519.3.0
Tracker: https://github.com/coreos/fedora-coreos-tracker
Discuss: https://discussion.fedoraproject.org/tag/coreosLast login: Sat Jun 15 06:20:26 2024 from 192.168.31.12
core@MiWiFi-RA74-srv:~$ rpm-ostree status
State: idle
AutomaticUpdatesDriver: ZincatiDriverState: active; periodically polling for updates (last checked Sat 2024-06-15 06:16:27 UTC)
Deployments:
● fedora:fedora/x86_64/coreos/stableVersion: 40.20240519.3.0 (2024-06-04T23:21:15Z)Commit: 724ce262d4a27f6b7cb1508e8737e2244d69bb78509d2749cebd7972042bf814GPGSignature: Valid signature by 115DF9AEF857853EE8445D0A0727707EA15B79CC
core@MiWiFi-RA74-srv:~$ 

一些基础的系统信息:

core@MiWiFi-RA74-srv:~$ id
uid=1000(core) gid=1000(core) groups=1000(core),4(adm),10(wheel),16(sudo),190(systemd-journal) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
core@MiWiFi-RA74-srv:~$ pwd
/var/home/core
core@MiWiFi-RA74-srv:~$ uname -a
Linux MiWiFi-RA74-srv 6.8.9-300.fc40.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May  2 18:59:06 UTC 2024 x86_64 GNU/Linux
core@MiWiFi-RA74-srv:~$ getenforce
Enforcing
core@MiWiFi-RA74-srv:~$ free -htotal        used        free      shared  buff/cache   available
Mem:            31Gi       704Mi        30Gi       9.3Mi       196Mi        30Gi
Swap:             0B          0B          0B
core@MiWiFi-RA74-srv:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p4  477G   11G  466G   3% /sysroot
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs            16G     0   16G   0% /dev/shm
efivarfs        120K   83K   33K  72% /sys/firmware/efi/efivars
tmpfs           6.3G  9.3M  6.3G   1% /run
tmpfs            16G     0   16G   0% /tmp
/dev/nvme0n1p3  350M  112M  216M  35% /boot
tmpfs           3.2G  4.0K  3.2G   1% /run/user/1000
core@MiWiFi-RA74-srv:~$ 

CPU 信息:

core@MiWiFi-RA74-srv:~$ lscpu
Architecture:             x86_64CPU op-mode(s):         32-bit, 64-bitAddress sizes:          46 bits physical, 48 bits virtualByte Order:             Little Endian
CPU(s):                   20On-line CPU(s) list:    0-9Off-line CPU(s) list:   10-19
Vendor ID:                GenuineIntelModel name:             Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHzCPU family:           6Model:                63Thread(s) per core:   1Core(s) per socket:   10Socket(s):            1Stepping:             2CPU(s) scaling MHz:   47%CPU max MHz:          3000.0000CPU min MHz:          0.0000BogoMIPS:             4589.41Flags:                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 arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm cpuid_fault epb pti intel_ppin ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2smep bmi2 erms invpcid cqm xsaveopt cqm_llc cqm_occup_llc dtherm ida arat pln pts vnmi md_clear flush_l1d
Virtualization features:  Virtualization:         VT-x
Caches (sum of all):      L1d:                    320 KiB (10 instances)L1i:                    320 KiB (10 instances)L2:                     2.5 MiB (10 instances)L3:                     25 MiB (1 instance)
NUMA:                     NUMA node(s):           1NUMA node0 CPU(s):      0-9
Vulnerabilities:          Gather data sampling:   Not affectedItlb multihit:          KVM: Mitigation: VMX disabledL1tf:                   Mitigation; PTE Inversion; VMX conditional cache flushes, SMT disabledMds:                    Mitigation; Clear CPU buffers; SMT disabledMeltdown:               Mitigation; PTIMmio stale data:        Mitigation; Clear CPU buffers; SMT disabledReg file data sampling: Not affectedRetbleed:               Not affectedSpec rstack overflow:   Not affectedSpec 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; RSBfilling; PBRSB-eIBRS Not affected; BHI Not affectedSrbds:                  Not affectedTsx async abort:        Not affected
core@MiWiFi-RA74-srv:~$ 

运行容器应用 (podman):

相关文章: 《构建 deno/fresh 的 docker 镜像》 https://blog.csdn.net/secext2022/article/details/139649084

加载容器镜像:

core@MiWiFi-RA74-srv:~$ ls -lh my-app.tar.zst
-rw-r--r--. 1 core core 77M Jun 15 07:22 my-app.tar.zst
core@MiWiFi-RA74-srv:~$ podman load < my-app.tar.zst 
Getting image source signatures
Copying blob 90ec6ab34ce0 done   | 
Copying blob a62d4638ad90 done   | 
Copying blob 31e29b5ab918 done   | 
Copying blob c83c49512daf done   | 
Copying blob ff9964444958 done   | 
Copying blob 6389ca351a5d done   | 
Copying blob 2ca6496c9f8b done   | 
Copying config 83173f90cc done   | 
Writing manifest to image destination
Loaded image: docker.io/library/my-app:latest
core@MiWiFi-RA74-srv:~$ podman images
REPOSITORY                TAG         IMAGE ID      CREATED     SIZE
docker.io/library/my-app  latest      83173f90cca5  2 days ago  238 MB
core@MiWiFi-RA74-srv:~$ 

运行容器:

core@MiWiFi-RA74-srv:~$ podman run -it -p 8000:8000 my-app
Using snapshot found at /app/_fresh🍋 Fresh ready  Local: http://localhost:8000/

在这里插入图片描述

参考资料: https://podman.io/docs

4 总结与展望

fcos 是一个干净 (小) 且安全的服务器操作系统, 安装非常简单只需一条命令, 自动更新. fcos 推荐使用容器 (podman) 运行应用.

安装之前的准备工作有: 下载 iso 镜像 (只有 813MB), 制作安装 U 盘, 编写/编译安装配置文件 (.ign). 需要生成自己的 SSH 密钥 (用于连接/登录服务器), 注意配置自动更新的重启时间窗口, 避免服务器突然重启.

刚装好的 (空的) 系统大约占用 800MB 内存和 12GB 硬盘空间, 对硬件配置性能的要求不高.

有了服务器, 未来就可以部署各种基于服务器的应用啦.


本文使用 CC-BY-SA 4.0 许可发布.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/30013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

直播平台美颜技术分析:视频美颜SDK功能实现原理

本篇文章&#xff0c;笔者将深入分析视频美颜SDK的功能实现原理&#xff0c;探讨其在直播平台中的应用。 一、视频美颜技术概述 通过这些功能&#xff0c;用户可以在直播过程中呈现更加理想的自己&#xff0c;从而提高观众的观看体验和互动积极性。 二、视频美颜SDK的功能 1…

不“卷”低价,品牌如何让客户愿意“留下”?

天猫取消预售制度&#xff0c;满减力度大于往年&#xff0c;京东直接将“又便宜又好”定为大促主题。今年的618&#xff0c;离不开两大关键词&#xff1a;拼低价 和 回归用户。 价格“内卷”&#xff0c;消费者可以花更少的钱买到商品&#xff0c;但对商家来说&#xff0c;意味…

6月19日(周三)A股行情总结:A股震荡收跌,恒生科技指数大涨3%,10年期国债期货转涨续创新高

内容提要 车路云概念延续昨日涨势&#xff0c;华铭智能20CM 3连板。贵金属及PEEK材料概念全日走强&#xff1b;港股有色金属及能源股走强&#xff0c;紫金矿业涨超3%&#xff0c;中石油涨超3%。国债期货午后全线转涨&#xff0c;10年期主力合约涨0.05%报104.925元&#xff0c;…

6.17继承

面向对象的特征&#xff1a;封装&#xff0c;继承&#xff0c;多态 使用背景&#xff1a;比如说在动物类底下可以有带毛的动物&#xff0c;带毛的动物符合所有的动物的特征&#xff0c;只是在这个基础上再继续添加一些特征 命名&#xff1a;原有类型称为“基类”或“父类”&a…

计算机网络(1) OSI七层模型与TCP/IP四层模型

一.OSI七层模型 OSI 七层模型是国际标准化组织ISO提出的一个网络分层模型&#xff0c;它的目的是使各种不同的计算机和网络在世界范围内按照相同的标准框架实现互联。OSI 模型把网络通信的工作分为 7 层&#xff0c;从下到上分别是物理层、数据链路层、网络层、传输层、会话层、…

类加载器、反射、注解

1、类加载器 1.1类加载器作用 负责将.class文件&#xff08;存储的物理文件&#xff09;加载在到内存中。 1.2类加载的过程 类加载时机 创建类的实例&#xff08;对象&#xff09;调用类的类方法访问类或者接口的类变量&#xff0c;或者为该类变量赋值使用反射方式来强制创建…

Java学习 (一) 环境安装及入门程序

一、安装java环境 1、获取软件包 https://www.oracle.com/java/technologies/downloads/ .exe 文件一路装过去就行&#xff0c;最好别装c盘 &#xff0c;我这里演示的时候是云主机只有C盘 2、配置环境变量 我的电脑--右键属性--高级系统设置--环境变量 在环境变量中添加如下配…

数字孪生涉及到的9大技术栈,都是难啃骨头呀。

数字孪生涉及到多个技术栈&#xff0c;包括但不限于以下几个方面&#xff1a; 数据采集和传感器技术&#xff1a; 数字孪生需要实时获取物理世界的数据&#xff0c;因此需要使用各种传感器技术&#xff08;如温度传感器、压力传感器、运动传感器等&#xff09;来采集数据&…

【猫狗分类】Pytorch VGG16 实现猫狗分类1-数据清洗+制作标签文件

Pytorch 猫狗分类 用Pytorch框架&#xff0c;实现分类问题&#xff0c;好像是学习了一些基础知识后的一个小项目阶段&#xff0c;通过这个分类问题&#xff0c;可以知道整个pytorch的工作流程是什么&#xff0c;会了一个分类&#xff0c;那就可以解决其他的分类问题&#xff0…

第6章 设备驱动程序(3)

目录 6.5 块设备操作 6.5.1 块设备的表示 6.5.2 数据结构 6.5.3 向系统添加磁盘和分区 6.5.4 打开块设备文件 本专栏文章将有70篇左右&#xff0c;欢迎关注&#xff0c;查看后续文章。 6.5 块设备操作 特点&#xff1a; 随机访问任意位置。 固定块大小的传输。 块设备在内…

手机网站制作软件是哪些

手机网站制作软件是一种用于设计、开发和创建适用于移动设备的网站的软件工具。随着移动互联网时代的到来&#xff0c;越来越多的用户开始使用手机浏览网页和进行在线交流&#xff0c;因此&#xff0c;手机网站制作软件也逐渐成为了市场上的热门工具。 1. Adobe Dreamweaver&am…

天翼云8080、80端口用不了的问题

天翼云8080、80端口用不了的问题 前言&#xff1a;前段时间天翼云搞了活动&#xff0c;原来公司用的华为云老板说太贵了也快到期了&#xff0c;就换了天翼云的服务器。 排查&#xff1a; 安全组开放 80 8080 防火墙查看 没有问题 nginx nacos dcoker等停了 查看监听端口 发现…

YOLOv10改进 | 注意力篇 | YOLOv10引入HAttention(HAT)注意力

1. HAT介绍 1.1 摘要:基于 Transformer 的方法在低级视觉任务(例如图像超分辨率)中表现出了令人印象深刻的性能。 然而,我们发现这些网络通过归因分析只能利用有限的输入信息空间范围。 这意味着 Transformer 的潜力在现有网络中仍未得到充分发挥。 为了激活更多的输入像素…

国际现货黄金的交易方式:二次入场机会识别

近期受地缘局势以及通胀因素的影响&#xff0c;国际现货黄金投资又重新受到市场的青睐。虽然近期金价出现大跌&#xff0c;但投资者反而认为这是低价买金的好机会。为了方便投资者做出决策&#xff0c;下面我们就介绍一些国际现货黄金的交易方式——二次入场点进场。 在国际现货…

探索高效和轻量级多模态大语言模型的奥秘

过去一年&#xff0c;多模态大语言模型(MLLM)在视觉问答、视觉理解和推理等任务中表现出色。然而&#xff0c;模型的庞大尺寸和训练推理的高成本限制了其在学术界和工业界的广泛应用。因此&#xff0c;研究高效和轻量级的MLLM具有重要意义&#xff0c;尤其是在边缘计算场景中。…

Graphviz——实现动态更新协议状态机

1、描述 为了实现动态更新协议状态机&#xff0c;首先需要定义类来表示协议状态机。初始化该类后&#xff0c;保存状态机对象。在后续更新过程中&#xff0c;就可以加载保存的状态机对象&#xff0c;添加新的状态或事件。Graphviz的安装过程参考&#xff1a;Graphviz——安装、…

ECharts 雷达图案例002 - 诈骗性质分析

ECharts 雷达图案例002 - 诈骗性质分析 &#x1f4ca; ECharts 雷达图案例002 - 诈骗性质分析 深入挖掘数据背后的故事&#xff0c;用可视化手段揭示诈骗行为的模式和趋势。 &#x1f50d; 案例亮点 创新的数据展示方式&#xff0c;让复杂的诈骗数据一目了然。定制化的雷达图…

一文带你入门【论文排版】利器·LaTeX |Macos

小罗碎碎念 我在刚开始写公众号的时候&#xff0c;写过一期推文&#xff0c;详细的讲解过如何使用LaTeX快速的进行论文排版。不过当时用的是windows的系统&#xff0c;这一次把Mac端的教程补上。 windows系统教程 https://zhuanlan.zhihu.com/p/677481269 LaTeX是一种流行的排…

Python10 python多线程

1.什么是python多线程 Python的多线程指的是在一个Python程序中同时运行多个线程&#xff0c;以达到并发执行多个任务的目的。线程是操作系统能够进行运算调度的最小单位&#xff0c;它被包含在进程之中&#xff0c;是进程中的实际运作单位。 在Python中&#xff0c;多线程的…

昇思25天学习打卡营第1天 | 快速入门

内容介绍&#xff1a;通过MindSpore的API来快速实现一个简单的深度学习模型。 具体内容&#xff1a; 1. 导包 import mindspore from mindspore import nn from mindspore.dataset import vision, transforms from mindspore.dataset import MnistDataset 2. 处理数据 fro…