GNU/Linux 上使用自由软件进行科学计算指南

Manoj Warrier

Shishir Deshpande

V. S. Ashoka

2003-10-03

修订历史
修订版 1.22004-10-19修订者: M. W
1. 修正和新增链接
修订版 1.12004-06-21修订者: M. W
更新和评估的发行版
修订版 1.02003-11-18修订者: JP
文档由 LDP 审查。
修订版 0.02003-10-01修订者: M. W
第一个草案提出

本文档旨在展示如何在运行 GNU/Linux 的 PC 上进行科学计算。 它列出了各种可用的自由软件,并提供了万维网上关于入门工具的教程链接。


目录
1. 前言
1.1. 版权和许可证
1.2. 免责声明
1.3. 动机
1.4. 鸣谢/贡献者
1.5. 反馈
1.6. 翻译
2. 介绍
3. 代码开发工具
3.1. 编程语言
3.2. 调试工具
3.3. 版本控制工具
3.4. 集成开发环境
4. 数学软件包
5. 数值方法和库
5.1. 仓库
5.2. 其他特定主题的数值库
6. 图形和可视化
7. GNU/Linux 编程系统
7.1. GNU/Linux 工作站
7.2. 并行处理和对称多处理:超级计算
8. Linux 上的文字处理和海报展示工具
8.1. 文字处理工具
8.2. 海报展示工具
9. Linux 上的免费数据库管理系统
10. 实验室中的 Linux

1. 前言

1.1. 版权和许可证

本文档《GNU/Linux 上使用自由软件进行科学计算指南》的版权 (c) 归 Manoj Warrier 所有。 允许根据 GNU 自由文档许可证 1.1 版或自由软件基金会发布的任何后续版本复制、分发和/或修改本文档; 没有不变章节,没有封面文字,没有封底文字。 许可证的副本可在此处获得 here


1.2. 免责声明

对本文档的内容不承担任何责任。 使用概念、示例、链接和信息的风险完全由您自己承担。 可能存在错误和不准确之处,可能会损坏您的系统、浪费您的时间等... 请谨慎操作,尽管这种情况不太可能发生,但作者不承担任何责任。

所有版权归各自所有者所有,除非另有特别说明。 本文档中使用某个术语不应被视为影响任何商标或服务标志的有效性。 特定产品、软件或品牌的命名不应被视为认可

我没有使用链接中提供的许多软件应用程序。 有太多应用程序做同样的事情,不能指望一个人使用所有这些应用程序。 在一本关于使用 GNU/Linux 进行科学计算的书中,人们会提到自己最喜欢的工具来执行任务并详细描述它。 然而,这是一个 howto,提供了各种可用的自由科学计算工具的链接,可能包含一些承诺很多但交付很少的软件的链接,反之亦然。


1.3. 动机

本 howto 主要由 http://Scilinux.sourceforge.net 上提供的链接组成,该链接由于名称冲突已被解散。 最好的替代方案似乎是将其制作成 Linux 文档并将其托管在 LDP 站点上。 另一个原因是似乎有很多自由软件应用程序做同样的事情。 我们希望提供可用软件的链接,从而使科学界可以轻松地做出选择,而无需花费太多时间。


1.4. 鸣谢/贡献者

在本文档中,我很荣幸地感谢

  • Linus Trovalds、Richard M. Stallman 及其快乐的伙伴,感谢 Linux、GNU 以及间接拓宽了各种并非真正明显的视角。

  • 来自印度等离子体研究所的大量同事和朋友,感谢他们在不同时间的讨论。

  • Marcel Bose、Ivan Lamouret、K. Scott Hunziker、Livine Christin、W. Herbert、Simon Pinches 和许多其他人,感谢他们建议本文档中提到的各种链接。

  • 我的妻子 Vasudha 允许我做我想做的事,并用“让我们希望你至少能完成这个项目”之类的评论来鼓励我

