Rust-Based 'Resources' is a New, Modern System Monitor for Linux (omgubuntu.co.uk) 57
An anonymous reader shared this article from the Linux blog OMG! Ubuntu:
The System Monitor app Ubuntu comes with does an okay job of letting you monitor system resources and oversee running processes — but it does look dated... [T]he app's graphs and charts are tiny, compact, and lack the glanceability and granular-detail that similar tools on other systems offer.
Thankfully, there are plenty of ace System Monitor alternatives available on Linux, with the Rust-based Resources being the latest tool to the join the club. And it's a real looker... Resources shows real-time graphs showing the utilisation of core system components... You can also see a [sortable and searchable] list of running apps and processes, which are separated in this app.
It's also possible to select a refresh interval "from very slow/slow/normal/fast/very fast (though tempting to select, 'very fast' can increase CPU usage)." And selecting an app or process "activates a big red button you can click to 'end' the app/process (a submenu has options to kill, halt, or continue the app/process instead)..."
"If you don't like the 'Windows-iness' of Mission Center — which you may have briefly spotted it in my Ubuntu 23.10 release video — then Resources is a solid alternative."
Thankfully, there are plenty of ace System Monitor alternatives available on Linux, with the Rust-based Resources being the latest tool to the join the club. And it's a real looker... Resources shows real-time graphs showing the utilisation of core system components... You can also see a [sortable and searchable] list of running apps and processes, which are separated in this app.
It's also possible to select a refresh interval "from very slow/slow/normal/fast/very fast (though tempting to select, 'very fast' can increase CPU usage)." And selecting an app or process "activates a big red button you can click to 'end' the app/process (a submenu has options to kill, halt, or continue the app/process instead)..."
"If you don't like the 'Windows-iness' of Mission Center — which you may have briefly spotted it in my Ubuntu 23.10 release video — then Resources is a solid alternative."
Rust (Score:2)
Rust is actually pretty good, but is anyone even programming anything with it?
Re:Rust (Score:5, Informative)
It's my go to language for like...everything I make, and for numerous reasons.
Lots of really good tooling is written in it as well. Some I use all the time:
ripgrep (think grep, only asyncronous and parallel, so it's much faster, and getting surrounding context doesn't break pipes like grep does)
fd-find (same as find, but again async and parallel)
exa (like ls -cl, only more opinionated and compact)
du-dust (think du, only much faster at traversal, and you get a text based tree view so it's a lot more useful)
bat (think cat with syntax highlighting, git integration, and optionally show non-printable characters)
Somebody also wrote a complete drop-in replacement for gnu coreutils in rust, only better because it's far more portable and it's MIT licensed so no more of RMS's bullshit.
Re: Rust (Score:3)
Re: Rust (Score:3)
You can ignore the CoC. I've never even read it, nor do I care to.
As for purple hair, I have no idea what you're talking about. Though for what it's worth, many here love GNU software, and the guy behind that casually eats his own toe jam in public. If I had to pick between those two as roommates, I'd pick the purple hair any day.
Re: (Score:2)
Please excuse my stupid question, I'm still new to this: If you violate the CoC, what they do to you? Put your name on the wall of shame? Ban you from their Github repositories? Refuse to provide technical support? Revoke your license to use Rust? Revoke your license to use anything built with Rust?
Re: Rust (Score:2)
Pretty much, the Rust foundation could even pull this article down if it becomes too critical, because you use the Rust name. You canâ(TM)t call Rust projects something that has the word rust in it, you canâ(TM)t make any Rust-related events without the express authorization of the Rust Foundation and they may even be able to revoke your use of Rust repositories (which every Rust project, a lot like NodeJS has a spaghetti of dependent libraries). Rust events also have a lot of rules, you canâ
Re: (Score:2)
Re: Rust (Score:5, Insightful)
No, I'm not fighting the borrow checker. You just decide where you want your variables to live, and the rest of the dominos fall right into place.
The borrow checker actually makes complexity easy to deal with. I'm used to users of other languages, especially C/C++, not liking the idea of mutating memory across threads. Or avoiding multithreading outright. This is because in most languages, including golang's goroutines, it's really easy to fuck it up. This is because instead of giving you an easy way to solve complexity, golang simply hides it, and C/C++ just assumes that you're incapable of making mistakes.
In rust however, it's hard to fuck it up. You literally have to go way out of your way to cause a data race. In fact, merely using unsafe isn't enough. In literally every other language, your code will still compile if you use data structures that aren't intended to be used in parallel or aren't intended to be moved across threads. Instead you have to find out the hard way at runtime. In rust, the compiler, together with the borrow checker, guarantee that you can't fuck up data concurrency.
That said, you can get as granular as you want with rust. You can quickly write code that isn't optimized but gets the job done and still runs reasonably fast and might have a few conditions that result in a crash.
Or you can write code that is highly optimized, and is also guaranteed to never crash under any circumstances outside of a hardware fault or an OS fault. While I don't always heavily optimize, I do take the time to write code that handles all possible error states and never crashes. Either way, I spend a LOT less time debugging, and my code tends to (but not always) work right on the very first release.
Re: (Score:2)
Re: (Score:2)
Only initially. In my case, I am not even a system developer. I do use it like Go with extra steps. So why not just use Go? I didn't like many of the design choices in Go. Some of those complaints have been addressed since, but I have not bothered. I want an algebraic type system and macros. I chose it over OCaml, even though it is a better fit for me. When I want more ease of use, but still want performance (than small binaries, low memory, and safety), I opt for Julia.
Compilation speed is mainly an issue
Re:Rust (Score:5, Interesting)
I looked into Rust out of my usual curiosity and wound up delighted.
The composable iterators are fun, the Result type combined with the terminal question mark operator makes for concise and safe error checking, and I've been tempted to start a cult to worship the build/test/package management system. Yes, that's right, a Cargo cult.
There's a lot more to Rust than the memory management features.
The largest downsides IMO are the slow compiles and the learning curve.
Re: (Score:2)
Somebody also wrote a complete drop-in replacement for gnu coreutils in rust, only better because it's far more portable and it's MIT licensed so no more of RMS's bullshit.
More portable? That sounds like bullshit.
Also what's with the FSF hatred? Are really sore that you can't take the code for GNU ls and put your own proprietary shit on top of it?
Re: (Score:3)
RMS's bullshit is why there are essentially no proprietary forks of the Linux kernel, or the GNU userland. (Almost. Red Hat have finally figured out the loophole. And f them. But companies like Apple like permissive licenses like MIT and BSD because they can take what they want and give nothing back to the community.) RMS's bullshit is why share-alike licenses exist. RMS's bullshit is why there was a *nix userland available to put on top of Linus' college hobby project. He may not be popular, nor woke, but
Re: (Score:2)
I sure wish the software ecosystem hadn't consolidated to ARM and Amd64 on Windows and Linux but here we are
Except it hasn't. Which strongly hints at me that you have at best minimal experience with software development. It also almost sounds as though you're arguing Rust is the cause of this. Rust uses LLVM as a backend. so it can compile to any architecture that LLVM supports. That includes really old hardware like the 6502.
Example:
https://www.youtube.com/watch?... [youtube.com]
If we still had a vibrant programming community, multiple hardware architectures, Unix flavors, big endian machines, machines with CHAR_BIT > 8 and ideally even a 1's complement machine then software would actually be written portably
Endianness? Seriously? That's just a compiler flag these days. It's not even relevant to making your code portable. Hell, you can mix and match endi
Re: (Score:2)
It looks like you missed that WASM is raising as a target architecture.
Re: (Score:2)
Rust is actually pretty good, but is anyone even programming anything with it?
Of course they are! Can't you tell with TFS being delivered via shout to the rooftops?
Re: (Score:2)
Nope
Re: (Score:2)
Did you see the latest TIOBE index the other day? It's one place above Classic Visual Basic and a few spots behind FORTRAN. FORTRAN has growth, Rust is stagnant.
Only available as a Flatpak (Score:4, Informative)
AFAICT, 'Resources' only comes as a Flatpak, which I avoid using. Too bad - it sounds interesting, but not interesting enough to go to the trouble of building it.
Re:Only available as a Flatpak (Score:4, Informative)
And I also avoid Snap (or being required to anyway), which is why I switched to Linux Mint (21, Cinnamon) from Ubuntu.
You can build and install Resources natively (Score:4, Informative)
meson . build --prefix=/usr/local
ninja -C build install
Re:You can build and install Resources natively (Score:4)
It's not in the Devuan APT repository, so it can wait.
Re: (Score:1)
Why in the fuck does a fancy version of htop need a “build system”?
Re: (Score:3)
Why in the fuck does a fancy version of htop need a “build system”?
htop also needs a build system, so why wouldn't a fancy version need one?
Rust (Score:5, Informative)
This system monitor binary is only available as a snap and takes up 1.6gb of space.
Re: (Score:2)
Re: (Score:1)
Aren't snap users embarrassed by snap at this point? If not, why not?
Re: (Score:2)
Re: (Score:2)
SSD manufacturers approve of this.
Re:Rust (Score:4, Informative)
Re: (Score:2)
Funny, but no. It is available either as source or as a 4MB flatpak.
Plus 1.3GB of dependencies. Specifically (on my machine):
org.gnome.Platform.Compat.i386//45 - 204.8MB
org.freedesktop.Platform.GL.defaul//23.08 - 163.6MB
org.freedesktop.Platform.GL.default//23.08-extra - 17.8MB
org.freedesktop.Platform.openh264//2.2.0 - 944.3kB
org.gnome.Platform.Locale//45 - 365.1MB
org.gtk.Gtk3theme.Adwaita-dark/3.22 - 1.5kB
org.gnome.Platform//45 - 370.5MB
I'm sure if you're using a lot of GNOME-based flatpaks most of these would already be installed, but it still seems like a lot.
Re: (Score:2)
Funny, but no. It is available either as source or as a 4MB flatpak.
Plus 1.3GB of dependencies. Specifically (on my machine):
[...]
Note that after installing GNOME Builder (per project recommendations), cloning Resources from Github, figuring out how to build the flatpak, figuring out how to install the flatpak, and figuring out how to install the dependencies, if the Resources binary is actually installed somewhere I can't find it and it didn't get registered in my application menus.
Sigh. If you're not going to do the right thing and distribute .debs and .rpms, at least distribute source that can be built and installed in the normal
Re: (Score:2)
Oh no... (Score:3)
The System Monitor app Ubuntu comes with does an okay job of letting you monitor system resources and oversee running processes — but it does look dated...
[rolls eyes and sighs]
Re: (Score:1)
hate to think what they think of 'htop'?
Re:Oh no... (Score:4, Interesting)
Or 'top'.
I use 'btop' these days.
Re: (Score:2)
never heard if it before. Terminal cute, I love it!
Re: (Score:1)
Re: (Score:3)
Another case of “not invented here” syndrome. I didn’t invent it therefore it is bad.
And others? (Score:2)
Iâ(TM)ve seen this talked about a lot in the past day, but no mention or comparison to other tools that already do this, like System Monitoring Center or Mission Centerâ¦.
Other than rust, what makes this one better?
Re: And others? (Score:2)
I guess Mission Center is mentioned but the point still stands.
btop (Score:1)
Re: (Score:2)
There is a very primitive Rust utility called btop that is clearly little more than a proof of concept at this stage.
Nevertheless, thanks for the link -- btop looks quite cool.
Re: (Score:2)
I think grandparent refers to bottom [github.com], which is a similar system monitor for the terminal which is indeed written in Rust.
CLI (Score:2, Interesting)
Another wheel reinvented (Score:3)
So, here's why they are doing this:
"but it does *look dated*... [T]he app's graphs and charts are tiny, compact, and lack the glanceability and granular-detail that similar tools on other systems offer."
So, oh no, a "dated" interface! Glanceability! Granular-detail! Any other thing we can steal from Edward Tufte! After all, I'm sure there's so much new data on systems these days compared to before that this Must be Fixed Immediately.
Is Rust destined to be a programming language to implement already tried and true applications with because the originals look "dated"? It appears to be so! This appears to be the fate of many programming languages before they fall away.
I looked at a list of "24 awesome Rust programs" or something like it and most of them are derivatives, nothing new. Nothing on the surface that is enhanced by the "goodness of Rust". What I saw mostly? More and different Web server frameworks built with Rust. As if, as even. I think one way to tell if a language is failing is what is produced by it. When the best things it can produce are more intermediate layers that appear to be totally unnecessary. We are downing in intermediate layers that people just slap on another one because you need it for things to "work".
The only thing I saw going for Rust is in academia, creating different facilities for the OS and see how they work together. Acknowledge current problems and break the system to try and fix them. But using it for stuff like a system monitor? I guess, if you need some practice in the language. Other than that, why? Are you querying system resources by some new Rust mechanisms? Are you doing some awesome data manipulation?
Why did you make it? Why Rust? Who's going to use it? I guess if you can answer these three questions to your own satisfaction that's all that matters, but some people are going to make fun of you for your responses.
Re: (Score:2)
The only thing I saw going for Rust is in academia, creating different facilities for the OS and see how they work together.
Rust is mostly good for systems-level programming, IMO. Stuff that must be rock solid, especially from a security perspective. It's a replacement for C and C++, basically, languages which aren't great for user applications anyway (excepting games that need maximum performance).
I work on Android and we're seeing significant benefits from transitioning to Rust. System components that have been rewritten in Rust have high performance and so far have proven to be basically bulletproof thanks to Rust's inheren
apparently xosview is still maintained. (Score:2)
It's too modern (Score:1)
If you try to compile it, it will fail if you have anything less then gtk-4.8. Ubuntu-22 has GTK-4.6 and to upgrade you've got to compile from source... Too much trouble for one program.
Why the focus on Rust? (Score:2, Interesting)
If it was written in Vala it wouldn't even be mentioned.
Not Rust but (Score:3)