当前位置: 首页 > news >正文

嵌入式 - 在VMware中安装Ubuntu虚拟机 - 阿源

运行在嵌入式设备上的Linux内核,通常必须在Linux主机环境下完成编译。这一要求的根本原因在于:整个嵌入式Linux的构建工具链(如GCC交叉编译器、Binutils、Make等)以及内核自身的配置与构建系统(Kconfig、Kbuild)均深度依赖Linux的原生环境。这些工具在设计之初就将Linux作为首选运行平台,其对文件系统布局、进程管理、系统调用接口以及Shell脚本执行行为的假设,都与Linux内核行为高度耦合。因此嵌入式开发必须在Linux环境中进行。

Ubuntu是一个基于Debian架构的Linux发行版,界面友好、生态丰富,堪称用户群体最庞大的Linux发行版之一。在实际开发中,我们可以使用运行Ubuntu的PC作为开发终端。然而,日常工作中更常用的仍是Windows系统,那么如何在Windows上完整运行Ubuntu呢?这就需要借助虚拟机技术。本文使用的虚拟机软件为VMware。在VMware中安装Ubuntu主要分为三个步骤:第一,下载Ubuntu镜像文件;第二,在VMware中创建虚拟机并加载所下载的镜像;第三,启动虚拟机并进入Ubuntu,完成初始化系统配置。至此,Ubuntu的安装即告完成。

一、Ubuntu 镜像下载

Ubuntu镜像文件的官方下载地址为:https://releases.ubuntu.com/,但是有时候官网下载速度较慢,可选择在国内镜像站下载,清华大学镜像站地址为:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/。

笔者下载的版本是24.04,如下图所示,读者可根据自己需求选择合适版本下载。

image-20260427154650038

二、在VMware中创建新虚拟机

  • 打开VMware,点击创建新的虚拟机。

image-20260427154911622

  • 希望使用什么类型的配置,选择默认项“自定义(高级)”

image-20260427154945366

  • 虚拟机硬件兼容性,默认即可。

image-20260427155043449

  • 安装客户机操作系统,选择“稍后安装操作系统”。

image-20260427155114628

  • 选择客户机操作系统:Linux。

image-20260427155154544

  • 虚拟机名称和位置,自定义即可。

image-20260427155331407

  • 处理器核心数量:这里最关键的是虚拟机分配的处理器核心并不等于这几个核心永久给虚拟机使用,宿主机无法调用。而是虚拟机宿主机统一调用。具体说明如下。

在 VMware 中配置“处理器数量”和“每个处理器核心数”并不是表示物理CPU真实被拆分,而是定义虚拟机的 vCPU 拓扑结构;现实电脑通常只有1个物理CPU(笔者电脑的CPU是4核8线程),VMware 允许模拟多个“CPU插槽”和“核心”,但本质上这些 vCPU 只是操作系统层面的并行调度单位,会被宿主机(Windows)统一调度到物理4核8线程上动态运行,并不会真正独占或切割CPU资源。因此“1×4 vCPU”并不等于占用4个物理核心或4个线程,而是允许虚拟机最多同时运行4个可调度任务。对于4核8线程的主机,vCPU一般建议分配1×2到1×4之间,既保证虚拟机性能,也避免过度挤占宿主机调度资源,从而造成整体卡顿。

image-20260427160648724

  • 虚拟机内存分配根据自己电脑配置分配,建议不低于4GB。注意内存分配之后这部分内存宿主机就用不了了。

VMware 虚拟机的内存和硬盘本质上也是“从宿主机借用资源”而不是独立存在的:虚拟机内存是在宿主机物理内存中划出一段连续或分页的空间供虚拟机使用,一旦分配就会被占用(除非开启内存气球或动态回收机制),因此分配时需要预留给宿主机足够内存避免系统变卡。

image-20260427160931600

  • 网络类型:使用网络地址转换(NAT)

image-20260427161007160

  • IO控制器类型:默认即可。

image-20260427161327676

  • 磁盘类型:默认即可。

image-20260427161445317

  • 选择磁盘:创建新虚拟磁盘

image-20260427161507139

  • 指定磁盘容量,做开发的话,建议64GB以上。建议不勾选立即分配所有磁盘空间。具体说明如下表所示。
