LinuxFormatUK261 - 2020-04
LinuxFormatUK261 - 2020-04
LinuxFormatUK261 - 2020-04
4. L
FR B S 4
1 3D print a chassis 2 Pick a better battery
7G U
SO
EE DV .1
3 Choose a mobile OS 4 Customise Plasma Mobile
PLUS!
D
HOW TO…
GET A DIGITAL DIARY
PROTECT YOUR FILES
MONITOR YOUR SERVERS
VIRTUALISE
EVERYTHING
Bring all your servers, devices and services
together with the power of virtualisation tools
pages of
67 tutorials
& features
Switch to BSD, the
other open source OS
Zededa’s
Synthesise and analyse
Erik Nordmark digital signals on your PC
on how Linux will power the
Control your system
edge computing revolution logs the easy way
BETTER SEARCH LIBREOFFICE CALC
Create analytic Use spreadsheets
search tools for coding and science
WELCOME
Virtual beginners
This issue Jonni has been getting
very angry at me for conflating the
terms ‘emulate’ and ‘virtualise’ –
and don’t even get him started on
SUBSCRIBE NOW!
Page 26
REVIEWS
PrimeOS 0.4.5 20
John Knight loves this promising desktop
Android distro, but before falling in love he
finds it marred by a thorny issue.
GhostBSD 20.1 21
There were many people who said BSD
didn’t have a ghost of a chance on the
desktop. Mayank Sharma was one of them.
PsychOS 3.4.6 23
Forever 90s’ Jonni Bidwell finds nostalgia
and confusion in a weird lightweight/
heavyweight superposition of distro-space.
ROUNDUP INTERVIEW
Dwarf Fortress 24
Management is wondering what Steve
Hogarty has been up to in the LXF Server
Dungeon… he’s just digging a hole to hell.
ON YOUR
Pi USER FREE DVD
OpenMandriva
4.1
Raspberry Pi news 50 Solus 4.1
Vulkan is coming to the Raspberry Pi! More Page 96
education is coming to the Raspberry Pi!
More updates are coming to Raspbian!
Combian 64 51
Les Pounder goes back to the 1980s to
remember a time when he used to type in
code listings from magazines…
REGULARS AT A GLANCE
78
Mats Tage Axelsson takes you through the
basics and then digs a little deeper into log
management and analysis.
IN-DEPTH
News 6 Subscriptions 26
People cry the GPL is dead (they are
wrong); trolls attack Mycroft; Godot waited Back issues 64
and good things happened; Lenovo
embraces Linux; and Librepay is going well. Overseas subs 65 Hello BSD! 46
Aaron Peters is a stranger in a strangely
Linux user groups 11 HotPicks 82 familiar land as he dives into using Linux’s
Les Pounder helps out a fellow Linux user Alexander Tolstoy hasn’t got time to go open-source cousin FreeBSD…
and cat-hater (not really). around putting pictures of Putin up in lifts
and recording people’s reactions to it –
Answers 12 he’s far too busy reacting to the finest open
Comparing directories, bongs for Linux, source software on the planet like: Tartube,
partitions for Windows, grappling with AwesomeBump, UserManager, Minase,
GRUB, booting the Crontab and file links. Tutanota, JSPaint, ScreenGrab, Tower Time,
Rygar, Hardinfo and Fileinfo.
Mailserver 16
GNOME is actually pretty good, tape drives Your free DVD 96
deserve a look, we’re wrong again (it has
been a while) and Linux on tiny drives. Next month 98
LICENCES
PATENTS OPINION
OPINION HARDWARE
Credit: Lenovo
Lenovo is selling high-end workstations
with Ubuntu preinstalled. The Thinkstation P520 is a workstation for AI
developers and now comes with Ubuntu.
OPINION
Distro watch
What’s behind the free software sofa?
STORKING
HWANGSAEUL
NETBSD 9.0
NetBSD (as the name suggests) is a BSD-based
operating system. It comes with a simple interface and
complex features, and the latest version is now available
for download. Version 9.0 brings improved 64-bit Arm
support, as well as kernel ASLR and better support for Jakub Adam
the ZFS file system. According to the release Senior Software Engineer
announcement (http://bit.ly/LXF261NetBSD), at Collabora
“significant improvements” have been made to
hardware support, quality assurance, security, as well NetBSD is a portable Unix-like OS that
as new features added, and “hundreds” of bug fixes. can be installed on a variety of platforms. For remote security
surveillance, like monitoring
an industrial facility where
PROJECT TRIDENT 20.02 equipment or human lives
Project Trident has successfully moved from TrueOS, might be at stake, maintaining
and is now based on the Void Linux distro – and the an immediate and high-
first stable release based on Void has been released. quality video stream from the
Four different types of installation are available: areas of interest is a must.
Void, which installs the base system from Void Linux With the advent of 5G
and ZFS-related bootloader packages; Server, which is networks, it’s possible to
a CLI-based system, with additional services and tools stream high-quality video
installed; Lite Desktop, which is a minimalist install; in real time with very low
and Full Desktop, which adds extra tools and apps. Project Trident has ditched TrueOS latency, which wasn’t possible
Find out more at: for Void Linux. with past generations of
http://bit.ly/LXF261ProjectTrident. mobile networks.
In this domain, the SRT
open source protocol has
SPARKYLINUX 2020.02 been picking up momentum,
This distro has a rolling release, and the and thanks to the elements
latest snapshot is available to download. available since GStreamer
Based on Debian’s Testing branch, it 1.16, it’s easier than ever to
includes Linux kernel 5.4.13 as default, as well as Firefox The latest snapshot of this rolling-release incorporate low-latency
72.0.2, Thunderbird 68.4.2, LibreOffice 6.4.0, VLC 3.0.8 distro can now be downloaded. streaming into your app.
and Calamares installer 3.2.18. At Collabora we’ve been
The release announcement (http://bit.ly/ participating in the design and
LXF261Sparky) lists the changes in full, and also warns development of Hwangsaeul
users that the Calamares installer fails if you install – a next-generation security
Sparky in full auto mode with full disk encryption and a video feed streaming platform
swap partition – so check that before you begin to with SK Telecom Co.
download the distro. It’s a cloud relay service
that gathers live security
video feeds from different
TINY CORE LINUX 11 locations into a single service
This modular – and minimalist – distro has to which clients can connect
been updated to feature the 5.4.3 Linux to watch the feeds.
kernel. Glibc has been updated to 2.30, GCC Hwangsaeul also enables
to 9.2.0, util-linux has been updated to 2.34 continuous recording of each
and BusyBox updated to 1.31.1, among other feed. The SRT protocol is
changes to the distro. Tiny Core Linux 11 weighs in at just 12MB, utilised by camera-to-relay
The release notes (http://bit.ly/LXF261TinyCore) and runs entirely in memory. and relay-to-client transport
point out that there is a bug with the 32-bit version to minimise latency.
that prevents booting with high-end Intel systems with Still in early development,
IOMMU and VT-D, so make sure set intel_iommu=off to the streaming service already
fix that. provides the most
fundamental APIs for
3rd-party consumption.
Kernel Watch
OPINION
COMPLEX
OPENSTACK
Jon Masters summarises the latest happenings
in the Linux kernel, so you don’t have to.
L
inus Torvalds announced the first being relative to the time since the system
couple of release candidates for was last booted. Although this isn’t specified as
what will become Linux 5.6. This the actual base, there is generally the further
Jon Masters has been involved came following the closure of the merge implied assumption that these clocks do not go
with Linux for more than 22 years. window (the period of time during which backwards or behave in other strange ways when
disruptive changes are allowed) that had migrating a container from one host to another.
Virtual Private fallen close enough to the Christmas period Such migration could happen using the Linux
Networks started life last year that the number of patches was checkpoint or restore functionality, similar to
as a means for remote users “smaller than usual”. Of course, as Linus says VM migration.
to safely participate in local in his announcement, “‘slightly less’ is still just The new time namespace can be used with
networks, or to bridge that – we still have more than 10k commits”. containers to provide them with a view of time
between different company Which is a lot of commits. relative to an offset. Thus when a migration
sites. Today, VPNs are used The new kernel includes a number of occurs, applications continue to see time relative
widely for all manner of interesting features, among them support for to how it was on the system from which they
other purposes as well. the Arm E0PD extension, which provides were migrated without having to worry about
Maybe you value your constant time TLB handling so as to any difference at the destination.
privacy, want to work undermine certain timing based side-channel Linus was pretty keen to point out the
around a geographic attacks on hardware with the new feature. updated ‘openat2’ system call in his 5.6-rc1
content filter, or even just There’s also time namespaces, the WireGuard announcement. The existing openat system
want to login to your full VPN (see left), complete year 2038 safety (a call is not robust enough for today’s world of
home network seamlessly suitable userspace is required), and support sandboxing, in which we are concerned with
from afar. for the new openat2() API. malicious users trying to ‘escape’ by providing
Whatever the reason, Linux traditionally provides a number of cunning paths that cause the kernel to ‘walk’
VPNs are very useful, and different notions of time. These are typically into another filesystem or follow a ‘magic’ link,
yet they have often been manifested in the form of three clocks that and so on.
fairly nightmarish to set up, can be accessed by applications: CLOCK_ Aleksa Sarai’s reworked openat2 behaves
configure and operate. The REALTIME (a system-wide notion of real ‘wall a little differently, and allows for various
proprietary ones were bad clock’ time), CLOCK_MONOTONIC (a time constraints, such as RESOLVE_NO_XDEV (do
enough, and things certainly since some unspecific starting point), and not cross any mount points), or RESOLVE_NO_
improved when many CLOCK_BOOTTIME (the same as CLOCK_ SYMLINKS (do not follow any symbolic links,
shifted to OpenVPN, MONOTONIC but including suspended time). whether regular or ‘magic’. It’s likely to be used
but even OpenVPN is In most cases, developers think of CLOCK_ by sandbox applications, like web browsers, to
cumbersome and complex, MONOTONIC and CLOCK_BOOTTIME as further improve security.
ONGOING DEVELOPMENT
with many moving parts to
get right. It is, then, quite
exciting to see the progress
being made to Wireguard, a
new VPN design that aims Yi L Liu posted a patch series titled “Export Paolo Bonzini posted a security patch
to be slim enough to create device’s PASID capability to VMs”, which correcting support for TLB flushing within
in 4,000 lines of code. aims to enable support for Shared Virtual guest VMs. TLBs (Translation Lookaside
Linux 5.6 comes with Memory (SVM) within virtual machines on Buffers) cache translations between virtual
WireGuard built in by Intel platforms. SVM enables a device and (as seen by an application or VM) and
default. The actual design host (or in this case, guest) operating physical memory addresses (as seen by
is quite fun to read about, system applications to share the same attached system memory).
but the upshot is that soon virtual view of memory without needing TLBs need to be invalidated whenever
there will be widespread special drivers in each instance. there is reuse of virtual memory addresses,
support for a lightweight Eventually, it will enable applications to but an optimisation intended to allow
VPN that is as easy to use talk to plug-in cards without special drivers, deferring of these invalidations lead to an
as SSH, and cross-platform which is very useful if the plug-in card is a unsafe race condition, allowing malicious
by design. It’s a good flexible device such as an FPGA, that would processes running within a guest to spy on
example of how useful otherwise require many different device one another. The new patch corrects this
solutions can actually drivers for every possible function. behaviour to remove the vulnerability.
get upstreamed
promptly.
R
BradLUG
BCB Radio, 11 Rawson Road, Bradford BD1 3SH.
7–9pm on the second Tuesday every month. ecently a new member the code to start on boot. All of this
http://bradlug.co.uk
joined us at the Blackpool was made possible thanks to a tiny
Cornwall Tech Jam
LUG and asked if we could Linux computer.
Second Saturday of the month, alternating between
Bodmin and Camborne. help with a problem. A local cat had At the same meeting, a regular was
www.cornwalltechjam.uk decided to use their garden as its keen to build their own retro-games
Roanoke Linux Users Group own personal toilet. The new member machine using the latest model of the
Every third Thursday of the month at Roanoke had knowledge of Linux and was Raspberry Pi – so we explored what
South County Library. comfortable at the command line, but they wanted to build and how it could
https://roalug.net how could they use their skills to catch be achieved, and after a couple of
Medway Makers the cat in the act? hours we had it built!
Meet every 3-4 Weeks on a Sunday. Full details Well, they used an original So why are these projects
at www.eventbrite.com/o/medway-
Raspberry Pi – yes, the model important? First, they both use a
makers-8800006845.
released in 2012 – and the official Pi Linux computer to achieve totally
Leeds Hackspace
Open night every Tuesday 7pm-late. Open day Camera. With a little instruction on different goals. Second, and most
second Saturday of the month, 11am-4pm. how to use Python, they got the hang importantly, is that at our LUGs/jams
http://leedshackspace.org.uk of it and quickly created a device to /makerspaces/hackspaces we can
rLab Reading Hackspace detect and record the pesky critter! share our knowledge and help others
Unit C1, Weldale St, Reading. Open sessions Using a little Linux-fu, they also enable to achieve more.
Wednesday from 7pm.
http://rlab.org.uk
Huddersfield Raspberry Jam
Meet every month at Huddersfield Library, typically
the fourth Saturday of each month.
Huddersfieldraspberryjam.co.uk
PLUG: Provo Linux User Group
Third Tuesday of every month at 7:00pm at the UVU
Business Resource Center in Orem.
https://plug.org
Q PoP over
I have installed PoP!_OS from the
Section “Screen”
Identifier “Default screen”
the program you run as root does not have
access to most of the environment
Linux Format cover DVD. Why does the Monitor “Default display” variables that your user had. This is a
PoP desktop image appear upside down? EndSection security measure. One such variable is
I’m fed up with standing on my head! Section “Monitor DISPLAY, which GUI programs use to find
Maurice George Identifier “Default monitor” the desktop. The brute force “solution” is to
Option “Rotate” “inverted” use sudo with the -E switch, which
A There’s no need to stand on your
head, simply turn your monitor
EndSection
You only want to use one of these solutions,
preserves the environment.
$ sudo -E gedit
upside down! Seriously though, is the though, otherwise you will be right back This works, but it gets rid of a layer of
entire desktop upside down or just the where you started. security. You may even find it doesn’t work
Q Root editing
background image? If it is the image, are on some systems as their security policy
you using a custom image? If so, probably may not allow it. If you have permission to
the simplest solution is to invert the At a Bash prompt, if I try to use sudo to edit /etc/sudoers, you can
wallpaper image, which you can do in just execute gedit, the application shows up add specific variables to the env_keep list,
about any image editor, such as The GIMP, as expected. But if I try to execute sudo which contains environment variables that
or alternatively from the command line gedit, the cursor just blinks, and after are preserved, so adding:
with convert or mogrify: a few seconds I see a “Text Editor not env_keep += “DISPLAY”
$ convert -rotate wallpaper.png new_ responding” dialogue box with Force Quit to the file will allow GUI programs to run.
wallpaper.png or Wait options. It is also possible to specify environment
$ mogrify -rotate wallpaper.png Noah George variables when you call sudo:
$ sudo DISPLAY=”:0” gedit somefile
A
Both of these commands are from
the ImageMagick suite of tools that are When you run a program with sudo, These methods can be applied to
installed by default on most distros. The you run it in a separate environment, most environment variables, not just to
difference between them is that convert
writes the converted image to a new file
while mogrify overwrites the original.
If the whole desktop is inverted, there
is probably a problem with how X is
detecting your monitor’s characteristics.
This is a whole lot more disconcerting. I
find the inverted mouse movement worse
than trying to read text upside down, but
the solution is simple. Go into Settings
> Devices > Display and click on the
orientation setting. Set this to Landscape
(Flipped) to invert the display. This is a per-
user setting so it will not take effect until
you log in, which means you still have to log
in standing on your head. One way around
this is to enable automatic login for your
user, avoiding the acrobatics.
Alternatively, you can configure the X
server to invert the display immediately,
which is also a good option when you have
multiple users. As root, create the file /etc/
X11/xorg.conf.d/50-screen.conf (see the
answer to the question on root editing if By setting the editor variable for sudo, you can use your preferred text editor and settings to edit files that only
unsure how to do this) containing: root can change.
DISPLAY, but there is another way of using Peppermint for about two weeks The -xdev option has the same effect
handling the special case of editing a file as with a larger / partition and I’m noticing as -s with du. One obvious candidate for
root. You can specify the path to an editor that the space is slowly being taken up. growth is your home directory, browser
in /etc/sudoers This is concerning to me because I’m not and email caches, for example, or even
$ editor = “/usr/bin/gedit” downloading any packages or anything. the thumbnails created when viewing
Then you edit the file with Performing a du -sh check of the / is directories of photos. Another is /var,
$ sudoedit somefile problematic because it also begins to list particularly /var/log. You could install and
After the usual password verification, files in C:\ from my Windows partition, set up logrotate, a program that regularly
sudo will make a temporary copy of your which takes a very long time. Is this compresses old log files and removes older
file and load it into your editor. When you normal? I am just concerned that at this ones to reduce the growth in /var/log.
exit the editor, if the file has changed, sudo rate, I will eventually find myself low on The systemd journal is handled
replaces the original with the modified space from seemingly nowhere. differently, it is automatically limited to
file, keeping the original ownership and Ben Sanders 10% of overall filesystem size, which can
A
permissions. This way, the editor is running be quite a lot, and also to leaving at least
as your normal user, so all your settings for Addressing your last point first, du 15% free space on the filesystem. When it
the editor, theme and so on, are preserved, will traverse all directories below the reaches either of those limits it discards
it is only reading and writing the file that path you give it, including other filesystems older entries. You can change either or
is done as root. The editor set here is also mounted there. That encompasses not both of these by editing /etc/systemd/
used by visudo to edit the sudoers file. only your Windows filesystem but also journald.conf and uncommenting
You can specify more than one editor, things like /dev, /proc and /sys. Adding and setting SystemMaxUse or
separated by colons. If the first one is not the -x switch to your du command tells it SystemKeepFree. These can be set to a
available, sudo will try the next one: not to cross filesystem boundaries. percentage or an absolute figure, such as
editor = “/usr/bin/gedit:/usr/bin/emacs:/ You may find ncdu more useful – you SystemMaxUse=500M.
usr/bin/nano” will probably need to install this. It displays One of the ways you can get caught
Note that you must specify the full path your directories sorted by usage, and you out with root filesystem usage is that
to each editor – you don’t want someone can drill down to find out what is using the directories you cannot see, because they
dropping a script named gedit somewhere space. As you are mainly concerned with have other filesystems mounted on them,
in your user’s PATH and having sudo run it the increase in space, try running du or may also contain files. Rather than trying
with superuser privileges. ncdu each week, saving the results and to unmount everything, do this:
$ sudo mkdir -p /mnt/root
Q Filling root
comparing them. That way you can see
which directories are growing. You can $ sudo mount --bind / /mnt/root
I’m running Peppermint 10 dual also use the find command to list recently This creates a bind mount of root, the
boot with Windows 10 and I’m being created or modified files: same filesystem mounted at a different
faced with the issue of the space in / $ sudo find / -xdev -mtime -7 location, but does not include any other
being slowly used up. Around a year ago will list all files modified in the past week filesystems mounted on it. If you compare
I tried using Linux Mint for a week or so – it will be a long list. You may want to the output of ncdu on both / and /mnt/
but was forced to go back to Windows exclude your home directory as that will root you will see any hidden files as extra
due to / reaching 100% capacity and include a lot of recently changed files usage in /mnt/root, from where they can
me not knowing how to solve it. I’m still $ sudo find / -xdev -mtime -7 -not -path ‘/ be cleaned up.
home/*’
GET HELP NOW!
very much a novice, and now I’ve been
A QUICK REFERENCE TO SYSTEMD JOURNAL We’d love to try and answer any questions
you send to [email protected],
Most distros now use systemd as their to select a different boot – 1 shows the no matter what the level. We’ve all been
service manager, but systemd does first boot in the journal, more usefully -1 stuck before, so don’t be shy. However, we’re
a lot more than just manage startup shows the last but one boot, -2 the one only human (although many suspect Jonni
services. One of the extra features is before that and so on. is a robot), so it’s important that you include
that it replaces the traditional system This can be combined with -p err to as much information as you can. If
log with a journal. The journal is indexed show only errors for that boot. You can something works on one distro but not
for faster searching, which means also use: another, then tell us. If you get an error
that it is no longer a pure text file that $ journalctl -f message, please tell us the exact message
can be read with a pager like less or to follow the journal in real time. The and precisely what you did to invoke it.
searched with the likes of grep. Instead --since and --until options let you view If you have, or suspect, a hardware
you use the journalctl command, which problem, let us know about the hardware.
Consider installing hardinfo or lshw. These
entries over a specific time period,
comes with a number of useful options, while -t shows entries with a particular
For example: identifier, such as programs list the hardware on your
$ journalctl -p err $ journalctl -b -t sudo machine, so send us their output. If you’re
only shows journal entries with a to show you all uses of sudo since the unwilling, or unable, to install these, run the
priority of error or higher, useful when last boot. following commands in a root terminal and
trying to find problems; There are a lot more options, but send us the system.txt file too.
$ journalctl -b you can still use the old tools like grep uname -a > system.txt
shows the journal entries since the last if you prefer: lspci >> system.txt
boot. You can follow this with a number $ journalctl -b | grep somestring lspci -vv >> system.txt
ON SALE
NOW
one reason I started to switch Everyone’s into instant gratification these days, so tapes
to Linux. Glad to hear of your can feel a bit slow, but more to the point they’re
success running Linux, and expensive too. They do, however, help to solve the off-
thanks for letting site issue, as you can take the tapes with you or lock
us know. Flash them up in a suitably fireproof safe.
drives are indeed But then – and this is the main issue for me – that’s
You always knew those great for testing more of a business solution than a home one, though it
low-budget laptops weren’t but are not as reliable does make me think that perhaps it deserves at least a
going to last with Windows. as SSDs or HDDs, so be wary. look as another option to consider.
Helpdex
[email protected]
Neil says…
Thanks for the details! We’ll add it to the Hotpicks list.
Tolstoy is being forced to manually enter and compile
Gnome 3 continues to attract haters, while the rest of us just get on with using it.
the entire Linux 5.0 code listing down in the Server
Dungeon as penance.
WRITE TO US
Do you have a
burning Linux-
related issue
that you want to
discuss? Write
to us at Linux
Format, Future
Publishing, Quay
House, The
Ambury, Bath,
BA1 1UA or email
lxf.letters@
futurenet.com.
you buy direct from us not available anywhere else super-safe ordering
REVIEWS
AMD Radeon RX 5500
XT 8GB
Jarred Walton tries out AMD’s “just
north of mid-range” graphics offering.
SPECS
A
MD’s retail Radeon RX 5500 XT series of
graphics cards is here, bringing additional
GPU: Navi 14 options to the budget and mid-range market.
Process: 7nm AMD’s Navi architecture hasn’t changed, although Navi
Transistors: 14 cuts the potential number of compute units from a
6.4 billion maximum of 40 down to a maximum of 24 – with the
Cores: 1,408 5500 XT enabling 22 of those CUs. There are two
Texture units: versions of the 5500XT; the only difference is the VRAM
88 and a £30 increase in price.
ROPs: 32 The 5500 XT 4GB card matches up against the
Clock: 1,670MHz GTX 1650 Super, and the two are effectively tied in
VERDICT
performance, but the GTX 1660 is about five per cent
faster. But running medium quality at 1080p isn’t really
the goal if you’re going to pay extra for the 8GB card.
Stepping up to 1080p ultra starts to favour the 8GB MAN.: AMD PRICE: £200
model, though it’s only a seven per cent improvement. WEB: www.amd.com/en/products/graphics/
The difficulty AMD faces is that at 1080p, even at amd-radeon-rx-5500-xt
maxed-out quality, there aren’t a ton of games that truly
need more VRAM. And of the games that do, none of FEATURES 8/10 EASE OF USE 9/10
them seems to need more than the 6GB of the Nvidia PERFORMANCE 8/10 VALUE 7/10
cards. So again the GTX 1660 costs as much as the
5500 XT 8GB, but performs about five per cent better. A fine card, but there are cheaper options if you don’t
At 1440p ultra, the 5500 XT 8GB shows its largest envisage needing 8GB of video memory any time soon.
lead yet relative to the 4GB card. As a general rule, we
advise people not to skimp on VRAM. Yes, it costs more Rating 8/10
for the higher VRAM models, and performance doesn’t
PrimeOS 0.4.5
John Knight reviews a beautiful and promising desktop Android distro, but
before falling in love he finds it clouded by a particularly thorny issue.
IN BRIEF
T
he desktop Android scene
has multiple distros
An Android competing for this growing
distribution for market, but a newer competitor has
x86, provides been slowly gathering momentum in
standard PC the background – PrimeOS. The
controls for homepage claims that PrimeOS
Android “gives a complete desktop
applications and experience similar to Windows or
integrates with MacOS (sic) with access to millions
Google’s Play of Android apps. It is designed to
store. Comes in bring you the best of both worlds – a
three editions, complete fusion of Android and PC.”
32-bit, 64-bit, The website provides an
and 64-bit executable installer for Windows
‘Mainline’ for users and a regular ISO image for the When working as intended, PrimeOS gives a fast, smooth and elegant PC desktop based around
new PCs; rest of us. Overall, the installation Google’s app store.
requires 16GB process was much quicker and less
hard disk space painful than its rivals, with fewer screens overall, and its which version to download, a forum, a link to an article,
and SSE4.2 GRUB2 prompt actually works. and that’s it.
support for PrimeOS has excellent boot scripting built in, with Second, we couldn’t enable Sleep mode on anything
64-bit editions. detection for Windows and most major Linux flavours and except a MacBook. The screen just went black (while
Provides derivatives, preserving GRUB entries while adding its own. remaining backlit) and mechanical hard disks emitted
compatibility for Without any complicated partitioning, the installation worrying start/stop noises that had us immediately
Arm apps, and a should be done in around a minute. reaching for the power button. For most Android users, a
gaming utility Once rebooted it will run a setup dialogue. It was non-functioning Sleep mode will be a deal breaker.
for remapping disconcerting when it wanted info like our date of birth Those problems we can forgive an unfinished project,
touch controls and gender, but otherwise the setup was painless, with but we have one overwhelming issue. It’s closed source.
to a mouse only a couple of prompts, preferring to configure things Why? PrimeOS could easily become the standard of the
and keyboard. like Wi-Fi and Google accounts later in the actual desktop. desktop Android world. Instead, this beautiful OS is being
Boot times are very fast, and once the desktop is hampered by dumb licensing, keeping the OS in obscurity.
loaded you can expect almost Scandinavian levels of PrimeOS is already free. Why not open source it and give
tasteful minimalism: a mountainscape wallpaper, icons for it a proper chance to shine? The OSS community could
Chrome and the Play store, a taskbar, and that’s about it. easily sort out the Sleep issue and write documentation.
Touch the system icons and a pull-down menu will appear So we’re left in a frustrating place. PrimeOS is nicer to
from above, where you can configure options like Wi-Fi. use than most rivals – Bliss OS is extremely buggy,
It’s all very elegant and runs incredibly smoothly. The Phoenix OS now has ads, and Android-x86 is only a bare-
only fly in an otherwise perfect ointment was applications bones system. But if it can’t suspend properly, it won’t
that minimised at strange times. suit most Android users. And if it’s closed source, there’s
As for unique features, under PrimeOS Settings was nothing you can do to fix it.
VERDICT
Enable Native Bridge, which can “support apps with arm
native libraries”. We couldn’t find any information on this
feature, but in our testing PrimeOS ran a lot more
software than competing distros. PrimeOS Settings also DEVELOPER: Floydwiz Technologies
allows you to enable or disable root access manually, and WEB: https://primeos.in
specify different levels of access. LICENCE: Proprietary Freeware
PrimeOS also comes with DecaPro Gaming Centre,
designed to bring Android gaming to the PC with mouse FEATURES 7/10 EASE OF USE 7/10
control and pre-defined shortcut keys. Some love it, PERFORMANCE 8/10 DOCUMENTATION 2/10
others don’t – either way, it’s definitely worth trying with
games like PUBG Mobile. Fast, beautiful, tastefully minimalist, but still unfinished. And
why is it closed source when it’s already free?
Have we got bad news for you!
There are currently three main drawbacks. First, there’s Rating 5/10
almost no documentation – there are instructions on
GhostBSD 20.1
There were many people who said BSD didn’t have a ghost of a chance on
the desktop. Mayank Sharma was one of them.
IN BRIEF
B
SDs have all the hallmarks
of server operating systems,
One of the but you wouldn’t think of
handful of running them on the desktop.
projects that GhostBSD is one of a small number
leverages the of projects that’s working to change
robust and that perception. Unlike its peers,
stable base of though, which just slap a desktop
the FreeBSD OS environment on top of a BSD base,
to create a GhostBSD puts in the effort to create
lightweight a very approachable and functional
desktop that desktop. For instance, GhostBSD
resembles a boots straight into a live graphical
typical Linux desktop environment, which makes it
distro in both accessible to users irrespective of
form and their familiarity with BSDs. The OS GhostBSD’s Software Station looks and feels very similar to the venerable Synaptic package
function. uses the lightweight MATE desktop manager on Linux.
MIN SPEC
environment, and you wouldn’t even
realise you’re running a BSD-based OS. Outside of the installer, though, there is hardly anything
Behind the scenes though, it is still BSD. Until a couple that will appear alien to a Linux desktop user. In addition
CPU: Any 64-bit of years back, GhostBSD was running on top of a pure to MATE, the familiarity experience is further enhanced by
processor FreeBSD base. It then shifted to TrueOS, which brought the fact the application menu houses all the usual open
RAM: 2.5GB along several enhancements, in particular the OpenRC init source apps that you find on just about every desktop
HDD: 15GB system. GhostBSD is still based on TrueOS, but the Linux distro.
Build: Available project has dropped the CURRENT branch and instead Another big positive for the project is its range of
for 64-bit only moved to the STABLE branch for ABI stability, with the custom apps for essential administration tasks. For
integration of the latest system update developed by instance, fleshing out the installation is a no-brainer
TrueOS. With the 20.01 release it has re-based the OS to thanks to the graphical Software Station app, which is a
FreeBSD 12.1-STABLE. frontend to FreeBSD’s pkgng package manager. Similarly,
GhostBSD uses its own home-brewed GBI installer to you can use Update Station to track, fetch and install any
anchor the OS to the disk. While it isn’t particularly updates to both the system and the installed apps.
cumbersome to operate, when navigating it you’ll get the Another interesting custom app is Station Tweak, a fork of
first signs you’re running a non-Linux OS. The installer the MATE Tweak app, and will help you to customise the
recommends first-time users stick to the option of desktop by tweaking various elements of the UI.
allowing the OS to take over the entire disk. There is an GhostBSD is essentially a one-man project but has all
option for custom partitioning as well that has been the essential elements to succeed as a desktop OS. Its
improved in this release, particularly for UEFI-enabled engineering efforts are backed up by a decent
machines. However, you must be well-versed with the UFS documentation and support channel that’s good enough
file system to venture anywhere near it. So the inclusion of to acclimatise new users.
VERDICT
a custom partitioner for an alien filesystem essentially
forces you to stick to the recommended option. All things
considered, this is a serious limitation, since many users
wouldn’t have a spare machine to dedicate to GhostBSD. DEVELOPER: Eric Turgeon
MIN SPECS
L
inux Lite is a stalwart in the
league of beginner-friendly
CPU: 1GHz distros, as the project has
RAM: 768MB been putting out releases since 2012.
HDD: 8GB From the get-go its raison d’être has
Build: 64-bit been to present Linux as an
only with appealing option to users looking for
seperate images refuge from Windows. It does so by
for UEFI/ mixing familiar mainstream apps
Secureboot with customised ones to ease
machines. regular desktop configuration and
administration tasks. Its latest release
reenforces this view by moving
forward its scheduled release date to
coincide with Windows 7’s End of Life.
To mark the occasion, Linux Lite
4.8 features a special wallpaper that
is a throwback to the default Linux Lite has dropped out-of-the-box support for VirtualBox to shave some time off boot-up.
wallpaper on Windows 7. The layout of
the distro’s customised Xfce desktop improve the life of a laptop’s battery, create a compressed
will also appeal to Windows 7 users, with a panel at the block device in RAM for increased efficiency, etc.
bottom that houses the application launcher in the left On top of its beginner-friendly features, Linux Lite has
corner, and the network, volume and clock applet on the a solid foundation. It’s based on the Ubuntu 18.04.3 LTS
other end. The icons on the desktop have been labelled as release and uses the Ubiquity Ubuntu installer, which
per their names in Windows, such as Recycle Bin and shouldn’t confuse first-time users. To back it up, the
Control Panel, for added familiarity. project has comprehensive avenues of support, including
Another useful familiarity feature is the Lite Software a searchable help manual that’s also included in the
app, from which users can use to install several installation, and covers all aspects of the distro, from
mainstream apps, including popular proprietary ones setup to administration and troubleshooting.
such as Dropbox, Skype, Spotify, Steam and others, as Although it doesn’t require fancy hardware, which is
well as dozens of open source ones across all categories. another reason it’s ideal for some of the early, resource-
Lite Software takes the bite out of installing (and impoverished Windows 7 machines, Linux Lite’s list of pre-
uninstalling) apps and makes the process newbie-proof. installed apps doesn’t include any of the traditional
First-timers will also appreciate the Welcome screen lightweight apps and is instead brimming with the usual
that hosts quick links to essential system administration suspects such, as LibreOffice, Thunderbird and Firefox.
tasks such as installing updates. There’s also an option to Before you download Linux Lite you can use the
set up a restore point, which essentially fires up the keyword-searchable hardware database on the distro’s
TimeShift backup app and helps you take a snapshot of website in order to check if the distro will work on your
the current installation. computer, which trawls through 30,000 user-contributed
PsychOS 3.4.6
Forever 90s’ Jonni Bidwell finds nostalgia and confusion in a weird
lightweight/heavyweight superposition of distro-space.
IN BRIEF
W
eird (Hannah Montana
Linux), niche (CAINE
A nothing if not Linux, for crime scene
curious distro investigations) and sometimes
for 32-bit frankly baffling (Ubuntu Satanic
hardware at the edition) Linux distros are nothing
end of the world. new. So when we first saw the
It’s based on name, the website and the satirical
Devuan Ascii, so Peertube trailer (http://bit.ly/
systemd-free. LXF261peertube replete with a
It probably driving synth soundtrack and VHS
contains at least artefacting), our first thought was
one application that PsychOS was very much one of
you’ve never these oddballs. Maybe it is, but there
heard of but is actually a serious distro behind the
will nonetheless slightly ridiculous veneer. Retrograb can’t bring back your favourite chewed-up mixtape, but it can bring back memories of
find useful. PsychOS began life as a distro for DOS Animation programs.
SPECS
psychology students, so the name is
not a Hitchcock reference and nor (we think) is it any A lot of consideration has been given to users of old
aspersion on the mindset of anyone who might use it. hardware. The lightweight Firefox derivative Pale Moon is
RAM: 512MB That being said, it’s based on Devuan, is aimed at 32-bit the default browser, but you can also use Lynx from the
HDD: 16GB machines and claims to be suitable for beginner users. console. StreamPi is included to stream games of
Build: 32-bit The installed system is large (around 16GB, the release Netrunner to Twitch and such without having to invoke
only notes style it as an ‘end of days’ distro) and includes a something heavier like OBS. A combination of youtube-dl
truckload of applications. If you’re looking for a new and mpv is used for integrating video playback (e.g. in
hobby, you’ll probably find tools to help you with it here, CLIMax and Retrograb) in a lightweight way. It’s also easy
be it music composition/notation, video streaming, to install IceWM if the Xfce desktop proves too heavy
statistics or ham radio. Debian/Devuan’s free software (initial RAM usage is around 220MB). There’s a strong
guidelines are left by the wayside with firmware and focus on all things retro, with DOSBox, as well as
microcode installed out of the box, though you might emulators for the Acorn Electron, C64 and early consoles.
need them after the apocalypse. Plus if you like BASIC, you’re in for a treat, as there are at
In a niche
least four different versions bundled.
It’s a laudable effort, and the development logs give a
PsychOS, by default, features an Xfce desktop with the nice glimpse into the motivation and vision behind the
panel and menu on the left. The Thunar file manager has project. But most people will be put off by the huge
been augmented with numerous custom actions amount of niche software, and if you do find yourself on
(transcoding video formats, opening files with DOS the wrong side of digital Ragnarok, the last thing you want
programs). A number of tools unique to PsychOS are to be doing is trying to recall SysV init script syntax.
included. There’s CLIMax, which aims to introduce people
VERDICT
to the command line, through a neat categorised launcher
system with refreshingly human-readable documentation.
It’s a nice idea, and shows off some of the wonderful CLI
tools bundled with the OS, but you’re going to have to DEVELOPER: TheOuterLinux
learn to type stuff sooner or later. Another gem worth WEB: https://psychoslinux.gitlab.io
mentioning is Retrograb, which allows fetching and LICENCE: Various
installation of tools from Git repos, old software archives
(a great many 90s DOS tools are available). It also FEATURES 9/10 EASE OF USE 6/10
provides an emergency messaging system, as long PERFORMANCE 7/10 DOCUMENTATION 7/10
as the project’s Gitlab remains accessible.
The Refracta installer isn’t as slick as Calamares, but We don’t recommend one-person distros for serious use, but
it’s simple enough not to scare us off, and common install in the unlikely event the end times come and wipe out
tweaks are just a checkbox away. You’ll need to set up 64-bit hardware, this might just come in handy.
partitions yourself, and the installer offers a choice of
GParted or cfdisk to do just this. Fine, but it’s not really Rating 8/10
welcoming for beginners.
Dwarf Fortress
Management’s wondering what Steve Hogarty has been up to in the LXF
Server Dungeon, but it’s nothing to worry about, he’s digging a hole to hell.
SPECS
I
n the Dwarven Year 250, the stubby reach of shame that Effy is already tunnelling vertically towards
dwarfkind had touched every procedurally oblivion and the realms of unending torture.
OS: A Linux generated rock in Ruspsmata, from The As a construction and physics simulator, Dwarf
CPU: Dual core Problematic Steppe to The Dune of Hermits, from The Fortress is perhaps at its least intimidating. You can’t
2.4GHz+ Prairie of Pregnancy to the Jungle of Conflagration. Not an assume exact control over your dwarves, instead you
Mem: 4GB inch of stone had not known dwarven steel, yet one dark designate areas for them to work on. In the early stages,
GPU: 1GB VRAM depth had so far eluded colonisation. “Leave the skies to that’s a case of simply tracing out chunks of the ground to
HDD: 500MB the birds,” sang the Dwarven king – probably, we’re be dug. Dwarves are assigned different jobs, such as
making this bit up – “the Underworld shall be ours.” mining, but some labour is shared by every dwarf, and
Dwarf Fortress is several things at once. It’s The Sims moving stone becomes a constant low-priority task.
and NetHack and Dungeon Keeper and Minecraft. It’s a Effy’s work takes place a short distance from Oakfire’s
vast, simulated fantasy world, generated just for you, with entrance hall. A roughly hewn passage leads away from
races and religions and history and wars and dwarves the main fortress before reaching an ever-deepening pit,
whose fingernails grow. It’s also infamously difficult, around which a rudimentary stairwell allows access to the
featuring only ASCII visuals and labyrinthine menus. Yet rapidly descending dig site.
Dwarf Fortress’s reluctance to expend even a joule of Two caverns are encountered and traversed in this
energy in prettying itself results in astonishing complexity. manner; two great and seemingly endless halls of fungus-
Bidwell the dwarf sets to work dismantling the wagon carpeted rock. Clever dwarves would build walls around
and turning the wood into beds. Mohr and Effy begin to their bafflingly unprotected staircases. Oakfire hosts no
scoop out a shallow hole. The others busy themselves clever dwarves.
stockpiling the food, furniture and fuel they arrived with. Unknown to all, a filthy menace is ascending from
Over days, seven bedrooms are carved out of the rock, below. The noise of all the hellbound tunnelling has
indoor stores are created, as are workshops and kitchens. awoken a bugbat in the underground caverns. The flitting
Peers happily builds doors. Bidwell constructs tables and beast makes its way to the entrance hall. Mayank Sharma
chairs for a dining room. His puppy is stung by a is cleaning himself when the creature latches on to the
bumblebee in an attempt to ironically frame just how calf of his right leg, bruising him through his silk trousers.
peril-free life is. He flails madly and humiliatingly about the fortress,
The dining room becomes Oakfire’s attractive crashing through the dining room and startling several
centrepiece, as the northwest corner has clipped a cluster hungry dwarves before the bugbat’s tiny mandibles finally
of green tourmaline, creating a shimmering emerald slice through his right index finger. Dwarf blood spurts
distraction from the now daily servings of Neil Bothwick’s enthusiastically from the wound, spattering the walls. Oh
freshly caught perch. It’s all very pleasant. It’s definitely a yes: Dwarf Fortress has a very detailed combat system.
This article first appeared in PC Gamer 228 in the Dwarven year 2011 in the month of Malachite (July).
It has been edited for length and the original dwarf names changed for sense.
“Seal the dig site,” comes the order, one dead dwarf
too late. Bidwell works quickly to shape a bauxite
floodgate to cap the tunnel. The dig site can only be
opened using a lever in Neil Mohr’s fancy quarters – the
dig to hell will resume on his command.
Tun Eribesmul was a good and hard-working dwarf,
who had his head eaten too soon. He tells this to Effy as
he hovers above his bed. Effy is startled awake. Eribesmul,
satisfied, glides through a wall and into the meeting hall.
Jonni Bidwell places a plain siltstone slab in Oakfire’s
entrance hall, where a now-composed Effy makes an
engraving as solemn as it is tardy. “In memory of Tun
Eribesmul 186- 252.” Another task left too late, but at least
Eribesmul’s ghost finally rests. He vanishes from the
meeting hall. His corporeal leftovers rot in a tunnel.
The early months of Dwarven Year 253 are difficult
ones. On the surface and in the tunnel to hell, the long- World creation is
forgotten beasts respond ferociously to the incursions strewn about everywhere, over everything. All things more than just the
land, it’s an intricate
history too.
into their caverns. And these are no tiny crundles, nor between Effy and the entrance to Oakfire are devastated
clownish bugbats. A creeping eye drags its bloated form as the dark and cruel force races towards the surface.
upwards to be met with the thrashing axes and spears of It’s important to understand how excruciatingly
Oakfire’s militia in the fortress’s entrance hall. detailed dwarven pain is. Dwarves have individually
The simplest use of migrants, who’ll turn up to your assessed limbs, each with breakable bone, fat, muscle
fortress in greater and greater numbers as they hear of its and skin. A bone can be broken without breaking the skin.
prosperity, is to draft them into the militia. Multiple Fat can be bruised without breaking a bone.
squads can be formed and patrols scheduled so that The anguished howls of fallen dwarves are heard in
when one squad comes off-duty, another takes over. Oakfire and the bauxite seal is replaced. The tunnel to hell
On this day, in the autumn of the Dwarven Year 253, is locked shut, with confused, panicking dwarves still
Effy breached the portal to hell. It was not a simple trapped inside. On the wrong side of the door, Likot
process. At 158 levels beneath Oakfire, he first reached Naniroddom clutches her baby son. Her husband, Zon
warm stone. Beneath him boiled a heaving ocean of Fererush, is in the meeting hall, oblivious to her imminent,
magma, 20 levels deep, enough to consume all of Oakfire gruesome death. In the vanishing moments before the
several times over. Somewhere beneath that, he tide of violence reaches her and her child, she engraves
supposed, was the underworld. an image of Mayank Sharma holding aloft a bugbat bone
It was traversing this troublesome sea of molten rock armour stand. Oakfire’s only symbol of triumph over the
that raised the problem. The solution? That was found in creatures of the underground. It’s no solace against
the grand pillars of raw adamantine that sounded the what’s to come.
depth of the magma sea, from top to bottom. On the first The militia stand firm in the entrance hall facing the
day of Sandstone, Effy discovers an adamantine seam. He bauxite seal. The seal is blasted open from inside in an
steadies his pick, lifts, and strikes the precious mineral explosion of flame and stone. A surprised dog is fried alive.
once. It collapses inwards. The seam was hollow, an The entrance hall fills with dust, smoke and steam, and
adamantine straw poking up through the fiery ocean from when it clears Oakfire at last sets eyes on the denizens of
the lower depths of Ruspsmata. Effy hears horrifying the underworld. So many denizens of the underworld.
screams coming from the hole. He peers into the The demons rage through the fortress, burning and
darkness before him, turns and runs fast for Oakfire. steaming the population of Oakfire as they go. The
Something is coming up. Remember, losing is fun. fortress is lost. Even a highly trained army of dwarves
There are 29 dwarves in the narrow tunnel. 20 dwarves would fall before a handful of demons. And these demons
are destroyed by the evil rising from the underworld. Not are numbered on the status screen as ‘uncountable’, a
simply destroyed, but torn limb from limb. Their limbs are dizzying quantity otherwise reserved for ants and other
then messily reduced to their constituent parts. vermin. We’ve probably doomed all of Ruspsmata
VERDICT
A group is massacred in seconds. Shashank Sharma,
who’d been looking for plants in the caverns, is now
Sexy graphics are coming! Tile packs allow you to leave the purity of the Rating 10/10
ASCII display. For shame, we are judging you
SUBSCRIBE
Sign up today and get this fantastic
STM DRIFTER LAPTOP
BACKPACK
Designed to carry most
15-inch laptops and the
16-inch MacBook Pro,
this 18L backpack is
spacious, comfy, protects
YOUR your devices and is
GIFT! packed with pockets!
WORTH Top features
£89.95 The protective tech cell lifts
out,
Don’t miss ow! your laptop off the bottom of
subscribe n the bag, keeping it away from the
impact zone
Spacious 18L capacity for
books, shoes, clothing and more!
Dedicated tablet pocket is
integrated into the laptop sleeve
3D foam mesh back-panel with
air-flow channel for hot days
Internal power pocket provides
a place to store your charger
Reflective light loop for better
visibility and night safety
SUBSCRIBE NOW!
www.myfavouritemagazines.co.uk/lin/stm1
Call: 0344 848 2852
26 LXF261 April 2020 www.linuxformat.com
Overseas
subs on
p65
SAVE!
PLUS! PLUS!
22%
Only Only SAVE! Only SAVE!
Terms and conditions: This offer is only available for new UK subscribers. Gift is subject to availability (MSRP £89.95). Please allow up to 60 days for the delivery of your
gift. In the event of stocks being exhausted we reserve the right to replace with items of similar value. Prices and savings quoted are compared to buying full-priced print
and premium subscriptions. You will receive 13 issues in a year. You can write to us or call us to cancel your subscription within 14 days of purchase. Payment is non-
refundable after the 14 day cancellation period unless exceptional circumstances apply. UK calls will cost the same as other standard fixed line numbers (starting 01 or 02)
or are included as part of any inclusive or free minutes allowances (if offered by your phone tariff). For full terms and conditions please visit: www.bit.ly/magterms.
Offer ends 30 April 2020.
Roundup
LibreOffice Veusz Jade Dia LabPlot
Alexander
Tolstoy
is planning to do
what he does
every night,
plotting to take
over the world!
Plotting applications
Turn your numeric data from plain figures into stunning charts, plots and
diagrams. Alexander Tolstoy finds out which plotting tool is the best.
HOW WE TESTED…
Ease of
installation
What does it take to get the
applications up and running?
A
lthough this test is not directly data-related, it is a crucial
factor, because the availability of an application is key to
its adoption by the general public. LibreOffice is an
undisputed benchmark of perfect app availability. Many Linux
distributions make it available right after installation. Check the Jade is a nice drawing app, but it takes some time (and requires editing the jade.pro
Office section of your application menu to see if it is already there. file) to successfully compile the application.
If not, install it via a package manager or a software store.
Veusz is more niche, and it’s sometimes necessary to search Jade app, and the Libjade shared library it depends on. Firstly, you
for third-party Veusz packages. Nevertheless, the official Veusz need to compile Libjade using Qmake and a standard set of Qt5
website offers a rich selection of builds for various platforms, build dependencies. Then you grab the Jade source code and
including an assortment of Linux and BSD systems, so it’s not a build it the same way. Jade looks for Libjade in /libjade/lib, which
problem to install. means that you need to download and put both projects side by
The situation is even better for LabPlot. Being a member of the side. So while there’s nothing too challenging in installing Jade for
KDE family, this application is available almost ubiquitously. Just tech-savvy users, many inexperienced with compiling from source
in case, the official website lists helpful links in the Download will likely find it a serious obstacle.
section for nearly all mainstream Linux flavours.
VERDICT
Dia boasts excellent availability as well. It’s been around since
the late 90s, and many if not all Linux vendors include Dia out of
the box or keep it available in standard repositories. The only
minor issue is that the official Dia website offers a very limited set LIBREOFFICE 10/10 DIA 9/10
of download options and recommends outdated packages, so it’s VEUSZ 9/10 LABPLOT 8/10
better to search for Dia in the stock repositories of your distro. JADE 4/10
The only contender that requires more efforts to install is Jade. If you manage to get Jade up and running, you’ll probably have no trouble
This is a small, one-person project that consists of two parts: the with the rest of apps.
Ease of use
Will novice users feel welcomed?
F
or years LibreOffice has been promoted as an alternative
to Microsoft Office, which in turn is a widely adopted
desktop software suite. Using advanced features of Excel
and Calc does take some time and effort, but we must admit that
drawing plots and diagrams in Calc was really a piece of cake, and
those plots looked quite nice!
Veusz is also very interesting. This is a specialised plotting and
data analysis application that feels quite complex. However, it has
an unmatched built-in tutorial that runs (upon your agreement) Before dealing with complex and time-consuming 3D plots, start with simpler
right after the first launch. The tutorial involves animations and things and let the built-in Veusz tutorial guide you.
widget highlighting implemented directly in the Veusz interface,
allowing you to learn complex things from scratch in minutes. We conveniently. As such, if you just want to experiment with simple
really wish other scientific software could implement the same diagrams and plots by drawing them directly onto the canvas,
tutoring approach. For instance, LabPlot uses the same ‘project’ then go with Jade.
metaphor as Veusz and features a similar tree of hierarchical
VERDICT
objects, but it takes substantially more effort to get used to it.
Dia is a very simple software, with most of its features
displayed at your reach, but it uses the legacy floating-window
mode, which is annoying. Run it like $ dia --integrated to get the LIBREOFFICE 9/10 DIA 8/10
single-window mode and the much better experience. VEUSZ 8/10 LABPLOT 5/10
Ease of use is Jade’s stock in trade. We suspect that the reason JADE 10/10
behind creating Jade was primarily to get things done quickly and Go with Jade for simple drawings, and don’t miss the built-in tutorial in Veusz!
CSV handling
What can you make
from CSV tables? LibreOffice 10/10 Veusz 9/10
C
LibreOffice is a large office suite with many Veusz is a nearly perfect solution for the
omma-separated values (CSV) components, but since we’re talking here visualisation of CSV data sets, but this
is an extremely popular format about CSV, the point of interest is comes at the cost of doing many things
for interchanging numeric LibreOffice Calc, the suite’s spreadsheet manually. First you need to import your
data. Being just a plain text file, a CSV application. Calc can open CSV files with CSV as a data set via the Data > Import
document stores tabular data using a ease. There is an import wizard that lets menu. Choose a delimiter, locale and
comma or any other character as a you define the custom separator (if it’s not set other CSV-related parameters. Pay
separator. Each line is a record or a a comma), encoding and whatnot. Once attention to the Direction field, as it allows
table row. We find that it’s crucial for a you see a readable table, make sure that you to choose columns or rows for
plotting app to be able to turn dull CSV numbers in cells have the Numeric format creating the data range. Import the file
figure into a compelling graphic image. (yes, that is not always true). After that, twice using different directions if unsure.
Despite the fact that our approach select the range of the table with data and Next we need to draw a chart, and it
includes both scientific and office-like go to the Insert > Chart menu. The Chart seems to be a more time-consuming job
apps, this should not be a problem. For Wizard will appear, and you’ll be able to than inserting a chart in Calc. On the left
instance, Microsoft Visio enables you to define chart type, data range, data series pane there’s a document node tree. Add
connect numeric data to its drawings and chart legend. the ‘graph’ element to the page (use the
and display several information views Calc has 10 different chart types, some Insert menu), then select ‘graph’ and
at once. Consequently, we want to of which can be also turned into the 3D choose Insert > Add xy. Now you can link
compare our five contenders in terms of mode. The data range is also very data to the X and Y axes using the options
CSV handling and see what diagrams important as it enables you to choose if panel below. You’ll need to insert more ‘xy’
they can draw from them – whether the data series is in columns or rows – this elements to make several CSV rows
they are fanciful, easy to read and so on. affects the core meaning of a chart. displayed at a time.
Data analysis
How can they analyse your data?
S
ometimes you receive raw data that needs to be Statistics, Analysis of Variance (ANOVA), Correlation, Covariance,
processed before plotting. In Veusz, look under the Exponential Smoothing, Moving Average and some tests as well.
Data > Operations menu and find lots of options for Working with a spreadsheet in Calc, you first need to define the
manipulating data sets. Joining, merging, finding the average, data scope – simply select cells that you want to analyse, and
filtering and many more are available. Some plots in Veusz are then choose an option under Data > Statistics. Once again review
analytical by nature, such as the covariance (say what now? – Ed) the input range and select the output cell – either by writing its
plot or the vectorfield plot. position or clicking the cell with your mouse.
LabPlot seems to be even stronger in terms of analytics. It can Dia and Jade don’t have means of data analytics, although they
perform linear and non-linear regression analysis, numerical don’t even claim to be scientific packages.
differentiation and integration, data smoothing, Fourier filtering
VERDICT
and more (see the Analysis menu). Given that LabPlot supports
integration with different open-source computer algebra systems
(CAS) like Maxima, Octave etc., it is simply a heaven for scientists
who work with big amounts of data! LIBREOFFICE 7/10 DIA N/A
A comparable set of data analysis features can be found in VEUSZ 9/10 LABPLOT 10/10
LibreOffice as well. This time again we’ll need LibreOffice Calc and JADE N/A
some numeric data organised in the form of a spreadsheet. Look Big data processing is best done in LabPlot and Veusz. Choose LibreOffice for
under the Data > Statistics menu and find Sampling, Descriptive more lightweight analysis tasks.
Drawing capabilities
How do they handle drawing tasks?
I
n many cases plotting is assumed to be the same as However, nothing compares to the marvellous Dia, a program
drawing schemes and plans, which is very close to what designed specifically for drawing schemes and diagrams. Dia’s
vector-graphics editors do. Still, it’s always good to have tools help create structured diagrams in minutes, and you also get
an application that can properly connect boxes with arrows, a vast assortment of ready-to-use shapes from the Dia gallery.
automatically add text captions to drawn objects, and so on. In Our last (but not least) contender is LabPlot, which lacks direct
this regard most of our plotting apps performed very well. drawing tools – this is strictly a data analysis tool intended for
LibreOffice has a dedicated part with a simple name, Draw, for visualising maths formulae and numeric data. Therefore we
doing vector graphics with some advanced features like recommend everything but LabPlot for drawing plots and
connectors, object aligning, node editing and more. diagrams by hand.
Veusz is all about graphs, but it also lets you draw lines,
VERDICT
rectangles, polygons and ellipses. Drawing isn’t the primary
feature of Veusz, but you can nevertheless do a some basic stuff
with it.
In terms of drawing, Jade is more advanced than Veusz. LIBREOFFICE 9/10 DIA 10/10
Although it is still quite basic and simple, this app is ideal for quick VEUSZ 5/10 LABPLOT N/A
plots and graphs made by hand. In Jade you can manipulate JADE 8/10
objects just like in a vector editor, but with a focus on diagrams If you have LibreOffice, you’ve probably already got a powerful vector-
and blocks. drawing app.
Extensions
Can you add extra features to
the beloved plotting app?
T
he website https://extensions.libreoffice.org website
hosts hundreds of extensions, some of which are related
to charts, plots and diagrams. For instance, there is a
fanciful SmART Gallery extension with a bunch of colourful chart
templates, an extension to extract X/Y axes from scanned graph
and more. LibreOffice can be used for various different plotting Dia has a plugin-based architecture, but most of its plugins are already bundled
means, such as drawing guitar chords, building diagrams with with the default installation.
chemical engineering symbols, etc.
Veusz can also be extended with extra plugins that you can add already includes an impressive amount of features. Still, it could
in Preferences > Plugins. However, there are not many ready-to- be even better if it offered extensions and plugins that people
use plugins in the public domain. Instead, you are encouraged to would install at their discretion.
create your own Import, Tools and Data Set plugins using Python Only LibreOffice has a decent amount of extensions, while
– luckily a tutorial is provided by the Veusz project. other contenders only provide a capability to attach it.
As for Dia, this app was engineered with plugins in mind, but
VERDICT
most are included in the default bundle. There is a tiny repository
at https://github.com/sdteffen/dia-plugins with three extra
Python plugins (charts, length calculator and object rotator). It is
possible to write your own plugins for Dia, and let’s not forget the LIBREOFFICE 9/10 DIA 5/10
catalogue of shapes and templates available from the Dia website. VEUSZ 5/10 LABPLOT N/A
We didn’t expect to find third-party functionality for Jade, but JADE N/A
we were surprised to find that there are virtually no plugins for If you’re familiar with Python, create your own custom extensions for Veusz
LabPlot either. LabPlot is a fully-fledged thing as it is, and it and Dia, or just use the rich catalogue of super-useful stuff for LibreOffice.
Documentation
Where you can learn how to use it?
T
here is a wide selection of guides for each component of
LibreOffice, including the 550-page book on Calc and
242-page book on Draw (PDFs available). Plus, given the
very wide adoption of LibreOffice, you can find numerous third-
party tutorials and guides, including video tutorials on plotting
(find it on YouTube), a countless number of high-quality Stack
Overflow answers, Wiki pages, and much more. If you have a
question on getting started with plotting, there are plenty of
comprehensive answers with examples from proficient users.
Veusz is a smaller project, but it has a very decent Veusz
Documentation PDF book, and a number of very helpful YouTube LabPlot is powerful and definitely worth studying. If only it offered more helpful
videos from other parties. Creating graphs and studying plots in guides and materials!
Veusz are both well-examined and reviewed by other people, so
it’s quite easy to learn how to do complex things if you’re a started with. We managed to find the LabPlot Handbook on a
newcomer. Once again, we also want to praise the striking built-in third-party website, but it was outdated material (for LabPlot 1.6
tutorial that answers a lot of question for novice Veusz users. from 2007) with very basic descriptions and few examples.
Dia is quite an easy application to get used to without studying We won’t accuse Jade of a lack of documentation (oh, we won’t
auxiliary materials, although self-education is still possible thanks will we!?!?–Ed) as it is a small project, but LabPlot is a very solid
to the comprehensive Dia Manual PDF available from the project’s software with many contributors, and it should provide a better
website. The manual is a source of precious knowledge on support for its users.
VERDICT
working with vector graphics in general, coding in SVG, working
with complex shapes, etc. A good source of inspiration is a public
catalogue of diagrams in the Dia format that you can download,
open and examine. LIBREOFFICE 10/10 DIA 8/10
As for LabPlot, it requires good documentation, yet the VEUSZ 9/10 LABPLOT 3/10
appropriate section in the LabPlot website says ‘coming soon’. JADE N/A
That’s not good for a complex app that is not really easy to get It is assumed the LabPlot audience can set up their workflow without aid.
Plotting applications
The Verdict
T
he results are largely as expected, since we reviewed our
plotting apps with many criteria. LibreOffice may not be
perfect in certain areas, such as data analysis and ease
of use, but after putting all considerations together it beats all the
other contenders by a solid margin. LibreOffice has been one of
the best and most advanced examples of open source software
for many years. It was already unmatched not only in the days of
OpenOffice (mid 2000s), but also in the earlier days of its parent,
1st
StarOffice (mid 1990s). LibreOffice’s plotting capabilities are
spread between Calc and Draw components, with the first one LibreOffice 9/10
targeted at working with numbers and the second being a
powerful tool for drawing business graphics. Web: www.libreoffice.org Licence: MPLv2.0 (secondary license
Veusz comes second, mostly due to the fact that it does not GPL, LGPLv3+ or Apache License 2.0) Version: 6.4.0
have many available extensions and provides very limited The most complete plotting solution so far that covers most usual needs.
2nd
drawing capabilities. Still, it is a very strong, well-documented
and feature-rich solution for conducting scientific research, Veusz 8/10
plotting complex 3D scenes, maths formulae, combining several
data sets in one plot, analysing numeric data and more. Veusz is Web: https://veusz.github.io Licence: GNU GPLv2+
not the easiest app we’ve seen here, but the built-in tutorial Version: 3.1
compensates for that. There are great examples of Veusz A perfect solution for scientific plotting. Requires some efforts to get used to.
3rd
projects available online, so that one can start learning Veusz by
opening one of them and examining it (our favourite is that Dia 7/10
spectacular wavy 3D sample).
Dia comes in third, which means that if you just need to draw Web: https://wiki.gnome.org/Apps/Dia Licence: GNU GPLv2+L
diagrams, plans or block schemes, nothing can be more Version: 0.97.3
comfortable than this robust tool. Dia is easy to install and grasp, If plotting for you means making diagrams and charts, then choose Dia.
4th
and its drawing tools are nearly perfect.
In fourth is LabPlot, which is strange because it can do various LabPlot 5/10
high-profile scientific tasks that Dia is incapable of. LabPlot can
draw super-fancy curves based on mathematical functions, Web: https://labplot.kde.org Licence: GNU GPLv2+
process and analyse data, and maintain even very complex Version: 2.7.0
projects that are very readable and easy to deconstruct thanks to A poor result considering its advanced scientific and plotting features.
5th
the clean project-style tree. However, there are no extensions or
drawing tools in LabPlot, and it lacks decent documentation. Jade 4/10
As for Jade, we recommend this small app for quick projects
where you need to draw few plots and export them in SVG, PNG, Web: https://github.com/jaallen85/jade Licence: GNU GPLv3
ODG or VSDX. It’s very easy to use, but it lacks any of the more Version: 1.2.0
advanced features. Right now Jade can’t compete, but it’s still very useful for quick drawings.
ALSO_CONSIDER
We’ve covered the most advanced plotting applications that Another scientific plotting option is Matplotlib, a Python
provide a user-friendly GUI to its users. However, there are library that should be used via scripting. If you are familiar with
other plotting apps that are often recommended for plotting the Python syntax, you can produce high-quality 2D and 3D
task, but have a different way of being used. Have a look at plots and charts ready to be published as a hard copy.
Gnuplot, a scriptable plotting tool that can generate stunning That’s not everything – some people prefer LaTeX as a
2D and 3D images. The main benefit of Gnuplot is that you can universal publishing system, others stick to R because of its
integrate it with your Perl, Python or Ruby scripts, use it for developed tools for statistical computing. Tell us what’s your
batch processing, or in interactive mode. favourite plotting app at [email protected].
W
ithout virtualisation, life at that the team had to wrangle, all the you don’t need to worry about breaking it
Linux Format towers would be while living the wild lifestyle encouraged – anything you do can be undone, and no
a lot more complicated. by the heady golden era of dead-tree one will come at you with pointed
Testing the DVD would be a publishing. Back then tech journalists questions/sticks if it breaks.
nightmare, reviewing new distros would were made of stronger stuff. For beginners, a virtual machine is
require us to wipe the machine on which Nowadays things are much more a great way to try Linux. You can run
we installed last issue’s distros, and if we straightforward. If you want to try a VirtualBox for free on Windows or macOS.
wanted to test new software on different new OS, or even if you just want to do If you’re already running Linux you may
distros, we’d probably need yet more something a bit crazy with your current prefer to use Red Hat’s Virtual Machine
hardware and yet more time. Yet if you one, all you need do is fire up a virtual Manager, which uses QEMU (an emulator)
rewind back to the late Mesolithic LXF machine, and within minutes you have a and KVM (Linux’s powerhouse of a
age – the early 2000s – these were device that for all intents and purposes hypervisor) behind the scenes. Whatever
exactly the kind of hardware logistics behaves like a regular computer. Only your tastes, we’ve got something for you.
Virtualisation 101
Nobody can tell you what virtualisation is – you have to
experience it for yourself. Or you could just read this…
V
We use only virtual
penguins to test
irtualisation has been around since the 1960s.
our disc now –
Of course, computing then was all done on
mainframes and OSes were a lot different, ever since that
so it’s harder for youngsters to get their trendy heads ugly uprising six
around how this worked. The idea then is essentially the years ago.
same as it is now: compute resources were to be
shared (fairly) amongst users in such a way that
concurrently running jobs would not interfere with one
another. Operating system kernels used to be called
‘supervisors’, and each separate job was more or less
its own entity (today we expect our OSes to multitask
programs as a matter of course, but this wasn’t the
case back then). So the underlying OS which governed
these jobs was referred to as a hypervisor, a term still shipped with these hardware virtualisation extensions.
used today. And they have evolved to enable not only faster
Modern hypervisors such as Xen and Microsoft’s virtualisation, but deeper too, with hardware interrupts,
Hyper-V are thin OSes that run on bare metal with the memory management units (MMUs) and onboard
sole purpose of hosting guest VMs strictly and securely, graphics – via Intel’s iGVT-g on Iris Pro graphics –
much like the time-sharing schema of the mainframe now being virtualisable.
days. These are called Type-1 hypervisors, which It’s even possible to blur the boundaries between
correctly implies the existence of Type-2 hypervisors. physical and virtual; actual hardware can be handed off
The latter, exemplified by VirtualBox, Parallels and to a virtual machine and used seamlessly. A popular
QEMU run on a regular operating system and are example of this is running a Windows 10 VM with a
probably more familiar to everyday users. Things are second (usually high spec) graphics card. This trick,
not binary, though; the Linux’s KVM (Kernel-based known as PCIe passthrough, enables Linux users to
Virtual Machine) doesn’t fit nicely into either category, play AAA games at very close to native speeds. PCIe
since it turns the kernel into something like a Type-1 and the general area of Virtual Function I/O (VFIO)
hypervisor, but the host OS still runs as intended. require different CPU extensions, called VT-d on Intel
In 2006, Intel and AMD started shipping processors and AMD-Vi on AMD. Some of Intel’s overclocker-
with, respectively, VT-x and AMD-V extensions. These focused chips (the ones ending in K) lack these.
enabled operating systems to run virtualised without One new project worth keeping an eye on is Looking
modification, in contrast to previous approaches such Glass (https://looking-glass.hostfission.com) which
as paravirtualisation (which modified the OS to run in a aims to streamline passthrough setup for Windows
guest environment) or complex software workarounds. VMs. In particular, the need for a separate monitor
Since then, virtually (ahem) all desktop CPUs have and keyboard is obviated.
VirtualBox beginnings
Learn the basics of virtualisation no matter which OS you’re
running, or which OS you want to try.
O
ne of the easiest ways to fire up your first
virtual machine is with Oracle’s VirtualBox.
This is free (GPL2-licensed) software available
for Windows, macOS and Linux. Mac and Windows
users should download it from https://virtualbox.org,
and Linux users should install it with:
$ sudo apt install virtualbox
It looks and works the same for all platforms, so
no matter what your OS (or which OS you want to
virtualise), you can make use of our handy six-step
guide opposite. If you’re stuck for a distro to try, why
not copy the Solus or OpenMandriva ISO files off the
LXFDVD? If you were to tell VirtualBox to use it straight
from the disc things would be awfully slow. Setting up a bridge network (so your guest appears as a separate host
If you find yourself stuck in fullscreen mode, use on your LAN) is easy, and so are all these other network configs.
Right Ctrl+F to return to windowed mode. If you find
yourself with a mouse cursor trapped in the guest the optical disc) and tick the box. It’s possible to change
window, just press the Right Ctrl key to escape. Most the type of controller presented to the VM from here,
Linux distributions today support seamless mouse but generally speaking the defaults (PIIX4 for the IDE
integration, so the latter shouldn’t happen to you – controller the optical drive is connected to, and AHCI
taking the mouse past the edge of the screen in the for the SATA controller) are better supported.
guest should relinquish control to the host. VirtualBox 6.1, released in January, introduced
VirtualBox tweaks
experimental support for virtio storage, which means
VirtualBox doesn’t have to waste CPU cycles emulating
It’s straightforward to fire up a VM, but let’s look at a disk controller. This should work well for Linux
some of the options VirtualBox provides to make your distributions at least, but will require a driver to be
virtual life as smooth as your real one. First of all, if you added to a Windows VM. We’ll discuss the ins and outs
store your virtual drive image on a traditional spinning- of virtio over the page when we meet QEMU.
rust hard disk, I/O-heavy workloads will be very slow The most common thing people want to do is speed
and you’ll probably notice a lot of disk activity while up graphics performance. The new default graphics
they’re underway. For such tasks, and indeed if you’re controller in VirtualBox (VMSVGA, actually borrowed
brave enough to run a Windows VM, your life will be from VMware) should work well enough for Linux
markedly better if you store the image on an SSD. guests. If you have older VirtualBox VMs lying around
If you don’t have one, or don’t have space on one, you may want to update them to use the new controller.
you might be able to eke out some extra performance Virtual Windows may work better with the VBoxSVGA
by enabling the host I/O cache for the VM. Select your driver. There shouldn’t be any reason to use the old
VM from the column on the left, hit the Settings button VBoxVGA driver these days, unless you’re running or
on the toolbar, select the disk image (the VDI file, not trying to virtualise very old distos.
You’ll find the Graphics Controller options in the
Display section of the VM’s settings dialogue. The
default Video Memory allocation is only 16MB, which
is fine for testing out a Linux distro at sub-1080p
resolutions, but for more serious work you’ll want
to boost this. The aforementioned virtual SVGA
devices emulate enough of a graphics card to expose
basic OpenGL primitives and some 2D acceleration
capabilities – but you’ll have probably noticed there’s
a box for 3D Acceleration too.
If you use this, all the OpenGL capabilities of the
You’ll also find
VirtualBox in the
host will be available on the guest. The name is a little
Ubuntu Software
confusing, because lots of desktop effects which look
Centre. It’s not
very two-dimensional rely on 3D extensions. Linux Mint
really proprietary, under VirtualBox, for example, will tell you it’s using
don’t worry. software rendering until the 3D box is ticked.
1 Get ready
Download VirtualBox, as described opposite, and fire it up. 2 Create your VM
Hit the New button in VirtualBox’s toolbar. We’ll use the
By default new VMs are stored in your home directory, so make Solus ISO which we copied from the LXFDVD – feel free to use any
sure there’s some room to play here – or else be aware that you’ll distro you like, though. Give your VM a name, set the Machine
need to manually specify a different location. A desktop Linux Type to Linux and the Version to whatever is appropriate. The
install that starts at 5GB will very easily grow to 10GB. 32-/64-bit selection is important here.
3 Allocate memory
How much memory you allocate to your VM depends on 4 Sort out storage
We’ll need some storage for our VM. Modern Linux distros
how you want to use it and how much RAM the host machine has. tend to be fussy about installing to anywhere with less than 10GB
Modern desktops and applications such as web browsers will of space, and if you can spare it then allocating more is a wise
happily chew through 2GB, whereas booting to the console idea. Choose ‘Create a virtual hard disk now’ (unless you just
requires very little. If you allocate too much memory to your want to run a Live disc) to begin the process.
VM, host performance will suffer.
5 Tweak storage
Choose the default VDI storage. These files can be fixed or 6 Lift off!
You’ll need an ISO image to boot your machine. Go to
dynamically sized, up to a given maximum. Dynamic storage is Settings > Storage and select the optical drive, click the tiny disc
obviously much more flexible, and these days you’re unlikely to drop-down on the right and select Choose Virtual Optical Disk File
notice the increased I/O overhead, so go with that. You can (sic). Locate your ISO, click OK, then hit the green Start arrow.
specify the file’s location with the tiny icon to the right. Chocks away!
V
irtualBox is all well and good, but there are because powerful servers could house multiple VMs –
other options. Some people don’t like using saving resources, increasing portability and generally
Oracle software, and in the past the guest making merry. Workstation Pro is VMware’s commercial
extensions (which enabled graphics acceleration and offering, and of course there are Hyper-V, Xen and other
shared clipboards) were not freely licensed, meaning proprietary tools that have revolutionised infrastructure
they couldn’t be bundled by distros and had to be management. One consequence of this is the rise of
installed separately. cheap VPS (virtual private servers) from the likes of
This is no longer the case and most distros now Digital Ocean and OVH. These are a great way to see
ship with the required host and guest modules – what remote server administration is all about.
but occasionally, host and guest modules become The Linux way of doing virtualisation is a tale of two
mismatched (if a guest distro includes older modules cities: KVM and QEMU. KVM is the hypervisor part and
than the host is running, for example) and they must enables the kernel to access the virtualisation functions
be installed manually. These can be installed – on all of the CPU; QEMU is the userspace utility that talks to
platforms – in a running VM by selecting Install Guest this and emulates virtual hardware. KVM has been
Additions from the Devices menu. A virtual CD will be ported to many architectures and is today running on
inserted and you’ll find a Linux script to build and install Arm, IBM s/390 mainframes and MIPS. QEMU is an
the modules, as well as Windows and Mac executables. emulator, and we’ve already talked about emulation and
Anyway, we digress; we were supposed to be talking virtualisation being different animals – but we’ll see later
about VirtualBox alternatives, not providing helpful that the amount of actual emulating QEMU has to do
advice. So, there’s the free (but not open source) can be reduced to almost zero.
VMware Workstation Player, which is fine for running a QEMU is a command-line affair, but as Linux
single machine on a desktop and from a user’s point of aficionados or budding CLI warriors we won’t let that get
view works much the same as VirtualBox. However, the in our way. Installing QEMU is just a matter of:
virtualisation revolution happened not because people $ sudo apt install qemu
could run clunky desktop operating systems windowed To deploy our first VM we first need to create a file
in another clunky desktop operating system, but that can be used to back the virtual storage. QEMU
VIRTIO
supports a number of formats for this; a raw image is
the fastest, but the modern qcow2 format is not slow,
is more resilient to disk or power failures, and supports
snapshotting. So let’s use it to create a 10GB image:
We mentioned that QEMU’s job in the QEMU/KVM duality is to $ qemu-img create -f qcow2 lxf.qcow2 10G
emulate hardware, and we’ve alluded to the fact that this is a The qemu-img command can also convert, resize
relatively slow process. So rather than emulate such things, it makes and do all kinds of other things with disk images, so
sense to tell the virtualised OS that it is thus, and that the hardware check the man pages for more. As with VirtualBox, we
it can see is not real. In this way we modify the OS (or in this case its need some sort of installation medium to begin. This is
device drivers) and have the hypervisor present abstract an opportunity to grab an ISO file for a distro you’d
paravirtualised hardware, which both sides conspire to handle otherwise be scared to try on bare metal (go on, try
nicely. The framework KVM uses for this sourcery is called virtio,
and its drivers enable paravirtualisation of block devices, video
cards, network devices and the interestingly named balloon device
(used for memory management). The virtio drivers need to be
installed on the guest, but have been part of the Linux kernel for
a long time – so for Linux guests no action is required:
$ qemu-system-x86_64 -drive file=lxf.
qcow2,format=qcow2,if=virtio -vga virtio -net nic,model=virtio -m
1G -enable-kvm
If, in the guest, you run
$ lspci
you’ll see your VM now has a virtio-powered video, Ethernet and
SCSI disk. In order to take advantage of the improved imaginary
video device you’ll need to install a desktop environment, which
you can do with:
$ sudo apt install ubuntu-gnome-desktop QEMU doesn’t look like much at first, but it’s incredibly powerful and
enables you to perform destructive actions with no risk of reprisal.
Y
ou might gather by now that QEMU virtual disks or create pools), networking (no messing
incantations can get quite unwieldy once you around with handcrafting network bridges) and,
start avoiding defaults – so it’s common for naturally, can create, start and stop VMs. To some
people to store these in a script, or use some kind of extent it also abstracts the user out of the business of
frontend for QEMU. The modern way to wrangle this is running the VMs, and this is generally good.
with Red Hat’s Libvirt. This isn’t a frontend – we’ll meet Suppose we were running a VM in our favourite
Virtual Machine Manager soon, which is – but rather an desktop environment and something crashed, forcing
API that provides access to virtualisation functions us to log out. On returning to that VM we’d probably
through its daemon, libvirtd. Libvirt supports a number find it in a sorry state, since the process running it
of hypervisors, including KVM and VirtualBox. (QEMU or VirtualBox) would have been wiped out.
This might seem, to the layman, like adding another With Libvirt, VMs – known slightly confusingly as
layer of complication on top of something that’s ‘domains’ – are run by a separate user, so if a local
complicated enough. That’s a reasonable point; if you user’s desktop crashes while they’re playing with a
just want to set up a VM to try the occasional Linux VM, it stays running in the background and can be
distro, it’s easy to do with VirtualBox or any other reconnected to. In this way it works much like
friendly frontend. Where Libvirt comes into its own is connecting to a remote machine. In fact that’s another
with management. It can take care of storage (resize thing Libvirt does: enable VMs to be run from remote
Installing Libvirt
2018 with Spectre and Meltdown shows no sign of ceasing to spew
its vulnerability worms everywhere, with new speculative execution
vulnerabilities (CacheOut, Zombieload v2, L1DES and VRS) made We can install all the required bits in Ubuntu by
public this year. These enable an attacker – albeit by pretty complex installing the Virtual Machine Manager (aka virt-
means – to access memory that they shouldn’t be accessing. One of manager) frontend from the terminal with:
the major concerns is that on a host running multiple VMs, such $ sudo apt install virt-manager
attacks could break the isolation, allowing one VM to read the This will also install QEMU if you skipped the
contents of another’s memory – even memory protected by Intel’s previous pages (shame on you), and enable the
secure enclave (SGX) tech. required services. It will also add your user to the libvirt
Cloud giants host billions of VMs on shared machines, some of group, but you’ll need to log out and back in before you
which house sensitive data, so this is a grave concern. VMs and the can connect to said services.
hosts themselves need to have fixes applied and be rebooted in Start Virtual Machine Manager from the Applications
order to be safe, and if you rent a VPS your provider ought to have menu, and it should automatically connect to Libvirt;
been in touch with you to tell you this. If it hasn’t, you might want to you’ll get a permissions error if you didn’t obey the
consider changing. In the meantime, the RIDL Test Suite available at previous sentence. Click the ‘Create new virtual
https://mdsattacks.com will tell you which flavours your VM is machine’ button at the top left to start the wizard.
vulnerable to. Select ‘Local install media’, ‘Use ISO image’, ‘Browse’,
One project that caught our ‘Browse local’ (yes, it’s a bit long-winded) and choose
eye as we scrambled to get this an ISO file. We went with the desktop version of an
feature in on time was Bareflank, Ubuntu 20.04 daily build this time.
a hypervisor SDK. This project is Virt-manager will try to guess which OS the medium
funded by Assured Information is going to install, based on the name. This often
Security and aims to enable doesn’t work, so clear the ‘Automatically detect OS’
rapid prototyping of new box, and select Linux and Ubuntu 18.04; it doesn’t have
hypervisors. Bareflank to exactly match the guest OS, which is good as not
Hypervisor SDK 2.0, including everything is listed. Next, allocate some memory and
the reference Boxy hypervisor, CPUs to your VM; for a modern desktop distro,
was released in February. We’d anything less than two cores and 2GB of memory is
encourage you to investigate probably going to be painful experience.
Keeping track of so many CPU further at https://github.com/ Click Forward and choose the ‘Create a disk image’
vulnerabilities is a full time occupation. bareflank/hypervisor. option, remembering that virtual machines’ disks fill up
as quickly as real ones. By default, images are stored in
Virtual Windows
We haven’t covered virtualising Windows here, but it is the rest can be added later. You’ll want to give your VM
absolutely possible. You can download an ISO of lots of memory; running Windows 10 on less than 4GB
Windows 10, entirely legally, from Microsoft’s site at is no fun at all. There’s no Virgl3D windows driver, but
http://bit.ly/lxf261windows. Note that you’ll still there is an alternative. The QXL video card is a partially
need to buy a valid Windows key if you want to officially paravirtualised video device which should offer better
activate the installation once it’s all set up to your liking. performance (and higher resolutions) than the standard
VGA driver. You can use it in QEMU with -vga qxl , or
you’ll find it in the Video section of virt-manager. You’ll
find a Windows driver for it on Red Hat’s ISO in the
qxldod/ directory.
For the absolute best video performance, though,
you’ll want to look into PCIe passthrough. With this
setup, we install a dedicated GPU just for the Windows
VM, and have the kernel isolate it for us at boot. We
covered this in our last virtualisation extravaganza
back in LXF244. One of the greatest resources on this
topic is the Arch Wiki page at http://bit.ly/
lxf261passthrough. If you get this working, we’d love
to hear from you and your benchmarks. Virtualising old
versions of Windows is possible too, with the correct
ISO, which is a reasonable way to hold on to your old
Libvirt uses XML to define virtual machinery, and if you need fine- apps – perhaps from your now-retired Windows 7 install
grained control you can edit it directly in virt-manager. – until you find suitable Linux alternatives.
E
co-founders and the chief
architect at Zededa, pioneers
in edge virtualisation and
creators of Project EVE – the Edge
Virtualization Engine.
For anyone that doesn’t buy into new
computing paradigms, Erik claims “the
edge is already here, it’s just not connected
yet.” And he would know. He also sits on
the technical advisory committee of the
Linux Foundation’s LF Edge umbrella
organisation (https://lfedge.org), which
brings together seven (and counting)
projects, including Project EVE (and
EdgeX Foundries, which we heard about
in LXF257). LF Edge has the lofty goal
of establishing an open, interoperable
framework for edge computing.
Erik was brave enough to join Jonni
Bidwell among the clouds on the roof
of the Lyon convention centre – skirting attack surface. This means the hardware might not have the same network security
dangerously close to all kinds of appalling is no longer the obstacle, even though with firewalls and such. Or it could be that
edge/cloud punnery, but escaping today most of what’s deployed is for Intel these things are so distributed that you
with only a tasteful nod to W. Somerset processors, typically lower powered, don’t ever want to go there for software
Maugham’s lukewarm classic. passively cooled things. maintenance because it’s too far away.
I talked to people who were deploying You’d have to get on a plane and drive for a
Linux Format: What sort of things are you or thinking about deploying things, about couple of hours just to service one box. So
working on at Zededa? what they saw as their pain points and there’s other things that are unique about
Erik Nordmark: What I care about is driving what was missing. One of those was data, the edge in terms of the IoT aspect of data.
edge technology, but there’s scary stuff IoT data, which we don’t deal with. What Some of the things that Jason
that goes along with that. We’ve seen we deal with is how to operate and scale (Shepherd, see our interview in LXF257)
many home products that ship with things. So let’s say I deploy an application has been working on concern data
default usernames and passwords. How on 10 devices – it doesn’t matter if those provenance, right, and how to transform
can we advance the state of the art [tech] are MQTT relays or AI devices with TPUs, that data because there’s all these
so that people can deploy these things and the application is deployed and everything different protocols and different schema in
still be able to sleep at night? We want the works. Now what happens when we want terms of how that data is set up. The way
people who have the domain expertise – to scale to 1,000, or 10,000 devices? you describe a light fixture could be very
retail, energy, healthcare, whatever – they different because some organisations have
worry about their applications, they don’t LXF: For the benefit of our readers, and defined a schema that talks about colour
worry about how to make Linux secure. indeed me, could you explain a little bit temperature, and others describe it in
When we set up Zededa [in 2016] we about where this edge computing trend terms of red, green and blue components.
found you could buy a $7 Orange Pi board came from and why it is important? So there are many problems that are
with 256MB of RAM and boot the Xen EN: Edge computing is something that’s coming from IoT and the apps that go with
hypervisor on that. So now we can build touted as being quite new, but I would that. LF Edge as an organisation is bringing
something that’s quite secure, in terms of argue it’s actually been here for a long in projects that are covering different
having a type-1 hypervisor with a smaller time. It’s just it wasn’t connected until aspects of this. So that’s a key thing, it’s
now. If you walk into a factory today every not just taking what we’ve already done
machine there has an industrial PC inside in a central way and distributing it. We’re
it, with an operator console. So people trying to address all these things that are
look at that, see the data that’s there unique to the edge.
and deploy new applications. That’s an
example of taking something that exists in LXF: Which projects are involved in LF
one place and deploying it elsewhere, but Edge at the moment?
the edge is a lot broader because people Right now there are seven projects,
talk about it in terms of anything that’s not and more are coming in. The original
in the cloud or the data centre. And that’s five projects were: Akraino – they’re
a very broad definition. looking to do integration work from a
One of the things we’re looking at in LF telco background, EdgeX Foundry, which
Edge is, “What is actually distinguishing Jason told you about; Project EVE (Edge
in terms of the edge?” It’s not just that Virtualization Engine) – that’s what
it’s a different size data centre that has I’ve been working on, we’re looking at
similar characteristics. It’s deployed in a providing a baseline for edge virtualisation;
distributed way, where maybe you don’t there’s the Open Glossary project, which
have the same physical security, or you is trying to harmonise terminology across
the space; and the Home Edge project, your solution. This is not how things evolve streaming databases that have grown
which Samsung contributed to. quickly because now you say, “I have that out of dealing with SCADA systems and
Since then we’ve had two more, one thing, it works over Ethernet, but I want to whatnot. We want to make that stuff move
that’s called Fledge, which is similar to run it over LTE” and then you have to start towards this horizontal layering model.
EdgeX but more focused on industrial IoT again from scratch because the system is
and the way people have built systems in so integrated. LXF: I talked to Dan Cauchy about Linux
that space. And finally there’s this one that Instead of doing it how it’s been done in in cars earlier, and he told me a bit
looks like it’s hard to pronounce, Baetyl, the data centre and in normal computing, about why virtualisation is important
but it’s just ‘beetle’. We’re looking at how we’re dealing with someone that provides there. In an amazing display of thematic
to leverage things when it makes sense fairly standard hardware, an operating consistency I’m going to write a cover
to build a solution by combining some of system, a hypervisor, and have it layered feature on virtualisation too. So in
these things. There’s some overlap but that way so that things can evolve much keeping with that, why is virtualisation
there is also a certain amount of layering faster. That’s what’s fundamentally driving important for edge computing?
and independence. this – people want to deploy applications EN: There are two aspects of virtualisation.
that can act on this data. One is the horizontal layer – you don’t
LXF: What is the overarching goal of the I have some slides here so can say want the application to be compiled in
LF Edge division? Is it to standardise the a little bit more about some of the with the LTE modem device driver, so
ecosystem with open source tooling and organisations involved. Home Edge is you give it a virtual Ethernet device. Then
avoid the perils of fragmentation? pretty early in its lifecycle, but that’s you can run that same application in the
EN: Yes, it’s clear that we have new looking at issues that are unique to the data centre, and it will run the same over
needs at the edge and there’s a need home and consumer products, particularly Wi-Fi, LTE, Ethernet or something else –
for a new edge stack. It can be built with privacy. It’s not something that we’ve had the application isn’t affected. That’s the
components that we already know about to worry about hitherto in Project Eve. If I hardware decoupling side of it.
– hypervisors and networks and whatever run a railroad and buy a locomotive from The other aspect is being able to build
– but we still need to put it together. Being General Electric, well I’d probably lease these systems with security that’s fit for
able to leverage things and figure out how one, whatever, I’m still perfectly okay from the edge where you don’t have the same
to do this will mean customers can build or a privacy perspective that GE knows the physical or network security you’d expect
deploy applications without having to do location of that locomotive and how it’s in a data centre. In this setting it makes
all this work themselves. doing. If I buy a mobile phone though, then sense to separate the applications from
If you look at how things have I might not be okay with the mobile phone the underlying management of things. The
been done traditionally in embedded manufacturer knowing exactly where I am. way this has been done traditionally in
computing, it’s always been about vertical Fledge, as I said, is about the industrial server infrastructure is through baseboard
integration. There’s someone who puts IoT part of the ecosystem, in particular management controllers – basically a
together some hardware, a real-time OS the operational technology where they separate computer that can flash the
(probably Linux), an application, some have different software that I hadn’t heard BIOS and power things on and off. But that
cloud connectivity, and then you have about until two years ago. They use these assumes you have a support network for
that. When you’re sitting out in, say, that
streetlamp over there, you don’t have a
support network, maybe you have a wire,
maybe you have LTE, but you don’t have
two physically distinct interfaces. So being
able to pull data from different channels
into the same piece of software, you want
to have strong isolation between them.
If you look at the deployment lifetimes
for these devices, it’s a lot longer than
in the data centre. Plus in many cases
these are security-critical systems. It’s
not only about IT security issues, it’s
about operational safety issues. If you’re
controlling a robot, for example, and
it gets compromised, then it’s not just
leaking data and credit card numbers, it’s
potentially hurting or killing someone. A
refinery could catch fire because someone
messes with the valves, so how do you
build that system to prevent that?
The best thing we know how to do
is to have relatively fine-grade isolation
between the components in different
applications, between the applications and
the underlying runtime, but also carving
I
installing and using Linux’s open-source cousin FreeBSD…
f you’re reading this magazine, code as the basis for the Darwin project, an
then you have at least a passing OS that became Mac OS X (and now macOS).
interest in free software. Maybe If you’re looking for a desktop system to
it’s limited to Linux, but the install and immediately be productive with,
FOSS community is bigger than that. there’s better options for you (see the
There’s plenty of software projects that run sidebar for some other members of the BSD
on other operating systems, and also a clan). But this article intends to be a learning
variety of open source Un*x clones. exercise to see how this little Unix-y devil
The BSD family of operating system is an stacks up. And FreeBSD offers that learning
important example, representing some of the opportunity by being more hands-on than
first systems truly free from legacy Unix other desktop-oriented systems, whether
code, and can be seen as at least an uncle to Linux or BSD. However, the author did have a
Linux as we know it today. What started as goal – to be able to take this from a fresh
one system, the Berkeley Software install to a “productivity system”, complete
Distribution (BSD) went through a variety of with a GUI interface and accompanying tools.
versions (a book in itself), with different But along the way, we’re aiming to see what’s
projects and vendors. Today’s family of BSD the same, as well as what’s different.
systems include NetBSD, OpenBSD, and And as we in the open source community
TrueOS. Of these, FreeBSD is considered the know, variety is the spice of digital life. So we
most ‘general purpose’ and is arguably the owe it to ourselves to explore this BSD
most popular. Notably, Apple used FreeBSD system and see what’s what.
W
hy use FreeBSD? A better question might be 5 Finally, some quick system configuration, including
“Why not use FreeBSD?” As we’ll see, FreeBSD setting up the root user, network, time zone, date/time,
comes from the same Unix-y roots as Linux, services (SSH is selected by default), security options,
and we can expect our skills to transfer over nicely. Oh, and user account(s).
there will be slight differences for sure, but a shell is a There are sub-steps, and it may seem like we glossed
shell is a shell, and your ls command in FreeBSD will over the installation. But honestly, if you’ve done a Linux
indeed list the contents of your current directory. install you’ll have no troubles. For those of us of a
But there’s always something to be learned from certain age, step 2 might even bring back fond
different ways of doing things, and some of the areas memories of writing sets of Slackware floppy disks.
likely have made things easier. It’s worth noting that pkg delete [package name]
FreeBSD is planning on making direct UEFI booting You can see all the packages you have installed with:
available in a coming release. pkg info
Installing s oftware
Again, if you’re a Linux user who regularly drops
down a quick terminal to search and install software in
FreeBSD offers two ways to get software. The first is the Ubuntu or Fedora, it will take you all of 14 seconds to get
Ports Collection. If you included it during your the hang of this. And installing Ports is just as easy.
Day-to-day usage
installation, poke around the /usr/ports directory.
Alternately, you can opt to install software pre-compiled
as well. Each of these has their own pros and cons. Using FreeBSD on a day-to-day basis is precisely as
Installing the pre-compiled packages is faster and described in the previous section. You’ll find a lot of
potentially easier/less error-prone. However, building things very familiar as you’re navigating around the
software on your machine will better tailor it for your console. And of course, applications operate just the
hardware. The first step is to get the package tool set up same on FreeBSD as they do on Linux. There are only
on your system. Enter pkg in your shell, and if it’s not two areas where a little adjustment will be required. The
already present you’ll be prompted to download it. Your first is system configuration. While the /etc/ directory
first step should be to update the package database: exists and does indeed contain many configuration files,
pkg update there’s a useful one that’s unique to FreeBSD. As you
Then, search for your desired program with: work with FreeBSD you’ll see references to making
pkg search [your desired term] entries in the rc.conf file. This contains a smattering of
To install something, use this: important system-level settings. If you open it up, you’ll
pkg install [package name] see some of the things you set during install (such as
You’ll see the progress of the install in the terminal, network config). It’s very short, but one would expect it
including the calculation of dependencies, the download to grow longer with your personal configuration.
of all that software and the actual installation. If you The bsdconfig utility can help with some of these
need to backtrack, it’s just as simple: tasks, and it’s as close to a control panel as you’ll get
without installing some sort of desktop that contains
one. It’s a menu-driven terminal program not unlike the
installer, where you’ll use arrow keys and Tab to jump
around the dialogue. It won’t be too much of an
adjustment, as even some modern package systems
The installer’s will use these types of dialogues when configuring
“distributions” are individual packages.
package sets. You
only have a choice
You should also expect to do a bit more
of adding up to
troubleshooting on FreeBSD. To clarify, this isn’t
seven of these
because things in FreeBSD are broken, but rather there
sets as part of are things that FreeBSD does differently by design that
the installation. a Linux user will have to learn through research. A case
Sometimes
installing binary
Manually adding an .xinitrc file with the following finally
let startx bring up a usable LXQt desktop. packages is the
Again, this isn’t to say what occurred was wrong. quickest and
easiest way to get
the software you
But based on past Linux experience, the author was
want. And like
expecting the installation to include all dependencies
and the launch script to start everything up Linux package
“automagically”. But in FreeBSD, you need the managers, it
is dependency
aware.
wherewithal to install X.org yourself, launch it in the
“standard” way, and make sure your environment it
set to trigger LXQt when you do.
The designation for devices are similarly different.
In FreeBSD, you reference the first internal drive with Stated another way, think of modern Linux
/dev/ada0/. Partitions are alternately referred to as distributions as an office suite with easy-to-use buttons
slices, so the second partition may be /dev/ada0s1/ or that sometimes don’t get you precisely the result you
/dev/ada0p1/ depending on where you’re looking. want. FreeBSD, on the other hand, is LaTeX. You can get
Likewise, the default CD-ROM is represented by /dev/ exactly the end product you want, you just also need to
cd0/. Is using “ada” for the hard drive “wrong?” Who know exactly how to go about it.
FreeBSD is DIY
This short journey into the world of FreeBSD tracked
with what you’ll find a lot in open source. It’s easy to
This speaks to the philosophy of BSD, which is to get started and achieve some measure of success and
assemble the system you want with the software you productivity. But as you start to dig into it, you quickly
want. In the course of writing this article the author learn how far you still have to go.
frequented the FreeBSD message boards (https:// Mentioning a couple of key take-aways at this point is
forums.freebsd.org), on one occasion looking for hints prudent if you’re thinking of giving FreeBSD a spin:
on a GUI package manager. Firstly, the FreeBSD Measure twice, cut once, aka do your research.
community is very active on forums, and give extremely The FreeBSD Handbook (www.freebsd.org/doc/
accurate answers. But the answer to questions like handbook) is your best friend.
“Where’s the GUI package manager for FreeBSD” was Plan to do more things in the terminal than with Linux.
a resounding, “We don’t have one, we like pkg or port. FreeBSD often defaults to MVP (minimum viable
Feel free to try some until you find one you like though.” product). You may need to manually add things that
This wasn’t intended to be dismissive, but rather to just “came with” Linux.
encourage the poster to build his/her platform to taste. All that said, for Linux users a short holiday in
Yet the FreeBSD developers have taken pains to FreeBSD is a great learning experience. And when it
make the assembly easy where it makes sense. A quick comes to the open source world, isn’t that the point?
The tweaks
sound great!
We love a good symposium, so sign up today…
IMAGE CREDITS: Raspberry Pi Foundation
Combian 64
Les Pounder goes back to the 1980s to remember a time when he used
to type code listings from magazines!
IN BRIEF
T
he 1980s saw a massive number of home
computers released across the world, and in the
A Raspberry Pi UK children would have their usual playground
distribution gangs based upon football teams, toys and home
designed for computers. The ‘Commodore Kids’ vs ‘The Speccies’ was
retro computer common, and it highlighted how popular these machines
enthusiasts to were. They were the Raspberry Pis of the age, and their
get hands-on BASIC language was our Python. So when we got the
with the classic chance to try out a Raspbian distro designed to boot into
machines of the a working Commodore 64, we had to have a go. This Commodore 64 was the beginning of a lifetime of learning,
late 1970s and Combian 64 is a stripped down version of Raspbian and now we can emulate it on a £35 computer!
1980s. It’s able that will boot directly into the VICE emulator, giving us
to emulate a the impression that our Pi is really a Commodore From the main menu we chose to exit and then were
diverse range machine. The most recent version is a bit old – it came presented with a further Combian 64 menu, but this time
of Commodore out in 2018 and only supports up to the Pi 3B+ – but it was for configuration of the system. We found that we
machines, do we really need the power of a Pi 4 to just emulate an could switch machines and emulate a Commodore VIC-
external old Commodore 64? 20, Plus/4, PET and many more. And we could also set up
peripherals such We tested Combian 64 on a Raspberry Pi 3B+ and the a USB stick onto which we can move games from our
as disk drives original Pi Zero and found the experience to be enjoyable computer to the Pi.
and cartridges, on both. So if you have a spare Pi Zero doing nothing, then Another surprise was the included StrikeTerm BBS
and enables us this could be the distro to bring it back to life. software, enabling advanced users to connect their virtual
to use them as if Combian 64 is made up of a series of applications Commodore to a live Bulletin Board System if they have
they were real designed to enable an easy emulation experience. On first the correct equipment, such as a real modem or a device
devices. And we boot we saw the famous Commodore 64 BASIC V2 to convert the AT commands into TCP/IP.
can play games! screen and were instantly transported back to our youth, Combian 64 is very slick – we just put the distro on a
remembering a series of BASIC programs to scroll text micro SD card and we had a running system. It also
and change the colour of the screen. Once nostalgia had provides the best experience for enthusiasts and
left us we delved into the VICE menu and found that we newcomers. We can load our games with ease, and then
could load tapes and floppy images stored on the SD run them from the BASIC screen using the original
card. So we loaded a few games and tested a little more commands (C= and RUN/STOP to start a tape game
and found that all was good. Well, except for Ghostbusters springs to mind). It is as if we are sat back in the 1980s
– the sprites were rather messed up. Controlling our typing in code from a magazine.
Uridium can be
games was possible by configuring a USB joystick and our The lack of Pi 4 compatibility does not hold Combian
brought back to keyboard, but some games did behave a little erratically. 64 back. A Pi Zero can run most games with ease, but an
life with the All configurations can be saved to the SD card to old Pi 2 or 3 would be ideal for this use and is much
Combian 64. customise your experience. cheaper than buying one of the two mini consoles on offer
at this time.
Have a go and let the memories of the 1980s flood
back, just be careful with the joystick when playing Daley
Thompson’s Decathlon.
VERDICT
DEVELOPER: Carmelo Maiolino
WEB: https://cmaiolino.wordpress.com
PRICE: Free
This fun project offers us the chance to relive or take our first
steps with computers of old. A great way to recycle an old Pi.
Rating 8/10
SCRATCH 3
The default image is some pixel art of the Pi logo. read The temperature is and in the second space drag
With the code complete, test by pressing the joystick another Join block. Then drag the temp variable and
centre, similar to how we can use a PS4/Xbox One place it in the next space, and in the last space type C Is Scratch 3
analogue stick. You should see the Pi logo on the LED For the Else condition, activated if the temperature is missing from the
matrix in a colour of your choosing. below 20°C. Duplicate (right click) the colour and text Programming
menu? Fear
not! Go to the
Still in the same coding area, we’ll now move on to a blocks and place them inside the Else condition – just
Preferences
more complex project. This project will check the remember to change the colour! Press Up on the
menu >
temperature using the onboard temperature sensor of joystick to get live temperature data!
PLASMA MOBILE
Choosing the right
mobile tablet OS
Christian Cawley shows you how to customise your Raspberry Pi tablet
project and choose the right touch-friendly operating system.
1 Ubuntu Touch
On paper, Ubuntu Touch should be the touch OS of choice 2 SailPi (Sailfish OS)
While Sailfish OS has been abandoned, a version was
for Raspberry Pi users. It’s been in development for years, released for the Raspberry Pi 2. Dubbed SailPi, it combines the
continued beyond Canonical’s abandonment thanks to the Sailfish OS with support for the Pi’s GPIO. Sadly, the project
UBports team, and recently added Raspberry Pi support. hasn’t been updated within the past five years, but if you’re
However, builds are unreliable at this stage. While Ubuntu Touch looking for a basic OS with a web browser, this is good enough.
might be the best option for Raspberry Pi tablet projects in You can grab SailPi from the Internet Archive (http://bit.ly/
future, try at your own risk (http://bit.ly/LXF261-ubports). LXF261-sailospi).
3 LuneOS
Most people have forgotten webOS, HP’s mobile OS that 4 Plasma Mobile
A solution to your Raspberry Pi touchscreen project
was abandoned after its phones and tablets line went south. that works very well, Plasma Mobile runs on Raspbian Lite.
These days it’s usually seen as the OS on LG smart TVs. Its Importantly, this lets you retain that important integration
mobile version is known as LuneOS, which retains the look and between the Raspberry Pi and its default operating system.
feel of webOS. Relatively stable, it’s a strong alternative to Plasma Plasma Mobile is the best non-Android touch OS for the
Mobile. Nightly and stable releases can be found at webos-ports. Raspberry Pi. See the boxout overleaf for a look at how to
org (http://bit.ly/LXF261-webos). set up Plasma Mobile on the Raspberry Pi.
then, the solution was almost always a portable Note, however, that the size of the display will impact
Plasma Mobile
smartphone charger. Big, bulky and difficult to keep on battery life. So the larger the display, the larger the
should run
permanently attached the computer, such chargers battery capacity you’ll need for any sort of prolonged
without
are rarely used these days. use, unless you keep the tablet near a plug or attach a
trouble, but it is
The right power solution for a tablet project needs to portable smartphone charger… which of course defeats
primarily a UI for
be compact and capable of delivering power to both the the object.
Raspberry Pi and the touch display. LiPo batteries are In addition, a PowerBoost device from Adafruit is phones. Detailed
almost certainly the best option (although you could go recommended. This should be chosen specifically for instructions on
completely DIY and power your Raspberry Pi tablet with use with the corresponding battery; it’s a device for installing and
AA or AAA batteries) with the 4000mAh battery from managing power and enabling the battery to be troubleshooting
Plasma Mobile
can be found on
The Pi Hut (http://bit.ly/LXF261-lipo) capable of recharged via a USB port, so it’s important to get this
hacker Tinker’s
powering a Raspberry Pi for several hours. This right. Additionally, a power switch can be mounted and
webpage (www.
contrasts with the original project that uses a 1000mAh connected to the PowerBoost, immediately elevating
tinker.sh/kde-
cell. While space might be at a premium with your the Raspberry Pi to the level of an actual tablet, rather
plamo-rpi)
chosen Raspberry Pi chassis, it’s worth exploring all than just an SBC with no power button that is posing
options for maximum uptime. as a tablet.
affordable,
If you’ve spent any time with Raspbian then you’ll know Mobile’s development team introduce support for the
plenty of
that as good as the PIXEL desktop is, it’s almost useless Raspberry Pi.
people don’t
as a tablet user interface UI). If anything, it harks back Specifically, you’ll need Raspbian Lite installed,
yet own one.
to the original Windows tablets in the early 2000s, in flashed to your SD card using Etcher (http://bit.ly/
The affordable which a finger or stylus was required to drag the mouse LXF261-etcher), or via NOOBS setup. You have two
alternative to pointer around. options to enable SSH:
buying a 3D Most operating systems are designed for mouse 1 Open the /boot/ directory on your PC, create a blank
printer is to use and keyboard. While it is quite possible that you’re text file called ssh (no file extension).
a mail-order happy to retain Raspbian as your tablet’s operating 2 Alternatively, you can boot the Pi with a keyboard
printing service.
If you’re using
system, several choices are available that will make attached and open raspi-config, then open Interfaces
designs from
your tablet a lot easier to use. to enable SSH.
Thingiverse,
A Raspberry Pi tablet requires a touch UI that is Whichever you choose, your Raspberry Pi will then
there’s the
simple and straightforward to use, one that makes the be remotely accessible within your local network via
option to Order
best use of the display real estate as possible. There’s your SSH client.
This Printed and
no point having an icon that most fingers can’t hit Next, update the firmware and reboot:
have the build properly, for example. sudo rpi-update
delivered to So, aside from a few menus and desktop icons, sudo reboot
your door. Raspbian (and other standard Raspberry Pi operating Once backed up and running, open config.txt in nano:
systems) is utterly useless as a tablet. The solution, sudo nano /boot/config.txt
therefore, is to create something from scratch, or Scroll through and uncomment the line near the end:
embrace a tablet operating system. The problem with a #dtoverlay=vc4-fkms-v3d
custom solution – perhaps a web UI like Webian Hit Ctrl+X to save and exit, then reboot again. After,
(http://bit.ly/LXF261-webiantouch) – is that you’re confirm dirmngr is installed:
limited to those apps that can be configured to be sudo apt update && sudo apt install -y dirmngr
‘touch friendly’. It’s necessary to edit the sources list to add repos.
While a web interface can easily prioritise mobile sudo nano /etc/apt/sources.list
websites, for example, it’s much tougher to rework the Then ensure that the following repos are listed, adding
user interface of existing Linux apps to be suddenly if necessary:
touch friendly. deb http://raspbian.raspberrypi.org/raspbian/ buster
Our tablet tutorial featured the Android-based main contrib non-free rpi
LineageOS, which works well with a Raspberry Pi 3B. deb http://ftp.debian.org/debian/ buster main contrib
non-free
The Pi display and
However, some alternatives are available, which we
Pi in place, ready explore further in the boxouts. But what if you really deb https://repo.kaidan.im/debpm buster main
to be closed up. want to use Raspbian? Once again, save and exit nano, then add new keys for
the repos:
sudo apt-key adv --keyserver keyserver.ubuntu.com
--recv-keys 8B48AD6246925553 CF319275556E40EC
Follow this with a full Raspbian upgrade:
sudo apt update && sudo apt -y full-upgrade && sudo
apt autoclean && sudo apt -y autoremove
We are almost done here, with just a little bit of
sysadmining required. Create a new user, phablet
and add it to sudoers:
sudo adduser phablet
sudo usermod -aG sudo phablet
Change to user phablet and input the password when
you’re prompted:
su - phablet
Remove user pi:
sudo deluser pi
Finally, you can install the following components for
Plasma Mobile:
sudo apt -y install plasma-phone-components plasma-
phone-settings plasma-settings kwin-wayland
simplelogin dbus-x11
Follow this with a reboot; just a few moments later, the
Raspberry Pi tablet should boast a shiny Plasma Mobile
user interface.
D
eleting files is a fairly straightforward process, In this tutorial, we’ll discuss two command-line
whether you work with a graphical interface or utilities, trash-cli and rm-protection, which you can use
the command line. The former, more often than to add these functionalities to the terminal.
OUR
giving you the option to access deleted files and even
EXPERT
restore them if needed. But this isn’t the case with the Even if your graphical environment of choice doesn’t
popular rm command. Once invoked, rm immediately place an icon for it on the desktop, your Linux distro
flushes the specified files, skipping the trash directory already has a trash directory. The advantage of
Shashank Sharma altogether. To recover a file deleted from the command relegating files to a trash directory is that it gives you
is a trial lawyer in line, you must use dedicated software such as the option to view all the deleted files and even restore
Delhi. He’s pained at PhotoRec, but the process is involved and cumbersome, files, empty the trash, etc. You can access this trash
having to abandon and not the subject of this tutorial. directory by navigating to ~/.local/share/trash. It
the noble quest of If you wish to permanently delete files using the comprises three directories: files, expunged and info.
growing a yeard (a graphical environment, you must press the Shift+Del The info directory keeps a record of the permissions,
hipster beard) after key combo. You’ll be prompted with an alert seeking path and deletion date of each of the files. This is
10 months. confirmation before the selected files or directories are relevant and useful if you decide to restore deleted files
deleted. This is in stark contrast to the command line, or directories. You’ll find all the deleted files and folders
where running the rm command will delete the in the files directory.
specified files without any confirmation prompts. The trash-cli utility adds the ability to move files to
invoking the
using the graphical environment, or from the command delete all the files and directories from trash. The
line using trash-put command can be accessed with <days> command option can be used to only delete
trash-put
the trash-list command.
command, you
files that have been in the trash for longer than a
When you run the restore-trash command without specified number of days. For instance, if you wish to can instead
any additional arguments, the utility will display all delete all the files that were deleted more than a month create a
the files in the /trash directory and ask you to choose ago, you can run the trash-empty 30 command. The shorter alias
the file you wish to restore. The files are all assigned command trash-empty 1 will similarly delete files that for the same.
The trash-cli
utility already
a unique number, and you must enter the one have been in /trash for longer than a day.
as an alias to
The downside to this approach is that you can’t
trash-put, so
simultaneously restore multiple files. You can use the rm-protection utility to provide a
The restore-trash command also keeps track of
you can run
question/answer for important files. The specified file
the trash
your current working directory. If you invoke it from will not be deleted unless you provide the correct
your /home directory, it will list all the files in the /trash answer to the prompted question. This ensures that <filename>
directory. However, if you run it from another directory, files aren’t deleted accidentally. command to
it will only list the files in the /trash that were originally Run the sudo pip install rm-protection command to delete the
stored in that directory: install the utility. It provides two commands – protect specified file.
$ cd ~/Music/ and rm-p . The former is used to specify the files you
$ restore-trash wish to safeguard against accidental deletions, while
No files trashed from current dir (‘/home/linuxlala/ the latter can be used to delete files so protected.
Music’) Remember, you can still delete a protected file using
$ cd ~/Documents/for-gm the rm or the trash-put command.
$ restore-trash So if you decide to employ protect to safeguard
0 2020-02-13 14:02:31 /home/linuxlala/Documents/for- your files, you should consider creating an alias for
gm/memo of appearance.odt rm-p such as:
1 2020-02-13 14:02:34 /home/linuxlala/Documents/for- alias rm=”rm-p”
gm/temp When you protect a file, the question and answer
What file to restore [0..1]: are stored in a plain text file named .filename.
So the second time we run restore-trash , the utility rm-protection. The answers are case-sensitive, so
presents a list of files deleted from the current directory, typing “terminator” as an answer in place of
and asks you to specify the file you wish to restore. “Terminator” will result in an error.
Pruning trash
If you’re comforted with the possibility of restoring
deleted files, we must take a moment to caution you
You can delete files or directories from the /trash with against using the rm-p command. Like rm , it
the trash-rm <pattern> or the trash-rm <filename> bypasses the /trash directory.
LIFEOGRAPH
Create and update
your digital diary
Nick Peers reveals how to create private and encrypted ‘Dear Diary’
moments to last you a lifetime (of embarrassment reading them back).
While you’re at the Preferences screen, you can Navigate Lifeograph’s interface...
change the date format from the default (YYYY-MM-
DD), toggle the formatting toolbar on/off in diary entry 1
view, and show a preference for the dark Gtk+ theme. 2
5
Your first diary entry 4
You’ll see an empty entry for today has been created,
currently blank. You switched from read-only mode
earlier (if not, look for the blue Edit button and click it),
so you can start recording your thoughts. It’s as familiar 3
as using a text editor, with added support for limiting
formatting. Note that your first line will be automatically
formatted as header text. Hit Return and subsequent
lines default to plain body text.
You’ll see that the formatting toolbar reveals support
for bold, italics and strike-through text, as well as
highlighted text and lists in the form of bullet points or a 6
to-do list within the diary entry. You can also set up a list
by starting a line and pressing Tab followed by your
choice of character: asterisk for bullet, plus dash (-),
number and full stop (1., 2. and so on).
There’s support for more sophisticated formatting in Entry title Diary entry window
the form of additional sub-headers, mark-up text and 1 Click the title to rename it, or click its 4 This works like a regular text editor
internal (and external) hyperlinks. Your entries can also associated icon to turn it into a to-do item or with some clever extras, including support for
include images, but only as a thumbnail with a link to make it a Favorite. markdown formatting and hyperlinks.
the original image. The simplest way to do this is to
Sort diary entries Navigation pane
create a new paragraph within your text, then drag the 2 Click the hamburger ( ) button to 5 All diary entries and chapters are listed
file from Files into here, or to copy and paste it from change the sort type (date, size or last changed) here – use the Search tool or Filter to control
another application like Image Viewer. and order (ascending or descending). what’s shown by date, keyword or other.
It’s possible to insert asides in the form of specially
Tags Calendar
formatted comments anywhere in your text (for 3 Assign these to diary entries to help 6 Use this to navigate by date – days with
example, references or explanatory text that doesn’t organise them – click one to edit its properties entries linked to them appear in bold: click once
always need to be displayed). This button reveals the (including theme). to view, double-click to create a new entry.
mark-up text you need to use – simply enclose your
comments within double square brackets [[like so]] and
they’ll automatically be formatted. Use the [[]] button choose a start-up action, which lets you select the diary
on the formatting toolbar to toggle between hiding or entry you want to be displayed when you first open it –
showing comments as required. the latest entry, the last entry you were viewing, or a Lifeograph
specific entry. Beneath this you’ll also see a Chapters supports simple
No more spilling mestakes drop-down menu, which lets you divide your diary into to-do lists
Lifeograph has a built-in spellchecker spanning multiple specific segments – more on that shortly. within diary
languages. It’s disabled by default, but you can manually To return to your previous diary entry, click the back entries. Use
apply it to the current diary entry by right-clicking and button in the top left-hand corner or click its entry in the the List button
choosing Spell Checking followed by your chosen right-hand pane. While you’re there, you can change the to set one up.
You’ll see four
language. Any misspelled words are then highlighted in current diary entry’s date by clicking on it at the top of
box options:
the usual way – with a red squiggle beneath them. Just the main window – enter the new date using the same
to-do, in
right-click the word to reveal suggested alternatives. format as the current one (YYYY.MM.DD by default). progress, done
If you’d like to apply spellchecking to the entire diary, and cancelled.
switch to its properties screen (click the diary filename It’s tag-tastic Once this list is
in the navigation pane if you’ve forgotten how). From There are several ways in which you can introduce in place, update
here you can set your choice of spellchecker and layers of organisation to your diary to make content each box simply
quicker to find. One is to favourite individual posts – by clicking it
click the icon to the left of its title and you’ll see a heart once to cycle
icon. Click this and you’ll see a heart appear both over between the
available
its icon and next to its entry in the navigation pane.
options screen.
Another easy and visible way is to add tags to posts.
You’ll see the ‘Add tag’ button in the bottom of the
screen. Click this, add your first keyword and click
Create Tag. Not only is the tag added to this diary entry,
but it’ll appear in the Tags list on the left-hand side of
the Lifeograph window. Going forward you can simply
drag tags from here into the main diary entry pane to
add them to the post.
Tags come in two principal types: Boolean, basic keyword-based tags, Click a tag in the left-hand pane and its properties
and parametric, for compiling statistics. will pop up. This works in a similar way to other
another hidden
a specific category – yet another layer of organisation –
file with a
and also change its type and unit.
~previousversion
file extension.
Crying over football tags
This is a backup This is where things get interesting: the default type of
version that tag is Boolean, which is perfect for simple keywords, but
contains the Lifeograph also supports parametric tags, which enable
diary’s content you to add numeric values to tags on an entry-specific
prior to the last
editing session
basis. There are two types of parametric tag you can
– if you wanted
create: cumulative (perfect for totting up your football
Organise related diary entries into chapters to help you organise them
to roll back to
team’s pathetic points tally over a season) or average
more efficiently. Three types – date, numbered or free – are available.
this version,
(for monitoring weight over an extended period).
the procedure
When creating the tag for the first time, simply enter
TAGNAME = <VALUE> and hit Enter. The value should
is the same as
growth in cumulative values over time, or changing
for the ~LOCK~ be unitless for now – supported units are kilometres, averages, depending on the tag type.
file, except this miles, kilograms, pounds, litres, Celsius/centigrade and The graph tracks figures on a monthly basis by
time you want Fahrenheit. To assign a unit to the tag, click the Type & default, but you can change this to yearly by clicking the
to rename the Unit drop-down menu – you can switch between drop-down menu next to Graph. An Underlay Previous
~previousversion
with a .diary
cumulative and average from here – and then click the Year box can be ticked to compare this year with the
extension
Unitless drop-down menu to specify your unit. Return to previous one; also look for a zoom slider with an
instead.
the diary entry and you’ll see that the unit is now accompanying horizontal scrollbar for tracking data
displayed next to the tag. over an extended period.
Search and filter to the title and choosing Print. You can also export all or
Lifeograph features a powerful search tool that can part of your diary as a Lifeograph diary file or plain text.
quickly find content through simple keyword searches, To do this, set up your filter to select only those Lifeograph
but it can also be used as a search and replace tool. entries you want to export, then click the diary filename supports
another level
of chapter
After typing your search term(s) you’ll see the in the navigation pane. Click the diary button at the top
organisation
navigation pane update to show only those with entries of the screen and you’ll see an Export option. Enter your
in the form
containing your keywords; you’ll also see a pop-up diary’s password if necessary, then choose to export all
of categories,
window appear beneath the Search box with options for entries or only the current filtered ones followed by your
which work in
moving backwards and forwards between matches, as desired format, and click Export. If you export in plain
well as replacing the text – either the current selection text, all markdown formatting marks are preserved. relation with
or all the text in your document. You may also wish to access – and update – your date chapters
You’ll also see a filter button to the left of the search diary on different machines. Lifeograph offers desktop to let you
box. This serves two main purposes; performing more apps for Linux and Windows, plus an Android app that create multiple
advanced searches, plus limiting various operations to mirrors the desktop version effectively, allowing you to date chapters
for the same
day, one per
the filtered selection only, such as exporting or printing read (and update) your thoughts while on the road. One
category. They
part of your diary. Click the button and you’ll see several way to do this is to keep your diary file in a shared
2 3
Add extra headings Markup-style formatting Add links
1 We’ve seen how the first line on any Insert formatting via the formatting You can embed all kinds of links:
diary entry is formatted as a heading by toolbar, or use the following shortcuts: web URLs, emails, diary entries and other
default – other lines revert to body text. underscore (italics); asterisk (bold); hash files. Type a full web address or mailto: link
Lifeograph also supports two further sub- (highlighted); and equals (strike-through). and it will automatically convert into a
header styles. The first level can be Remember to use these before and after hyperlink; drag a diary entry from the
invoked for the current line by starting it your chosen text – so _italicised text_ for navigation pane to create a link based on
with a single space – ‘ Sub-header 1’, for example. Disable formatting in a paragraph the entry’s title. Drag files from Files into
example – while the second starts with a by starting it with a dot (.) followed by a the window to create links – image links
double space, so ‘ Subheader 2’. tab. Right-click to insert emojis. produce accompanying thumbnails.
Quote the issue code shown above and have your credit or debit card details ready
SUBS
10
LINUX FORMAT
for €/$/£
and get a selection of digital tech mags for FREE!
www.myfavouritemagazines.co.uk/lin/intt10
Offer available to EU, US and ROW subscribers
*Terms and Conditions: This offer applies to all new subscribers. This offer entitles new subscribers to their first quarter of issues for £10, €10 or $10 dependent on location. After these issues,
standard subscription pricing will apply – please see online for details. Offer applies to print subscription only for iCreate, Linux Format, MacFormat, T3, What Hi-Fi?, Windows Help & Advice.
You will receive an email after your purchase with a downloadable link to your free digital magazines. Prices and savings quoted are compared to buying full-priced print issues. You can
call us to cancel your subscription within 14 days of purchase. Payment is non-refundable after the 14 day cancellation period unless exceptional circumstances apply. For full terms and
conditions please visit: www.bit.ly/magterms. Offer ends April 30th 2020.
TUTORIALS Digital signal processing
Credit: www.gnuradio.org
An electronics lab
subscribe on
page 26!
on your desktop
Sean Conway will install in your wetware the foundational knowledge to
use GNU Radio on an Ubuntu system – like an electronic hacking pro!
e’re going to take an in-depth look into the required to construct an analogue audio circuit with the
Software-
look at those blocks in the area labelled Enhanced. construction, the application forces you to do some file
defined_radio.
From the GRC Library, select Core > Waveform administration tasks before the flow graph will function.
Generators > Signal Source, left-click the block and The first time you run the program, you may receive
drag it to the Workspace area. After a block is placed in an error message that The xterm executable is
the Workspace it can be repositioned by dragging, in missing . Click the button to continue. This error
the usual way. Double-clicking a block on the message can be eliminated by using your favourite text
workspace brings up the block properties screen tab(s). editor to modify /etc/gnuradio/conf.d/grc.conf,
Change the Output Type field to Float and then select adding /usr/bin/gnome-terminal after xterm_
the OK button. This changes the port data type for this executable = .
Block. Block properties will be explored in greater depth Once you have given the file a name, the flow graph
later in the tutorial. tab will display the name only if you have more than one
We have actually changed the data type for the port tab (flow graph) open. The tab for the workspace will
on this block, and the port colour changes from blue to contain the name assigned to the flow graph file. You
orange as a result. Remember the rule: port data types can have more than one tab available. This becomes
must match in order for a connection to work. really handy to track changes when making multiple
The Libraries category listings can seem daunting, versions. Now that we have taken care of the file
and this is especially true if you are a novice or are not management, select the run button again. A pop-up
WX AND GX GUI
sure what you are looking for. Remember that blocks
with only output ports are called source blocks. Do a
search with the criteria ‘source’ using the search button
provided in the Toolbar area. The search will weed out
all the other category clutter and shorten the list of Earlier version of GNU Radio Companion used WX GUI widgets. WX
Blocks that meet the criteria. As you become more had some performance issues, especially with integrated graphic
familiar with GNU Radio, you will also become more hardware. The replacement are QT GUI widgets. In the console
familiar with the categories used for sorting blocks. drawing you can determine the widget support from Option Block.
We will use the search to aid us in our block listing. Before GNU Radio release 3.7, WX GUI was the default; QT GUI
From the Library, find an audio sink block and place became the default widget support at version 3.7.
it on the screen: Core > Audio > Audio Sink. Try using Since the Initial development of GNU Radio was done with WX GUI,
the search to accomplish the same task. Position the a number of Blocks were developed using that technology. Most if
blocks on the workspace so that the source block is on not all the WX Blocks now have QT Blocks to replace them. At the
the left of the workspace area and the sink block is on GRCON conference in 2018 it was indicated that with the 3.8 release
the right. Now click the source port (orange box) and of the software, WX GUI will be completely dropped.
then click the sink port (orange box). A line is drawn WXGUI and QT GUI are not compatible, meaning they can’t both
between the two ports, indicating a connection has operate in the same flow graph. There are a considerable number
been made. This connection was possible only because of flow graphs available under WX GUI technology, so if you’re
the two port data types matched. Drag the boxes downloading flow graphs you need to be aware of this change.
around on the screen and you’ll notice that the
wiki.gnuradio.
Complex Integer 32
org/index.php/
Complex Integer 16
Constant Source Complex To IChar Audio Sink
Main_Page.
Complex Integrer 8
Constant: 0 Vector Output: No Sample Rate: 32k Float 64
Float 32
(Source Block) (Sink Block) Integer 64
Integer 32
Ports Integer 16
Good connection Integer 8
Bits (unpacked byte)
(data type match) Message Queue
Async Message
screen labelled Top Block will be displayed and a when flow graphs fail. Let’s create a problem so we have
1,000Hz tone generated by the flow graph source block an idea what to expect when an issue does occur.
and sent out the sink block will be played through the Drag a second signal source or audio sink block onto
computer’s speakers or headphones. This Top Block the workspace. Don’t make any connections to the
window contains nothing for the moment; it will become added Block. Notice that the Run button is greyed out.
populated as we explore more block features. Look at the extra audio sink block: it has red text. Look
To stop the flow graph and put an end to the piercing at the Terminal screen and note the message. In fact,
tone, use the ToolBar Kill icon or close down the Top when we tried this nothing was added to our Terminal
Block pop-up window that was opened by the program screen, but the error message displayed when we
when the flow graph started. pressed the ‘View flow graph errors’ button.
If your flow graph failed to generate audio, take a The console is designed to assist you in
look at the Toolbar for a red error button. Look at the troubleshooting problems: you just have to take the
Blocks themselves for red text to assist you in hint. In order to continue with the exercise we will need
troubleshooting the problem. You can also read to remove the extra block that was added.
messages provided in the Terminal window (at the The flow graph so far generated a tone and played it
lower left side of the console) to determine the cause through the computer’s audio output. It would be nice
of the problem. to augment the audio with some visuals. Using the
Library, drag the QT GUI Time Sink block onto the
Adding the enhancements workspace. As the block categories get deeper, the
If your first exercise was successful and audio was search feature begins to have more appeal: Core >
heard, that’s good – but we need to explore what to do Instrumentation > QT > QT GUI Time Sink.
Exponential crisis
Notice that in the lower-right area of the console, in the
Block Properties area, the variables and values are QT GUI Range
displayed. You may be wondering why exponential ID: signal_freq
values are used to populate fields. Exponents are used Label: Audio Frequency Slider QT GUI Time Sink
Default Value: 1k Number of Points: 1.024k
often to code values. It is much simpler to use
Start: 500 Sample Rate: 32k
exponential notation than trying to count the correct
Stop: 2k Autoscale: No
number of zeros when dealing with mHz or higher
frequency values. You should get in the habit of using Step: 100
ZABBIX
Enterprise-grade
monitoring made easy
Manage an enterprise as Stuart Burns introduces Zabbix, a free, scalable
monitoring tool that is lightweight and extremely easy to use.
abbix is an extremely lightweight, easy-to-use Although most of the Zabbix site seems to prefer Cent
appliance
set it to the database password (for example Hosts can be physical or virtual servers for our
DBPassword=Password). Save the file and quit the editor.
image that may
purpose here. To add a host, use the menu bars at the
be used for
At this point the server should be configured to start top of the Zabbix webpage and click the configuration
both Zabbix and Apache on boot-up using: menu and click the Hosts option on the sub-menu. On a quick start.
sudo systemctl enable zabbix-server zabbix-agent the right-hand side click the Create Host button. The The physical
apache2 host name can be the DNS name of the server or an IP requirements
Check everything is as expected and the service is address. The visible name is useful to give a host a for the Zabbix
server can be
found on the
working by rebooting the server and logging in, using friendly name.
the command sudo systemctl status zabbix-server to
Zabbix website
When walking through the creation process the
at http://bit.ly/
show current status. system invites the reader to select from a number of
http://zabbix_server_address_or_ip/zabbix
lxf261zabbix.
templates. These templates are the ones available out
The above address should show the first page of a of the box, but provide us with a useful set of metrics to
TIMING IS EVERYTHING
configuration wizard that will walk the reader through a
series of requirements and configuration options.
Assuming all the items are correct (highlighted in green
or red appropriately), click to the next step. Configuring
the DB connection step is simple. Most of the items on Timing is critical. It is important to make sure all your devices report
this page are already filled in. Fill in the password with the correct time. Not having the correct time can cause many issues,
the one you elected to use earlier when setting up the not least with certificates, LDAP and others. By default, UK readers
MySQL system. Navigate to the next page. will have the time set to UTC, which isn’t actually a timezone.
One of the nice things about Zabbix is that it There is a new tool to manage time – timedatectl. To set the
supports LDAP and Active Directory (AD) correct timezone, just set it using the command:
authentication, which means that those with such a $ sudo timedatectl set-timezone Europe/London
directory services system can easily tie in the role- Obviously, for those in other timezones this may not be an issue or
based authentication and centrally managed user will require a different timezone. Alongside this, setting the time in a
authentication features. It also simplifies the small environment is quite simple. Using the timedatectl command
management of users within Zabbix. More information by itself will show the time, time zone, etc. as well as the status of
on this can be found in the manual. Local users can also the time sync. If this is set to No it needs to be corrected. To turn it
be added as needed, with various roles being available. on use the command:
On the next page there is an option to specify a $ sudo timedatectl set-ntp on
Zabbix project name. While not essential, it is useful to This will then sync with the NTP servers. If this environment has an
give the installation a project name. Be careful with this Active Directory server, this can actually be changed to serve time.
as this name will be seen in most browser title bars, so More details on this can be found at http://bit.ly/LXF261time.
just keep it short ,simple and clean. Click through the Of course, if you’re setting the time using the AD server, make sure
next few steps as there are no entries required by to point the clients to use the AD server.
default. Click the finish button. Also, as a final note, a lot of items people forget about are hidden
Once complete, login using Admin and zabbix . The because access is being blocked by the firewall!
basic task of setting up a Zabbix server is now complete.
be monitored. We chose to monitor the Apache web together hosts that have similar properties. A couple of
host web availability along with CPU, Memory and disk. examples of groups are Web Servers or Database
If you haven’t An example of the template selected for the Apache Servers. Then when you want to apply a monitoring
set up DNS host are shown below. Obviously, your requirements policy (template) to the group of servers, it is possible
yet, this is the
push you need.
may differ, so this serves just as an example. for servers (hosts) to be a member of several groups.
Zabbix will
When setting up the host, it needs to be a member of While we now understand hosts, creating host
work against
at least one group. To create a new host group, just type entities themselves (in the current state) and templates
IP addresses,
in the group name desired in the groups text box. It will are only part of the story. Templates are groups or
but having
be saved as the group name entered. There is a series of collections of items (metrics) that the reader wants to
DNS resolution
marked fields for each host entry created. Each host monitor. For example, CPU, uptime, ICMP response, etc.
provides a much also has a peripheral page that can be utilised to store Hosts and groups can have several items attached to
cleaner and useful information, such as the location, serial number, them. When we added templates earlier, we essentially
easier-to-use and other pertinent information if desired (the reader added several items, because each template has a
experience. will need to select Manual in order to populate the field. collection of items it adds.
Once these requirements are met, just click Add.) Adding additional items to hosts is simple. If the user
As the number of hosts increase, these groups and navigates to the host screen and then locates the host
their use make more sense. Groups are used to collect in question, followed by clicking Items, it will open the
Items menu, and the reader can then select the desired
items to add to monitoring from the list. If the agent
isn’t installed, not all of these items can be collected.
Installing agents is discussed below. And don’t forget
to click the Apply button at the bottom of the screen
to save changes!
While adding these hosts by hand may be fine for
small home users, the sheer number of servers and
devices could be too much to manually create. One of
the nice things about Zabbix is that it can be used in
auto-discovery mode. While it is somewhat beyond
the scope of this introduction, you can find more
information on using auto discovery at www.zabbix.
com/auto_discovery.
ADVANCED MONITORING
agents enable more in-depth reporting, especially
around reporting disk, CPU, memory and other really
important metrics. Fortunately, there are agents for
most host platforms. Depending on the platform in
While in this introduction we have looked at information that can be question, the way it is installed differs. The installation
gathered using properly installed agents, getting information from routine may differ between platforms, but the
appliances presents an obvious problem – there are no installing configuration data needed remains the same. Be
agents on them. Fortunately, there is a solution to this problem. careful which agents you download because Zabbix
This is where the SNMP protocol comes into play. SNMP, or simple provides different configurations of builds – 32-bit,
network management protocol, works in a very standardised way 64-bit, installer, no installer, etc.
and is vendor neutral. When installed it allows the data to be pulled For Windows, simply download the appropriate
into tools such as Zabbix. package from www.zabbix.com/download_agents.
While there is the SNMP protocol, there’s also the MIBS Once downloaded, open the ZIP package and run the
(management information base) that go along with them. These installation as an administrator. Unless you have an
are essentially installable modules that vendors produce to enable overriding reason not to, leave the install options as they
the data on the appliance or other hardware to allow the data to be are (bar the Zabbix server IP address being entered into
brought into the system in a standardised way (i.e. SNMP). Zabbix the install wizard. Upon being presented with the
supports SNMP and MIBS. configuration options, fill out the name, friendly name
More information about installing the MIBs can be found at and address of the Zabbix server. Note that by default,
www.zabbix.com/documentation/4.0/manual/config/items/ the data between hosts and the Zabbix server is plain
itemtypes/snmp/mibs. On top of this, the way in which the data is text. It is possible to configure this to use encryption,
collected will change within Zabbix (for those hosts you wish to use but for brevity in our test environment we will allow the
MIBs with. An example of using MIBs and SNMP is a router that plaintext to remain.
supports it, so you can extract data such as temperature, utilisation There are a number of options that are available to
and bandwidth figures. set up the agents on Linux. The first option is to install
Care should be exercised, however, because it is possible to the same management repository as the server and
actually make modifications to the configurations when not properly then install the agent. This helps to ensure that the two
secured – the use of both public and private SNMP strings. are in lockstep in terms of versions and updates. To
install the agent (assuming that the reader has added
the repository), use the following command: if you wish and the defaults will apply) and then click
sudo apt-get install zabbix-agent apply. At this point it just becomes a process of clicking
A quick item of note here. If you add a host to the and selecting the type of data to display and then Keep your
list of hosts and the Availability column doesn’t have selecting the hosts or group of hosts to create a very data and apps
separate. While
we could use
the ZBX box as green, it means there is no agent basic graph or display.
and operating
the ones that do require one will not. items that the reader wishes to preview. Be aware that
system on one
Out of the box, each agent needs to be configured. the metrics available will differ by operating system.
disk, this is bad
So open the zabbix_agent (/etc/zabbix/zabbix_ There are many options to create a graph, data set or
agentd.conf) file. Locate the line that reads multiples thereof. practice and
Server=127.0.0.1 and replace it with the Zabbix host IP. Now that we know how to set up hosts and display will complicate
Also locate the Hostname entry and modify that to the information, the next step is to understand triggers. management.
reflect the fully qualified hostname of the local host As the name suggests, when a trigger threshold is Should your
disk get full,
expanding it,
that the agent sits on. detected, such as a host being restarted, it is flagged up
while doable,
Once that is set up, enable the agent using the in the global view. To add these thresholds to a server,
The whole
system revolves
around the hosts
discovered in
the environment.
proxy to Nextcloud
Add a Traefik reverse proxy to your Nextcloud Docker deployment with a
little bit of guidance from Chris Notley.
Traffic flow
change and recreate the Nextcloud container with the
new setting. You can test this works by opening a
browser and connecting to port 9443 on your Docker
The Docker host
host (e.g. https://docker-host-ip:9443). Docker host
routes HTTPS to the
We shall now add two new containers: one for Traefik Traefik container.
itself and a second for a container called ‘whoami’. The
Internet Traefik Nextcloud
latter is a fairly simple but quite useful container image Container Container
that just so happens to be referenced in the Traefik
tutorials. The following lines should be added to the end
of your existing docker-compose.yml file:
traefik:
Request for https://nextcloud. Router forwards The Traefik container routes
image: traefik:v2.0
prelim.xyz is resolved to the TCP/443 to the HTTPS request to the
the Docker host.
container_name: traefik
IP of the router. Nextcloud container.
command: This shows the flow of traffic through the various components of our tutorial solution, from an
- --providers.docker=true ISP router, Traefic server and finally the Nextcloud server.
- --providers.docker.exposedbydefault=false
- --entrypoints.web.address=:80 can test it’s working by browsing to the hostname you
ports: specified earlier. If everything is correct, you should
- “80:80” see a simple text webpage showing various pieces of
- “443:443” information about your webserver and the client you
volumes: are connecting from.
- /var/run/docker.sock:/var/run/docker.sock
In addition
This is great, we now have a working reverse-proxy
whoami:
to being
server. However, to be really useful we want to use TLS
image: containous/whoami
packed full of
encryption so that we can browse securely. This is really
container_name: whoami
functionality,
easy to achieve as Traefik has built-in support for Let’s
labels:
Traefik is also
Encrypt and can automatically request and update
- traefik.enable=true certificates from the service. very well
- traefik.http.routers.whoami.rule=Host(“whoami. documented.
prelim.xyz”) Keep it secret Take a look at
Just like in part one of the tutorial, spacing is Enabling Let’s Encrypt involves a few steps: firstly, https://docs.
traefik.io for
everything
important, so make sure the first line above is prefixed we need to create a file that Traefik will use to store
from concepts/
by two spaces, and each subsequent indentation has a certificates using the following commands:
mkdir ~/traefik
tutorials
further two spaces added. The majority of the lines
touch ~/traefik/acme.json && chmod 600 ~/traefik/
through to
above include options we have already used, but let’s
acme.json
detailed
take a moment to remind ourselves. Firstly, we are
defining a new service with the title traefik: based on an
reference
We now need to make some changes to the Traefik
image with the same name (we are specifying version container (in docker-compose.yml) in the command: documentation
2.0). We then give our new container a friendly name, section so it looks as follows: for each feature.
again conveniently ‘traefik’. We then use something new, command:
namely the command section, which enables us to pass - --providers.docker=true
command-line parameters to the container. In this case - --providers.docker.exposedbydefault=false
we are simply telling Traefik to interface with Docker - --entrypoints.web.address=:80
(more on this later), to only enable containers if we - --entrypoints.websecure.address=:443
TRAEFIK CONFIGURATION
‘trusted_proxies’ =>
array (
0 => ‘DOCKER-HOST-IP’,
In this tutorial we have configured Traefik using command-line ),
switches in our Docker Compose file (the section starting In case it is not clear, you are amending an existing array
command:). This is the equivalent of starting the application with a (trusted_domains) and adding a second array (trusted_
whole bunch of command options each time, and while this would be proxies). The trusted_domains array tells Nextcloud
far from convenient to type out manually, Docker Compose makes what URLs are allowed to be used to access the service,
the process fairly straightforward. The main advantage of doing it this so we need to add the hostname we shall configure in
way in our tutorial is that it means we can contain all the configuration Traefik (change nextcloud.prelim.xyz to nextcloud.
elements in a single file (docker-compose.yml). myowndomain.co.uk, nextcloud-somthing-unique.
If you look to pursue Traefik further and search the internet for duckdns.org, etc.).
examples, you are likely to find many that make reference to your The trusted_proxies array we are adding tells
configuration being placed in traefik.toml/traefik.yml files. The two Nextcloud that we trust Traefik (change DOCKER-
different file extensions relate to different file formats, one of which HOST-IP to match the IP address of your Docker host).
we have already seen in this tutorial (Docker compose files use the We now need to edit our docker-compose file and
YAML format, which uses indentation to separate elements). The make some changes to the Nextcloud container. All of
TOML format looks quite different and is (arguably) more difficult to the changes are in the labels section, which we need to
read than YAML. However, it can be easier to maintain a TOML file for add at the end of the Nextcloud container configuration
complex configurations (where many levels of indentation would be and are listed below:
required in YAML format). labels:
There is no right or wrong way to manage your configuration, but - traefik.enable=true
trying to mix different methods is probably not a good idea, so if you - traefik.http.routers.nextcloud.
want to look at using a configuration file it is probably a good idea to entrypoints=websecure
move everything into it! - traefik.http.routers.nextcloud.rule=Host(“nextcloud.
prelim.xyz”)
LINUX LOGS
Manage and read
your system logs
Mats Tage Axelsson takes you through the basics and then digs a little
deeper into log management and analysis.
What’s in a log?
Your log files are collecting the information you need to
correct what you can, and report the rest to developers.
When you are in flow and getting work done, it is not
productive to see what is going on with your system,
which is why you need logs. You need to stop regularly, where you got the boot image and if the system started
check through your logs for problems and adapt in secure mode.
yourself and your systems to the current situation.
The most important time to do this is before and dpkg.log
after you have made any changes to a system. This When you install or upgrade packages, you will be using
includes after major updates have been installed, apt if you are on an Debian derivative. This package uses
obviously, but also when you start using a new piece of the dpkg command, which creates several logs; the To see how
software. This is also a useful thing to do before you apt/* files and the dpkg ones. They will tell you what much space
start creating bigger projects, such as databases, you have installed lately and what went wrong. your log files
take on the
disk, you can
graphics or text. The amount of files that the system writes and how
df commands.
you have certain files that are generally of more interest purpose you use the logrotate script. On your standard
The simplest
than others in terms of logging: system the script is run by systemd. You have a service
is to use du
and a timer that determines what to do and when to do
-csh /var/log/
alternatives.log it, respectively. The parameters control how the system
The first one is for when you add tools to your system. handles files, how often, and whether it compresses you will see
Python, for example needs to know what is the standard them or not. one value; the
amount of disk
Some directives
binary. You can set this for yourself using the update-
alternatives program. Any changes you make go in the space that all
alternatives.log file. You control the behaviour with configuration files, which logs use.
are placed under /etc/logrotate.conf and the directory
apport.log /etc/logrotate.d. You have the global settings, the file
Apport is a service that collects troubleshooting reports. and any additional settings under the directory. Each
It collects these reports in /var/crash and logs to /var/ system that needs logs can have settings files here. The
log/apport.log. Using this system, you can see what format of the settings files are mostly the same in both
has crashed and collect the reports themselves from cases. However, the special files have section markers
the crash directory. that show which files they control.
The main file ends with an include statement:
auth.log include logrotate.d. This adds all the files from that
directory to the main file. In theory, you could put all the
files into just one, but that would be hard to maintain so
When you are you should use the include statement instead.
interested Log files need to rotate for several reasons. One is
specifically in that you may want to come back to the history. To make
the network this easy, name the files you rotate out by the date they
interfaces,
‘nield’ is a strong
were filled. You end up with timestamps in the name.
alternative. It
The most important reason for this is that the files can
network events
system or destroy them. Depending on your needs, use
regarding
a specific amount of time between rotates, and you can
The logrotate utility uses files that are chained together. You can set
interfaces,
also decide when to throw them out.
parameters for each log that you wish to collect.
routing and To set how often you want your log files to be rotated,
your IP address. use plain English! This means that if you want them to
rotate daily... you put daily in the settings file. On a six, the files will be deleted when they have rotated six
desktop system, this is set to weekly in the global file. times. The rotated files are history and will not be
You have the values; hourly, daily, weekly, monthly and accessed very often – or never, if all goes well. That
yearly. It is a little special with the weekly one. You can means you want them to be as small as possible, you
set it to be the specific weekday, specifying it with a can set this with compress parameters. By default
number. Here 0 means Sunday, which is default, and 7 the compression used is gzip but you can use any
means every day of the week. command with the compresscmd parameter. If you
With these time intervals, you may end up with a very have special demands, you can add parameters with
big file before the time is up. You don’t want that. the compressoptions value.
Log central
Imagine your disk filling up and crashing your system
because it got too big! To handle this, you have the
maxsize parameter. After setting this value, the log will There are several ways to send your files out of the
rotate as soon as the file is that size, even if it’s before machine they are on. This can be useful for virtual
the specified time interval. A file that should rotate once machines, small embedded systems and IoT
a week will rotate before the day you have set if it is applications. To make sure you have options, you can
larger than the specified maximum size. mail the logs that rotate using the mail parameter.
Compare this to the size value, which rotates a file Simply add mail [email protected] to your
only if it’s bigger than the specified size. You can set the configuration file and add the filename which should go.
values using the letters ‘k’ for kilobyte, ‘M’ for Megabytes Logrotate will mail the file that is about to expire by
and ‘G’ for Gigabyte. default. You can change this by adding mailfirst to your
Here is an example of a configuration file. You can config file.
see that it controls the dpkg log file and when it rotates For more advanced options, you can add postrotate
the files. on its own line into your settings. This is a marker in
/var/log/dpkg.log { the file where you start your script. You end the script
monthly sequence by adding endscript on its own line. A
rotate 12 common use of this is to add an invoke script that stops
compress and then starts the service, since many programs will
delaycompress never let go of their log files.
missingok
notifempty Systemd is good!
create 644 root root To check for logs on Linux, you will likely have journalctl
} available. At first, it looks like it just lists all the logs using
Part of logrotate is to compress and move the files less, which it does, but you have many options too.
away from your current system. However, at some point Assuming it does nothing more than that, takes a lot
the files have to be erased to clear the disk and avoid a away from the power of the command. Filtering your
full disk error. To specify when they are removed you results is much more than using grep. You can choose
can set the rotate parameter. The value is the number of from the fields of the log, which makes it possible to
times that the files have been rotated. When the value is choose both what is in the message and also what
subsystem you are investigating.
You have the option to search by systemd units,
the command and the executable path. There are
many more ways to filter your results, most of it is
for professional use such as hostname and machine
identity. For ordinary users, you can use these variants.
One useful graphical log viewer is the Gnome Logs utility. It helps you sort your logs in categories
UNIT These are service names, mount names and
so you can focus on your current problem easily. timer units. When you start using this, take advantage of
the features to help you find what you are looking for
more easily.
Analysis tools
You can filter your files with all the search queries you
like, but sometimes it is more helpful to have a
visualisation of the log. Some techniques are simple, Using journalctl to check your extensions is easy as long as you can
some are more complex. While logrotate can mail your remember the name of the extension.
log files to you, it does not process them when doing it.
The program epylog will do this for you. It will parse create these things. When you have configured what you
the files according to your settings in /etc/epylog/ want to follow and how you want it displayed, you can
epylog.conf. With the help of modules, you can adapt also save a configuration file and use it to start the same
the processing to create customised reports. Simpler session again.
solutions exist – logtool is one. It creates reports in When you start using your logs to solve problems
ANSI, ASCII, CSV and HTML. You can use this to create and optimise your system, you may quickly be
reports directly to web pages or pipe them to a overwhelmed by the sheer amount of events running
spreadsheet program. through your system. Fret not, as you have fairly few
The logtop program is a simple utility that adds line files that are being logged, and many messages are
numbers, sorts and then returns a list of events with the there as information only.
number of incidents of each. You have several utilities To make the process easier and faster, you can use
that keep an eye on your logs, most of which are simple some tricks to filter out the unnecessary stuff. You can
in nature but powerful if you combine them with scripts. also add colouring and view many files at a time with
For desktop systems you have basic utilities, while the different tools shown here.
for web servers there are plenty more. This makes sense When you program, you will need these skills to
since there’s much more activity on a web server and follow compiling and error output, so that you can track
there are also many commercial implementations. You down faults in your code. It is also invaluable when you
could use mergelog to collect http logs by date from are checking website logs and for keeping your old
many sources. hardware running for the longest time possible.
NODE.JS LOGGING
The most interesting program is multitail. It works
like tail in that it shows the end of a file or command
output. The big difference is that it uses ncurses to
create windows in your terminal, one for each file you
follow. In addition, you can follow a command as you When developing a Node.js application you need to set it for logging
would using watch. You then use filters for the logs you and debugging. This happens in your code, and you direct it to
are looking at narrowing down the chaos of the screen standard out. It is always better to direct all logging to standard out
to match your needs. and let external tools route and filter where the logs go. Once you
While running this program, you can add new files, have done that you can read the logs directly from your console,
commands and filters. It has a menu you can open to which is fine to start with. As soon as you have several modules and
many views, you rely on many libraries.
This adds complexity really fast, and one of the first areas where it
shows is in the logs. You will end up digging through logs for most of
your time. For this to work, you need a module that shows you the
faults – the built-in stuff does not always work. You have the ‘debug’
module to do this for you. You just install it as you would any other
module and set the DEBUG variable to your own namespace, and
finally have it defined in your code.
const debug = require(‘debug’)(‘local-namespace’)
const name = ‘local-app’
debug(‘booting %s’, name)
You also have the libraries winston and Trace available for logging
The logtop utility adds numbers and splits the list in distinct entries of errors, debug and warning messages from your code.
a certain type, also showing how many of each are in the file.
HotPicks
Tartube AwesomeBump UserManager Minase
Tutanota JSPaint ScreenGrab Tower Time
Alexander Tolstoy
thinks that global warming
isn’t that bad because it
helps make his open
source picks even hotter!
Tartube
Version: 1.3.048 Web: https://
github.com/axcore/tartube
TEXTURE GENERATOR
AwesomeBump
Version: 5.1 Web: https://github.com/
kmkolasinski/AwesomeBump
G
ood news for everyone fond of imaging in specular,
Linux! We’ve got a tasty bit of open source ambient
software dedicated to image-processing using occlusion), so
the GPU of your graphics card. The application bears that you get a set of textures for various applications. A must-have tool
for game designers
and 3D modellers.
the memorable name AwesomeBump, and it turns out However, AwesomeBump has more options – for
It’s fast and really
to be a unique tool for generating textures – or at least instance, there is a 3D-editing panel with lots of sliders
the only one with such an impressive set of features. for adjusting shape, lighting, scaling and diffusion for easy to use!
The purpose of AwesomeBump is to assist your texture. If you need to calculate the ambient
professionals in 3D modelling, but the app is friendly occlusion and specularity of an image with real-time
enough to attract novice users as well. With the help of tessellation, than there is no better choice than
AwesomeBump you can create textures, height maps or AwesomeBump. And it’s always good to have a
ambient occlusions out of regular bitmap images – and standalone app not tied to GIMP.
they don’t even have to be made seamless beforehand. The price you pay for all that goodness is that
AwesomeBump solves the problem of precise AwesomeBump requires an OpenGL 4.1-capable
perspective transformation when applying textures to video system. Those who have older hardware with
various 3D objects, no matter if they are regular (such insufficient specs are sadly out of luck.
as a cube), or irregular (such as stone). AwesomeBump is fast and lag-free, as it performs
In some sense AwesomeBump is a more powerful most of its calculations on the GPU. The application can
replacement for Insane Bump – a GIMP plugin. Like be compiled using Qmake and a standard set of Qt5
Insane Bump, AwesomeBump can also convert texture development packages. Ready-to-use assets for Ubuntu
maps (diffuse) into other types of maps (height, normal, are also available on the Github page.
SYSTEM ADMINISTRATION
This is one
of the most
sane, smooth
and logical
GUI tools for
UserManager Linux admins.
T
here’s a good reason to recall our dream of
building a perfect custom-tailored desktop
environment that would be fast, smooth and
have a minimum set of external dependencies. It often
feels like an unattainable goal, but we just got a little
closer to it. Meet UserManager, an app that can take
system administration away from the command line. sports large crystal-styled icons with clear meanings.
Specifically, this applies to such commands as You can enter a user/group settings window by clicking
useradd , usermod , groupadd and the like. There’s the appropriate button, or simply by double-clicking the
nothing wrong with that, but having a nifty graphical item you want to edit.
app for managing system users is a superb bonanza It’s very simple, clean and intuitive, but there is room
from the desktop perspective. It isn’t the only one user for a few extras. First, the main table with the list of
manager in the wild – we have similar GUI frontends in users boasts auxiliary columns and can also show the
Gnome, Yast and elsewhere – but we think that default shells for each entry. This way you can easily tell
UserManager has a nicer exterior, and it can be easily real people apart from service accounts created by
installed without closer ties to a Linux distro or a DE. If software such as MySQL or Postfix.
only it had a more distinctive name. UserManager has extra features under Settings. The
The central area has the traditional division of users Configuration window (Ctrl+S) enables notifications for
and groups. You can edit users from two standpoints: by users if their accounts are about to expire, while Create
changing a group’s properties, or by adding or removing Backup quickly saves copies of the passwd, group and
groups in a user’s properties. The colourful main toolbar shadows files from /etc to /tmp. Very helpful indeed!
FILE MANAGER
Selecting an MP3
instantly reveals
its metadata. Other
file types are also
supported by the
Minase Minase preview.
T
he typical file manager in Linux is usually a
twin-panel file manager. However, there exists
another sort of application that we can usually
only dream about – a text-based file manager. Minase is
one of the best-made applications of that sort – well, it
hasn’t disenchanted us after few days of usage at least.
In order to fall in love with Minase, one has to SIXEL graphics. In simpler words, this utility can render
completely abandon the mouse and switch to a solely high-quality images right inside the terminal. If you run
keyboard-driven life. Minase is designed to run in a your terminal in a graphical mode, or at least using a
terminal, so it is perfectly suitable to use without a full-resolution, mode-setting video driver, then the
graphical desktop at all. The main area of Minase has image quality will nearly match the one of a fully-fledged
two parts: the left one is the current directory, and the image viewer.
right one is the contents of the currently selected item. Of course, Minase can do much more than just let
Use arrow keys to navigate deeper into subdirectories, you roam inside the filesystem. The project’s
which open in the ‘cascading’ manner. If you select a file, Readme.md contains the very valuable cheat sheet
Minase comes up with helpful information. covering all the important key bindings of Minase. Plus,
Editable documents are previewed, and so are there are tips for setting up bookmarks and customising
images, archives and even audio files – Minase shows the application’s plug-ins.
tags via the TagLib integration. For image previews, Minase turned out to be robust and relatively easy
Minase relies on img2sixel (https://github.com/ to use. Once you know its keys by heart, filesystem
saitoha/sixel), a decoder implementation for DEC navigation becomes extremely robust and efficient!
EMAIL CLIENT
1GB of mail
storage for free
is a generous
offering.
Tutanota
Version: 3.66.7 Web: https://github.
com/tutao/tutanota
S
ecurity is everything, and we believe that every
Linux user has a right to enforce their privacy
protection. Various software exists for that
purpose, and this time we will set up a secure email
system. Many Linux users have heard about ProtonMail,
a secure and encrypted service that helps people hide secure the outgoing message with a password. The
their identity from third parties. But there is a less- recipient gets the notification with a link to open the
known yet very featureful contender – Tutanota. encrypted content in the web browser once the
Like Proton, Tutanota earns money from paid password is provided.
subscription plans, but it also has a free plan, which The main benefit of running a local Tutanota instance
boasts some benefits over other competitors. The is that you can go online only to send/receive mails and
Tutanota email client is made with NodeJS and stay offline for the rest of the time. The local client is
deployed as a web application. It lets you run your own great for LANs and for ethical hacking as well.
local instance of the official Tutanota web interface It’s easy to get it running with NodeJS and Python:
(https://mail.tutanota.com), which can be another $ npm install && node dist prod
way to improve privacy protection. $ cd build/dist && python -m SimpleHTTPServer
Under the hood Tutanota’s messages are secured via 9000
a hybrid method of symmetric AES-based encryption After that you’ll be able to access the application at
with a 128-bit key, and asymmetric RSA encryption with http://localhost:9000. Sign up and get the 1GB of
a 2,048-bit key. When you send something to a user storage. Paid plans enable you to set up Tutanota on a
who doesn’t use Tutanota, the service asks you to custom domain.
DRAWING APPLICATION
Can you tell the
real MS Paint and
JSPaint apart? Oh,
there’s the Extras
menu in JSPaint!
JSPaint
Version: GIT Web: https://github.
com/1j01/jspaint
S
o many applications go online these days –
music players, word processors, image editors,
and many other sorts of software are being
ported to run right in a web browser. So what about a
whole OS? No problem, there’s a cute Windows XP
mock-up made with JavaScript (https://github.com/
ShizukuIchi/winXP), which is very fun but too useless MS Paint, with all its features and Easter eggs. JSPaint
to be properly reviewed. Nevertheless, that mock-up lives at https://jspaint.app, but it takes a little more
features another open source project – JSPaint, a very effort to get yourself a personal local instance:
true-to-life web recreation of the original Microsoft Paint. $ npm install && npm run dev
Few people think of MS Paint as a serious drawing We spent a great drawing session with JSPaint,
tool, so there’s more of a nostalgic vibe from the days of which was simple enough to be non-distractive, yet it
Windows 9x. Still, did you know that MS Paint had a had all those lovely features found in the original MS
solid set of secret features, such as Clone Tool (hold Paint. In fact, JSPaint even outperformed its roots by
down Ctrl and drag the selection), Custom Brush (same, adding even more features. JSPaint can undo more than
but with Shift), Colour Replacement (use the right just three actions, and it sports the lovely Extras menu
mouse button with Eraser), Grid (zoom to 4x and press with a set of superb items. These include additional
Ctrl+G), Brush Resizer (use +/- keys on the Numpad). themes, multi-user sessions, and a mind-blowing GIF
Before you run away to check this out by firing up renderer that converts your feeble artistic efforts into
$ wine mspaint.exe, or booting the real Windows in a animations, and then politely suggests that you upload
VM, give JSPaint a spin. This is a very faithful clone of it to Imgur…
The longer
SCREENSHOT TOOL you need to
scroll down the
website, the
more megapixels
ScreenGrab there will be in
the grab. But it
will look perfect!
Version: 0.1.0 Web: https://github.
com/crux-lab/screengrab
I
f you want to download the whole internet (or
at least the most important parts) to make a
personal archive similar to the Wayback
Machine, expect a lot of obstacles. One of the problems
with the modern web is that pages often embed too
many scripts and has ties with trendy JavaScript including the base URL, the site’s subsections, image
frameworks. If you try to fetch a whole news portal, like size/scale and also the number of screengrabs done in
the BBC or Fox News, say, via wget, only a small part will parallel. The latter becomes important with high loads,
download. Some Python or Ruby-based utilities often as taking tons of PNGs can be a resource-heavy job.
do the job better, but it’s still not good enough. ScreenGrab is a command-line utility – no browser
However, there is another way of saving things: why window is visible. Yet the grabs are 100% true and
not take screenshots of all the webpages and store perfectly readable. It’s a NodeJS package, so to install it:
them as images? It can be slower and will occupy more $ npm i -g screengrab
disk space, but at least no visible information will be lost and use in the following manner:
(while the images can be later OCRed). $ screengrab -c config.yaml
There is a small application called ScreenGrab that a sample config file is provided.
does exactly that. ScreenGrab silently launches It looks like the only thing missing for unmanned web
Chromium in the headless mode via Puppeteer surfing is something that would populate config.yaml.
(headless Chrome NodeJS API), then visits the pages The file has a simple syntax and it’s impossible to read it
you have defined and takes screenshots. All details and wrong. Just keep an eye on your hard drive space and
configurations are defined in the config.yaml file, don’t let ScreenGrab eat all the free space!
TOWER DEFENCE
Those red dots
are on the good
side, they just
shoot with
deadly accuracy.
Tower Time
Version: GIT Web: https://github.com/
ahrampy/tower-time
W
e really love the tower-defence genre, but there
are very few open source games of this kind
out there. One of the examples that comes to
mind is Machine vs. Machines (see LXF223), once made
by Canonical to help populate the Ubuntu phone
ecosystem. Today’s pick is another rare gem: it’s open
source, very tower-defensive and is extremely playable.
Tower Time is a browser-based 2D game with a playing field have walls, and when you place a turret
classic top view and a number of elements you would somewhere on a free site, it also becomes a wall. This
expect from a tower-defence game. There is a source logic enables you to alter the maze and redirect evil
gate that pours out evil guys (the grey square), and your ones in such a way that they can be exposed to your
precious tower (the red square) that you need to defend. turrets for longer.
You can place four types of turret to shoot the evil ones Quite expectedly, after a few waves you face a
anywhere using unoccupied tiles on the playing field. dilemma of whether it’s best to add more basic
The Tower Time description uses the elements turrets or upgrade existing ones. It’s not a spoiler to
metaphor to describe those four types – they are earth, advise upgrading: Tower Time faithfully shows that
water, fire, and air. Your tower has 20 lives. quality outperforms quantity in the long run.
There are features in the game that we found to be Tower Time is another example of a game where
original. First of all, levels are randomly generated and very basic artwork doesn’t detract from the fun.
never repeat, which makes it impossible to adjust to a Endless levels, good balance of bot strength and
specific maze after multiple training attempts. Next, the turret upgrades makes it very entertaining!
ARCADE GAME
Some enemies are
low down, so you
first need to squat
down and only
then attack.
Rygar-emu
Version: GIT Web: https://github.com/
nullobject/rygar-emu
S
ometimes putting the ‘retro’ tag on a game
raises questions, like if it is old enough to be
called retro. But this game isn’t troubled by
that, as it dates back to 1986. Rygar-emu is a faithful
software recreation of the original Rygar gaming launching Rygar-emu you need to press 5 in order to
machine, produced in Japan by Tecmo. For its time, ‘insert coin’. After that press 1 to start the game and
Rygar featured advanced and very appealing graphics then use arrow keys to move, Z to attack and X to
that were years head of its time. jump. The Warrior uses the ‘Diskarmor’ weapon to
The plot suggests you take control of the Legendary attack enemies – an expandable shield with a chain,
Warrior, who must defeat the evil King Ligar and restore which can reach bad guys even at some distance. No
peace in the Argool realm. Essentially, the journey of the health grading is available, and every wound means
Warrior passes through several other realms, each death (although the gameplay says that the Warrior
ending with a boss fight. The game is very Japanese and has already risen from his grave before), so be careful
also very fantasy-themed, which results in a bizarre mix to not get hit at all. However, there are checkpoints
of ancient and futuristic details. The name Rygar is just across the level, which help you advance further and
another spelling of Ligar, so it turns out that the game is complete the level faster.
named after the main evil character. With various power-ups, pick-ups and very
Despite the fact that Rygar was once ported to the responsive controls, playing Rygar-emu is a really fun,
ZX Spectrum, Commodore 64 and other platforms and challenging and time-consuming pastime. The game
became an easily accessible video game, Rygar-emu is written with C and Python, and it ships with concise
recreates the original slot machine version, so after build instructions.
M
odern Linux desktops usually have tools for
providing the ‘About this system’ information
that let you find out what your CPU is and how
much RAM you have. But it wasn’t always this way, and
that’s why there’s an application for that purpose.
Hardinfo has existed since 2003, and despite the fact
the previous release (v.0.5) was out in 2009, this is still use Hardinfo to quickly tell how your system performs
under development and receives regular updates. compared to the reference range.
The current, unofficial v.0.6 Alpha is an up-to-date Hardinfo is aware of modern high-performance
system information tool with valuable extra features. CPUs such as AMD Ryzen 7 and Core i7, and it can
The Hardinfo interface has a simple layout made of draw very descriptive plots showing where you are in
two panels: the left one is for the categories tree, and the range. Don’t miss the Generate Report button on
the right one is for displaying the currently active the Hardinfo toolbar, which will collect the maximum
category. The left tree has more than just a summary of amount of data in one take. Hardinfo will perform all
your devices. Check out the Security section (see if available benchmarks and add it to a quite lengthy
your CPU is vulnerable to Spectre, Meltdown etc.), see HTML report.
what kernel modules are loaded, scroll through the list With Hardinfo it is very easy and convenient to
of boots, examine the list of development tools, etc. compare different Linux systems between each other,
The sweetest part of Hardinfo is its benchmarking and it also makes sense to compare different Linux
capabilities. These aren’t as advanced as, say, Phoronix distros on the same machine – for instance, you’ll be
Test Suite, but they are still very cool. In brief, you can able to see which kernel gives better performance.
COMMAND-LINE HELPER
It’s like a mini-
Wikipedia about
file extensions,
right at your
fingertips.
Fileinfo
Version: GIT Web: https://github.com/
sdushantha/fileinfo
W
e are not sure if there is a connection between
a program’s size and its value, but it’s clear that
the tiny Fileinfo tool is of extreme use. This
small application is made up of under 100 lines of
Python code and acts as a bridge between your Linux
terminal and the https://fileinfo.com website. The
latter hosts information on over 10,000 file extensions get the application directly from the online repository:
and provides a concise article for each one. $ pip3 install --user file-info
Many developers (and virtually everyone who spends Once it lands, use it with the following syntax:
much time working with the command line) find it $ fileinfo <some_extension>
uncomfortable to switch away to a web browser for You can provide only one extension at a time, and it
some information, so that’s where Fileinfo comes in makes no difference whether there is a dot before it
handy. Fileinfo searches for the provided extensions and or not. We noticed that the original pages at https://
outputs its description back to the terminal. If it does fileinfo.com split each article into the main part into a
not find the correct match, it just says so, but keep in distilled description and the More Information part.
mind that https://fileinfo.com has been around for The Fileinfo app only shows the first one, which is
over a decade, and there is very little chance it is more than enough and does not clutter your terminal.
missing extension data. If you come across a file with a weird extension that
Getting the Fileinfo utility up and running is very you cannot properly identify, try to feed it to Fileinfo
uncomplicated. The code from the Github pages can be and quickly get a clarification. It looks like it is the
easily installed using Pip3, but it is more convenient to fastest way of cracking extension mysteries!
equations. You
how it gets ever closer as we add more terms. You’ll have noticed, no doubt, that the expressions
can use it as a
So let’s create a spreadsheet. In accordance with you typed into columns C to F are identical except for
stand-alone
good practice, give it a name in cell A1, and label the numbers 3, 5, 7 and 9, and you could have written
columns A, B, C, D, E and F by putting x, sin(x), 1/3
utility or from
the expression in B4 (and hence it would also have
sin(3x), 1/5 sin(5x) etc. in cells A3 to F3 and sum in G3. ended up in all the other cells of column B) as within Calc
Now put the value -8 into cell A4, =A4+0.2 into cell A5, =1/1*sin(A4*1) , because that’s the same as =sin(A4) . where you’ll
and copy down from A5 to A48. Note that we’re This means that, if you insert a new row above row 3, find it at Insert
incrementing in small steps of 0.2 because the which will then be a new empty row 3, you can now > Object
trigonometric functions expect an angle in radians, not enter 1 into B3, =B3+2 into C3, and copy right from C3, > Formula.
degrees. Next, enter =sin(x) into B4, =1/3*sin(3*A4) into and that row will contain the numbers 1, 3, 5, 7, 9 and so
C4, =1/5*sin(5*A4) into D4, =1/7*sin(7*B4) into E4, on, depending on how far you copied. You can then
=1/9*sin(9*A4) into F4 and =sum(B4:F4) into G4 before change the expression in B5 (formerly B4) to refer to
Graph plotting
creations more readable.
No doubt you’ll give your spreadsheet a sensible filename so it’s
Graph plotting might be a powerful and commonly used more easily identifiable, but it doesn’t end there. If your spreadsheet
feature of spreadsheets, but as with the mathematical contains multiple sheets, make sure you rename them to something
functionality, the types of graph used in business more meaningful than the default names of Sheet 1, Sheet 2, etc.
applications rarely go beyond the bar and pie charts Next up, make sure you include a meaningful title in the very first
that have adorned so many sales presentations. cell so it acts as a heading. This might not be enough by itself, so
Happily, Calc’s graphical capabilities go well beyond consider adding a few lines of sub-headings to explain the purpose of
these somewhat mundane chart types, as we’ll see in the spreadsheet more fully, and to explain how to use it. Alternatively,
several of our examples. so you have better formatting options, you might prefer to use a text
Before getting into more complex charting, however, box for this purpose. You could even dedicate a whole sheet for
let’s return to our Fourier Series spreadsheet, where we providing this sort of documentary. Note that you can include
only need to add a graph to illustrate the concept much properly formatted mathematical equations as images, and these will
more visually. Select all the figures in columns A and G look a lot better than single line formulae with loads of brackets.
and create an XY chart, choosing the option with lines And finally, make sure you give columns meaningful headings, and
but not points. You’ll immediately see that the result is the same might also apply to rows.
getting close to a square wave – albeit with some
XY charts
Figure 5: Plotting the Mandelbrot Set in a spreadsheet isn’t as tricky as
it might seem, even though it’s easier with a simple macro.
It might be quite
We’ve already used an XY chart, but apart from the fact
a mundane
that the x-axis shows the values of the independent
formula you’re
plot points instead of lines, we’ll look at a somewhat three cells, just copy them down for a few thousand
interested
fascinating method of plotting a fractal figure known cells. Finally, select the numbers in the columns
in to see an
as the Sierpinski Triangle. containing the x and y-coordinates of the current
immediate
As a quick reminder, a fractal figure is one that shows position and create an XY chart, using the variant with
result. self-similarity at all levels of magnification. The simplest points but not lines. To see the detail, you’ll need to
way to envisage the creation of a Sierpinski Triangle is to format the chart so the points are as small as possible.
this example of
get bored. The more points you plot, the closer the maps use colour to represent altitude.
an oscillating
result will come to the Sierpinski Triangle. Despite this omission, we are reporting it here in
quadratic Doing this with a pencil, paper, ruler, and a dice to the hope that someone might feel inspired to add this
membrane shows. generate the random number will take a long time. feature to the open source LibreOffice project. However,
we are also able to offer a work-around that will enable
you to produce something that looks very similar to a
contour plot.
The example we’re going to use is the simulation
of a square plate that’s vibrating due to soundwaves.
Physicists refer to this as an oscillating quadratic
membrane. You might have seen this done
experimentally, with fine powder spread on the plate to
indicate areas of movement – it can produce quite
intricate patterns. This was studied in the early 19th
century by Ernst Chladni, who discovered that the
behaviour is described by a partial differential equation.
Because this isn’t the place for a discussion on
physics, we’ll cut a long story short and look at how to
create a spreadsheet to plot the patterns of a plate that
is excited by two frequencies.
Mandelbrot madness
purely within LibreOffice Calc, using the laws of maths. However, it is
also useful for creating graphs of experimental results, perhaps
For our final example, we’re going to provide little in the combined with equivalent results from simulation studies generated
way of advice, with the aim of helping you learn a bit elsewhere. Calc offers several facilities that would be beneficial here.
more about technical uses of spreadsheets by figuring First of all, it’s especially useful when displaying several datasets
out the details yourself. That exercise is plotting all or a on a single XY chart that some can be shown as lines, while others
part of that most famous of fractals, the Mandelbrot set. can be shown as points. This allows experimental results to be shown
If you’re not familiar with it, you read up on it first. This as points, because intermediate values should not be interpolated, yet
is shown as a contour plot, so you’ll use the same simulated results could be shown as a line where intermediate values
method we saw for the oscillating quadratic membrane. are meaningful.
For this exercise, we suggest that you write a short Second, it is possible to show error bars – often required when
macro, despite our suggestion in the introduction that if showing experimental results. And third, trend lines can be added to a
you’re going to write code you might as well work in a series of points – these can be linear, logarithmic, exponential or
more conventional programming environment. However, power. In addition to drawing the line, Calc will also show you the
in this case, although people have plotted the equation that defines the line, so in the case of a linear trend line, for
Mandelbrot set in a spreadsheet without macros, we example, you can see the slope and the intercept with the y-axis.
believe that a small amount of work in creating that And finally, note that as an alternative to linear axes, Calc is able to
macro will more than pay for itself, by allowing the use logarithmic scales for either or both of the axes, which is a must
associated spreadsheet to be so much simpler. The for some datasets.
functionality of that macro is as follows:
ELASTICSEARCH
Build a search and
analytic engine
Mihalis Tsoukalos explains how to work with Elasticsearch, Logstash,
Beats and Kibana to build and improve your own search systems.
Figure 2: This
shows how you
messages, everything is fine with the Elasticsearch
can insert data
container. In the JSON output, you can see the
Elasticsearch version you’re running – in this case 7.5.1. to Elasticsearch
Now you should mainly do two more things. The first manually, using
curl. However,
software such
one is use some software to collect data and store it in
as Logstash
Elasticsearch, which in this case is going to be Logstash
and Filebeat is
and later Filebeat, and second, use other software
(Kibana) to process and visualise your collected data. usually used for
As all of these are being developed by the same putting data into
company, they work extremely well with each other. Elasticsearch.
Datacentric
Elasticsearch can store data without being able to
}
ELK is an
collect it. For the purposes of this section, we‘re going to
}
acronym for
manually put sample data and query it in the next
Elasticsearch,
section. Note that data is usually not inserted manually.
filter {
Logstash
Use curl as follows to put sample data in:
$ curl -XPUT “localhost:9200/lxf/external/ if [path] =~ “access” {
and Kibana.
mynewid?pretty” -H ‘Content-Type: application/json’ mutate { replace => { “type” => “apache_access” } } Recently the
-d ‘ grok { ELK stack has
{ “first_name”: “Mihalis”, match => { “message” => been renamed
“last_name”: “Tsoukalos” }’ “%{COMBINEDAPACHELOG}” } Elastic stack. All
} three products
are open
The data we just put into Elasticsearch will be stored in
}
source projects.
an index, which is how Elasticsearch organises its data.
date {
Elasticsearch
You can think of an index as a database in the relational
match => [ “timestamp” , “dd/MMM/yyyy:HH:mm:ss
was developed
database terminology. Lastly, a type in Elasticsearch is
Z” ]
first, and the
like a table in the relational database terminology. The
}
other two
name of the index is lxf and the id value is mynewid.
These values are defined in the endpoint used by curl. } followed next.
Figure 2 (see top right) shows the full interaction with In 2015, Elastic
Elasticsearch, which includes the Elasticsearch reply. output { added Beats to
Now query Elasticsearch using curl. The query that elasticsearch { the stack.
follows will return all documents in the lxf index: hosts => [“elasticsearch:9200”]
$ curl -XGET http://localhost:9200/lxf/_ index => “apache-logs”
search\?pretty\=true\&q\=\*:\* }
The next query will return all indices found in the stdout { codec => rubydebug }
running Elasticsearch instance: }
$ curl ‘localhost:9200/_cat/indices?v’
Logstash supports plugins for getting input and After that, select Next Step and choose @timetamp
Do not
sending output. To use a plugin, you need to specify its in the Time Filter Field Name area. When done, select
underestimate
name and the required options, which in this case is the Create Index Pattern. Now, select Visualize from the
the power of
path of the Apache log file that is going to be processed. Kibana menu and click on Create New Visualization.
a properly
The name of the Elasticsearch index will be apache-logs Choose Pie and the apache* source. Click on Add under
written docker-
– you are going to need this to be able to use the data Buckets and select Split Slices. Figure 4 (see right)
compose.yml from the Apache log file in Kibana. The filter part is what shows the options and the visualisation that was
configuration enables Logstash to understand and parse the different created using the data stored in the apache-logs
file because parts of each Apache access log entry. Elasticsearch index – the presented output visualises
it can save Start Logstash by going to /usr/share/logstash and the HTTP status codes.
you lots of
time when
executing ./bin/logstash -f /etc/logstash/apache-log. Note that Kibana has more capabilities and options
you want to
conf. Finally, put the Apache log file inside the Docker than this, but they cannot be covered in a single tutorial
from scratch.
Now that we’ve put some real data into Elasticsearch, and configure it from there.
we can visualise it using Kibana. The main advantage of Filebeat is that it enables you
Kibana visuals
to forward logs and files from multiple machines to a
central location, which means you don’t have to visit
The dedicated visualisation dashboard for Elasticsearch each machine individually to find out what is happening
is Kibana. Figure 3 (see below) shows the initial screen in there. Its second advantage is that it’s pretty
of Kibana, after connecting to http://localhost:5601. lightweight and will not create too much load on the
The Kibana UI is quite busy and can perplex first-time machine it runs on. Once again, we will use Kibana to
users. Note that you will connect to Kibana without view, process and analyse the data stored by Filebeat.
needing any username and password combination. Note that Filebeat, which is written in Go, can directly
The first step is to create an index pattern to get the forward data to both Elasticsearch and Logstash – it is
data that interests us from Elasticsearch. On the left up to you to decide how you are going to put your data
side of the screen you can see the various components to Elasticsearch: directly, without any processing, or
and options of Kibana. Go to Discover, and in the Create indirectly, for more advanced processing.
Index Pattern area, write apache* and select the As we are using Docker images for almost everything
apache-logs index from the list. in this tutorial, we will continue doing so here. To include
ABOUT KIBANA
Filebeat in the docker-compose.yml file, add the
following lines to it and restart it:
filebeat:
image: docker.elastic.co/beats/filebeat:7.5.1
Kibana offers analytics and a search dashboard for Elasticsearch, as container_name: filebeat
well as visualisation capabilities for data stored in Elasticsearch. user: root
Kibana is so handy that it would be a shame to use Elasticsearch links:
without combining it with Kibana. Generally speaking, you will not - elasticsearch
need to work so much with Elasticsearch directly as you will use environment:
Kibana to get and process data stored in it. However, knowing how to - ELASTICSEARCH_URL=http://elasticsearch:9200
execute queries in Elasticsearch can be handy for troubleshooting.
When using the default port number, Kibana can be accessed by
your browser via http://localhost:5601 or http://hostname:5601,
in case you want to access it from a different computer.
It’s a good idea to know some Kibana terminology. An index
pattern tells Kibana about the Elasticsearch indices you want to work
with. A dashboard allows you to group and organise multiple metrics
and visualisations. To visualise and explore data in Kibana, you need
to create an index pattern to retrieve data from Elasticsearch.
Kibana can also work with Vega – a convenient capability that will
enable you to customise visualisations. Learn more at www.elastic.
co/guide/en/kibana/current/vega-graph.html.
Kibana has support for machine learning for data analysis and as a
way of extracting conclusions or predictions from data, and also has
an interface for managing certain parts of Elasticsearch and Logstash. Figure 3: The initial screen of the Kibana UI, which contains lots of info
and data. On the left you can see available sections of Kibana.
Figure 5: The
Note that Filebeat also supports modules, these are
Filebeat config file
files used for parsing various popular types of log files –
the list of modules installed on the Docker image can be used for processing
found inside /usr/share/filebeat/modules.d/. You can an Apache access
log file, located
in the Filebeat
learn more about Filebeat modules at www.elastic.co/
Docker container.
guide/en/beats/filebeat/7.5/filebeat-modules.html.
Output is stored on
You can find more information about Filebeat at
www.elastic.co/products/beats/filebeat. Note that an Elasticsearch
Filebeat is a part of the Beats collection (www.elastic. server.
START HERE
FOR GRUMPY TEENS
REC. SPECS: 2GB MEMORY, 10GB DISK
S
be very confusing. It’ll be unlike
anything that you’ve likely operated
before, especially if you’re used to olus is an independent distro that first
Microsoft Windows or Apple appeared in 2012. Since then it has
macOS.
brought many innovations: its own
Generally our DVDs are designed
to be run directly, which is to say
Budgie desktop (with its gothically titled Raven
that when you first power on your sidebar), the Steam Linux Integration tool
PC (or Mac) it should ‘boot’ from (sadly now defunct), its bespoke package
the DVD – so before Windows or manager (eopkg) – and it has also nurtured
macOS even starts to load – with
an enthusiastic community.
Linux running directly from the
DVD. This trick is known as a Live It’s been nigh on a year since Solus 4.0
(Fortitude) was released (see our review in
LXF250), so we were excited to see what’s new
Disc. It enables you to try out the
various versions of Linux without Nevermore be bothered by lack of easy to access volume
having to install or change anything in this update. Solus is popular with gamers, and playback controls. Nevermore!
on your PC. Just remove the DVD,
restart your PC and it’ll be exactly
and this new release comes with the widely
as you left it. discussed ESync fixes streamlined, and support Calamares installer’s simple setup questions
While many systems will boot for third-gen Ryzen processors plus new GPUs than it will to copy onto the target drive. You’ll
from a DVD when it finds one, from AMD and Nvidia. Besides the new kernel find everything you need to get started is
many will not. See below for the (5.4.12) there’s also updated Mesa (19.3.2), and installed, with a bare minimum of cruft.
standard process for enabling gtreamer (1.16.2) packages, as well as various Solus follows a rolling release model, so if you
booting from a DVD on various
desktops and laptop PCs.
multimedia improvements. All of which should already use the Budgie edition your system will
contribute to a slick audio-visual experience. automatically receive this update. If not you’ll
The alternative option is to
locate the ISO file on the DVD and In line with other distros Solus now uses find Budgie 10.5.1 a pleasure to work with. It has
write this to your own USB thumb zstd compression for the Live disc. So, on an a stylish dark theme with which the bundled
drive and attemp to run that. We even modestly fast machine, you’ll notice the applications all integrate beautifully, a traditional
recommend using Etcher from Live environment is more responsive and find menu and a distinctly non-traditional but
https://balena.io/etcher that’s
available for Windows, macOS and
the installation process much quicker. It will eminently useful sidebar. Raven combines an
Linux. Good luck! probably take you longer to answer the applet area, for calendars and configuration
widgets, with a notifications area. It’s a slicker
solution than an overcrowded system tray whose
BOOT THE DISC residents occasionally interrupt you.
Many PCs should boot
We were told the next version of Budgie
automatically if they’re turned on
with a disc in the drive. If not, many would be based on Qt, but this may no longer be
offer an early Boot Menu accessed the case, with Experience Lead Joshua Stobl last
by tapping a key while powering up year suggesting the project would likely use
from cold: F9 (HP), F12 (Dell, GTK4. Either way we’re already excited for Solus
Lenovo), F8 (Amibios) or F11
(Award BIOS). Alternatively, use 5.0. There’s also a new Plasma-based Solus 4.1
the BIOS/UEFI to adjust the boot edition too (as well as new Gnome and MATE
order to start with the optical drive. editions), which almost went on the disc, but our
There are many beautiful backgrounds with Solus, and this
Again, this is accessed by tapping a disc replicators told us too much Plasma on the
tiny picture will never do them justice.
key during power up, usually Del
disc could cause atomic instability.
but sometimes F1 or F2. Some new
IMPORTANT NOTICE!
UEFI PCs require access via
Windows: holding Shift select its
Restart option. If you’re still having
problems using the DVD visit: DEFECTIVE DISCS: For basic help on running the disc or in the unlikely event of your
www.linuxformat.com/
dvdsupport Linux Format coverdisc being in any way defective, please visit our support site at
www.linuxformat.com/dvdsupport. Unfortunately, we’re unable to offer advice on
Mac owners: Hold the C key
while powering on your system using the applications, your hardware or the operating system itself.
to boot from the disc.
OpenMandriva Lx 4.1
Scripting Guide
64-bit Go further with shell scripting.
S
Bash Guide for Beginners
easoned readers will fondly remember a more stock take on the KDE Plasma desktop Get to grips with the basics
of Bash scripting.
Mandrake Linux from back in the day: than its own theme. The latter is, like Solus’
a French distro that had the audacity Budgie theme, a dark affair. Bourne Shell Scripting
to make Linux easy (well, easier, anyway). OpenMandriva is unusual in that the vast First steps in shell scripting.
Mandrake became a cosmopolitan fusion when majority of its packages are compiled with The Cathedral and
it merged with the Brazilian distro Conectiva LLVM-Clang which may offer increased the Bazaar
Eric S. Raymond’s classic text
Linux to form Mandriva Linux in 1998, a distro performance, but mostly makes life easier for
explains the advantages of
that lasted until 2011 – whereupon most of its developers compiling for multiple architectures open development.
developers joined the Mageia project via the (Arm releases are available, and a RISC-V port
Russian ROSA Linux fork. However, Mandriva is on the way). Under the bonnet it offers a The Debian Book
lives on in the form of OpenMandriva Lx, and bleeding-edge 5.5 series kernel, as well as the Essential guide for sysadmins.
like its globe-spanning lineage before, it offers option to install a Clang-compiled kernel, which Dive Into Python
a stylish take on the KDE desktop and lots of you can easily use to test the improved Everything you need to know.
features to make users happy. This latest performance claim. If you have a new AMD Introduction to Linux
release, which pleasingly has the same version processor, you’ll want to download the special A handy guide full of pointers
for new Linux users.
number as Solus, is codenamed Mercury. znver1-optimised build of the ISO, which better
OpenMandriva’s friendly welcome application exploits the capabilities of such hardware. Linux Dictionary
helps introduce new users to the OS and puts The distro switched to Fedora’s DNF package The A-Z of everything to do
with Linux.
various configuration options and common post- manager with the 4.0 release, and includes its
install tasks within easy reach. This is quite half-sister Mageia’s dnfdragora frontend for Linux Kernel in a Nutshell
handy on KDE because there are a number managing this. Packages are zstd-compressed An introduction to the kernel
written by master hacker
of places for such things to hide. One of so installation of new ones is very quick, and you
Greg Kroah-Hartman.
OpenMandriva’s most standout features is its can test this by installing popular applications
selection of desktop themes. It can be made to from the Welcome screen. You’ll find everything The Linux System
look like Windows, Ubuntu or macOS, and has you need is ready to go though. Administrator’s Guide
Take control of your system.
Tools Summary
Overview of GNU tools.
GNU Emacs Manual
Six hundred pages of
essential information!
Producing Open
Source Software
Everything you need to know.
Programming from
the Ground Up
Take your first steps.
Not everyone’s into making Linux videos, but if you are, OpenMandriva includes SimpleScreenRecorder.
LXFon s2ale
Editor Neil Mohr
Underpaid editor Jonni Bidwell
Art editor Efrain Hernandez-Mendoza
Production editor James Price
Group editor in chief Graham Barlow
Senior art editor Jo Gulliver
Editorial contributors
Mats Tage Axelsson, Michael Bedford, Neil Bothwick,
will be
Stuart Burns, Christian Cawley, Sean Conway,
Matthew Hanson, John Knight, Jon Masters, Chris
Tuesday
Notley, Aaron Peters, Nick Peers, Les Pounder,
Mayank Sharma, Shashank Sharma,
Alexander Tolstoy, Mihalis Tsoukalos
7 April
Cartoons Shane Collinge
Cover illustration magictorch.com
Raspberry Pi is a trademark of the Raspberry Pi Foundation.
SECURE YOUR
[email protected]
INTERNATIONAL LICENSING
Linux Format is available for licensing. Contact the
Licensing team to discuss partnership opportunities.
Head of Print Licensing Rachel Shaw
[email protected]
SUBSCRIPTIONS & BACK ISSUES
LINUX BOXES!
Web www.myfavouritemagazines.co.uk
Email [email protected]
UK 0344 848 2852 World +44 (0) 344 848 2852
CIRCULATION
Head of newstrade Tim Mathers
PRODUCTION AND DISTRIBUTION
Head of production UK & US Mark Constance
Production project manager Clare Scott
Advertising production manager Joanne Crosby
Digital editions controller Jason Hudson
Production controller Nola Cokely
THE MANAGEMENT
Chief content officer Aaron Asadi
stuff: servers, laptops and data. Commercial finance director Dan Jotcham
Printed by Wyndeham Peterborough, Storey’s Bar
Road, Peterborough, Cambridgeshire, PE1 5YS
Disclaimer All contents © 2020 Future Publishing Limited or published under licence.
All rights reserved. No part of this magazine may be used, stored, transmitted or
reproduced in any way without the prior written permission of the publisher. Future
Publishing Limited (company number 2008885) is registered in England and Wales.
Registered office: Quay House, The Ambury, Bath BA1 1UA. All information contained in
this publication is for information only and is, as far as we are aware, correct at the time
Linux Format is 20! of going to press. Future cannot accept any responsibility for errors or inaccuracies in
such information. You are advised to contact manufacturers and retailers directly with
regard to the price of products/services referred to in this publication. Apps and
websites mentioned in this publication are not under our control. We are not responsible
for their contents or any other changes or updates to them. This magazine is fully
How did that happen? We drag all the ex-editors kicking and independent and not affiliated in any way with the companies mentioned herein.
If you submit material to us, you warrant that you own the material and/or have the
necessary rights/permissions to supply the material and you automatically grant
screaming into a pub and ask them exactly that. Future and its licensees a licence to publish your submission in whole or in part in any/all
issues and/or editions of publications, in any format published worldwide and on
associated websites, social media channels and associated products. Any material you
submit is sent at your own risk and, although every care is taken, neither Future nor its
employees, agents, subcontractors or licensees shall be liable for loss or damage. We
assume all unsolicited material is for publication unless otherwise stated, and reserve
Education USA style the right to edit, amend, adapt all submissions.
All contents in this magazine are used at your own risk. We accept no liability for any
loss of data or damage to your systems, peripherals or software through the use of any
guide. Notes: Three short deadlines in a row was not fun.
The Raspberry Pi has helped kickstart a UK computer We are committed to only using magazine paper which is derived
from responsibly managed, certified forestry and chlorine-free
manufacture. The paper in this magazine was sourced and
revolution. We look at how that’s being transferred to the USA. produced from sustainable managed forests, conforming to strict
environmental and socioeconomic standards. The manufacturing
paper mill and printer hold full FSC and PEFC certification and
accreditation.
Desktop wars: which is the best? Future is an award-winning international media group and
leading digital business. We reach more than 57 million
international consumers a month and create world-class
content and advertising solutions for passionate consumers
We love a good argument, so tell us why we’re wrong when we online, on tablet & smartphone and in print.
code and how to write games, all at the same time. Madness. company quoted on the
London Stock Exchange
(symbol: FUTR)
Non-executive chairman Richard Huntingford
Chief financial officer Penny Ladkin-Brand
Contents of future issues subject to change – we might be too drunk from all the “celebrating”.