文章目录
即将学习嵌入式 Linux 系统编程的小伙伴,基本上都是在虚拟机上安装 Ubuntu 系统来学习的。但是作为初学者,可能并不知道什么是虚拟机、怎么安装虚拟机。同时,对 Linux 系统也有很多不解, 比如什么是 Linxu 系统、Linux 系统发行版该选哪个学习等等诸多问题。那么本篇博文将一一解答这些问题,并且把学习 Linux 系统编程的环境搭建好,方便后期的学习。
一、前期准备
1. 硬件要求
众所周知,只要涉及到学习编程,电脑必不可少。但并不是所有的电脑都可以用来学习编程,必须有个最低配置要求。由于本篇博文使用的虚拟机是 VMware Workstation Pro 17,该软件对主机系统的要求如下:
- 2011 年或之后推出的兼容的 64 位 x86/AMD64 CPU
- 1.3 GHz 或更快的内核速度
- 最低 2 GB RAM、建议 4 GB 或更高
而虚拟机运行的 Ubuntu 22.04 有如下的推荐配置:
- 双核 2 GHz 处理器或更高
- 4 GB 系统内存
- 25 GB 磁盘存储空间
- 可访问的互联网
- 光驱或 USB 安装介质
综合以上配置要求,CPU 选择上至少要四核 2 GHz 以上的处理器,运行内存至少 8 GB 以上(4 GB 给虚拟机的系统用了,剩下的还得用于 Windows 系统和其他软件的开销)。
所以请各位小伙伴根据以上的各个要求选择电脑,本次我使用的是 2014 年华硕生产的笔记本电脑 A550JK4200,配置如下图所示,符合所有要求(这个是十年前的配置了,放到现在可以说是相当的拉跨了),也是我目前现有的电脑中能找到的配置最低的电脑了。
2. 软件下载
2-1. 下载虚拟机运行软件
首先来回答一下什么是虚拟机?
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。
(引用:虚拟机_百度百科 (baidu.com))
说白了,我们学习 Linux 系统编程,就必须要有 Linux 系统的环境,用虚拟机软件就是为了有个能运行 Linux 系统的环境。在当前的电脑用虚拟机软件虚拟出另一台“电脑”(虚拟机),并在上面安装 Linux 系统,这样就可以放心大胆地进行各种 Linux 练习而无须担心操作不当导致宿主机系统崩溃了。并且还可以举一反三,将一台电脑变成三台、四台,再分别安装上其他的系统。
那为什么不直接使用 Linux 主机呢?而对于大多数人来说,使用的都是 Windows 系统,不管是把现有的电脑刷机成 Linux 系统,还是再去花钱买一个专属 Linux 系统的电脑,都是不是明智的选择。所以在现有的条件下,使用虚拟机软件运行 Linxu 系统才是最经济和最实际的选择。
本次安装的虚拟机软件是 VMware Workstation Pro 17,也是目前 Windows 最主流的虚拟机软件。
官方下载链接:Download VMware Workstation Pro
点击上面的链接进入下载网页后,下滑到下方有下载按钮,点击左边的DOWNLOAD NOW
进行下载。这里有很多初学者会点右边的DOWNLOAD NOW
下载,可能是认为我们安装的 Linux 系统,所以下载带有 “Linux” 字样的。这里解释一下,此处的 “Linux” 表示这个软件是在 Linux 环境下安装并使用的,而我们是要在 Windous 的环境下运行虚拟机,所以要下载左边的软件,切记别下载错了。
上面的下载链接已经不可用了,原因是2023年11月23日,芯片巨头博通(Broadcom)正式宣布完成对虚拟软件服务商 VMware 的收购,VMware 所有的产品都被 Broadcom 继承。因此,原 VMware 官网所有软件的下载地址变得不可用了。
新地址如下,不过需要先注册 Broadcom 的账号:
VMware Workstation Player(个人版)
VMware Workstation Pro(专业版)
关于什么是 Linux 以及 Linux 发行版等问题,可以在Linux_百度百科 (baidu.com)上找到答案,这里不做过多的赘述。
那么为什么嵌入式行业钟爱 Ubuntu 系统呢?
这里简单说一下,之后会另写一篇博客进行解释。Ubuntu 是使用最广泛的 Linux 发行版之一,它稳定、可靠、维护良好,并拥有庞大的追随者社区,并且有广泛的编程工具和认证硬件。
本文选用的 Linux 发行版是 Ubuntu22.04,主要原因是后期我会发表一些 OrangePi ZERO 2 交叉编译的博文,需要用到 Ubuntu22.04(其他版本的 Ubuntu 不支持)的环境。
Ubuntu 22.04 LTS,代号为Jammy Jellyfish(果酱水母),是Canonical于2022年4月21日发布的操作系统。这个版本标志着一次主要的版本升级,带来了许多新功能和改进。 首先,桌面环境得到了显著的改进。Ubuntu 22.04 LTS采用了GNOME电源配置文件和流线型工作空间过渡,为用户提供了更加流畅的体验。此外,它还提供了强调色的选择功能,使用户能够更加个性化地设置自己的工作环境。 安全性也是Ubuntu 22.04 LTS的重点。为了提高安全性,它使用了新的加密算法迁移到OpenSSL v3。同时,Wayland作为默认显示服务器,为用户提供了更加现代的显示解决方案。借助Pipewire等技术,即使是屏幕共享等在Wayland下也能开箱即用,而且没有任何麻烦。对于那些使用NVIDIA显卡的计算机,Wayland甚至默认提供。 Ubuntu 22.04 LTS是一个长期支持(Long-Term Support)版本,这意味着它将得到长达五年的支持,直到2027年。这为用户提供了长期的稳定和安全更新。
(引用:Jammy Jellyfish Release Notes - Release - Ubuntu Community Hub)
官方下载链接:下载Ubuntu桌面系统 | Ubuntu
点击上面的链接进入下载网页后,单击下图标注的下载按钮即可。
二、安装虚拟机
双击打开下载好的虚拟机软件安装包。
稍等一会进入安装程序,此界面直接点击“下一步”按钮。
勾选“我接受许可协议中的条款”,再点击“下一步”。
默认安装位置是“C:\Program Files (x86)\VMware\VMware Workstation\”,点击旁边的“更改…”按钮可以修改安装路径,我这里修改成“D:\VMware\VMware Workstation\”。(习惯把软件安装在 D 盘)
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=.%2F
修改好安装路径后,选择上不做修改,保持默认,点击“下一步”。
此界面把两个选项的勾选全部取消(反正用不到),点击“下一步”。
这里我默认全部勾选上,你们可以按照自己的习惯选择,点击“下一步”。
点击“安装”即可,大概需要 2 ~ 3 分钟(由电脑配置而定)。
安装完成后,点击“许可证”按钮,在下面列举的密钥中任选一个激活软件,如果密钥失效,可以把每一个都是一遍(亲测全部有效)。
4A4RR-813DK-M81A9-4U35H-06KND
NZ4RR-FTK5H-H81C1-Q30QH-1V2LA
JU090-6039P-08409-8J0QH-2YR7F
4Y09U-AJK97-089Z0-A3054-83KLA
4C21U-2KK9Q-M8130-4V2QH-CF810
MC60H-DWHD5-H80U9-6V85M-8280D
ZA30U-DXF84-4850Q-UMMXZ-W6K8F
AC590-2XW97-48EFZ-TZPQE-MYHEA
YF39K-DLFE5-H856Z-6NWZE-XQ2XD
AC15R-FNZ16-H8DWQ-WFPNV-M28E2
CZ1J8-A0D82-489LZ-ZMZQT-P3KX6
YA11K-6YE8H-H89ZZ-EXM59-Y6AR0
把密钥粘贴进来后,点击“输入”按钮。
最后单机“完成”按钮,完成安装。
三、创建 Ubuntu 系统虚拟机
双击打开刚刚安装好的 VMware Workstation Pro 17,进入软件后,点击“创建新的虚拟机”。
进入虚拟机安装向导,选择“自定义(高级)”的选项,点击“下一步”。
再次单击“下一步”。
选择“安装程序光盘映像文件”,点击输入框旁边的“浏览”按钮。
根据下载路径,找到下载好的 Ubuntu 镜像安装包(自己下载的东西,别说不知道在哪个位置,真如此的话,别学编程了),双击选择。
如果能看到如图标注的小字,说明安装包是对的,并且可以正常安装,这时点击“下一步”。
全名和密码可以随便写,用户名只能用小写字母、数字和破折号,输入完毕后,点击“下一步”。
虚拟机名称我习惯修改成“Ubuntu22.04_64bits”(个人习惯,用默认的也行),虚拟机的路径我修改到了“H:\Virtual Machines\Ubuntu22.04_64bits”,这个要根据自己的实际情况修改,因为这关系到硬盘空间的大小,建议选择可用空间比较大的盘符。
每个处理器的内核数量修改成 2,单击“下一步”。
内存选择建议 4 GB,单击“下一步”。
网络类型一定要选择桥接!这个非常重要,很多小伙伴在后期学习网络编程时,发现虚拟机和宿主机(安装虚拟机的电脑)用的是同一个 IP,很多网络编程的功能想验证都验证不了。选择桥接网络,可以让虚拟机有一个属于自己的 IP 地址,后续用 SSH 或者 Samba 访问都方便很多。
这里在插一句题外话,很多小伙伴可能还在上大学,使用的是校园网,根据我对有多个小伙伴反应的情况来看,有一些校园网的网口只能有一个 IPv4 的地址,插入交换机也不能用多个 IP,因此不能使用桥接功能。这里我能想到的唯一解决办法就是买个路由器来解决,也确实解决问题了,原理就是用路由器的 DHCP 功能,来管理分配 IP 地址,这样就可以使用桥接网络了。
直接默认,单击“下一步”。
同样默认,单击“下一步”。
同样默认,单击“下一步”。
硬盘容量默认是 20 GB,我直接使用了 80 GB(打铁还需自身硬,我这个盘符 210 GB),单击“下一步”。
文件名我选择默认,单击“下一步”。
到这一步已经完成了,下图没有把“创建后开启吃虚拟机”的选项取消,如果没有取消,单击“完成”按钮后,会直接进入 Ubuntu 系统。
如果取消,单击“完成”按钮后,就会停在如下图所示的界面,表示虚拟机已经创建好了。
注意,到这一步实是把 Ubuntu 的虚拟机创建好了,并不是把 Ubuntu 系统安装了,正式的安装需要启动虚拟机。
四、Ubuntu 系统安装过程的配置
虚拟机创建好后,可以通过点击下图标注的两个按钮中的任意一个进入启动虚拟机。
稍等片刻后,进入如下图的界面,建议直接点“Continue”,而不是改成中文。这里解释一下,很多博主会教你们修改成中文,这样使用起来确实方便,但是本着学习的态度,我们应该要去适应全英文的开发环境,毕竟将来的工作环境还是英文居多。
这里可以选择默认的选项,直接点“Continue”。如果想要比较快的安装好系统,可以选择“Minimal Installation”(最小安装方式),然后把“Download updates while installing Ubuntu”也取消勾选,这样的安装速度最快。
下图所示的界面检测到本台电脑(虚拟机)没有操作系统,询问是否要安装操作系统,默认选项“Erase disk and install Ubuntu”就是安装操作系统的选项,只是会清空虚拟机所有的磁盘(是本台虚拟机的磁盘,不是宿主机的磁盘,所以不要大惊小怪),直接点“Install Now”即可。
如果提示这个界面(可能不是所有人都有),直接点击“Continue”。
时区选择“shanghai”(上海的拼音,直接用鼠标在地图上点,作为中国人,学了那么久地理,别说连上海的大概位置都指不出来),然后点击“Continue”。
然后输入姓名、电脑名、账户和密码,账号会最终显示在终端,密码我一般都用“1”(反正是虚拟机)。
接着就进入漫长的安装过程了,安装时长根据电脑配置决定(我这台老古董安装了 20 分钟)。
安装完成,系统提示想要重启虚拟机,直接点“Restart Now”重启。
看到这个界面,系统也算是安装成功了。
点击账号图标,输入密码后按回车进如系统。
初次进入 Ubuntu 系统会有一个欢迎界面,内容忽略,直接点击右上角的“Skip”跳过。
这里是提示是否要升级成 Ubuntu Pro,目前没测试过,建议默认选择“Skip for now”,然后点击“Next”。
这个是 Ubuntu 系统的改善建议,改成“No, don’t send sysytem info”,然后点击“Next”。
到这一步直接点“Done”跳过,Ubuntu 系统初次开机的工作就算完成了。
五、更换国内镜像源
Ubuntu 系统的软件源默认是国外的网站,升级或下载软件都很不方便(有时候都访问不了),因此建议换成国内的镜像源。在更改软件源之前,最好先备份原有的软件源列表文件,以防止意外情况导致系统无法正常更新或安装软件。
先按快捷键Ctrl + Alt + T
,调出终端(以后凡是有关要输入命令的操作,都要调出终端,之后不再赘述)。如果觉得字体太小了,可以按快捷键Ctrl + Shift + =
,字体要是太大,需要缩小,可以按快捷键Ctrl + -
然后输入以下命令进行备份:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
再次照顾一下初学者,习惯使用Ctrl + C
和Ctrl + V
进行复制粘贴的小伙伴,会发现在 Ubuntu 终端用不了。其实 Ubuntu 系统终端也有复制粘贴的快捷键,而且在 Windows 系统也通用,只是知道的人太少了。在 Ubuntu 系统终端复制使用 Ctrl + Insert
,粘贴快捷键是Shift + Insert
。因为现在很多人使用的键盘都不是 104 全键盘,很多键盘上都没有“Insert”(有的键盘是缩写:Ins),所以导致很多人用不了,也就不知道有这么一回事了。
回到正题,把命令粘贴或输入后,按回车健执行,由于用到 sudo(超级用户)的权限,需要输入账户密码,密码输入时是不会在终端显示任何符号的(注意:是任何符号都不显示,只能纯盲打),输入完毕直接回车确认即可。只要是执行成功,不会有任何提示,而是可以继续输入命令,如下图所示。
对于新手,就不教太复杂的命令行的方式来修改镜像源了,直接用鼠标点击左下角的“Show Applications”(桌面左下角九个小点的图标)。
找到并点击“Software & Updates”。
点击“Download from”旁边的下拉框,选择“other”。
上滑鼠标找到“China”,展开后选择“mirrors.aliyun.com”,然后点击"Choose Server"保存,最后输入密码即可。
修改完直接关闭界面即可。
关闭时后弹出下图所示的弹出,直接关闭就可以了。
运行以下命令更新软件源:
sudo apt update
更新软件源后,可以通过以下命令升级系统中已安装的软件包(命令后面的-y
可以跳过确认询问):
sudo apt upgrade -y
六、设置静态 IP
有时候我们会发现,Ubuntu 的 IP 地址会改变,如果后续有 SSH、Samba 等使用需求,这时就需要配置静态 IP 以保证这些功能的正常使用。
设置 Ubuntu 系统的静态 IP,请查阅《Ubuntu22.04 设置静态 IP 的方法》。
七、安装常用软件
刚安装好的系统缺少了许多常用软件,如 gcc、git 等。
1. 编译工具
基本的编译和构建软件工具可以用下面的命令进行安装,build-essential
软件包组包含了gcc
、g++
、make
等编译工具和构建工具,也包含了标准 C 库和头文件。
sudo apt install build-essential -y
2. 代码管理工具
考虑到之后或许需要用到git
拉取代码,可以把 Git 工具也一起安装了。
sudo apt install git-all -y
3. 安装代码编辑软件(VIM)
刚刚安装好的 Ubuntu 系统自带有 vi,但是很多人都会发现在编辑模式下方向键和退格键都不能正常使用,主要是因为 Ubuntu 自带的 vi 的版本太低了,所以最好先把系统自带的 vi 编辑器卸载干净后,再安装最新的 vim。
想要彻底卸载 vim,可以输入下面的命令:
sudo apt-get remove vim vim-runtime vim-tiny vim-common vim-scripts vim-doc -y
等卸载完毕后,在输入下面的安装命令:
sudo apt-get install vim -y
八、安装配置 Samba 服务器
Samba 是一个开源软件套件,它提供了在 Linux 和 Unix 系统上实现与 Windows 操作系统共享文件和打印机的功能。通过 Samba,Linux 或 Unix 系统可以像 Windows 一样与其他计算机共享文件和打印机,并且可以使用 Windows 文件共享协议(SMB/CIFS)来实现。
如果需要配置 Samba服务器,请查阅《基于Ubuntu22.04的Samba服务器搭建教程(新手保姆级教程)》。