Category: software

A Guide to Compiling the Linux Kernel All By Yourself

A Guide to Compiling the Linux Kernel All By Yourself

A tinkerer’s guide to experiencing the compilation of the latest Linux kernel all by yourself.

17 Dolphin File Manager Tips and Tweaks for KDE Users

17 Dolphin File Manager Tips and Tweaks for KDE Users

Take full advantage of KDE’s customization ability. Tweak Dolphin file manager to your liking with these tips.

6 Best Linux Apps for Downloading Movie Subtitles in 2023

6 Best Linux Apps for Downloading Movie Subtitles in 2023

The post 6 Best Linux Apps for Downloading Movie Subtitles first appeared on Tecmint: Linux Howtos, Tutorials & Guides .

Are you facing difficulties in getting subtitles for your favorite movies, especially on major Linux desktop distributions? If so, then you are on the right

The post 6 Best Linux Apps for Downloading Movie Subtitles first appeared on Tecmint: Linux Howtos, Tutorials & Guides.

The 6 Best Tools to Create a Bootable USB From an ISO in Linux

The 6 Best Tools to Create a Bootable USB From an ISO in Linux

The 5 Best Tools to Create a Bootable USB From an ISO in Linux

by George Whittaker
Introduction

Creating a bootable USB drive is a cornerstone skill for anyone interested in exploring different operating systems or working in system administration. A bootable USB drive allows a user to boot into a different operating system, independent of the primary OS installed on the machine. This is particularly useful for system recovery, testing new OS builds, or installing a new system altogether. Linux, known for its robustness and versatility, offers a plethora of tools for creating bootable USB drives from ISO files, which are exact copies of disk data. This guide aims to delve into the top six tools available on Linux for crafting bootable USB drives from ISO files.

Understanding ISO Files

ISO files are disk image files that encapsulate the file system and the data content of a disk. They serve as exact digital replicas of optical disk data, whether it be a CD, DVD, or Blu-ray disk. The importance of ISO files in creating bootable USB drives cannot be overstated. They act as the source blueprint from which the bootable drive is created, ensuring that the resulting USB drive is an exact copy of the original disk data, necessary for correct operating system functionality and booting.

Top 6 Tools for Creating a Bootable USB in Linux

Ventoy

Ventoy is an open-source tool for creating bootable USB drives that supports a wide variety of Linux distributions. It allows users to easily install multiple operating systems on a single USB drive and switch between them without having to reformat or use multiple USB drives. Ventoy eliminates the need for writing ISO images to drives using tools like dd and Rufus, as it can detect and boot ISOs directly. The tool also supports persistent storage, allowing data to be saved across sessions. It has been designed with simplicity in mind and offers a straightforward graphical user interface for those who wish to avoid complex command line options.

UNetbootin

UNetbootin (Universal Netboot Installer) is a free and open-source tool that has been around for many years. It is widely recognized for its ease of use and support for a variety of operating systems.

Upon launching UNetbootin, you’re presented with the option to either download a distribution or use a pre-downloaded ISO file. Select the ISO file, choose the USB drive you want to write to, and click on the ‘OK’ button to start the creation process.

Rufus

Rufus is known for its speed and reliability. Though originally designed for Windows, it also operates on Linux. It’s a small utility that packs a punch, offering a range of system file types to cater to different OS requirements.

FOSS Weekly #23.39: Linux Shortcuts, LMDE 6, New Bazzite Distro and New Announcement

FOSS Weekly #23.39: Linux Shortcuts, LMDE 6, New Bazzite Distro and New Announcement

The wait and suspense is over. Here’s the new offering from It’s FOSS.

Core Knowledge That Modern Linux Kernel Developer Should Have

Core Knowledge That Modern Linux Kernel Developer Should Have

Core Knowledge That Modern Linux Kernel Developer Should Have

by Roman Storozhenko
Languages

The Linux Kernel is written in C programming language, so C is the most important language for the Linux Kernel developer. Initially, the kernel was written in GNU C (now it is also possible to build it using LLVM) which extends standard C with some additional keywords and attributes. I would recommend learning some modern C version like C11 and additionally learning GNU extensions to be able to read kernel code effectively. Small, architecture-specific parts of the kernel and some highly optimized parts of several drivers are written in assembly language. This is the second language of choice. There are 3 main architectures nowadays: x86, ARM, and RISC-V. What assembly language to choose depends on your hardware platform.

You definitely should look at Rust which is gaining popularity in the Linux Kernel community as a more safer and reliable alternativeto C.

