FreeBSD 中文社区 2025 第二季度问卷调查
FreeBSD 中文社区(CFC)
VitePress 镜像站QQ 群 787969044视频教程Ⅰ视频教程Ⅱ
  • FreeBSD 从入门到追忆
  • 中文期刊
  • 状态报告
  • 发行说明
  • 手册
  • 网络文章集锦
  • 笔记本支持报告
  • Port 开发者手册
  • 架构手册
  • 开发者手册
  • 中文 man 手册
  • 文章
  • 书籍
  • FreeBSD 从入门到追忆(第一版:草稿)
  • 编辑日志
  • 目录
  • 致谢
  • 前言
  • 第 1 章 FreeBSD 初见
    • 第 1.1 节 操作系统的历程:UNIX、Unix-like、Linux & FreeBSD
    • 第 1.2 节 FreeBSD 简史
    • 第 1.3 节 谁在使用 FreeBSD?
    • 第 1.4 节 为什么要使用 FreeBSD?
    • 第 1.5 节 Linux 用户迁移指南
    • 第 1.6 节 FreeBSD 桌面发行版
  • 第 2 章 安装 FreeBSD
    • 第 2.1 节 安装前准备(新手入门版本)
    • 第 2.2 节 FreeBSD 安装图解(新手入门版本)
    • 第 2.3 节 UNIX 基础(新手入门版本)
    • 第 2.4 节 命令行基础(新手入门版本)
    • 第 2.5 节 安装 FreeBSD——基于 VMware Workstation Pro
    • 第 2.6 节 安装 FreeBSD——基于 Virtual Box
    • 第 2.7 节 手动安装双系统(先安装 FreeBSD)
    • 第 2.8 节 手动安装双系统(后安装 FreeBSD)
    • 第 2.9 节 安装 FreeBSD——基于 Apple M1 & Parallels Desktop 20
    • 第 2.10 节 安装 FreeBSD——基于 Apple M1 & VMware Fusion Pro
    • 第 2.11 节 Qemu 安装 RISC-V FreeBSD(基于 x86 Windows)
    • 第 2.12 节 云服务器安装 FreeBSD(基于腾讯云轻量云)
    • 第 2.13 节 安装 FreeBSD——基于 Hyper-V
  • 第 3 章 包管理器与 FreeBSD 系统更新
    • 第 3.1 节 FreeBSD 镜像站现状
    • 第 3.2 节 FreeBSD 换源方式
    • 第 3.3 节 gitup 的用法
    • 第 3.4 节 通过 pkg 包管理器安装二进制包
    • 第 3.5 节 通过 Ports 以源代码方式安装软件
    • 第 3.6 节 通过 DVD 安装软件
    • 第 3.7 节 通过 freebsd-update 更新 FreeBSD
    • 第 3.8 节 通过源代码更新 FreeBSD
    • 第 3.9 节 使用 pkgbase 更新 FreeBSD
  • 第 4 章 桌面环境
    • 第 4.1 节 显卡驱动(英特尔、AMD)
    • 第 4.2 节 显卡驱动(NVIDIA)
    • 第 4.3 节 GNOME
    • 第 4.4 节 Mate
    • 第 4.5 节 Xfce
    • 第 4.6 节 Cinnamon
    • 第 4.7 节 Lumina
    • 第 4.8 节 LXQt
    • 第 4.9 节 bspwm
    • 第 4.10 节 IceWM
    • 第 4.11 节 Budgie
    • 第 4.12 节 i3wm
    • 第 4.13 节 CDE
    • 第 4.14 节 Hyprland
    • 第 4.15 节 LXDE
    • 第 4.16 节 Window Maker
    • 第 4.17 节 Fluxbox
    • 第 4.18 节 KDE6
    • 第 4.19 节 主题美化
    • 第 4.20 节 远程桌面
    • 第 4.21 节 root 登录桌面
  • 第 5 章 中文环境配置
    • 第 5.1 节 本地化环境变量
    • 第 5.2 节 Fcitx 输入法框架
    • 第 5.3 节 IBus 输入法框架
    • 第 5.4 节 五笔输入法
    • 第 5.5 节 Firefox 与 Chromium
    • 第 5.6 节 QQ(Linux 版)
    • 第 5.7 节 更换字体
    • 第 5.8 节 金山 WPS(Linux 版)
    • 第 5.9 节 压缩与解压
    • 第 5.10 节 微信(Linux 版)
  • 第 6 章 多媒体与外设
    • 第 6.1 节 声卡
    • 第 6.2 节 蓝牙
    • 第 6.3 节 打印机
    • 第 6.4 节 触摸板
    • 第 6.5 节 音频播放器
    • 第 6.6 节 视频播放器
    • 第 6.7 节 音频图形图像处理
  • 第 7 章 代理服务器
    • 第 7.1 节 HTTP 代理
    • 第 7.2 节 V2ray
    • 第 7.3 节 Mihomo(原 Clash)
    • 第 7.4 节 OpenVPN
  • 第 8 章 账户与权限
    • 第 8.1 节 sudo 与 doas
    • 第 8.2 节 用户与组
    • 第 8.3 节 用户权限
  • 第 9 章 Jail
    • 第 9.1 节 Jail 配置
    • 第 9.2 节 Jail 更新
    • 第 9.3 节 使用 Qjail 管理 Jail
  • 第 10 章 虚拟化
    • 第 10.1 节 通过 BVCP 以网页管理 BHyve
    • 第 10.2 节 使用 bhyve 安装 Windows 11(vm-bhyve)
  • 第 11 章 计算机概论
    • 第 11.1 节 存储卡参数简介与测试
    • 第 11.2 节 总线接口与协议
    • 第 11.3 节 网络基础
    • 第 11.4 节 操作系统
    • 第 11.5 节 MySQL 数据库
  • 第 12 章 引导恢复与 TTY 配置
    • 第 12.1 节 单用户模式与密码重置
    • 第 12.2 节 配置 rEFInd(双系统用)
    • 第 12.3 节 FreeBSD 中文 TTY 控制台
    • 第 12.4 节 引导界面与控制台界面
    • 第 12.5 节 Grub & UEFI 与 efibootmgr
  • 第 13 章 FreeBSD 系统管理
    • 第 13.1 节 FreeBSD src 源码概览
    • 第 13.2 节 FreeBSD 系统概览
    • 第 13.3 节 bsdconfig 系统配置工具
    • 第 13.4 节 SSH 配置与相关工具
    • 第 13.5 节 BSD init 管理服务
    • 第 13.6 节 利用脚本自动生成 BSDlibc 库文本
  • 第 14 章 网络管理
    • 第 14.1 节 TCP 堆栈
    • 第 14.2 节 WiFi
    • 第 14.3 节 USB 网络共享(USB tethering)
    • 第 14.4 节 USB 网卡 & 以太网卡
  • 第 15 章 FreeBSD 防火墙
    • 第 15.1 节 网络参数配置命令
    • 第 15.2 节 Packet Filter(PF)
    • 第 15.3 节 IPFilter(IPF)
    • 第 15.4 节 ipfirewall(IPFW)
    • 第 15.5 节 Fail2Ban(基于 IPFW、PF、IPF)
  • 第 16 章 服务器
    • 第 16.1 节 FTP 服务器
    • 第 16.2 节 MinIO 对象存储服务
    • 第 16.3 节 Gitlab-EE
    • 第 16.4 节 时间服务
    • 第 16.5 节 WildFly
    • 第 16.6 节 Rsync 同步服务
    • 第 16.7 节 Samba 服务器
    • 第 16.8 节 NFS 服务器
    • 第 16.9 节 Webmin
  • 第 17 章 网络服务器
    • 第 17.1 节 Apache
    • 第 17.2 节 Nginx
    • 第 17.3 节 PHP 8.X
    • 第 17.4 节 MySQL 5.X
    • 第 17.5 节 MySQL 8.X
    • 第 17.6 节 NextCloud——基于 PostgreSQL
    • 第 17.7 节 Telegraf+InfluxDB+Grafana 监控平台
    • 第 17.8 节 PostgreSQL 与 pgAdmin4
    • 第 17.9 节 AList
    • 第 17.10 节 prometheus 监控部署
    • 第 17.11 节 MongoDB 80
    • 第 17.12 节 Tomcat
    • 第 17.13 节 Caddy
    • 第 17.14 节 OnlyOffice(基于 PostgreSQL)
    • 第 17.15 节 Zabbix 监控(基于 PostgreSQL)
  • 第 18 章 嵌入式(树莓派、RISCV)
    • 第 18.1 节 树莓派简介与配件选用
    • 第 18.2 节 树莓派安装 FreeBSD
    • 第 18.3 节 树莓派 FreeBSD 配置
    • 第 18.4 节 树莓派与 Linux 兼容层
    • 第 18.5 节 树莓派与 OpenBSD
    • 第 18.6 节 在 RISCV 开发板上安装 OpenBSD
    • 第 18.7 节 Radxa X4(x86)
  • 第 19 章 文学故事
    • 第 19.1 节 BSD 与哲学家 George Berkeley(乔治·贝克莱)
    • 第 19.2 节 加州大学伯克利分校与“Fiat Lux”(要有光)
  • 第 20 章 游戏与科学
    • 第 20.1 节 游戏
    • 第 20.5 节 科研与专业工具
    • 第 20.6 节 我的世界(Minecraft)
  • 第 21 章 Linux 兼容层
    • 第 21.1 节 Linux 兼容层实现
    • 第 21.2 节 Linux 兼容层——基于 CentOS(FreeBSD Port)
    • 第 21.3 节 Linux 兼容层——基于 Ubuntu/Debian
    • 第 21.4 节 Linux 兼容层——基于 ArchLinux bootstrap
    • 第 21.5 节 Linux 兼容层——基于 archlinux-pacman
    • 第 21.6 节 Linux 兼容层——基于 OpenSUSE
    • 第 21.7 节 Linux 兼容层——基于 Gentoo Linux
    • 第 21.8 节 Linux 兼容层——基于 Rocky Linux
    • 第 21.9 节 Linux 兼容层——基于 Slackware Linux
    • 第 21.10 节 RockyLinux 兼容层(FreeBSD Port)
    • 第 21.11 节 Linux 兼容层——基于 Deepin
    • 第 21.12 节 Linux 兼容层与 Jail
    • 第 21.13 节 Linux 兼容层故障排除与未竟事宜
  • 第 22 章 编程环境与软件开发
    • 第 22.1 节 如何报告 Bug
    • 第 22.2 节 如何开发一个 Port
    • 第 22.3 节 如何参与 FreeBSD 开发
    • 第 22.4 节 C/C++ 环境的配置
    • 第 22.5 节 Java 环境的配置
    • 第 22.6 节 QT 环境的配置
    • 第 22.7 节 Python 与 VS Code
    • 第 22.8 节 Rust/Go 环境的配置
    • 第 22.9 节 Shell
    • 第 22.10 节 通过 IDA 7 调试 FreeBSD
    • 第 22.11 节 如何订阅 FreeBSD 的邮件列表
    • 第 22.12 节 code-server 和 clangd
    • 第 22.13 节 Node.js
  • 第 23 章 文件系统与磁盘管理
    • 第 23.1 节 自动挂载文件系统
    • 第 23.2 节 ZFS
    • 第 23.3 节 磁盘扩容
    • 第 23.4 节 NTFS & Fat32
    • 第 23.5 节 Swap 交换分区的设置
    • 第 23.6 节 Linux 文件系统
    • 第 23.7 节 ZFS 磁盘加解密
  • 第 24 章 DragonFly BSD
    • 第 24.1 节 DragonFly BSD 概述
    • 第 24.2 节 安装 DragonFly BSD
    • 第 24.3 节 配置 DragonFly BSD
  • 第 25 章 TwinCAT/BSD
    • 第 25.1 节 TwinCAT/BSD 系统安装与基本配置
    • 第 25.2 节 TwinCAT/BSD 开发环境配置
  • 第 26 章 OpenBSD
    • 第 26.1 节 OpenBSD 概述
    • 第 26.2 节 安装 OpenBSD
    • 第 26.3 节 配置 OpenBSD
    • 第 26.4 节 OpenBSD 包管理器
    • 第 26.5 节 桌面与其他软件
  • 第 27 章 NetBSD
    • 第 27.1 节 NetBSD 概述
    • 第 27.2 节 NetBSD 安装图解
    • 第 27.3 节 NetBSD 换源与包管理器
    • 第 27.4 节 桌面与中文环境常用软件