Shishir 和 Ashoka 是本文档的共同作者,因为收集这些链接是 Shishir 的想法,并且 Ashoka 总是通过提供链接、建议和第二种观点来做出贡献。 他们也将帮助我维护这个 HOWTO。


1.5. 反馈

非常欢迎对本文档提供反馈。 请将您的补充、评论和批评发送到以下电子邮件地址.


1.6. 翻译

尚未翻译。


2. 介绍

GNU/Linux 可能是科学计算的首选平台。 存在各种高级语言、调试工具和其他用于编程的代码开发工具、用于求解各种类型方程的数值子程序、绘图和可视化软件包、可以显示方程和图形的文字处理软件,实际上还有并行编程软件,可以使用现成的 PC 部件和一些硬件来构建超级计算机。 本文档旨在提供一个自由软件列表,用于执行上述任务以及指向关于如何设置和使用这些软件应用程序的教程和其他文档的链接。

本文档的目的不是提供指向 GNU/Linux 系统可用的特定主题的自由软件的链接。 它的目的是展示如何最好地使用 GNU/Linux 来处理科学计算任务。 希望对特定主题感兴趣的人或机构列出、编译可用于该主题的自由软件列表……例如,请参阅 The Random Factory 上的Linux for Astronomy, Linux for Biotechnology Linux for Chemistry 。 另一个包含大量(商业和免费)科学软件链接的站点是Scientific Applications on Linux GNU 软件目录还包含指向本 howto 中提供的许多链接以及更多特定主题软件的链接。 您可能还想查看 Freshmeat.net 上的 科学与工程 部分。

提供的软件链接分为

只需在您的 PC 上安装 GNU/Linux 即可使其成为强大的工作站。 然而,各种流行的发行版并没有使它成为理想的科学计算机器所需的所有工具。 本 HOWTO 旨在通过创建对科学计算有用的自由软件列表来填补这一空白。 假定阅读本文档的人员已经拥有一台安装了 Linux 和 GNU 实用程序的 PC。 对于那些没有此类设置并想安装 GNU-Linux 的人,可以查看 GNU/Linux 系统,以获取有关安装 GNU/Linux 的文档链接,以及如何开始使用 GNU/Linux。 最近,Dirk Eddelbuettel 努力创建一个科学计算环境 Quantian,这可能是第一个专为科学家量身定制的 GNU-Linux 发行版。 我查看了最新的版本,它几乎包含了本文档中提到的所有软件包以及许多未提及的软件包。 可以说,如果您拥有任何通过 rpms 管理软件包的 Linux 发行版或任何基于 debian 的系统,您会找到这些软件包的预编译二进制文件,并且不必浪费太多时间来安装它们。


3. 代码开发工具

代码开发主要包括编程语言、调试工具、版本管理工具、编译工具和集成开发环境 (IDE),其中上述所有工具都作为一个软件应用程序耦合在一起。


3.1. 编程语言

