安装 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: core
      ssh_authorized_keys:
        - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICHaotVMdOfQrHe4bEYtjAuzQr3LdIqYlDu0sgcKLXHD fc-server-202406
storage:
  files:
    - path: /etc/zincati/config.d/55-updates-strategy.toml
      contents:
        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 ago
    
    CONTAINER 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  Current
                                    Dload  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-server
    HostName 192.168.31.2
    User core
    IdentityFile ~/.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/coreos

Last login: Sat Jun 15 06:20:26 2024 from 192.168.31.12
core@MiWiFi-RA74-srv:~$ rpm-ostree status
State: idle
AutomaticUpdatesDriver: Zincati
  DriverState: active; periodically polling for updates (last checked Sat 2024-06-15 06:16:27 UTC)
Deployments:
● fedora:fedora/x86_64/coreos/stable
                  Version: 40.20240519.3.0 (2024-06-04T23:21:15Z)
                   Commit: 724ce262d4a27f6b7cb1508e8737e2244d69bb78509d2749cebd7972042bf814
             GPGSignature: 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 -h
               total        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_64
  CPU op-mode(s):         32-bit, 64-bit
  Address sizes:          46 bits physical, 48 bits virtual
  Byte Order:             Little Endian
CPU(s):                   20
  On-line CPU(s) list:    0-9
  Off-line CPU(s) list:   10-19
Vendor ID:                GenuineIntel
  Model name:             Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz
    CPU family:           6
    Model:                63
    Thread(s) per core:   1
    Core(s) per socket:   10
    Socket(s):            1
    Stepping:             2
    CPU(s) scaling MHz:   47%
    CPU max MHz:          3000.0000
    CPU min MHz:          0.0000
    BogoMIPS:             4589.41
    Flags:                fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge m
                          ca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 s
                          s 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_c
                          pl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid 
                          dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_tim
                          er aes xsave avx f16c rdrand lahf_lm abm cpuid_fault e
                          pb pti intel_ppin ssbd ibrs ibpb stibp tpr_shadow flex
                          priority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2
                           smep 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):           1
  NUMA node0 CPU(s):      0-9
Vulnerabilities:          
  Gather data sampling:   Not affected
  Itlb multihit:          KVM: Mitigation: VMX disabled
  L1tf:                   Mitigation; PTE Inversion; VMX conditional cache flush
                          es, SMT disabled
  Mds:                    Mitigation; Clear CPU buffers; SMT disabled
  Meltdown:               Mitigation; PTI
  Mmio stale data:        Mitigation; Clear CPU buffers; SMT disabled
  Reg file data sampling: Not affected
  Retbleed:               Not affected
  Spec rstack overflow:   Not affected
  Spec store bypass:      Mitigation; Speculative Store Bypass disabled via prct
                          l
  Spectre v1:             Mitigation; usercopy/swapgs barriers and __user pointe
                          r sanitization
  Spectre v2:             Mitigation; Retpolines; IBPB conditional; IBRS_FW; RSB
                           filling; PBRSB-eIBRS Not affected; BHI Not affected
  Srbds:                  Not affected
  Tsx 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 许可发布.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【无标题】小红书618投放高效复盘|种草效果评估

618大促进入尾声&#xff0c;品牌投放是否达到预期目标&#xff1f;如何找准复盘重点&#xff1f;如何衡量种草效果&#xff1f;如何沉淀优质的策略&#xff1f; 基于这些问题&#xff0c;千瓜推出618小红书投放复盘攻略&#xff0c;帮助品牌厘清复盘思路&#xff0c;在大促后快…

万界星空科技QMS质量管理介绍

产品的生产质量是企业发展之根本&#xff0c;对所有企业来说&#xff0c;建立完善质量控制体系&#xff0c;对企业生产经营以及发展竞争具有至关重要的影响&#xff0c;可以说是企业质量保证的防火墙。QMS质量管理系统对任何一家企业都具有重要意义&#xff0c;可帮助企业提高生…

SmartEDA革新电路设计:告别繁琐,轻松步入智能时代!

在数字化浪潮席卷而来的今天&#xff0c;电路设计的复杂性和繁琐性一直是工程师们面临的难题。然而&#xff0c;随着科技的进步&#xff0c;一款名为SmartEDA的电路设计工具应运而生&#xff0c;它以智能化、高效化的特点&#xff0c;彻底颠覆了传统电路设计的方式&#xff0c;…

Ceph入门到精通-对象存储的冷热分离实现方法,该如何配置

实现对象存储的冷热分离的基本方法,包括桶创建、冷热池子创建、生命周期配置以及回收设置的步骤概述: 一、桶创建 使用AWS CLI创建S3存储桶,可以通过指定LocationConstraint参数来创建存储桶,并使用--endpoint-url指向RADOS Gateway的地址。 aws s3api create-bucket --…

08--LVS网站高并发解决方案

前言&#xff1a;LVS&#xff0c;工作稳定&#xff0c;抗负载能力强&#xff0c;属于运维基础&#xff0c;这里将lvs两种模式的部署方式在这里记录一下&#xff0c;并在示例完成后&#xff0c;补充一下基础概念。本章不可避免的涉及到一些网络方面知识&#xff0c;会形象简单的…

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

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

打开朦胧的云雾仓,享受悦耳好音乐,CIYINSO Mars2体验