由 GitBook 提供支持
LogoLogo

FreeBSD 中文社区(CFC) 2025

在本页
  • Calibre 文档管理(epub、mobi、azw3 等格式)
  • 安装 Calibre
  • 使用 Calibre
  • 代数学
  • bc(Basic Calculator)简单的计算器
  • 后缀表示法
  • 几何学
  • 几何绘图软件 GeoGebra
  • 线性规划
  • 物理和化学
  • 天文地理
  • 艺术
  • 音乐
  • 三维图像
  • 绘画
  • 工具与软件
  • 统筹学
在GitHub上编辑
导出为 PDF
  1. 第 20 章 游戏与科学

第 20.5 节 科研与专业工具

上一页第 20.1 节 游戏下一页第 20.6 节 我的世界(Minecraft)

最后更新于28天前

Calibre 文档管理(epub、mobi、azw3 等格式)

用过 Kindle 的人应该对 Calibre 这款软件并不陌生。Calibre 可以在多种文档格式之间进行转换,还可以自定义 CSS 格式。

安装 Calibre

  • 使用 pkg 安装:

# pkg install calibre
  • 使用 Ports 安装:

# cd /usr/ports/deskutils/calibre/ 
# make install clean

使用 Calibre

代数学

bc(Basic Calculator)简单的计算器

