第三章:操作系统与基础环境

好,咱们开始搭建仿真环境的第一步——选操作系统。说实话,这一步看似简单,但选错了后面会非常痛苦。我个人习惯把操作系统比作房子的地基,地基没打好,后面装修得再漂亮也白搭。

3.1 Linux发行版选择:Ubuntu vs CentOS

做仿真测试平台开发,Linux几乎是唯一的选择。Windows当然也能跑,但你在工业级项目里几乎看不到它。主流的发行版就两个:Ubuntu和CentOS。

对比项 Ubuntu CentOS
包管理器 apt yum/dnf
软件更新频率 快(半年一个大版本) 慢(追求稳定)
社区活跃度 极高 中等
适合场景 开发、学习、快速原型 生产环境、服务器

我个人建议:如果你是初学者或者做个人项目,选Ubuntu。为什么?因为遇到问题好搜,社区资源多。我在项目中遇到过好几次,CentOS上某个库版本太老,折腾半天装不上,换成Ubuntu几分钟搞定。

但如果你在公司做生产环境,CentOS可能更合适。它稳定,不会突然来个更新把环境搞崩。嗯,这里要注意:CentOS 8已经在2021年停止维护了,现在推荐用Rocky Linux或者AlmaLinux作为替代。

我的选择建议:

  • 个人开发机 → Ubuntu 22.04 LTS
  • 公司服务器 → Rocky Linux 9 或 Ubuntu Server LTS
  • 嵌入式/ARM平台 → Ubuntu Server

3.2 系统安装与分区

安装过程我就不一步步截图了,那个太基础。我重点说说分区——这是很多人容易踩坑的地方。

你想想看,一个仿真平台跑起来,日志文件、测试数据、临时文件都会疯狂增长。如果分区没规划好,磁盘满了系统直接挂掉,那叫一个酸爽。

推荐分区方案

对于仿真测试平台,我建议这样分:

/boot          → 1GB(引导分区,别太小)
/              → 50GB(根分区,系统文件)
/var           → 30GB(日志文件,仿真日志会很大)
/opt           → 剩余空间(安装仿真工具、测试平台)
swap           → 跟内存大小一致(比如16GB内存就分16GB swap)

我曾经有一次没给/var单独分区,结果仿真跑了三天,日志文件把根分区塞满了,系统直接崩溃。那三天白跑了,气得我...嗯,从那以后我再也不敢偷懒了。

重要提醒:如果你用虚拟机,记得给磁盘预分配大一点。我建议至少100GB起步。仿真工具链动辄几十GB,再加上测试数据,空间很快就吃完了。

3.3 网络配置与SSH服务

装好系统后第一件事是什么?配网络。没有网络,你连包都装不了,更别说搭建环境了。

静态IP配置

仿真环境通常需要固定IP,不然每次重启IP变了,你连SSH都连不上。Ubuntu 22.04用netplan配置网络:

# 编辑 /etc/netplan/00-installer-config.yaml
network:
  ethernets:
    ens33:
      dhcp4: no
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 114.114.114.114]
  version: 2

# 应用配置
sudo netplan apply

CentOS/Rocky Linux用nmcli或者直接改配置文件:

# 查看网卡名称
nmcli device status

# 配置静态IP
sudo nmcli connection modify ens33 \
  ipv4.addresses 192.168.1.100/24 \
  ipv4.gateway 192.168.1.1 \
  ipv4.dns 8.8.8.8 \
  ipv4.method manual

# 重启网络
sudo nmcli connection up ens33

SSH服务配置

SSH是远程连接的命脉。装好系统后立刻开启:

# 安装SSH服务
sudo apt install openssh-server   # Ubuntu
sudo yum install openssh-server   # CentOS

# 启动并设置开机自启
sudo systemctl enable sshd
sudo systemctl start sshd

# 检查状态
sudo systemctl status sshd

我个人习惯改几个SSH配置,让连接更安全:

# 编辑 /etc/ssh/sshd_config
Port 2222                    # 改默认端口,减少被扫描的概率
PermitRootLogin no           # 禁止root直接登录
PasswordAuthentication yes   # 先用密码,后面配密钥再关

小技巧:配置好SSH后,立刻测试能否从另一台机器连过来。别等到要用的时候才发现防火墙没关或者端口没开。我吃过这个亏,在机房蹲了一下午...

3.4 包管理器与常用工具安装

包管理器是Linux的灵魂。Ubuntu用apt,CentOS用yum/dnf。说白了就是应用商店,只不过在命令行里操作。

apt常用命令(Ubuntu)

# 更新软件源
sudo apt update

# 升级所有软件
sudo apt upgrade

# 安装软件
sudo apt install build-essential git vim curl wget

# 搜索软件
apt search python3

# 卸载软件
sudo apt remove 软件名

yum/dnf常用命令(CentOS/Rocky)

# 更新软件源
sudo yum update

# 安装软件
sudo yum install epel-release   # 先装EPEL源,软件更多
sudo yum install git vim curl wget

# 搜索软件
yum search python3

# 卸载软件
sudo yum remove 软件名

仿真环境必备工具清单

这些工具我建议装系统后立刻装上,后面搭建仿真平台都会用到:

工具 用途 安装命令(Ubuntu)
build-essential 编译工具链(gcc, g++, make) sudo apt install build-essential
git 版本控制 sudo apt install git
vim/nano 文本编辑器 sudo apt install vim
curl/wget 网络下载 sudo apt install curl wget
htop 系统监控 sudo apt install htop
net-tools 网络诊断(ifconfig等) sudo apt install net-tools
python3-pip Python包管理 sudo apt install python3-pip
docker.io 容器化部署 sudo apt install docker.io

我的安装脚本:每次装新系统,我都会跑一遍这个脚本,省得一个个装。

#!/bin/bash
# 仿真环境基础工具安装脚本

echo "开始安装基础工具..."

# Ubuntu
if command -v apt &> /dev/null; then
    sudo apt update
    sudo apt install -y \
        build-essential \
        git vim curl wget \
        htop net-tools \
        python3-pip \
        docker.io \
        openssh-server \
        tree
fi

# CentOS/Rocky
if command -v yum &> /dev/null; then
    sudo yum install -y epel-release
    sudo yum install -y \
        gcc gcc-c++ make \
        git vim curl wget \
        htop net-tools \
        python3-pip \
        docker \
        openssh-server \
        tree
fi

echo "基础工具安装完成!"

装完这些,你的Linux环境就算基本就绪了。下一章我们会在这个基础上搭建仿真核心环境——安装EDA工具和配置仿真库。到时候你会发现,前面这些准备工作做得越扎实,后面就越顺利。

嗯,最后提醒一句:装完系统先做个快照。不管是虚拟机还是物理机,留个干净的系统备份,后面搞坏了直接恢复,省得重装。这个习惯救过我无数次。