User:adriano32/Инженерное ПО

Громадная просьба! Оставьте свои замечания в комментариях, я сам с удовольствием внесу правки после ваших предложений, а потом уже готовую статью можно будет перенести собственно L.O.R. Wiki

При написании статьи автор копипастил вдохновлялся собственным опытом использования некоторого из этого софта, частично LOR-FAQ-Scientific (в разделе визуализации данных - на большее пока не сподвигся), букмарками после просмотров [1] и не только, новостями и обсуждениями на L.O.R.

По поводу структуры: когда статья будет наполнена максимально возможным количеством софта, структуру заголовков приведу в соответствие к статьям Linux в школе и Программы для дома и работы — то есть подзаголовок->список.

Инструменты для математических и научных расчётов

Приложения

Scilab

Scilab — свободный открытый кроссплатформенный пакет для выполнения расчётов для образовательных, научных и инженерных задач с собственным MATLAB-оподобным языком.

Содержит большое количество встроенных функций для вычислений, визуализации, оптимизации, обработки сигналов, расчёта систем управления итп. Также существуют ряд модулей для расширения стандартного функционала, они поставляются отдельно, но доступны для загрузки на официальном сайте.

Также в поставку Scilab'a входит графическая среда моделирования Xcos на базе Scicos, который тоже продолжает развиваться, подробная документация с примерами, конвертор MATLAB'овских M-файлов.

Кроме официальной документации по Scilab есть достаточно много руководств и на английском, и на русском языке. Вот лишь одно из них из библиотеки ALT Linux

Octave

GNU Octave — высокоуровневый интерпретируемый язык для расчётов в учёбе и науке. Сходен с языком MATLAB'a. Встроенные библиотеки и компоненты позволяют проводить операции с матрицами и полиномами, численное дифференцирование и интегрирование, оптимизацию, статистические расчёты, обработку сигналов, строить 2D и 3D графики и другое.

Те, кому мало встроенных пакетов, могут доустановить недостающие из Octave-Forge.

Как и Scilab, Octave имеет превосходную документацию с примерами.

FreeMat

FreeMat — ещё один пакет для научных вычислений, который гоняется за славой MATLAB'a. В версии 4.0 заявлена 95% совместимость по количеству функций.

Документация доступна на официальном сайте.

Sage

Sage — предоставляет основанный на Python интерфейс к почти сотне популярных программных пакетов для математических расчётов, символьных вычислений, статистического анализа, программирования, построения графиков и многого другого.

Работать с Sage можно в командной строке с использованием IPython или через интерфейс "Notebook" в браузере благодаря SageNB (The Sage Notebook server). Благодаря последнему, Sage совсем не обязательно устанавливать на свой компьютер или, например, на все компьютеры в аудитории: можно установить Sage на один высокопроизводительный компьютер в локальной сети или же можно воспользоваться одним из тестовых Sage-серверов. Список официальных публичных Sage-серверов доступен на главной странице проекта, один из публичных Sage-серверов также работает в Институте кибернетики им. Глушкова НАН Украины при поддержке НаУКМА (Национального университета "Киево-Могилянская академия").

Cantor (KDE Edu)

Cantor (KDE) — часть проекта KDE Edu, фронтенд к Sage, Maxima, R или KAlgebra (на выбор). Предоставляет интерфейс в виде рабочих листов.

SMath Studio

SMath Studio — символьная среда вычислений, разрабатываемая петербуржцем Андреем Ивашовым и программистом из Бреста Романом Стрильцом на Mono. Smath во многом похож на Mathcad и даже умеет полностью импортировать .xmcd файлы, если те содержат уже имплементированные функции.

Jasymca

Jasymca: Programmable Java calculator — Java-апплет с функционалом неплохой системы компьютерной алгебры (CAS): арифметика, операции с матрицами, полиномами, символические вычисления, интегрирование, дифференцирование, визуализация, програмирование. Самый главный плюс, что версия 3.0 поставляется в том числе под Android, а иметь такой программируемый калькулятор на смарте очень даже неплохо.

Maxima

Maxima — свободная кроссплатформенная система компьютерной алгебры (CAS), написанная на Common Lisp.

Имеет несколько графических интерфейсов, среди которых самыми ходовыми являются Xmaxima и wxMaxima. При этом с Maxima можно работать и в командной сроке, и при помощи дополнительных расширений в буфере GNU Emacs или в браузере.

Mathomatic

Mathomatic — кроссплатформенная система компьютерной алгебры (CAS) с командным интерфейсом, написанная на C. Среди возможностей: решение уравнений, дифференцирование, операции с полиномами, операции с действительными и комлексными числами и другое.

Документация в комплекте.

Singular

Singular — система компьютерной алгебры (CAS), специализирующаяся на операциях над полиномами, а именно их применении в коммутативной и некоммутативной алгебре, алгебраической геометрии, теории особенностей (singularity theory).

Функционал может быть расширен за счёт дополнительных библиотек и линковки с другими приложениями.

Документация на официальном сайте.

Axiom

Axiom — свободная кроссплатформенная система компьютерной алгебры (CAS). Код Axiom разрабатывается в лучших традициях Literate Programming Дональда Эрвина Кнута.

OpenAxiom

OpenAxiom: Scientific Computation System — живой форк Axiom.

FriCAS

FriCAS — ещё один живой форк Axiom.

ARIBAS

ARIBAS — малость устаревший, но рабочий кроссплатформенный интерактивный интерпретатор для арифметических операций с большими целыми числами и числами с плавающей точкой с произвольной точностью с синтаксисом, напоминающим Pascal/Modula, написанный на C. Поскольку часть кода написана на ассемблере ARIBAS работает только на 32-битных системах.