选项维度 选项 含义与特点
空间分配 立即分配所有磁盘空间 这是一种厚置备方式。创建时立刻从物理硬盘划走设定的全部空间(如100GB),无论虚拟机实际用多用少。优点是性能较好,缺点是占用空间大,创建过程也更慢。
不勾选(默认) 这是一种精简置备方式。创建时仅占用一个很小的初始空间(如几十MB),之后随着虚拟机内数据增多,文件才会自动增长,直至设定的上限。优点是节省物理硬盘空间,创建速度快,适合大多数个人使用场景。
文件存储 将虚拟磁盘存储为单个文件 虚拟机磁盘只对应物理硬盘上的1个文件优点是不易产生碎片,读写性能通常更好,文件管理也更简单。这是大多数情况下的推荐选项,尤其是固定在本地使用的时候。
将虚拟磁盘拆分为多个文件 会将虚拟磁盘拆分成多个小文件(例如每个2GB)。主要优点是兼容性好,方便把大虚拟机拷到FAT32格式的U盘里(该格式限制单文件不能超过4GB)。缺点是可能因文件碎片化轻微影响性能。

image-20260427161658781

  • 这里是虚拟磁盘文件的存储位置。建议跟虚拟机放在一个文件夹中,方便后续打包迁移。

image-20260427161815817

  • 点击自定义硬件,导入第一步我们下载的Ubuntu镜像文件。

image-20260427161901733

  • 导入镜像文件。

image-20260427161942900

三、启动并初始化Ubuntu

  • 点击开启虚拟机开机。

image-20260427162330434

  • BootLoader中默认选中 Try or Install Ubuntu。然后回车。

image-20260427162602837

  • 进入Ubuntu初始化界面,接下来是一系列的初始化选项。
  • 首先是语言,选择中文简体。

image-20260427162751893

  • Ubuntu中的可访问性,保持默认,下一步。

image-20260427162843234

  • 键盘布局:汉语。

image-20260427162950380

  • 连接到互联网,前面我们设置虚拟机的时候网络设置了NAT模式。选择使用有线连接。

image-20260427163014563

  • 安装可用更新:跳过。

image-20260427163033823

  • 点击安装Ubuntu。

image-20260427163201778

  • 选择交互式安装。

image-20260427163300965

  • 选择默认集合。

image-20260427163413080

  • 安装推荐的专有软件,全部勾选,下一步。

image-20260427164017326

  • 选择擦除磁盘并安装Ubuntu。这里不会对我们原本Windows的磁盘数据造成影响。

image-20260427164045623

  • 设置账户,读者自行设置即可。

image-20260427164518097

  • 选择地区,然后等待安装完成。

image-20260427164630274

  • 安装完成!

image-20260427170234863

四、配置软件源

什么是软件源,简单来说就是Ubuntu获取软件包和系统更新的网络仓库地址列表。Ubuntu使用APT包管理器来安装、更新软件。它去哪里下载这些软件呢?就是去“软件源”里指定的服务器。软件源其实是一个记录了各种软件包仓库地址的配置文件,系统里主要是/etc/apt/sources.list这个文件。当你执行sudo apt installsudo apt update时,系统就会去访问这些地址,拉取软件列表和程序文件。

Ubuntu安装后,默认的软件源是官方的国际服务器(如 archive.ubuntu.com),这些服务器通常部署在欧洲或北美。从国内直接访问,下载速度极慢,连接不稳定甚至失败。将软件源地址改成国内的镜像站(如清华大学、阿里云、中科大等),这些服务器在国内有节点,访问速度和稳定性都会有质的飞跃。

如果你的Ubuntu镜像文件是在清华镜像站下载的,那么软件源已经默认是清华的了。这里我们介绍一下配置方法。

  1. 备份原有源列表(好习惯)

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
    
  2. 编辑源列表文件

    将里面原有的内容全部删除或注释掉(在行首加 #),然后粘贴以下适合 Ubuntu 24.04 (Noble) 的清华源地址。如果你安装的是其他版本,请自行去清华镜像站复制对应版本的配置。

    sudo vim /etc/apt/sources.list
    
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-backports main restricted universe multiverse
    deb http://security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse
    
  3. 刷新软件源信息

    sudo apt update
    

五、安装GCC编译器并编译C程序

至此我们已经安装好了Ubuntu虚拟机。本节以简单的HelloWorld程序为例简单介绍一下如何在Linux环境下编译并执行简单的C语言程序。

首先我们需要配置C语言的编译环境。Ubuntu桌面版默认通常没有安装GCC编译器,可以在桌面右键然后打开终端,或者直接按快捷键Ctrl+Alt+T打开命令行。在终端中依次执行以下两条命令:

sudo apt update						# sudo 用于获取管理员权限
sudo apt install build-essential	# apt 是安装命令

其中第一条命令用于更新软件包。第二条则会安装build-essential套件,其中包含了GCC编译器、必要的库和make工具。安装完成后,可以输入gcc --version来验证是否安装成功,如果显示出GCC的版本信息,就说明环境已经准备就绪。如图所示:

image-20260428155703453

编译器安装完成后就可以编写程序了,程序源码随便用一个文本编辑器写都可以。这里使用在Linux终端中常用的vim编辑器,Ubuntu中默认安装的是老版本的vi编辑器,相比之下vim更好用一些,因此需要先安装一下vim。

sudo apt install vim

安装完成后创建一个文件夹,然后使用vim编辑源码:

cd ~
mkdir C-Code
cd C-Code
vim HelloWorld.c

代码内容如下:

不会使用vim编辑器的可以直接在图形界面右键使用文本编辑器打开。但是做开发还是终端命令用的多,建议入手一下vim,可以在B站搜一下教程,几分钟即可简单使用。

#include <stdio.h>int main() {printf("Hello, World!\n");return 0;
}

