136 private links
In the last two weeks, Peter Zaitsev published a 4-part series on measuring Linux performance on this blog.
His writings cover the 4 main areas where you can spot performance problems on any Linux machine, with practical tips on how to draw the right conclusions. Here are the individual pieces:
Measuring Linux Performance: CPU
Measuring Linux Performance: Disk
Measuring Linux Performance: Memory
Measuring Linux Performance: Network
I found these gave a good overall summary of the things to be on the look-out for whenever you’re troubleshooting slow applications or slow servers.
Ever tried comparing MySQL's my.cnf from a Debian and a Gentoo machine with diff(1) without going crazy?
diff(1) is an awesome tool, you use it (or similar implementations like git diff, svn diff etc) every day when dealing with code. But configuration files aren't code. Indentation often does not matter (yeah, there is diff -w and yeah, people use YAML for configs), order of settings does not matter and comments are just beautiful noise.
How?
cfgdiff will try to parse your configuration files, fetching all the relevant keys and values from them and then pretty-printing them in the original format. These results are then diffed and the diff is shown to you.
• With --indicator (or -q or 'set indicator') nano will show a kind
of scrollbar on the righthand side of the screen to indicate where
in the buffer the viewport is located and how much it covers.
• With <Alt+Insert> any line can be "tagged" with an anchor, and
<Alt+PageUp> and <Alt+PageDown> will jump to the nearest anchor.
When using line numbers, an anchor is shown as "+" in the margin.
• The Execute Command prompt is now directly accessible from the
main menu (with ^T, replacing the Spell Checker). The Linter,
Formatter, Spell Checker, Full Justification, Suspension, and
Cut-Till-End functions are available in this menu too.
• On terminals that support at least 256 colors, nine new color
names are available: pink, purple, mauve, lagoon, mint, lime,
peach, orange, and latte. These do not have lighter versions.
• For the color names red, green, blue, yellow, cyan, magenta,
white, and black, the prefix 'light' gives a brighter color.
Prefix 'bright' is deprecated, as it means both bold AND light.
• All color names can be preceded with "bold," and/or "italic,"
(in that order) to get a bold and/or italic typeface.
• With --bookstyle (or -O or 'set bookstyle') nano considers any
line that begins with whitespace as the start of a paragraph.
• Refreshing the screen with ^L now works in every menu.
• In the main menu, ^L also centers the line with the cursor.
• Toggling the help lines with M-X now works in all menus except
in the help viewer and the linter.
• At a filename prompt, the first <Tab> lists the possibilities,
and these are listed near the bottom instead of near the top.
• Bindable function 'curpos' has been renamed to 'location'.
• Long option --tempfile has been renamed to --saveonexit.
• Short option -S is now a synonym of --softwrap.
• The New Buffer toggle (M-F) has become non-persistent. Options
--multibuffer and 'set multibuffer' still make it default to on.
• Backup files will retain their group ownership (when possible).
• Data is synced to disk before "... lines written" is shown.
• The raw escape sequences for F13 to F16 are no longer recognized.
• Distro-specific syntaxes, and syntaxes of less common languages,
have been moved down to subdirectory syntax/extra/. The affected
distros and others may wish to move wanted syntaxes one level up.
• Syntaxes for Markdown, Haskell, and Ada were added.
Rewritten in Rust: Modern Alternatives of Command-Line Tools
https://zaiste.net/posts/shell-commands-rust/
Following the success of our first smartphone, the Pro1, team F(x)tec have been working closely with our customers and the wider tech community to bring you a special version of our award winning phone.
In partnership with XDA (one of the largest online tech communities) we present the Pro1-X; the smartphone that gives you control. Control over your data, control over your privacy, and choice over your software. For the first time, a high spec smartphone with your choice of Android, Lineage OS or Ubuntu Touch OS out of the box.
Here's another iteration on the Zero Terminal projects I've been working on for a few years. For those of you who haven't seen them, I've been trying to design the most usable all in one Pi Zero computer out there.
This version departs a little from the previous ones, as it is more focused on modularity, and forgoes a keyboard as standard, though it is possible to add one, as I'll show you in a bit. The goal here was to create something very versatile, allowing for all sorts of use cases to unlock the Zero's potential. Anyways, let's take a look at it.
Several DNS-related programs want to automatically manage the DNS name server and resolution configuration file at /etc/resolv.conf. In some situations, you may want to manage this file yourself. Here is how you identify which programs are automatically managing this file on your Linux distribution, and how you can take back manual control of the file.
There are quite a few different tools that fight to control a Linux system’s DNS resolution configuration file /etc/resolv.conf including netconfig, NetworkManager, resolvconf, rdnssd, and systemd-resolved.
After a prolonged period of inactivity, new devs have taken over to support
htop
. The new 3.0 release features lots of improvements (
https://github.com/htop-dev/htop/blob/master/ChangeLog ), mostly to
underlying low-level items.
eDEX-UI is an open-source cross-platform terminal emulator that presents you with a Sci-Fi inspired look along with useful some features as well.
It was originally inspired from the DEX UI project. It is also worth noting that eDEX-UI is no longer maintained but it hasn’t been completely abandoned. You can learn more about the current status of the project here.
Even though eDEX-UI is more about the looks and the futuristic theme for a terminal, it could double up as a system monitoring tool for Linux in the future if the development resumes or if someone else forks it. How? Because it shows system stats in the sidebar while you work in the terminal.
Wer seinen PC in eine PDP-11 von DEC mit der UNIX Time-Sharing System Seventh Edition (V7) als Betriebssystem verwandeln möchte, der kann den Sanos-Port von Bob Supnik’s PDP-11 simulator ausprobieren. Denn mit Diesem ist es möglich, UNIX so auszuführen, wie es Dennis Ritchie und Ken Thompson im Jahr 1979 getan haben.
Ein Sanos-Entwickler hat ein ISO-Image mit Sanos, dem PDP-11-Simulator und dem UNIX V7-Kit vom Computer History Simulation Project erstellt. Einfach eine CD-ROM in den PC einlegen und starten. Danach wird für alle nostalgischen UNIX-Geeks der PC zu einer PDP-11 mit dem UNIX V7.
User-friendly, colorful output
Adjusts to your terminal's width
Sort the results according to your needs
Groups & filters devices
Can conveniently output JSON
In this course, students will learn to develop complex system-level software in the C programming language while gaining an intimate understanding of the Unix operating system (and all OS that belong to this family, such as Linux, the BSDs, and even Mac OS X) and its programming environment.
Topics covered will include the user/kernel interface, fundamental concepts of Unix, user authentication, basic and advanced I/O, fileystems, signals, process relationships, and interprocess communication. Fundamental concepts of software development and maintenance on Unix systems (development and debugging tools such as "make" and "gdb") will also be covered.
Students are expected to have a good working knowledge of the C programming language, have written non-trivial programs before, and to be able to competently use a Unix system with a command-line shell interface. All coursework will be done exclusively on a Unix system from the command-line. This is not an introduction to using Unix!
The modern day implementation of UUIDs can be tied back to RFC 4122 which introduced 5 different approaches for generating these identifiers. We’ll take a look at each one and we’ll step through the implementation details of Version 1 & Version 4 in a moment.
So you've heard of this thing called cgroups, and you are interested in finding out more. Perhaps you caught mention of it while listening to a talk about containerization. Maybe you were looking into Linux performance tuning, or perhaps you just happened to be traversing your file system one day and discovered /sys/fs/cgroups. Either way, you want to learn more about this functionality that has been baked into the kernel for quite some time. So sit back, grab some popcorn, and prepare to (hopefully) learn something you may not have known before.
Using the Awk programming language, you can manipulate or extract data, generate reports, match patterns, perform calculations, and more, with great flexibility. Awk allows you to accomplish somewhat difficult tasks with a single line of code. To achieve the same results using traditional programming languages such as C or Python would require additional effort and many lines of code.
You still generate a public-private key pair for each developer. However, you don’t upload the public keys to your servers.
Instead, you sign the public keys with a so-called certificate authority (CA) key which you generate before. This signing simply generates a third certificate file which you give back to the developer and they put it inside of their .ssh/ folder next to the private and public key.
On the servers, you simply tell the server the public key of your CA and the server can detect if a user has a properly signed certificate and only allows access to the developers who have such a signed certificate.
Today in some versions of Linux ls puts single quotes around file names which contain white space likely in order to have those paths easier to copy and paste, but it does so only if !isatty().
I’m not a great fan of changing a program’s well-known behaviour, specially in a case such as with GNU ls which already uses an environment variable for coloring output; it would likely have been easy to augment that for the file name quoting.
It used to be simpler to teach. (But I don’t really teach Unix beginners any more.) :-)
A load testing tool capable of performing real-time analysis, inspired by vegeta and jplot.
Changes in behavior
The message that a binary file matches is now sent to standard error
and the message has been reworded from "Binary file FOO matches" to
"grep: FOO: binary file matches", to avoid confusion with ordinary
output or when file names contain spaces and the like, and to be
more consistent with other diagnostics. For example, commands
like 'grep PATTERN FILE | wc' no longer add 1 to the count of
matching text lines due to the presence of the message. Like other
stderr messages, the message is now omitted if the --no-messages
(-s) option is given.
Two other stderr messages now use the typical form too. They are
now "grep: FOO: warning: recursive directory loop" and "grep: FOO:
input file is also the output".
The --files-without-match (-L) option has reverted to its behavior
in grep 3.1 and earlier. That is, grep -L again succeeds when a
line is selected, not when a file is listed. The behavior in grep
3.2 through 3.4 was causing compatibility problems.
This is VT-100 and XTerm compatible video terminal implemented on the PIC32 microcontroller. It has a serial interface with TTL or RS-232 signal levels, input from a standard PS/2 keyboard, and output to a VGA monitor. There is also a USB interface that supports serial over USB and acts as a USB-to-serial converter.