2、Linux环境搭建:为什么选择Linux、虚拟机安装Ubuntu、WSL2配置、基本Linux命令

好,咱们正式开始动手了。

这一章要解决一个最基础的问题——在哪写代码。你想想看,ASIC设计工具链,不管是Synopsys、Cadence还是开源工具,几乎清一色跑在Linux上。Windows?嗯,不是不行,但你会发现自己像个异类,到处碰壁。我刚开始学的时候也纠结过,后来干脆把主力机换成了Linux,省心多了。

2.1 为什么选择Linux

说白了,这不是选择题,是必答题。芯片设计行业里,Linux就是标准答案。

  • 工具兼容性:EDA工具原生支持Linux,Windows版本要么没有,要么功能残缺。我在项目中遇到过客户非要Windows跑仿真,结果折腾了两天环境,最后还是老老实实装了虚拟机。
  • 脚本生态:Perl、Python、Tcl、Makefile,这些在Linux下如鱼得水。你写个自动化流程,一条命令搞定。
  • 性能与稳定性:Linux内核调度效率高,跑大规模仿真时,内存管理比Windows靠谱得多。我曾经用同一台机器跑同一个RTL仿真,Linux比Windows快了将近30%。
  • 远程开发:SSH连上服务器,你在哪都能干活。公司里几百核的服务器集群,全是Linux。

核心结论:别挣扎了,学ASIC设计,Linux是绕不开的。早用早享受。

2.2 虚拟机安装Ubuntu

如果你暂时不想把电脑完全换成Linux,虚拟机是最友好的入门方式。我个人习惯用VMware Workstation,当然VirtualBox也行,免费嘛。

2.2.1 准备工作

  • 下载Ubuntu LTS版本(推荐22.04或24.04,稳定,社区支持好)
  • 安装VMware Workstation或VirtualBox
  • 给虚拟机分配至少4GB内存、2个CPU核心、60GB硬盘

2.2.2 安装步骤

  1. 新建虚拟机,选择“典型”配置
  2. 选择下载好的Ubuntu ISO镜像文件
  3. 设置用户名和密码(记住,后面天天用)
  4. 分配磁盘大小,建议选“将虚拟磁盘存储为单个文件”
  5. 启动虚拟机,按提示完成安装

小技巧:安装完成后,记得装VMware Tools或VirtualBox增强功能。这样能自适应窗口大小,还能共享剪贴板。我刚开始没装,每次复制代码都要手动敲一遍,差点崩溃。

2.3 WSL2配置

如果你不想开虚拟机,又想在Windows下用Linux,WSL2是微软给的惊喜。说白了,它就是一个轻量级Linux子系统,和Windows无缝集成。

2.3.1 启用WSL2

# 以管理员身份打开PowerShell,运行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

# 重启电脑后,设置WSL2为默认版本:
wsl --set-default-version 2

2.3.2 安装Ubuntu

# 从Microsoft Store搜索Ubuntu,安装即可
# 或者用命令行:
wsl --install -d Ubuntu-22.04

安装完第一次启动,会让你设置用户名和密码。嗯,这里要注意,WSL2的文件系统是独立的,但你可以通过 /mnt/c/ 访问Windows的C盘。

避坑指南:我曾经把项目文件直接放在Windows盘里,然后用WSL2去编译,结果发现IO性能慢得离谱。后来把项目移到WSL2内部文件系统,速度直接翻倍。记住:WSL2访问Windows文件系统有性能损失,项目文件最好放在Linux侧。

2.4 基本Linux命令

好了,环境搭好了,该学点基本功了。别怕,你不需要成为Linux高手,但下面这些命令,你每天都会用到。

2.4.1 文件操作

命令 作用 示例
ls 列出文件 ls -la 显示所有文件(包括隐藏文件)
cd 切换目录 cd /home/project
cp 复制文件 cp file1.v file2.v
mv 移动/重命名 mv old.v new.v
rm 删除文件 rm -rf temp/ 删除目录(小心用!)
mkdir 创建目录 mkdir rtl

2.4.2 文本查看与编辑

# 查看文件内容
cat file.v          # 全部显示
less file.v         # 分页查看(按q退出)
head -20 file.v     # 看前20行
tail -10 file.v     # 看后10行

# 搜索内容
grep "module" *.v   # 在所有.v文件中搜索module关键字

2.4.3 权限与进程

# 修改权限
chmod +x run.sh     # 给脚本添加执行权限
chmod 755 file      # 设置rwxr-xr-x权限

# 查看进程
ps -ef | grep vcs   # 查看VCS仿真进程
top                 # 实时查看系统资源
kill -9 PID         # 强制结束进程(慎用)

2.4.4 压缩与解压

# 打包
tar -czf project.tar.gz rtl/ tb/ scripts/

# 解包
tar -xzf project.tar.gz

我的习惯:每次新建项目,我都会先建好目录结构:rtl/tb/scripts/logs/results/。这样后面找东西方便,别人接手也看得懂。

2.5 本章知识体系

下面这张图,帮你把这一章的核心逻辑串起来:

Linux环境搭建知识体系 Linux环境搭建 为什么选择Linux 工具兼容性 · 脚本生态 性能稳定 · 远程开发 虚拟机安装Ubuntu VMware/VirtualBox Ubuntu LTS 22.04/24.04 WSL2配置 启用WSL2 · 安装Ubuntu 文件系统性能注意事项 基本Linux命令:文件操作 · 文本查看 · 权限进程 · 压缩解压

这张图把本章内容分成了四个模块。你从中心出发,先理解为什么非Linux不可,然后选择虚拟机或WSL2作为入口,最后掌握日常必备的命令。每一步都是下一章的基础。

最后说一句:环境搭建是最容易劝退人的环节。我见过太多人卡在装系统这一步就放弃了。别急,慢慢来。装好了,后面写代码、跑仿真,你会感谢今天自己的耐心。


专注资料整理