提供了用于科学计算的各种编译器的链接,例如 FORTRAN、C、C++、Java 以及最近的 Python。

  • GNU Compiler Collection : GNU 的项目,旨在生产世界一流的优化编译器。 它适用于多种架构和不同的环境。 目前,GCC 包含 C、C++、Objective C、GNU Fortran-95、Java 和 Ada 的前端,以及这些语言的库(libstdc++、libgcj 等)。

    有关使用各种 GCC 编译器的手册,请查看 The GCC online documentation

  • g77 :FORTRAN 77 的 GCC 前端。它是一个非常好的 FORTRAN77 编译器。 但是,它没有 -r8 选项,该选项会将程序编译为双精度。 这可能是一个好的编译器设计理念,但在将代码从 SUN / DEC / HP 工作站移植到 Linux 系统时,在许多情况下会带来问题。 g77 手册可在 The Gcc Online documentation 站点上找到。

  • gfortran。 我很高兴通过邮件收到此链接。 自从我开始使用 GNU C 编译器进行科学计算以来已经有 3 年了,因为当时没有可用的“真正免费”的 FORTRAN-95 编译器。 我感谢 Paul Thomas 提供此链接。

  • g95。 据报道,上面的 gfortran 和 g95 来自同一 CVS 树的分支。 有一个令人印象深刻的程序列表,可以使用此编译器进行编译和运行。

  • fort77 和 f2c:fort77 是一个 perl 程序,它透明地调用 f2c 命令(一个 Fortran 到 C 的转换器),因此它可以像真正的 Fortran 编译器一样使用。 Fort77 可用于编译 Fortran、C 和汇编程序代码,并且可以将代码与 f2c 库链接。 如果安装 fort77,还需要安装 f2c 软件包。 这没有“-r8”问题。 您可以从上面的链接下载 fort77 和 f2c。

  • lush:一种面向对象的编程语言,它结合了解释型语言的灵活性和编译型语言的效率。 它具有与数值库(GSL、LAPACK、BLAS)、图形库(OpenGL)的完整接口,允许创建图形和 3D 动画以及许多其他听起来好得令人难以置信的功能。 我还没有尝试过这个,但它听起来很有希望。

  • 科学 Python:您可能需要为了您的科学计算需求而探索 Python。 Python 是一种解释型的、交互式的、面向对象的编程语言。它有许多用于数值计算、绘图、数据存储的扩展,并结合 Tk 可以让您为您的代码开发非常好的 GUI。最令人兴奋的是它简化了编程,因为它有几乎任何东西(向量、张量、变换、导数、线性代数、傅里叶变换、统计等)的模块可用。您还可以从 Python 包装 C 和 Fortran 库。最后,如果您想编写自己的数值方案,您可能会发现它在 Python 中更简单。还有与 netCDF(可移植二进制文件)、MPI 和 BSPlib(并行编程)的接口。

    您可以在这里进一步探索 Python 在科学计算中的应用

    • 科学-Python:用于 Python 上进行科学计算的模块集合。所有必要的模块都可以从这里下载为 tar 文件或 RPM 文件。维护者 Konrad HINSEN 还有一个关于 Python 中的科学计算 的精彩教程。

    • SciPy:一个用于 Python 的科学工具的开源库。它包括用于图形和绘图、优化、积分、特殊函数、信号和图像处理、遗传算法、ODE 求解器等的模块。


3.2. 调试工具

在本节中,给出了主要用于 GCC 和 FORTRAN 的调试工具的链接。据我了解,python 有一个内置的调试模块,但我没有使用过它。调试器的目的是让您在程序执行时查看程序内部发生的事情,或者程序在崩溃时/如果崩溃时正在做什么。

  • Ftnchek: 一种 FORTRAN 检查器,旨在检测 Fortran 程序中编译器通常不会检测到的错误。因此,最好在 FORTRAN 程序编译没有错误后运行 ftnchek。它的目的是帮助用户查找语义错误。语义错误在 Fortran 语言中是合法的,但是浪费或可能导致不正确的操作。在线 手册 可用。该项目正在寻找志愿者将 ftnchek 提升到 Fortran 90 标准。

  • gdb :使用 GCC 支持的语言编写的所有程序都可以使用 *gdb* 进行调试,*gdb* 是一个出色的交互式命令行调试器。您可以使用 -g 选项编译您的程序,然后编译您的代码,并将调试信息插入到可执行文件中。它可以启动您的程序,在指定的条件下和指定的位置停止您的程序,检查您的程序停止时发生了什么。在一个包含多个级联调用各种函数的庞大代码中,它可以回溯函数调用。您还可以 下载文档 *使用 GDB 进行调试* 和快速参考卡。

  • xxgdb: 它是 gdb 调试器的前端。对于 gdb 初学者很有用,因为它将整个 gdb 命令作为按钮列出,并提供一个区域用于查看源代码,可以在其中通过单击鼠标包括断点等,另一个区域用于查看调试结果。

  • DDD: GNU 数据显示调试器,GNU DDD,是命令行调试器(如 GDB、DBX、WDB、Ladebug、JDB、XDB、Perl 调试器或 Python 调试器)的图形前端。除了“通常”的前端功能(例如查看源文本)之外,它还具有良好的交互式图形数据显示,其中数据结构显示为图形。点击此链接获取 DDD 手册,格式为 postscript / HTML / PDF。