$ bc # 进入 bc
1+15 # 加法
16
sqrt(256) # 开方
16
5^3	 # 求立方
125
90/3 # 除法
30
10%4 # 求余数
2
quit # 退出程序

后缀表示法

我们从接触数学伊始,用的计算表达方式就是中缀表示法。如,要计算 3 和 4 的和,写作 3 + 4,操作符(本例是 +)处于操作数(即 3 和 4)的中间。

而在后缀表示法里,操作符置于操作数的后面。如上式改若用后缀表示法,则写作 3 4 +。如果有多个操作符,操作符则置于第二个操作数的后面,所以常规中缀表示法的 3 - 4 + 5 在后缀表示法里写作 3 4 - 5 + 。

乍看起来,后缀表示法十分反人类,然而这种方法更容易被计算机理解,可以利用堆栈结构减少计算机内存访问。

有一例中缀表达式 5 + ((1 + 2) * 4) - 3,改为后缀表示法为 5 1 2 + 4 * + 3 -。下表给出了从左至右求值的过程,堆栈栏给出了中间值,用于跟踪算法。

输入
操作
堆栈
注释

5

入栈

5

1

入栈

5, 1

2

入栈

5, 1, 2

+

加法运算

5, 3

1, 2 出栈,让结果 3 入栈

4

入栈

5, 3, 4

*

乘法运算

5, 12

3, 4 出栈,让结果 12 入栈

+

加法运算

17

5, 12 出栈,让结果 17 入栈

3

入栈

17, 3

-

减法运算

14

17, 3 出栈,让结果 14 入栈

计算完成时,栈内只有一个操作数,这就是表达式的结果 14。

dc(Desktop Calculator)桌面计算器

dc 是采用后缀表示法的开源计算器,传统上,采用中缀表示法的 bc 计算器程序是在 dc 之上实现的。

对于上例,我们试着用 dc 操作一番。终端输入

$ dc -e '5 1 2 + 4 * + 3 - p'

可得到 14。问题解决。

几何学

几何绘图软件 GeoGebra

安装命令:

# pkg install geogebra

或者使用 Ports 安装:

# cd /usr/ports/math/geogebra/ 
# make install clean

线性规划

安装 GLPK:

# pkg install glpk

或者

# cd /usr/ports/math/glpk/ 
# make install clean

线性规划里,我们经常会用到 单纯形法。在计算机层面,有很多软件可以解放我们的大脑,你甚至可以在 OFFICE 表格软件的“规划求解”里,得到很好的解答。这里我们简单介绍一下免费的命令行线性规划软件包 GLPK 的使用方法。希望大家可以触类旁通,举一反三。