REDUCE

REDUCE — написанная на диалекте Lisp'a Standard Lisp система для алгебраических расчётов. Умеет работать с полиномами, матрицами, выполнять аналитическое дифференцирование и интегрирование, факторизацию и полиномизацию и другое.

R

R — это язык программирования и среда для статистических расчётов и визуализации их результатов.

PSPP

GNU PSPP — программа для статистического анализа больших наборов данных. Имеет как командный, так и графический интерфейс, а также встроенные функции для обработки данных и визуализации.

gretl

gretl —кроссплатформенный пакет для эконометрического анализа, написанный на C. Поддерживает несколько форматов входных файлов (XML, CSV, Excel, Gnumeric).

JMulTi

JMulTi — приложение на Java для анализа временных рядов. Версия для Linux заброшена разработчиками в силу ряда причин, однако всё ещё доступна для загрузки.

Stata

Stata — коммерческое ПО для статистического анализа, доступна версия для Linux.

IBM SPSS Statistics

IBM SPSS Statistics — мощный коммерческий пакет от IBM для статистических расчётов. Есть триальные версии некоторых компонентов, работающие в Linux (32-bit only), например SPSS Statistics Desktop, доступные после регистрации.

Библиотеки

GMP

GMP — свободная открытая библиотека для расчётов с произвольной точностью над целыми числами, рациональными дробями и числами с плавающей запятой. Написана с использованием языка ассемблера и C. Считается одной из самых быстрых среди себе равных, как при вычислениях с операндами малой разрядности, так и при расчётах с большим количеством разрядов, благодаря оптимизированному коду и использованию асимптотически оптимальных алгоритмов.

Функции в GMP поделены на категории для удобства использования:

  • mpz - высокоуровневые арифметические и логические функции для операций над знаковыми целыми числами (около 140).
  • mpq - высокоуровневые арифметические функции для операций над рациональными дробями (около 35).
  • mpf - высокоуровневые арифметические функции для операций над числами с плавающей точкой (около 65) для вычислений с точностью не ниже двойной.
  • C++ классы для интерфейса к функциям категорий mpz, mpq, mpf.
  • mpn - низкоуровневые функции для операции с беззнаковыми целыми числами с менее удобным вызовом, но низкими накладными расходами. Используются функциями вышеперечисленных категорий.
  • mpfr - отдельно поддерживаемые и разрабатываемые высокоуровневые арифметические функции для операций над числами с плавающей точкой с высокоточным округлением.

GSL — GNU Scientific Library

GSL - GNU Scientific Library написана на C и содержит значительное количество функций - от элементарных математических операций и операций с комплексными числами до численных методов дифференцирования, интерполяции, аппроксимации, решения дифференциальных уравнений, wavelet-преобразования и многих других.

MPFR

MPFR — C-шная библиотека для расчётов с произвольной точностью над числами с плавающей точкой с высокоточным округлением.

MPFR++ и MPFI

MPFR++ MPFI — C++ интерфейс к MPFR и основанная на MPFR библиотека интерфальной арифметики с произвольной точностью соответственно.

MPIR

MPIR — библиотека для вычислений с произвольной точностью, форк GMP. Главные особенности: поддержка сборки при помощи Microsoft Visual Studio 2010 (32-bit and 64-bit) и полная интерфейсная совместимость с GMP.

LAPACK

LAPACK — библиотека на Fortran 90 для решения различных систем линейных уравнений, поиска решений линейных систем уравнений методом наименьших квадратов, задач на собственные значения (краевые задачи), сингулярных задач. Особенность состоит в оптимизации по сравнению с EISPACK или LINPACK в операциях с памятью и при распараллеливании.

LinBox

LinBox — C++ библиотека для точных высокопроизводительных алгебраических расчётов с плотными, разрежёнными и структурированными матрицами над целыми числами и конечными полями.

NTL

NTL — библиотека на С++, содержащая структуры и алгоритмы для операций с знаковыми целыми числами произвольной точности, а также векторами, матрицами и полиномами над целыми числами и конечными полями.

BLAS

BLAS (Basic Linear Algebra Subprograms) — библиотека для операций над векторами и матрицами на Fortran 77 (да-да). Если вы не страдаете подобным некрофильством, то есть версии BLAS от производителей аппаратных платформ. Также не стоит забывать о более современных ATLAS, Goto BLAS2, поддерживающих многопоточность.

GotoBLAS2

GotoBLAS2 и GotoBLAS — вариации библиотеки BLAS от Texas Advanced Computing Center. Сейчас уже не разрабатывается, но исходный код открыт под лицензией BSD.

ATLAS

Automatically Tuned Linear Algebra Software (ATLAS) предоставляет интерфейсы на C и Fortran77 к кроссплатформенной производительной реализации BLAS, а также некоторым функциям из LAPACK.

Eigen

Eigen — библиотека для операций с матрицами любых размеров, содержащих целые числа, числа с плавающей запятой, комплексные числа.

ESSL

ESSL — Engineering and Scientific Subroutine Library (ESSL) and Parallel ESSL от IBM это коллекция специально спроектированных функций для инженерных и научных расчётов на серверах и блейд-серверах с процессорами IBM POWER™.

IML

IML — библиотека реализованных на C алгоритмов для расчёта точных решений плотных систем целочисленных линейных уравнений. IML показано использовать совместно с ATLAS/BLAS и GMP.

GLPK

GLPK (GNU Linear Programming Kit) — набор библиотек на ANSI C для решения задач масштабного линейного программирования (large-scale linear programming), смешанного целочисленного программирования и других. Поддерживает язык моделирования GNU MathProg.

SciPy

SciPy — одна из двух базовых для Python библиотек для научных вычислений. Содержит модули для статистических расчётов, оптимизации, численного интегрирования, решения дифференциальных уравнений, линейной алгебры, преобразования Фурье, обработки сигналов, обработки изображений и прочих функций.

NumPy

NumPy — одна из двух базовых для Python библиотек для научных вычислений. Содержит функции для операций с многомерными массивами и матрицами, а также стандартные функции линейной алгебры, преобразования Фурье, генераторы случайных чисел и инструменты для интеграции C/C++ и Fortran кода.

mpmath

mpmath — библиотека на Python для арифметических операций произвольной точности над числами с плавающей точкой. Местами использует асимптотически оптимальные алгоритмы, при наличии gmpy ускоряет операции за счёт использования GMP/MPIR вместо собственной реализации.

gmpy

gmpy — wrapper к GMP на Python.

Pynac

Pynac — аналог C++'ового GiNaC на Python для операций с символьными выражениями.

SymPy

SymPy — библиотека на Python для символьной математики.

Pyrex

Pyrex — фактически язык, который представляет смесь C и Python, позволяя, например, смешивать типы данных и собирать результат в C-шное расширение для Python.

RPy

RPy — биндинг к R для Python

CVXOPT

CVXOPT — пакет для выпуклой оптимизации на Python.

FLINT

FLINT: Fast Library for Number Theory — быстрая, оптимизированная в том числе для многоядерных и многопроцессорных систем, библиотека функций на C для теории чисел.

PolyBoRi

PolyBoRi — C++ библиотека с интерфейсом на Python предоставляющая высокоуровневые типы данных для работы с булевыми многочленами и одночленами и др., основываясь на CUDD: CU Decision Diagram Package и M4RI(e).

GAP

GAP - Groups, Algorithms, Programming

Givaro

Givaro — C++ библиотека для различных арифметических и алгебраических операций: от арифметики с произвольной точностью над целыми числами и расчётов с дробями до дейстий с векторами и матрицами. Основан на GMP.

GiNaC

GiNaC — (GiNaC is Not a CAS), предназначенна для неинтерактивных операций с символьными математическими выражениями.

CLN

CLN — C++ библиотека для операций с произвольной точностью над целыми, рациональными дробными, комплексными числами, числами с плавающей точкой. Оборудована сборщиком мусора, умножением Карацубы и Schönhage-Strassen.

jsMath

jsMath — метод внедрения математических записей в веб-страницы. В зависимости от наличия шрифтов (лучше TeX шрифты, но можно и Unicode) выдаёт результат немного отличающегося но приемлимого качества в большинстве браузеров.

M4RI(e)

M4RI(e) названа в честь "Method of the Four Russians" multiplication algorithm by Gregory Bard. Представляет из себя библиотеку для быстрой арифметики над плотными матрицами через F₂.

SWIG

SWIG (Simplified Wrapper and Interface Generator) — этот программный продукт позволяет подключать написанные на C/C++ программы к ряду других языков программирования.

PARI/GP

PARI/GP — C-шная библиотека и интерактивная консоль, прдоставляющая функционал системы компьютерной алгебры (CAS).

zn_poly

zn_poly

PDL

PDL (Perl Data Language) — основанный на Perl язык, предназначенный для операций с N-мерными массивами данных. Стремится стать заменой MATLAB или IDL, поставляется вместе со встроенными интерактивными оболочками.

Tachyon

Tachyon — Multiprocessor Ray Tracing System (зачем я её сюда добавил?)

Симуляторы и средства имитационного моделирования

Общего назначения

Xcos (Scilab)

Xcos — аналог Simulink MATLAB'a в Scilab, основан на Scicos, заменил его с версии Scilab 5.2, имеет некоторые улучшения в плане эргономики, цикл разработки синхронизирован с циклом разработки Scilab.

Scicos (Scilab)

Scicos — аналог Simulink MATLAB'a в Scilab.

Электроника

Qucs

Qucs — свободный симулятор электрических цепей, пока что на Qt3.

QucsStudio

QucsStudio — свежий форк Qucs, правда пока только для Windows.

KTechlab

KTechlab — довольно медленно, но верно развивающаяся по направлению к KDE4 и Qt4 программа для симуляции электрических цепей и микроконтроллеров (пока что PIC от MICROCHIP) в этих цепях (да, прямо как в Proteus).

SPICE

SPICE — это целый класс и не одно поколение численных симуляторов аналоговых электрических цепей.

ngspice

ngspice

SPICE3F5

SPICE3F5

CIDER 1B1

CIDER 1B1

XSPICE

XSPICE

QSapecNG

QSapecNG — символьный симулятор линейных электрических цепей, преемник SAPWIN (Symbolic Analysis Program for Windows), переписанный на Boost C++ по модульному принципу с графической оболочкой на Qt. В отличие от симуляторов семейства SPICE (Simulation Program with Integrated Circuit Emphasis), использующих численные методы, производит расчёты на базе аналитических выражений, с использованием преобразования Лапласа и операционного исчисления.

Logisim

Logisim — достаточно простое средство для симуляции цифровых электричечких схем, написанное на Java. Годится для демонстрации при обучении основам цифровой схемотехники.

NuSMV

NuSMV — приложение для символической проверки моделей, базирующееся на BDD (Binary decision diagram).

DLSim 3

DLSim 3 — бесплатный для образовательных целей, требуется регистрация 1, 2.

KLogic

KLogic — медленно, но верно портируемое на KDE4 приложение для симуляции цифровых цепей как и положено с функцией построения временных диаграмм.

TKGate

TKGate — цифровой схемный симулятор с интерфейсом на Tcl/Tk с поддержкой скриптов, различных моделей логических уровней, настраиваемыми моделями задержек, точками останова, построением временных диаграмм и многими другими вкусностями. Ждём выхода версии 2.0.

Electric

Electric — среда разработки принципиальных электрических и интегральных схем и их симуляции. Написана на Java.

gpsim

gpsim — программный симулятор для микроконтроллеров PIC от Microchip.

SimCAS

SimCAS — аналитический симулятор аналоговых электрических схем.

Языки описания аппаратуры (HDL)

Verilator

Verilator — один из быстрейших симуляторов Verilog HDL. Как указывает автор, предназначен для больших проектов, где важна быстрая симуляция, а особенно хорош для создания исполняемых моделей ЦПУ при проектировании встраиваемых систем.

Icarus Verilog

Icarus Verilog — средство симулирования и синтезирования для языка Verilog HDL.

ISE Design Suite (Xilinx)

ISE Design Suite — проприетарная IDE для разработки на языках HDL для ПЛИС Xilinx.

Quartus II (Altera)

Quartus II — проприетарная IDE для разработки на языках HDL для ПЛИС Altera.

FreeHDL

FreeHDL — часть Qucs, симулятор VHDL.

GHDL

GHDL — симулятор VHDL.

zamiaCAD

zamiaCAD — модульная среда разработки на языках описания аппаратуры (HDL). Поддерживается разработка на VHDL 2003, поддержку парсера и синтаксического дерева VHDL 2003 и Verilog 2005, имеется симулятор, средство построения временных диаграмм.

VeriWell

VeriWell — симулятор Verilog HDL.

Физические

Step (KDE Edu)

Step (KDE) — часть проекта KDE Edu, умеет симулировать механику, пружины, гравитацию, кулоновские силы и молекулярную динамику жидкостей и газов.

Algodoo

Algodoo (Phun) — замена симулятора Phun. Доступна демка, по словам разработчиков, в Algodoo много улучшений касательно физического движка, возможностей симулятора и визуализации.

Системы автоматизированного проектирования

Toped

Toped — кроссплатформенный редактор макетов интегральных схем, поддерживающий форматы GDS, OASIS и CIF.

LayoutEditor

LayoutEditor — приложение-редактор проектов для производства MEMS/IC (Microelectromechanical systems/Integrated circuit - микроэлектромеханических систем/интегральных схем). Также может быть использован для разработки Multi-Chip-Modules (MCM), Chip-on-Board (COB), Low temperature co-fired ceramics (LTCC), Monolithic Microwave Integrated Circuits (MMIC), printed circuit boards (PCB), thick film technology. Имеет интегрированный SchematicEditor для разработки принципиальных электрических схем.

OpenSCAD

OpenSCAD - The Programmers Solid 3D CAD Modeller — неинтерактивная среда проектирования сплошных 3D деталей. Не такая живописная и красочная как Blender, больше подходит для технических задач. OpenSCAD использует Qt4, библиотеки OpenCSG и CGAL. Для создания 3D модели необходимо написать скрипт с описанием объекта и затем запустить рендеринг. Работает одним из двух способов: либо полностью описание объекта скриптом, либо DXF/STL/OFF файл двумерного объекта и соответствующая обработка этого "сечения" скриптом.

gEDA

gEDA — GPL Electronic Design Automation, комбайн, объединивший несколько отдельных программ для проектирования электроники в общем цикле разработки. В gEDA входят:

  • gschem — разработка принципиальных электрических схем (schematic capture)
  • gnetlist — работа с netlist'ами.
  • gattrib — работа с номенклатурой компонентов
  • gedasymbols.org — ресурс-репозиторий для обмена и расшаривания разработанных компонентов
  • gerbv — просмотрщик для Gerber RS-274X, файлов Excellon drill и CSV pick-and-place.
  • PCB — редактор печатных плат

KiCad EDA Suite

KiCad EDA Suite — програмный пакет для автоматизированного проектирования принципиальных электрических схем и печатных плат. В его состав входят:

  • EESchema - входящий в состав KiCad EDA Suite редактор принципиальных электрических схем. Годное руководство по Eeschema от KiCad Russian Team.
  • CvPCB - входящий в состав KiCad EDA Suite редактор связей "компонент принципиальной схемы" - "корпус и геометрия выводов на печатной плате". Годное руководство по CvPCB от KiCad Russian Team.
  • PCBNew - входящий в состав KiCad EDA Suite редактор печатных плат Годное руководство по PCBNew от KiCad Russian Team.
  • GerbView - входящий в состав KiCad EDA Suite просмотрщик Gerber файлов формата RS-274X. Годное руководство по GerbView от KiCad Russian Team.
  • Bitmap2Component - входящий в состав KiCad EDA Suite редактор изображений элементов.

EAGLE

EAGLE by CadSoft — коммерческое ПО для разработки печатных плат, в том числе для Linux. EAGLE Light Edition для некоммерческих организаций с ограничениями проектирования одно/двухсторонней платы размером не более 100 x 80 мм, максимум одним листом схемы и поддержкой лишь по почте и через форум доступен бесплатно.

atlc

atlc - Arbitrary Transmission Line Calculator (for transmission lines and directional couplers) — специфичная среда, предназначенная для расчёта распределённых линий с довольно оригинальным способом ввода данных. У кого читали математическую физику на электрофаке, те, думаю, оценят возможности утилиты.

QCAD

QCAD — кроссплатформенное приложение для создания 2D-чертежей, имеющее как коммерческую платную версию, так и свободную открытую community-версию. Свободно снабжается большим количеством примеров, готовых чертежей деталей и запчастей (более 4500) и документацией.

FreeCAD

FreeCAD — открытая среда 3D проектирования, создания чертежей и моделей, с интерфейсом на Qt и геометрическим ядром Open CASCADE и трёхмерным движком Coin 3D. Имеет модульную архитектуру, Python API, импорт/экспорт из/в STEP, IGES, OBJ, DXF, SVG, U3D, STL.

BRL-CAD

BRL-CAD — многофункциональная кроссплатформенная система автоматизированного проектирования и моделирования объёмных тел методами конструктивной блочной геометрии (CSG - Constructive Solid Geometry) с более чем 20-летней историей.

LibreCAD

LibreCAD — ещё одна среда для разработки 2D-чертежей.

Ayam

Ayam — free 3D modelling environment for the RenderMan interface.

XTrackCAD

XTrackCAD — есть в мире OpenSource и такое - система автоматизированного проектирования железнодорожных путей.

Archimedes

Archimedes — свободная CAD написанная на Java из Бразилии. В скриншотах почему-то приведены примеры проектирования комнаты, хотя, лично проверил, умеет он не только это.

Sweet Home 3D

Sweet Home 3D — свободная САПР для дизайна интерьеров на Java в 2D с 3D просмотром. В какой-то степени покрывает функционал проприетарной PRO100 для дизайна мебели и интерьеров.

OpenCASCADE

OpenCASCADE — 3D modeling & numerical simulation. Требует регистрацию для загрузки. Напишите отзыв.

VariCAD

VariCAD — коммерческий 2D/3D CAD. Умеет экспорт STEP (3D), STL (3D), IGES (3D and 2D), DWG (2D), DXF (2D) и импорт STEP (3D), DWG (2D), DXF (2D), IGES (2D). Стоит относительно недорого. Есть 30-дневный триал.

DraftSight

DraftSight by Dassault Systèmes (DS) — бесплатный 2D CAD в Beta стадии с официальной поддержкой 32-bit Ubuntu, Fedora, openSUSE и Mandriva. Требует бесплатную активацию в течение 30 дней через интернет и последующую реактивацию через 6 месяцев и затем каждый год. Открывает DWG/DXF файлы и экспортирует в PDF.

MEDUSA4 Personal

MEDUSA4 Personal — бесплатный 2D/3D CAD для частного некоммерческого использования. Требует бесплатную регистрацию и активацию каждые 6 месяцев. Имеет достаточно интересную возможность получить платное разрешение для коммерческого использования конкретного чертежа.

Bricscad

Bricscad от ООО Кадсофт (Волгоград) — коммерческий 2D/3D CAD с поддержкой формата DWG с версией для Linux. Доступная 30-дневная trial версия.

Siemens NX 7

Siemens NX 7 — коммерческий CAD/CAE/CAM от Siemens. Имеется версия для Linux/Unix.

Autodesk® Software

Autodesk® — как ни странно, но у Autodesk® есть коммерческие продукты под Linux, кроме web-based, правда немного и почти все они так или иначе связаны с 3D и рекомендуемая ОС, естественно, RHEL или на худой конец Fedora. Связана такая печальная ситуация с поддержкой Linux с тем, что Autodesk® не гнушается использовать для своих мощных продуктов .NET и при этом писать нехилые требования к оборудованию.

Перечень на июнь 2011 года (информация о поддержке Linux может изменяться от версии к версии - могут как убрать, что более вероятно, так и добавить, что менее вероятно):

SCADA системы

Тут прямо скажем и выбор невелик, и названия какие-то однообразные. Как заметил автор первого проекта, Роман Савоченко в одном из интервью: "Тёзки". :)

OpenSCADA

OpenSCADA — разработка Романа Савоченко из Днепродзержинска представляет собой уже вполне надёжную SCADA систему с модульной организацией и графическим интерфейсом, разрабатываемым с использованием Qt. К LTS версии 0.7.0 реализована поддержка протоколов OPC_UA, ModBUS, SNMP, DCON, собственного протокола OpenSCADA на физических последовательных интерфейсах (RS232, RS485, Modem ...) и Ethernet, а также баз данных и ряда конкретного оборудования.

FIXME: Приглашаем Романа Савоченко собственноручно исправить или дополнить вышенаписанное

openSCADA

openSCADA — эта SCADA система разрабатывается на Java с тестовым клиентом на GTK разработчиками из Германии во главе с Йенсом Райменом (Jens Reimann) и Юргеном Розе (Jürgen Rose). Проект состоит из двух частей: Atlantis, содержащий имплементацию openSCADA интерфейсов на Java к таким внешним системам как Siemens S7 PLC, OPC, SNMP, реляционные базы данных и т. п., и Utgard - 100% pure JAVA OPC Client API с поддержкой интерфейса OPC DA 2.0 для соединения с OPC сервером.

Системы визуализации данных

Построение 2D/3D графиков/диаграмм

gnuplot

gnuplot — кроссплатформенная консольная утилита для построения 2D и 3D графиков.

Not so Frequently Asked Questions по gnuplot - [2].

Графические фронтенды к gnuplot

Qgfe (Qt3) - очень старый, но рабочий проект Дэвида Иши (David Ishee), подойдёт для начального ознакомления с функционалом gnuplot.

UniGNUPlot (Tcl/Tk) - проект также заброшен, но само приложение всё ещё рабочее.

Интерфейсы и биндинги

Gnuplot.py — интерфейс к gnuplot для Python.

JavaPlot — интерфейс к gnuplot для Java.

Информация по интерфейсам к gnuplot на ANSI C, C++, Perl, Fortran доступна собственно на сайте gnuplot и на сайте Николаса Девиларада (Nicolas Devillard), разработчика интерфейса к gnuplot на ANSI C.

FIXME: Собрать ответы на вопросы по gnuplot в отдельную статью gnuplot

QtiPlot

QtiPlot (Qt4) - кроссплатформенное приложение базирующееся на Qt4 и библиотеках Qwt (класс QwtPlot) и QwtPlot3D для построения 2D и 3D графиков с функциями аппроксимации, анализа построенных графиков, интегрирования LaTeX, экспорта в различные графические форматы. По функционалу близок к Origin. В платной версии доступна поддержка скриптов на Python, что позволяет использовать QtiPlot в связке с SciPy, NumPy, SymPy и т. д.

SciDAVis

SciDAVis — форк QtiPlot, базирующееся на Qt4 приложение для построения 2D и 3D графиков, круговых и столбчатых диаграмм. Данные для построений могут быть введены как интерактивно, так и импортированы из ASCII файлов или вычислены при помощи стандартных функций или функций Python. Как и многие приложения этого класса, позволяет экспортировать результаты в различные форматы, от растровых и векторных графических до EPS и PDF. Проект сотрудничает с LabPlot, работая над созданием общего бэкенда, оставаясь при этом независимым от библиотек KDE.

LabPlot

LabPlot (KDE) — приложение для анализа и визуализации данных для KDE с большим перечнем возможностей, среди которых построение 2D, 3D графиков, поверхностей, экспорт и импорт как результатов построений, так и данных и многое другое. По функционалу напоминает проприетарный пакет Origin и умеет импортировать файлы его проектов.

Veusz

Veusz — основанный на Qt4 пакет для визуализации. Написан на Python с использованием PyQt4 для построений и графического интерфейса пользователя, и NumPy для манипуляций с числовыми данными. Veusz разработан для получения Postscript/PDF/SVG файлов качества, приемлимого для сопровождения публикаций графическим материалом.

Kst

Kst — ПО для визуализации данных в KDE.

ROOT

ROOT — разрабатываемое CERN на C++ приложение и набор библиотек для визуализации данных. Содержит один из самых полных наборов функций и методов, которые могут понадобиться для построения результатов научных экспериментов, расчётов и анализа данных, несмотря на свою узкую специализацию для задач физики.

GSEGrafix

GSEGrafix (GNOME) - приложение для построения 2D и 3D графиков в GNOME. Графики строятся с использованием сглаживания при помощи виджета GNOME Canvas. Приложение может считывать данные для построения из ASCII файлов и вызываться из внешних программ и скриптов Octave.

RLPlot

RLPlot — приложение для построения графиков, диаграмм, гистрограмм и др. на основе табличных данных. Имеет функцию экспорта в несколько растровых графических форматов, векторный SVG и в EPS.

Asymptote

Asymptote — is a powerful descriptive vector graphics language that provides a natural coordinate-based framework for technical drawing. Labels and equations are typeset with LaTeX, for high-quality PostScript output.

GLE

GLE (Graphics Layout Engine) — is a graphics scripting language designed for creating publication quality figures (e.g., a chart, plot, graph, or diagram).

OpenDX

OpenDX — открытая свободная версия IBM Visualization Data Explorer для 3D визуализации. После выхода версии 3.1.4B IBM открыл исходники VDE и пригласил к разработке сообщество. Графический интерфейс основан на OSF/Motif и X Window System.

CLUCalc

CLUCalc 4.3.3 - software tool for 3D visualizations and scientific calculations free for non-commercial use.

MayaVi и Mayavi2

MayaVi Mayavi2 — две генерации средства 3D визуализации на Python.

VisIt

VisIt — инструмент для визуализации данных, специализация на обработке больших объёмов данных, в том числе скалярных и векторных полей, с использованием распараллеливания вычислений, а также возможность реализации особенных алгоритмов обработки и работы с нестандартными моделями данных. VisIt имеет мощный графический пользовательский интерфейс, также имеются интерфейсы на C++, Python и Java. Для сборки нужны библиотеки VTK 5.0.0i, HDF4 4.2.5, Xdmf 2.1.1 версий не ниже, чем указаны.

ParaView

ParaView — кроссплатформенное приложение для анализа и визуализации данных с упором на обработку экстремально больших объёмов данных в системах с распределённой памятью. Тем не менее никто не запрещает использовать его для небольших наборов данных.

VTK, VTKEdge, ITK

VTK, VTKEdge, ITK — продукты компании Kitware для визуализации, обработки изображений, 3D графики. Базовым является VTK, предоставляющий C++ классы и интерфейсы на Tcl/Tk, Java и Python. VTKEdge и ITK базируются на VTK и расширяют функционал.

Grace

Grace — WYSIWYG 2D plotting tool for the X Window System and M*tif.

GD

GD 1- GD написан на C, однако биндинги доступны для Perl, PHP, Python и др.

KmPlot (KDE Edu)

KmPlot (KDE) — часть проекта KDE Edu, позволяет строить графики функций, заданных аналитически или параметрически, в прямоугольной или полярной системах координат на плоскости. Умеет строить производные 1-го и 2-го порядков и интеграл от заданных функций. Есть функция экспорта в один из растровых графических форматов (BMP and PNG), в векторный SVG и в формате XML.

KAlgebra (KDE Edu)

KAlgebra (KDE) — часть проекта KDE Edu, позволяет строить 2D и 3D графики, заданные аналитически. Поддерживает язык разметки MathML. Позволяет экспортировать графики в SVG и PNG форматах.

Геометрические построения

Kig (KDE Edu)

Kig (KDE) — часть проекта KDE Edu, позволяет выполнять геометрически построения на плоскости. Является заменой заброшенного проекта KGeo. Позволяет экспортировать построения в несколько растровых графических форматов (BMP, JPEG, PNG), векторный SVG, формат XFig, XML и даже LaTeX.

KSEG

KSEG (Qt3) - позволяет выполнять геометрические построения на плоскости. Проект заброшен, хотя при этом доступен во многих дистрибутивах и вполне работоспособен. Имеет встроенный калькулятор с элементарными функциями. Может экспортировать построения в один из нескольких растровых графических форматов и векторный SVG.

Dr. Geo

Dr. Geo (1) - удобное кроссплатформенное приложение для выполнения геометрических построений на плоскости, написанное на Pharo Smalltalk.

Графы, блок-схемы, UML

Graphviz

Graphviz — удобное средство для построения графов. Описание графа выполняется на языке DOT. Есть как консольное приложение, так и простой графический интерфейс.

ArgoUML

ArgoUML — среда UML моделирования с поддержкой стандарта UML 1.4 написанное на Java.

Dia

Dia 1 (GTK+) - редактор блок-схем и диаграмм. Позиционируется как свободный аналог Visio от Microsoft. Умеет экспортировать в большое количество графических форматов, XML, поддерживает язык UML.

Umbrello

Umbrello — Umbrello UML Modeller is a Unified Modelling Language diagram programme for KDE. Версия 2.* в KDE4.

ORA

ORA — dynamic meta-network assessment and analysis tool developed by CASOS at Carnegie Mellon. It contains hundreds of social network, dynamic network metrics, trail metrics, procedures for grouping nodes, identifying local patterns, comparing and contrasting networks, groups, and individuals from a dynamic meta-network perspective.

Rocs (KDE Edu)

Rocs (KDE) — часть проекта KDE Edu, среда разработки графов с поддержкой Qt Script.

Kivio

Kivio — часть проекта KOffice. Ещё не доведён до стадии релиза, потому не поставляется в стабильных архивах исходного кода. Получить код можно, склонировав master-branch git-репозитория KOffice или из установив из репозитория вашего дистрибутива.

OpenOffice.org Draw

OpenOffice.org Draw — упомянут здесь исключительно для полноты картины.

LibreOffice Draw

LibreOffice Draw — упомянут здесь исключительно для полноты картины.

yEd

yEd — редактор блок-схем с поддержкой UML на Java от компании yWorks.

UMLet

UMLet - UML Tool for Fast UML Diagrams — ещё один редактор UML диаграмм на Java с простым интерфейсом и возможностью экспорта в JPEG, SVG, EPS, PDF. Доступен как плагин к Eclipse, так и отдельным приложением.

Violet

Violet — ещё один UML редактор на Java.

NetworkX

NetworkX — Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. (Взято на wiki.python.org)

Dunnart

Dunnart Constraint-Based Diagram Editor — весьма скромно названный редактор диаграмм, пока с закрытым кодом, но с версией под Linux, посоветованный уважаемым AP в этой теме.

Gaphas

Gaphas — Python-based diagramming widget for GTK+.

Adaptagrams

Adaptagrams — библиотека для применения в приложениях, связанных с адаптивным построением диаграмм. Среди возможностей: инструменты для рисования, автоматизированное создание структуры/макета документа/диаграммы, отрисовка графов и макетов диаграмм и др. Кстати, именно она используется в Dunnart, Inkscape, Graphviz, Arcadia, Gaphas.

Gliffy

Gliffy — редактор диаграмм он-лайн.

Диаграммы состояний конечных автоматов (FSM - Finite-state machine)

Qfsm

Qfsm (Qt)- графический редактор диаграмм состояний конечных автоматов с интерактивной симуляцией, генерацией VHDL кода, экспортом в растровые и векторные графические форматы, EPS, LaTeX, HTML, обычный текст.

Просмотр временных диаграмм

TimingAnalyzer

TimingAnalyzer — написан на Java, но выглядит очень красиво.

GTKWave

GTKWave — GTK+ based wave viewer for Unix and Win32 which reads LXT, LXT2, VZT, FST, and GHW files as well as standard Verilog VCD/EVCD files and allows their viewing.

Dinotrace

Dinotrace — Dinotrace is a X-11 waveform viewer which understands Verilog Value Change Dumps, ASCII, and other trace formats. It allows placing cursors, highlighting signals, searching, printing, and other capabilities. Dinotrace comes with a interface to Emacs which allows source code and log files to be annotated with the values of signals.

Gwave

Gwave — Gwave is a tool for viewing analog data, such as the output of Spice simulations. Gwave can read "raw" files from spice2G6, spice3F5 or ngspice, and a tabular ASCII format suitable for use with GnuCAP or homegrown tools. It can also read several binary and ascii files written by commercial spice-type simulators such as hspice, tspice, and nanosim.

Библиотеки

matplotlib

matplotlib — библиотека языка Python для построения разнообразных 2D графиков. Может использоваться как в Python-скриптах, так и в интерактивной среде iPython. Может быть расширена за счёт ряда тулкитов, в том числе mplot3d для 3D и Natgrid для разреженных сеток.

MathGL

MathGL — библиотека для построения более 55 видов 2D и 3D графиков, разрабатываемая Алексеем Абалакиным aka abalakin. Имеет Qt, FLTK, OpenGL интерфейсы, может быть вызвана из C++/C/Fortran/Python/Octave и других программ и выполнять экспорт в растровые и векторные графические форматы. Поддерживает собственный скриптовый язык MGL.