如今蓝牙耳机的选择越来越丰富&#xff0c;音质好、续航久的产品也越来越多&#xff0c;百元左右的亲民价位就有不少选择。在这样的大背景下&#xff0c;耳机的设计自然就成了很多朋友选择的重要参考&#xff0c;不从众&#xff0c;有特点的耳机造型&#xff0c;往往更能获得大…

聊一聊生成式AI

生成式AI&#xff08;Generative AI&#xff09;是指一类能够自主创造新内容的人工智能技术&#xff0c;这些内容可以是文本、图像、音频、视频等。与传统的分析性或分类性AI系统不同&#xff0c;生成式模型的主要任务不是对现有数据进行分类或预测&#xff0c;而是生成全新的、…

web爬虫笔记:js逆向案例九(某多多 anti_content参数)补环境流程

web爬虫笔记:js逆向案例九(某多多 anti_content参数)补环境流程 一、目标网站:aHR0cHM6Ly9tb2JpbGUueWFuZ2tlZHVvLmNvbS8= 二、接口分析 1、快速定位加密位置(通过搜索/cells/hub/v3快速定位到加密js文件) 2、通过分析可知&#

@pytest.fixture与@pytest.mark.parametrize结合实现参数化

背景&#xff1a;测试数据既要在fixture方法中使用&#xff0c;同时也在测试用例中使用 使用方法&#xff1a;在使用parametrize的时候添加"indirectTrue"参数。pytest可以实现将参数传到fixture方法中&#xff0c;也可以在当前测试用例中使用。 原理&#xff1a;参…

众筹首发 | 当当狸智能天文望远镜TW2,大屏实时观景 长焦定格远方!

满天的繁星和远方景色&#xff0c;让人无比向往&#xff0c;你是否也曾渴望探索星空的奥秘&#xff0c;沉醉在无垠的美景之中&#xff1f; 然而&#xff0c;当我们用望远镜远眺星空时&#xff0c;固定姿势的观测经常让人感到疲惫&#xff0c;而普通相机亦是难以触及更远的距离…

Flash基础知识

1、Flash发展历程 存储器通常分为两类型&#xff0c;即随机存取的RAM&#xff08;内存&#xff09;与只读的ROM&#xff08;外存&#xff09;。 RAM&#xff0c;也称随机存取存储器&#xff0c;数据可以被读取和修改。它主要用于存储正在运行的程序和临时数据&#xff0c;是计…

OpenMMlab AI实战营第五、六期培训

OpenMMlab AI实战营第五、六期培训 OpenMMlab实战营第五、六次课2023.2.7-9学习参考第五次课笔记第六次课笔记一、什么是语义分割二、语义分割 v.s. 实例分割 v.s. 全景分割三、语义分割经典模型1.语义分割的基本思路2.**复用卷积计算**3.全连接层的卷积化4.预测图的升采样5.双…

6.深度卷积神经网络

目录 1.深度卷积神经网络ALexNet 2012AlexNetAlexNet架构AlexNet与LeNet复杂度对比总结代码实现2.使用块的网络VGG 2014 image竞猜第二VGG架构进度总结代码实现3.网络中的网络NiN全连接层的问题NiN块NiN架构总结代码实现4.含并行连结的网络(GoogLeNet)2014 image竞猜第一最好…

深信服终端安全管理系统EDR版本升级过程

EDR当前版本为3.7.12&#xff0c;具体参考版本详情参数。需要升级到6.0.2R1版本&#xff0c;该版本更改了产品名称&#xff0c;叫做“统一端点安全管理系统aES” 当前版本详情 版本基础信息 软件版本&#xff1a;3.7.12.3829 病毒库版本&#xff1a;20240618174426 漏洞规则库&…

LabVIEW在中国航天中的应用

​LabVIEW是一种系统设计平台及开发环境&#xff0c;由美国国家仪器公司&#xff08;NI&#xff09;开发。它在中国航天领域的应用非常广泛&#xff0c;涵盖了测试与测量、数据采集、控制系统设计等多个方面。以下是LabVIEW在中国航天中的几个主要应用实例&#xff1a; 1. 测试…

【前端项目笔记】3 用户管理

用户管理相关功能实现 涉及表单、对话框、Ajax数据请求 基本页面 用户列表开发 在router.js中导入Users.vue 解决用户列表小问题 选中&#xff08;激活&#xff09;子菜单后刷新不显示高亮 给二级菜单绑定单击事件&#xff0c;点击链接时把对应的地址保存到sessionSto…

适合企业的TTS文本转语音接口:微软TTS最新模型,发布9种更真实的AI语音

微软对Azure Al语音服务的Personal Voice功能进行了升级&#xff0c;引入了新的零样本学习(zero-shot)的文本到语音(TTS)模型。与初始模型相比&#xff0c;这些新模型提高了合成语音的自然度&#xff0c;并更好地模仿了提示语音中的语音特征。 微软提供了超过400种神经语音&am…

MySQL数据库的列类型

数值 tinyint 十分小的数据 1个字节 smallint 较小的数据 2个字节 mediumint 中等大小的数据 3个字节 int 标准的整数 4个字节&#xff08;常用&#xff09; bigint …

【送模板】5张图,帮你轻松搞懂OKR工作法

OKR是目标与关键结果法的缩写&#xff0c;OKR运用在工作中就是强调对业务进行逻辑思考&#xff0c;找到目标与关键结果之间的因果关系。这种因果关系的是否准确决定我们努力的价值。 OKR是一种高效的目标管理方法。“O”就是object&#xff0c;目标的意思&#xff0c;“kr”就…