3.3. 版本控制工具

如果您正在进行任何认真的代码开发,那么花一些时间学习使用以下版本控制工具之一(我使用的是 cvs ...)将是值得的。

  • 并发版本系统:CVS 是在 Linux 操作系统上运行的最流行的版本控制系统之一。流行的 Linux 项目,如 Apache、EGCS、GIMP 等,都在使用 CVS 来协调他们的工作...... 这是上面链接的 URL 对他们工作的描述。

    关于 CVS 的教程可在 Gentoo Linux 文档 中找到,一本免费的 CVS 书籍可在 这里 找到

  • 项目修订控制系统:PRCS,项目修订控制系统,是一组工具的前端,它(像 CVS 一样)提供了一种将文件和目录集作为一个实体处理的方法,保留整个集合的一致版本。 PRCS 主要由 Paul N. Hilfinger 设计,并由 Luigi Semenzato 和 Josh MacDonald 提供输入和修改。 PRCS 由 Josh MacDonald 编写和维护。它的目的与 SCCS、RCS 和 CVS 类似,但(至少根据其作者的说法)它比任何这些系统都简单得多。此页面是有关 PRCS 最新进展的信息的所在地。

  • Gbuild:gbuild 是用 Bourne shell 语言编写的脚本,旨在简化软件包维护,允许您自动执行从 CVS 更新代码、编译、构建 tar/rpms/srpms 包的过程。 gbuild 依赖的某些功能的某些外部脚本是用 Perl 编写的。 gbuild 是在 GPL 下发布的。


3.4. 集成开发环境

集成开发环境 (IDE) 对于构建代码非常有用,理想情况下,它应该包含上述所有工具(即编译器、调试器和版本控制工具)。此外,IDE 通常还提供 makefile 生成器、文档帮助、在线帮助手册等。

  • Kdeveloper :一个易于使用的 Linux C/C++ IDE(集成开发环境)。它支持 KDE/Qt、GNOME、纯 C 和 C++ 项目。该网站有很多文档.....一个高度可浏览的软件开发人员网站。具体来说,KDevelop 管理或提供

    C++ 编程所需的所有开发工具,如编译器、链接器、automake 和 autoconf; KAppWizard,它生成完整的、随时可用的示例应用程序; 类生成器,用于创建新类并将它们集成到当前项目中; 文件管理,用于包含在项目中的源文件、头文件、文档等; 使用 SGML 编写的用户手册以及使用 KDE 外观和风格自动生成 HTML 输出; 项目类的自动 HTML 格式的 API 文档,并交叉引用所使用的库; 应用程序的国际化支持,允许翻译人员轻松地将他们的目标语言添加到项目中; KDevelop 还包括 WYSIWYG(所见即所得)的用户界面创建,并带有内置的对话框编辑器; 通过集成 KDbg 调试您的应用程序; 使用 KIconEdit 编辑特定于项目的像素图; 通过将其添加到“工具”菜单中,根据您的个人需求包含您需要的任何其他程序用于开发。

  • VDKbuilder:VDKbuilder 是一种工具,可帮助程序员在集成环境中构建 GUI 界面、编辑、编译、链接和调试。 使用 VDKBuilder 可以大大缩短开发时间,因为所有与 GUI 构建和信号处理相关的代码都会自动生成、维护和更新。 它是在 GNU 公共许可证下分发的。 访问该站点以下载该软件。


4. 数学软件包

以下所有链接都是用于 Linux 上的科学计算的免费高级语言和数学软件包。 这些软件包通常就像一个数学实验室,可以在其中进行数值计算,并且通常有自己的解释型语言。 它们要么链接到流行的(免费)绘图软件包,要么拥有自己的图形和绘图功能。 它们还提供 I/O 文件的能力,并与 C、C++、Fortran 等其他编程语言连接...... 现在其中一些具有并行编程能力。 我没有包括 MuPAD,一个很好的符号数学软件包,因为它并不是真正的免费的。 请检查他们的 免费许可证 是否适合您。


5. 数值方法和库

GNU/Linux 上使用自由软件进行科学计算的最佳情况是 GNU 科学库 GSL。然而,它只有 C 语言的源代码,这会让使用 FORTRAN 的人感到失望。抓住这个机会,建议 GSL 是开始学习使用 C 的另一个原因(除了 GCC C 编译器,以及 C 编程的优势)。此外,数值方法和库的两个最佳源代码存储库是 NetlibGAMS。有一些新的数值软件包正在开发,它们脱离了通常的“编写 FORTRAN 程序,从 INTERNET 获取数值子程序来求解数值”的概念。这种方法的优点和缺点是有争议的,但存在更多像 面向对象数值 GSL 和 GiNaC 这样的选项,这些都是令人兴奋的进展。


5.1. 存储库

  • Netlib:大量的数值方法免费源代码。Netlib 是源代码存储库,其中包含大量数值方法的源代码。它还有一个活跃的讨论论坛,您可以在其中提交您的查询并及时获得帮助。Netlib 还有一个 并行工具库 和一个按主题搜索功能。

  • GAMS:可用数学软件指南 GAMS 具有非常有用的搜索功能,可以使用它来搜索关键字(例如:“diffusion”搜索扩散方程求解器)。但是,在 GAMS 上按包浏览显示,他们提供的许多软件都是指向 netlib 存储库的链接。

  • 面向对象数值 一个致力于面向对象数值的网站。它有一个邮件列表、指向免费可用库(当然是 OO)的广泛链接以及免费提供的面向对象科学计算工具。

  • GNU 科学库 GNU 科学库 (GSL) 是一个用 C 语言从头开始编写的数值例程集合。它为 C 程序员提供了一个应用程序编程接口 (API),并且还允许为非常高级的语言编写包装器。它涵盖了广泛的数值计算主题,有一个良好的手册,具有广泛的可移植性,并根据 GNU 通用公共许可证分发。

  • GiNaC GiNaC 旨在允许创建需要在其中嵌入符号操作的软件。它通过一组代数功能扩展了 C++,并以递归方式命名为 GiNaC 不是计算机代数系统。它根据 GNU 通用公共许可证 (GPL) 的条款和条件分发。


5.2. 其他特定主题的数值库

  • FFTW FFTW 是一个快速 C 例程集合,用于计算一维或多维离散傅里叶变换。它包括复数、实数和并行变换,并且可以有效地处理任意数组大小。该软件包包括双精度和单精度 FFTW 单处理器以及线程库。

  • LAPACK LAPACK(线性代数 PACKage)是数值线性代数的标准库。LAPACK 提供了用于求解联立线性方程组、线性方程组的最小二乘解、特征值问题和奇异值问题的例程。LAPACK 用 Fortran77 编写,并使用 egcs 构建。它有很好的文档记录并且被广泛使用(因此经过了广泛的测试)。

  • SuperLU SuperLU 是一个通用库,它执行 LU 分解,用于直接求解高性能机器上的大型、稀疏、非对称线性方程组。它用 C 编写,可以从 C 或 Fortran 调用。

  • ARPACK ARPACK 是一组 Fortran77 子例程,旨在解决大规模特征值问题。 用户指南 可用。上面的链接还提供了有关 ARPACK 的并行版本 - PARPACK 和面向对象版本 ARPACK++ 的信息。

  • 计算流体动力学代码 此链接包含公共领域、共享软件和免费软件计算流体动力学代码链接的综合列表,并描述了每个 CFD 代码。


6. 图形和可视化


7. GNU/Linux 的编程系统

本节涉及在 PC 上安装 Linux 的教程和文档链接,开始使用 Linux,然后更进一步 - 优化您的 PC 以获得处理能力,使用多处理器(对称多处理 - SMP); 制作一个廉价的、可升级的超级计算 Linux 集群,最后链接到在 Linux 上进行并行编程的软件。


7.1. GNU/Linux 工作站

与大多数与 GNU/Linux 相关的文档一样,Linux 文档项目的主页是一个无价的资源。 您可能首先想阅读 Linux 安装 HOWTO。 对于那些想同时安装 Linux 和 Windows 的人,可能想浏览 Linux + Windows HOWTO。 安装 Linux 时,请确保选择安装所有文档。 安装 Linux 后,一个好的、全面的文档,用于开始使用 Linux,是 The Rute Users Tutorial and Exposition,它是 Linux 和类 UNIX 系统的初学者指南。 我想给出一个不太吓人(大小)的链接到一个小的初学者指南,但是 U 会在尝试之后发现这很有用。 您可能还想浏览 Linux 系统管理员指南,并查看 The Linux Administration Made Easy (LAME) guide。 它试图描述 Linux 系统管理员经常遇到的日常管理和维护问题。


7.2. 并行处理和对称多处理:超级计算

无需花费数百万卢比购买超级计算机,就可以获得大量数字运算。 您只需要将所需数量的 CPU(通过一些高速网络)链接在一起,并将 GNU/LINUX 作为底层操作系统。 添加一些免费的消息传递软件,就可以制造出一台有效的并行处理数字运算机器。 这样的集群被称为“Beowulf 集群”。 除了构建成本之外,这种集群的其他优点是,升级成本是最小的。 Linux 集群构建者的两个最佳资源是

这些站点会经常更新集群构建者的有用信息。


7.2.1. 并行计算文档链接

您还会想阅读 Joe Greenseid 撰写的这篇关于 Linux 集群软件 的优秀文章(及其提供的大量链接)。 我希望浏览这些链接,并在稍后将其包含在本文档中。

其他用于并行处理的免费文档链接是


7.2.2. 用于 Linux 的并行处理软件

现在,在阅读了上述文档之后,您对并行处理有了一个概念。 并行程序库是 Linux 集群上并行处理的核心。 有各种免费的并行处理库的实现。 由于并行处理完全与性能有关,因此这些库具有一些非常好的功能工具来分析您的并行程序性能。 下面是一组指向这些并行程序库和工具的链接。

  • Message Passing Interface:MPI 是消息传递库的标准规范。 上述文档提供了大量指向有关该标准的文档等的链接。适用于 Linux 的 MPI 实现 mpich 也可在该站点获得。 有很多关于 Learning to use MPI 的文档。

  • Local Area Multicomputer - LAM:LAM (Local Area Multicomputer) 是一个 MPI 编程环境和开发系统,用于网络上的异构计算机。 借助 LAM,专用集群或现有网络计算基础设施可以充当一台并行计算机来解决一个问题。 LAM 在应用程序开发周期中具有广泛的调试支持,并且为生产应用程序提供最佳性能。 LAM 具有 MPI 通信标准的完整实现。 您可以从 here 下载源代码(tar-zipped,rpm)或二进制文件。 还可以在 here 找到大量 MPI 教程链接和一个“ LAM 入门”教程

  • Parallel Virtual Machine :正如 PVM 主页所描述的那样,它是一个软件程序包,允许通过网络连接的 Unix 和/或 NT 计算机的异构集合用作一台大型并行计算机。 因此,可以通过使用多台计算机的聚合能力和内存,更具成本效益地解决大型计算问题。 该软件非常可移植。 可通过 netlib 免费获得源代码,该源代码已在从笔记本电脑到 CRAY 的所有设备上进行了编译。

  • Ganglia:Ganglia 是加州大学伯克利分校计算机科学系开发的开源集群监视和执行环境。 正如上面的链接所描述的那样,“Ganglia 在 16 节点集群上安装和使用起来就像在 512 节点集群上使用一样简单,这已通过其在多个 500+ 节点集群上的使用得到证明”。 它不仅可以链接集群中的节点,还可以将集群链接到其他集群。