接下来将源码编译为可执行文件:

gcc HelloWorld.c -o HelloWorld
./HelloWorld	# 执行可执行程序

因为Linux默认不会从当前目录搜索可执行文件,所以需要加上./来明确指定路径。按下回车后,终端就会输出“Hello, World!”。程序执行结果如下图所示。

image-20260428161115190


Steady Progress!

http://www.jsqmd.com/news/714674/

相关文章:

  • 2026硅胶机械手品牌测评:不同场景适配方案解析 - 品牌2026
  • 用Python+OpenCV手搓一个鼠标轨迹预测器:从零理解卡尔曼滤波的‘预测-校正’循环
  • Java开发农业物联网平台必须掌握的6项硬核能力,第4项连高级工程师都常忽略!
  • 忍者像素绘卷微信小程序开发:生成历史记录本地存储与导出功能
  • 如何快速解决Cursor Pro限制:Cursor Free VIP完整使用指南
  • Win11Debloat终极指南:如何简单快速优化Windows系统性能
  • 在信创环境下,如何判断一套用户行为分析系统是否“真正可用”?
  • 从设备选型到厂家选择:堆垛机厂家全维解析 - 品牌评测官
  • 工业配料设备采购必看:2026配料称重系统与手工配料称重系统厂家选型避坑全解析 - 品牌推荐大师1
  • 招聘背景核验程序,过往工作,证书上链,企业快速核验,杜绝简历造假,
  • 长沙福麟家居设计:浏阳比较好的木方断裂加固公司 - LYL仔仔
  • K8s集群里Nginx和Traefik怎么和平共处?一个真实场景下的双Ingress Controller配置实战
  • 保姆级避坑指南:SpringBoot 2.x + Undertow + Nacos 2.x 微服务平滑下线全流程配置
  • 5分钟掌握D2RML:暗黑2重制版多开管理终极解决方案
  • Allegro 17.4 布线前必做:手把手教你搞定过孔、差分对和信号分组(附工厂工艺参数)
  • 2026年4月河南韩式/花店创业/花艺软装/ 婚礼婚车/花艺培训口碑学校深度分析 - 2026年企业推荐榜
  • 从ISO标准到实战避坑:搞懂激光光束直径的D4σ、1/e²、FWHM到底该怎么选?
  • YOLO26 识别验证码
  • 如何让Windows 11性能飙升:Win11Debloat系统优化完整指南
  • 猫抓浏览器扩展:三步掌握网页视频资源嗅探与下载的完整指南
  • 2026年昆明代理记账与工商变更一站式企业财税服务深度横评 - 优质企业观察收录
  • 终极XXMI启动器教程:一站式管理所有二次元游戏模组的完整指南
  • 2026年昆明代理记账与曲靖工商变更一站式财税服务深度横评 - 优质企业观察收录
  • egergergeeert网页版使用详解:无需代码,3步完成高质量插画生成
  • 2026点胶机厂家推荐排行 工业级耐用+储能专用 高效适配全场景 - 极欧测评
  • 安防CIS:对光学lux/lm/cd/nit四大参数的理解
  • 50h 算力直送,AMD AI 开发者计划官宣,助你定义 AI 下一个十年
  • 2026年DeepSeek推广服务商与媒体渠道综合测评报告 - 博客湾
  • 如何设置wps单元格下拉选项设置
  • 百联OK卡回收靠谱吗?教你如何选择可靠的平台! - 团团收购物卡回收