Linux is a highly configurable system and its configurability is based on the kernel build system, KBuild. Each developer should know the basics of KBuild and Make to be able to successfully extend/modify the kernel code. Last, but not least is shell scripting. It is hard to imagine Kernel development without command-line usage and a developer inevitably has to write some shell scripts to support their job by automating repetitive tasks.

Software environment

The Linux Kernel development is inextricably linked to the Git source control system. It is not possible to imagine nowadays the kernel development workflow without it. So, Git knowledge is a requirement.

Unless kernel developers run their kernel on specific/customized hardware – emulation is the best developer’s friend. The most popular platform for this is Qemu/KVM. A typical workflow looks like this: a developer introduces some changes to the kernel or a driver, builds it, copies it under a virtual environment, and tests it there. If all is OK, then the developer tests these changes on real hardware, but if something goes wrong, then the kernel under the virtual machine crashes.  In this case, it is quite easy to just shut down VM, fix the error and repeat the development/debug cycle. If we didn’t have virtualization we would restart the real machine on each kernel crash and development time would increase in order of magnitude.

The 4 Best Twitter Clients for Linux in 2023

The 4 Best Twitter Clients for Linux in 2023

The post 4 Best Twitter Clients for Linux in 2023 (Updated) first appeared on Tecmint: Linux Howtos, Tutorials & Guides .

Twitter is one of the most popular and massively used blogging services on the Internet today, with the ever-increasing use of this amazing social media

The post 4 Best Twitter Clients for Linux in 2023 (Updated) first appeared on Tecmint: Linux Howtos, Tutorials & Guides.

3 Useful GUI and Terminal-Based Linux Disk Scanning Tools

3 Useful GUI and Terminal-Based Linux Disk Scanning Tools

The post 3 Essential Linux Disk Scanning Tools (GUI and Terminal Based) first appeared on Tecmint: Linux Howtos, Tutorials & Guides .

There are mainly two reasons for scanning a computer hard disk: one is to examine it for filesystem inconsistencies or errors that can result from

The post 3 Essential Linux Disk Scanning Tools (GUI and Terminal Based) first appeared on Tecmint: Linux Howtos, Tutorials & Guides.

arm vs aarch64 vs amd64 vs x86_64 vs x86: What's the Difference?

arm vs aarch64 vs amd64 vs x86_64 vs x86: What’s the Difference?

There are so many terms when it comes to CPU: aarch64, x86_64, amd64, arm and more. Learn what they are and how they differ from each other.

Linux Networking: A Simplified Guide to IP Addresses and Routing

Linux Networking: A Simplified Guide to IP Addresses and Routing

Linux Networking: A Simplified Guide to IP Addresses and Routing

by George Whittaker

Introduction

Every Linux enthusiast or administrator, at some point, encounters the need to configure or troubleshoot network settings. While the process can appear intimidating, with the right knowledge and tools, mastering Linux networking can be both enlightening and empowering. In this guide, we’ll explore the essentials of configuring IP addresses and routing on Linux systems.

Understanding Basic Networking Concepts

What is an IP address? Every device connected to a network has a unique identifier known as an IP address. This serves as its ‘address’ in the vast interconnected world of the Internet.

  • IPv4 vs. IPv6: While IPv4 is still prevalent, its successor, IPv6, offers a larger address space and improved features. IPv4 addresses look like 192.168.1.1, whereas IPv6 addresses resemble 1200:0000:AB00:1234:0000:2552:7777:1313.

  • Public vs. Private IPs: Public IPs are globally unique and directly reachable over the Internet. Private IPs are reserved for internal network use and are not routable on the public Internet.

Subnet Masks and Gateways: A subnet mask determines which portion of an IP address is the network and which is the host. The gateway, typically a router, connects local networks to external networks.

Routing: At its core, routing is the mechanism that determines how data should travel from its source to its destination across interconnected networks.

Network Configuration Tools in Linux

Linux offers both traditional tools like ifconfig and route and modern ones like ip, nmcli, and nmtui. The choice of tool often depends on the specific distribution and the administrator’s preference.

NetworkManager and systemd-networkd have also modernized network management, providing both CLI and GUI tools for configuration.

Configuring IP Addresses in Linux

  1. Using the ip command:

    • Display Current Configuration: ip addr show
    • Assign a Static IP: ip addr add 192.168.1.10/24 dev eth0
    • Remove an IP Address: ip addr del 192.168.1.10/24 dev eth0
  2. Using nmcli for NetworkManager: