Ferrix System Monitor is a Rust-crate and program for obtaining information about computer hardware and software. It is designed to work in modern Linux OS distributions.
- Get information about:
- CPU;
- RAM;
- [TODO] Storage;
- BIOS and PC Motherboard;
- Laptop battery;
- Installed Linux distribution;
- Desktop environment;
- Network;
- systemd services;
-
deb,rpmpackages; - flatpak packages;
- Convert collected data into:
- JSON;
- XML;
| Function | FSM (ferrix-app) |
Hardinfo2 |
|---|---|---|
| Processor info | ✅ | ✅ |
| Memory usage | ✅ | ✅ |
| Storage info | ❌ (TODO) | ✅ |
| DMI Tables | ✅ (TODO, but it already displays more data than Hardinfo) | ✅ |
| RAM SPD Data | ❌ | ✅ |
| Battery | ✅ (more correctly; without negative values) | ✅ |
| Connected screens | ✅ | ✅ |
| Connected USB devices | ❌ (TODO) | ✅ |
| Connected PCI devices | ❌ (TODO) | ✅ |
| Installed distro | ✅ (more data than Hardinfo) | ✅ |
| Users and groups | ✅ | ✅ |
| systemd services | ✅ | ❌ |
| Installed software | ✅ | ❌ |
| Environment veriables | ✅ | ✅ |
| Sensors | ❌ (TODO) | ✅ |
| Network | ❌ (TODO) | ✅ |
| Kernel and modules | ✅ | ✅ |
| Printers | ❌ | ✅ |
| System load | ✅ (loadavg, uptime); ✅ (CPU & RAM Usage Charts) | ✅ (loadavg, uptime); ❌ (CPU & RAM Usage Charts is ugly and incorrect) |
| Hardware benchmarks | ❌ | ✅ |
git clone https://github.com/mskrasnov/Ferrix
cd Ferrix
make buildIf you use Debian, perform:
make debAnd install deb-package:
sudo dpkg -i ./target/${TARGET_ARCH}/debian/ferrix-app_${VERSION}-${BUILD_NUM}_${ARCH}.debIf you use other Linux system, perform:
make run # to run Ferrix...
# ... or
make install # to install Ferrix.
# Perform:
make uninstall # to uninstall Ferrix from your system.export XDG_SESSION_TYPE=xorg
export DISPLAY=':0'
ferrix-appInstall the cross-compilator:
sudo dpkg --add-architecture {arm64/i686}
sudo apt update
# For AArch64:
sudo apt install gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu libc6-dev-arm64-cross
rustup target add aarch64-unknown-linux-gnu
# For i686:
sudo apt install gcc-12-i686-linux-gnu binutils-i686-linux-gnu
rustup target add i686-unknown-linux-gnuBuild Ferrix:
cargo build [--release] --target={i686,aarch64}-unknown-linux-gnu
# or:
make TARGET={i686/aarch64}-unknown-linux-gnu build- OS: Linux with
glibc,dbusandsystemd; - Programming language: Rust 1.88+ (2024 edition);
- GUI:
iced; - Hardware: modern PC or laptop;
Developing Ferrix System Monitor takes time and passion. If you find it useful, please consider supporting its development:
- Star ⭐ this repo! It helps others discover FSM;
- Write comments, questions, bug reports, or suggestions for new functionality in issues.
- If you are from Russia, send me a donation 💰 in Boosty. This will help me keep my enthusiasm alive, as well as pay my internet bills so that I can continue working on FSM.
- Spread the world! Tell friends, post on forums.
Ferrix System Monitor is free and open-source software distributed under the GNU General Public License v3.0. See LICENSE file for details.