8. Linux 上的文字处理和海报展示工具

那些不使用 LaTeX 并发现它具有挑战性并且需要 WYSIWYG 文字处理器的您,请密切关注 OpenOffice ,它已经发布了其 openoffice 软件的 1.2 版本。 它的工具可能可以与市场上最好的工具相媲美。


8.1. 文字处理工具

  • Latex:LaTeX 是一种高质量的排版系统,具有专为制作技术和科学文档而设计的功能。 LaTeX 是科学文档交流和出版的事实标准。 David R.Wilkin 的入门读物 “Getting Started with LaTeX” 是学习 LaTeX 的一个很好的教程。 对于那些必须使用 WYSIWYG 文档编制工具的人,请查看 LyX。 这是 latex 的前端。 它不如 latex 本身强大,但有助于提供良好的 WYSIWIG。

  • Lout:类似于 latex 的文档格式化系统。 良好的功能、文档和历史记录。 轻量级并输出 postscript。 感谢 Emiliano Gavilan 提供此链接。

  • Abiword:正如 AbiWord 主页所说,“AbiWord 适用于输入论文、信件、报告、备忘录等等”。 它赢得了许多奖项,似乎是最好的开源 WYSIWYG 文字处理器。 请查看上面的链接以了解更多信息并下载它。

  • kword:正如 kword 主页所说,“KWord 是一种类似于 FrameMaker 的文字处理和桌面出版应用程序。 KWord 能够创建要求苛刻且外观专业的文档。 无论您是公司或家庭用户、生产艺术家还是学生,KWord 都将被证明是一个有价值且易于使用的工具,可满足您的所有文字处理和布局需求”。 请查看上面的链接以了解更多信息并下载它。(您可能想了解更多关于整个 koffice 套件的信息)。


8.2. 海报演示工具

  • KPresenter:KPresenter 是 KOffice 办公实用程序套件的演示工具。 它允许屏幕演示,其中包含人们习惯在昂贵的演示工具中看到的所有装饰。 它还允许诚实的、真实的科学演示,您无需以非主题特定的内容来打动观众 :-)。 最好的一点是可以将演示文稿保存为 html 文件。 它为每个演示文稿幻灯片制作便携式网络图形文件。 凭借一些 html 文件知识,您可以将动画图像作为图像链接放入其中,从而在必要时也可以显示电影。

  • Xfig :尽管其手册页声称它是一个交互式生成图形的工具......但实际上它远不止于此。除了生成用于阐明您想在海报中表达的内容的图形之外,它还可以帮助您导入和导出各种格式的图形,以各种字体和大小书写文本,生成希腊符号和彩色文本,保存为 LaTeX 图片文件或您的文字处理器支持的任何其他格式,以便包含在您的出版物中,生成海报每一页的 GIF 图像以放置在您的网站上,最后,它生成体积小的 *.fig 文件。我对 xfig 唯一的期望是能够编辑不是 *.fig 格式的导入图片。因此,对于计算机屏幕投影的海报演示,您需要一个具有帧功能的浏览器,一个帧包含内容,另一个帧包含 Xfig 生成的海报(从 Xfig 导出为 *.png 或 *.jpg)。


9. Linux 下的免费数据库管理系统

科学计算有两个并行的数据需求,一个是数据本身的物理值,另一个是管理数据的数据库系统。本文档仅提供指向互联网上数据库资源和免费数据库系统的链接。我个人不使用数据库来处理我的代码生成的数据。 gawk、sed 和其他基本的 Unix 命令(如 grep、head 和 tail)似乎足以处理我生成的任何数据。我认为我应该为大型数据生成器包含此部分。希望有数据库经验的人能让这一部分更好。


10. 实验室中的 Linux

同样,这是一个我没有任何经验的部分,希望有经验的人能够为改进本文档做出贡献。 但是,我在下面提供 Sambaran Pahari 和 Deepak Gupta 建议的链接。 从我没有经验的角度来看,这些链接看起来非常好。