我们先来看一个例子,取自 Hamdy A. Tara 所著的“Operations Research : An Introduction”一书,例题 2.4-1:

有一家银行计划放贷,预计最高投放 1200 万。下表显示了相关的数据。

贷款类型
利率
坏账率

个人

0.14

0.1

汽车

0.13

0.07

家用

0.12

0.03

农业

0.125

0.05

商业

0.1

0.02

坏账意味着不产生利润,本金也无法收回。为了同其它商业机构竞争,农业贷款和商业贷款之和不少于全部贷款的 40% ;为了振兴房地产业,个人贷款、家用贷款和个人贷款三项总计中,其中的个人贷款占比不少于 50% ;银行坏账率最高允许为全部贷款的 4%。

求解银行能获得最高利润的分配方式。

我们来逐步分析。先设个人、汽车、家用、农业及商业分别的贷款量为 x1、x2、x3、x4 以及 x5。

利润 = 0.14 · 0.9 x1 + 0.13 · 0.93 x2 + 0.12 · 0.97 x3 + 0.125 · 0.95 x4 + 0.1 · 0.98 x5

本金损失 = 0.1 x1 + 0.07 x2 + 0.03 x3 + 0.05 x4 + 0.02 x5

得目标函数 max z = 利润 - 本金损失;

接下来,读者可根据题意找出约束条件。

由以上的目标函数和约束条件,我们可以给出以下数学模型:

max z = 0.026 x1 + 0.0509 x2 + 0.0864 x3 + 0.06875 x4 + 0.78 x5

s.t. x1 + x2 + x3 + x4 + x5 <= 1200,
    x4 + x5 <= 0.4 (x1 + x2 + x3 + x4 + x5),
    x3 >= 0.5 (x1 + x2 + x3),
    0.1 x1 + 0.07 x2 + 0.03 x3 + 0.05 x4 + 0.02 x5 <= 0.04 (x1 + x2 + x3 + x4 + x5),
    xi >= 0 (i = 1, 2, 3, 4, 5)

touch example 新建一个文本文件(命名为 example),输入:

var x1 >= 0;
var x2 >= 0;
var x3 >= 0;
var x4 >= 0;
var x5 >= 0;

maximize z: 0.026*x1 + 0.0509*x2 + 0.0864*x3 + 0.06875*x4 + 0.78*x5;
s.t. C1: x1 + x2 + x3 + x4 + x5 <= 1200;
s.t. C2: x4 + x5 <= 0.4*(x1 + x2 + x3 + x4 + x5);
s.t. C3: x3 >= 0.5*(x1 + x2 + x3);
s.t. C4: 0.1*x1 + 0.07*x2 + 0.03*x3 + 0.05*x4 + 0.02*x5 <= 0.04*(x1 + x2 + x3 + x4 + x5);
end;

保存后,终端输入

$ glpsol -m example -o example.out

打开 example.out 文件:

$ cat example.out
Problem:    example
Rows:       5
Columns:    5
Non-zeros:  23
Status:     OPTIMAL
Objective:  z = 436.608 (MAXimum)

   No.   Row name   St   Activity     Lower bound   Upper bound    Marginal