FIXME: Алексей Абалакин aka abalakin, исправьте или добавьте, пожалуйста, что считаете нужным.

Графические фронтенды

UDAV — кроссплатформенный графический фронтенд к MathGL.

Qwt

Qwt — библиотека классов и компонентов графического интерфейса пользователя, удобных для построения графиков в приложениях, базирующихся на Qt.

Интерфейсы и биндинги

PyQwt — биндинги к Qwt для Python.

Korundum/QtRuby — проект, в том числе содержащий биндинги Qwt для Ruby.

Дополнения

QwtPolar — дополнение к Qwt, библиотека классов для отображения данных в полярной системе координат.

QwtPlot3D

QwtPlot3D — основанная на Qt и OpenGL C++ библиотека для построение 3D графиков, поверхностей, векторных полей.

DISLIN

DISLIN — надо проверить, она в исходниках или только в бинарных пакетах, на сайте написано, что free for non-commercial use, а значит не OpenSource.

CGAL

CGAL - Computational Geometry Algorithms Library — provides easy access to efficient and reliable geometric algorithms in the form of a C++ library.

OpenCSG

OpenCSG — библиотека для рендеринга изображений методами конструктивной блочной геометрии (CSG - Constructive Solid Geometry) при помощи OpenGL.

GLEW

GLEW - The OpenGL Extension Wrangler Library — a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform.

Среды разработки

KDevelop

KDevelop

Lazarus

Lazarus

Eclipse

Eclipse

NetBeans

NetBeans

Geany

Geany

GNU Emacs

GNU Emacs

Scintilla/SciTE

Scintilla/SciTE

gVim

gVim

Code::Blocks

Code::Blocks

Qt Creator IDE

Qt Creator IDE

PyDev

PyDev — Python IDE для Eclipse, может быть использована для разработки Python, Jython и IronPython.

Komodo IDE

Komodo IDE — платная IDE для Python, PHP, Ruby, JavaScript, Perl и Web Dev от ActiveState. Кто знает чем она хуже или, может быть, лучше вышеупомянутых свободных - добавьте.

Проектирование баз данных и ER-модели данных

Open System Architect (OSA)

Open System Architect (OSA) by CodeByDesign — свободное открытое ПО для разработки и верификации ERD с встроенным SQL редактором и поддержкой UML в стадии разработки.

DBDesigner

DBDesigner — среда для проектирования структуры баз данных. Распространяется в бинарных пакетах.

DB Designer Fork

DB Designer Fork — как ни странно, но это свободный форк вышеупомянутого DBDesigner от fabFORCE, причём вполне живучий, если судить по дате последнего выпуска и коммита. Поддерживает SQL скрипты БД Oracle, SQL Server, MySQL, FireBird, SQLite и PostgreSQL.

Visual Paradigm

Visual Paradigm for UML — платный инструмент для разработки ERD с использованием UML. Доступны Enterprise Trial'ы и бесплатные Community Edition версии для некоммерческого пользования.

MySQL Workbench

MySQL Workbench — кроссплатформенная среда проектирования баз данных для MySQL. С версии 5.2.34 (май 2011) построена на Python 2.7, что, наверное, есть добрый знак для тех, кто ей пользуется.

Системы управления версиями (Source Control Management - SCM)

Git

Git

SVN

Apache™ Subversion® (SVN)

Mercurial

Mercurial

Bazaar

Bazaar — часть проекта GNU, спонсируется Canonical.

Управление проектами

WEB-based

Trac

Trac

Redmine

Redmine

web2Project

web2Project

OTRS

OTRS

Dotproject

Dotproject

Десктопные

Planner

Planner

OpenProj

OpenProj

KPlato

KPlato в KOffice

TaskJuggler

TaskJuggler

GnoTime

GnoTime

Rachota

Rachota

Компиляторы и системы управления сборкой

GNU Autotools

Autotools, или система сборки GNU,— это набор программных средств, предназначенных для упрощения переносимости исходного кода программ между UNIX-подобными системами.

В средства сборки входят: Autoconf, Automake, и Libtool. Другие средства, не входящие в состав набора, но обычно используемые совместно с GNU Autotools: make, gettext, pkg-config, и, конечно, GNU Compiler Collection, также называемый GCC.

GCC

GCC, the GNU Compiler Collection — что тут можно ещё сказать... Это GCC.

CMake

CMake

LLVM

The LLVM Compiler Infrastructure — Clang, dragonegg & llvm-gcc 4.2, LLDB, libc++ и libc++ ABI, compiler-rt, vmkit, klee.

G95

G95 — компилятор Fortran 95.

GNU Fortran (GFortran)

GNU Fortran (GFortran) — входит в GCC (?)

Intel® Compilers

Intel® Compilers

EKOPath 4

EKOPath 4 — PathScale® EKOPath Compiler Suite недавно открытый компилятор.

Интерпретаторы

Отладчики

GDB

GDB: The GNU Project Debugger

Графические интерфейсы к GDB

Nemiver

Nemiver — GUI к GDB, входящий в состав GNOME. Подключаемые плагины, удаленная работа через gdbserver, переключение в режим дизассемблера, подключение к запущенным процессам и прочее.

KDbg

KDbg — интегрированный в KDE GUI к GDB.

DDD

DDD — Display Data Debugger. Визуально отображает ход исполнения другой программы в процессе ее работы; или визуализирует состояние программы в момент краха.

IDB

Intel(R) Debugger for Linux* (IDB) — в составе Intel® Composer XE for Linux and Intel® Parallel Studio XE (Напишите кто знает, я ими не пользовался)