------ ------------ -- ------------- ------------- ------------- -------------
     1 z            B        436.608
     2 C1           NU          1200                        1200       0.36384
     3 C2           NU             0                          -0        0.6936
     4 C3           B            360            -0
     5 C4           B          -16.8                          -0

   No. Column name  St   Activity     Lower bound   Upper bound    Marginal
------ ------------ -- ------------- ------------- ------------- -------------
     1 x1           NL             0             0                     -0.0604
     2 x2           NL             0             0                     -0.0355
     3 x3           B            720             0
     4 x4           NL             0             0                    -0.71125
     5 x5           B            480             0

……省略一部分……

可查看解答值为:x3 = 720,x5 = 480,其余各项值为 0。

问题解决。

物理和化学

  • 元素周期表 GPeriodic:

使用 pkg 安装:

# pkg install gperiodic

或者

# cd /usr/ports/biology/gperiodic/ 
# make install clean

天文地理

  • 星图软件 Stellarium:

使用 pkg 安装:

# pkg install stellarium

或者使用 Ports 安装:

# cd /usr/ports/astro/stellarium/ 
# make install clean

技巧

默认会进入全屏模式,按 F11 可退出全屏模式以退出软件。

  • Gnome 地图:

使用 pkg 安装:

# pkg install gnome-maps

或者使用 Ports 安装:

# cd /usr/ports/deskutils/gnome-maps/ 
# make install clean

看起来地图数据不算太旧。但是街道细节都看不到。

艺术

音乐

  • MIDI 编曲软件 LMMS:

使用 pkg 安装:

# pkg install lmms

或使用 Ports 安装:

# cd /usr/ports/audio/lmms/ 
# make install clean

软件支持中文,设置后需要重启一下才能使用中文。

  • 制谱软件 MuseScore:

使用 pkg 安装:

# pkg install musescore

或者使用 Ports 安装:

# cd /usr/ports/audio/musescore/ 
# make install clean

三维图像

  • 3D 建模 Blender:

使用 pkg 安装:

# pkg install blender

或者使用 Ports 安装:

# cd /usr/ports/graphics/blender/
# make install clean

支持简体中文。如果看不见先设置繁体,再设置简体。

绘画

  • Krita:

使用 pkg 安装:

 # pkg install krita

或者使用 Ports 安装:

# cd /usr/ports/graphics/krita/ 
# make install clean

工具与软件

  • 科学计算软件 GNU Octave:

使用 pkg 安装:

# pkg install octave

或者使用 Ports 安装:

# cd /usr/ports/math/octave/ 
# make install clean

统筹学

  • 计算机代数系统 wxMaxima:

使用 pkg 安装:

# pkg install wxmaxima

或:

# cd /usr/ports/math/wxmaxima/
# make install clean
load("simplex")$
maximize_lp(0.026 * x1 + 0.0509 * x2 + 0.0864 * x3 + 0.06875 * x4 + 0.78 * x5,
[x1 + x2 + x3 + x4 + x5 <= 1200,
x4 + x5 <= 0.4 * (x1 + x2 + x3 + x4 + x5),
x3 >= 0.5 * (x1 + x2 + x3),
0.1 * x1 + 0.07 * x2 + 0.03 * x3 + 0.05 * x4 + 0.02 * x5 <= 0.04 * (x1 + x2 + x3 + x4 + x5)]),
epsilon_lp = 0, nonnegative_lp = true;

按红框位置可执行指令,软件给出的解答为:[436.608,[x5=480.0,x4=0,x3=720.0,x2=0,x1=0]],可知与 GLPK 求得的答案相同。问题解决。

简单的计算器 bc 和 dc,无需安装,FreeBSD 基本系统内置。其源代码在 。

上一节我们使用 GLPK 求解线性规划问题,本节我们使用性能更加强大的 wxMaxima 来解决问题。以下代码仅供参考,如果想深入了解,可查看 。

https://github.com/freebsd/freebsd-src/tree/main/contrib/bc
官方文档