What is an operating system?

An operating system (OS) is the Application Which, after being initially loaded into the computer by a boot program, oversees all the other application programs in a computer. The application programs make use of the working system by making Furthermore, users can interact directly with the operating system Via a user interface like a command line or a graphical user interface (GUI).

9 Popular Mobile Operating Systems

Android OS (Google Inc.) ...
2. Bada (Samsung Electronics) ...
BlackBerry OS (Research In Motion) ...
iPhone OS / iOS (Apple) ...
MeeGo OS (Nokia and Intel) ...
Palm OS (Garnet OS) ...
Symbian OS (Nokia) ...
webOS (Palm/HP) ...

Types of operating systems.

Operating systems normally include pre-loaded on almost any Computer you purchase. Many men and women use the operating system which comes with their computer, however it is possible to update or perhaps alter operating systems. The three most frequent operating systems for personal computers are Microsoft Windows, macOS, and Linux. A GUI enables you to use your mouse to click on icons, switches , and menus, and that which is clearly displayed on the display by means of a combo of images and text. Each operating system's GUI includes a different feel and look, so if you Switch to another operating system it might appear unfamiliar at first. However, modern operating systems have been made to be effortless to utilize , and the majority of the fundamental principles are exactly the same.

Microsoft established the Windows operating platform at the mid-1980s. There have been a number of distinct variants of Windows, but the latest ones are Windows 10 (published in 2015), Windows 8 (2012), Windows 7 (2009), along with Windows Vista (2007). Windows includes pre-loaded on many new PCs, which helps to ensure it is the hottest operating system on the planet.
Microsoft Windows
Microsoft established the Windows operating platform at the mid-1980s. There have been a number of distinct variants of Windows, but the latest ones are Windows 10 (published in 2015), Windows 8 (2012), Windows 7 (2009), along with Windows Vista (2007). Windows includes pre-loaded on many new PCs, which helps to ensure it is the hottest operating system on the planet.
MacOS (formerly called OS X) is a Lineup of operating systems made by Apple. It comes preloaded on all Macintosh computers, or Macs. A number of the specific models include Mojave (published in 2018), High Sierra (2017), and Sierra (2016). Based on StatCounter Global Stats, macOS users accounts for significantly less than 10 percent of international functioning systems--considerably lower than the percent of Windows users (greater than 80 percent ). 1 reason behind this is that Apple computers have a tendency to be costlier. But a lot of individuals do prefer the appearance and feel of macOS over Windows.
macOS
MacOS (formerly called OS X) is a Lineup of operating systems made by Apple. It comes preloaded on all Macintosh computers, or Macs. A number of the specific models include Mojave (published in 2018), High Sierra (2017), and Sierra (2016). Based on StatCounter Global Stats, macOS users accounts for significantly less than 10 percent of international functioning systems--considerably lower than the percent of Windows users (greater than 80 percent ). 1 reason behind this is that Apple computers have a tendency to be costlier. But a lot of individuals do prefer the appearance and feel of macOS over Windows.
Linux (pronounced LINN-ux) is a household of open-source operating systems, so they may be altered and distributed by all around the globe. This differs from proprietary program such as Windows, which may only be altered by the organization that owns it. The benefits of Linux are that it's free, and there are several different distributions or variations you may select from. Based on StatCounter Global Stats, Linux users accounts for under 2 percent of international functioning systems. But most servers run Linux since it's relatively simple to personalize.
Linux
Linux (pronounced LINN-ux) is a household of open-source operating systems, so they may be altered and distributed by all around the globe. This differs from proprietary program such as Windows, which may only be altered by the organization that owns it. The benefits of Linux are that it's free, and there are several different distributions or variations you may select from. Based on StatCounter Global Stats, Linux users accounts for under 2 percent of international functioning systems. But most servers run Linux since it's relatively simple to personalize.
The operating systems we have been speaking about so much were created to operate on desktop and notebook computers. Mobile apparatus like telephones , tablets , and MP3 players Are distinct from desktop and notebook computers, so that they run operating systems that have been designed especially for mobile devices. From the screenshot below, you can view iOS running in an iPad. Operating systems for mobile devices normally are not as fully featured As those created for desktop and notebook computers, and they are not capable to Run each the exact same software. But, you can still perform a Great Deal of things Together, like watch videos, browse the net, manage your calendarand play games.
Operating systems for mobile devices
The operating systems we have been speaking about so much were created to operate on desktop and notebook computers. Mobile apparatus like telephones , tablets , and MP3 players Are distinct from desktop and notebook computers, so that they run operating systems that have been designed especially for mobile devices. From the screenshot below, you can view iOS running in an iPad. Operating systems for mobile devices normally are not as fully featured As those created for desktop and notebook computers, and they are not capable to Run each the exact same software. But, you can still perform a Great Deal of things Together, like watch videos, browse the net, manage your calendarand play games.
An Introduction to Linux Gaming thanks to ProtonDB
by Zachary Renz

Video Games On Linux? 

In this article, the newest compatibility feature for gaming will be introduced and explained for all you dedicated video game fanatics. 

Valve releases its new compatibility feature to innovate Linux gaming, included with its own community of play testers and reviewers.

In recent years we have made leaps and strides on making Linux and Unix systems more accessible for everyone. Now we come to a commonly asked question, can we play games on Linux? Well, of course! And almost, let me explain. 

Proton compatibility layer for Steam client 

With the rising popularity of Linux systems, valve is going ahead of the crowd yet again with proton for their steam client (computer program that runs your purchased games from Steam). Proton is a variant of Wine and DXVK that lets Microsoft Games run on Linux operating systems. Proton is backed by Valve itself and can easily be added to any steam account for Linux gaming, through an integration called "Steam Play." 

Lately, there has been a lot of controversy as Microsoft is rumored to someday release its own app store and disable...

GUI LVM Tools
by Ares Lee

The LVM is a powerful storage management module which is included in all the distributions of Linux now. It provides users with a variety of valuable features to fit different requirements. The management tools that come with LVM are based on the command line interface, which is very powerful and suitable for automated/batch operations. But LVM's operations and configuration are quite complex because of its own complexity. So many software companies including Red Hat have launched some GUI-based LVM tools to help users manage LVM more easily. Let’s review them here to see the similarities and differences between individual tools.

system-config-lvm (alternate name LVM GUI)

Provider: Red Hat

The system-config-lvm is the first GUI LVM tool which was originally released as part of Red Hat Linux. It is also called LVM GUI because it is the first one. Later, Red Hat also created an installation package for it. So system-config-lvm is able to be used in other Linux distributions. The installation package includes RPM packages and DEB packages.

The main panel of system-config-lvm

The main panel of system-config-lvm

The system-config-lvm...

Terminal Vitality - Difference Engine
by George F Rice

Ever since Douglas Engelbart flipped over a trackball and discovered a mouse, our interactions with computers have shifted from linguistics to hieroglyphics. That is, instead of typing commands at a prompt in what we now call a Command Line Interface (CLI), we click little icons and drag them to other little icons to guide our machines to perform the tasks we desire. 

Apple led the way to commercialization of this concept we now call the Graphical User Interface (GUI), replacing its pioneering and mostly keyboard-driven Apple // microcomputer with the original GUI-only Macintosh. After quickly responding with an almost unusable Windows 1.0 release, Microsoft piled on in later versions with the Start menu and push button toolbars that together solidified mouse-driven operating systems as the default interface for the rest of us. Linux, along with its inspiration Unix, had long championed many users running many programs simultaneously through an insanely powerful CLI. It thus joined the GUI party late with its likewise insanely powerful yet famously insecure X-Windows framework and the many GUIs...

raspberry-pi-zero-w
by Ramon Persaud

I've been playing around with the Raspberry Pi Zero W lately and having so much fun on the command line. For those uninitiated it's a tiny Arm computer running Raspbian, a derivative of Debian. It has a 1 GHz processor that had the ability to be overclocked and 512 MB of RAM, in addition to wireless g and bluetooth.

raspberry pi zero w with wireless g and bluetooth

A few weeks ago I built a garage door opener with video and accessible via the net. I wanted to do something a bit different and settled on a dashcam for my brother-in-law's SUV.

I wanted the camera and Pi Zero W mounted on the dashboard and to be removed with ease. On boot it should autostart the RamDashCam (RDC) and there should also be 4 desktop scripts dashcam.sh, startdashcam.sh, stopdashcam.sh, shutdownshutdown.sh. Also create and a folder named video on the Desktop for the older video files. I also needed a way to power the RDC when there is no power to the vehicle's usb ports. Lastly I wanted it's data accessible on the local LAN when the vehicle is at home.

Here is the parts list:

  1. Raspberry Pi Zero W kit (I got mine from Vilros.com)
  2. Raspberry Pi official camera
  3. Micro...

In the earlier tutorial, we showed you how to work with TabView to display a tab bar interface. In iOS 14, Apple introduced a new style called PageTabViewStyle in the SwiftUI framework for developers to create paged scrolling interface. In this tutorial, we will show you how to implement his type of tab view style. Let’s begin with a simple tab view. Assuming you’ve created a SwiftUI project, you can replace the ContentView struct like this: When you run the app in the preview canvas, this gives you a tab view with 5 tab items. Creating a Paged Scrolling View […]

For experienced developers, you probably have used the Core Graphics APIs to draw shapes and objects. It’s a very powerful framework for you to create vector-based drawings. SwiftUI also provides several vector drawing APIs for developers to draw lines and shapes. In this tutorial, you will learn how to draw lines, arcs, and pie charts using Path and the built-in Shape such as Circle and RoundedRectangle. Here are the topics we’ll cover: Understanding Path and how to draw a line How to draw curve How to draw a pie chart Note: This is a excerpt of our Mastering SwiftUI book. […]

swift-ios14-programming-bookWe are launching an iOS 14 update for our flagship iOS programming course – Beginning iOS 14 Programming with Swift. The course has been fully updated for iOS 14, Swift 5.3, and Xcode 12. The beginner book is still written for beginners who want to grasp the iOS development skills and train yourself to become a profession iOS developer. We have reviewed all the source code and re-captured all screenshots to support Xcode 12. The demo app is also fully updated for iPhone 12 and iPad Pro, plus it now supports dark mode. On top of all that, we will […]

Bash Tips and Tricks
by Antonio Riso

Introduction

When spending most of your day around bash shell, it is not uncommon to waste time typing the same commands over and over again. This is pretty close to the definition of insanity.

Luckily, bash gives us several ways to avoid repetition and increase productivity.

Today, we will explore the tools we can leverage to optimize what I love to call “shell time”.

Aliases

Bash aliases are one of the methods to define custom or override default commands.

You can consider an alias as a “shortcut” to your desired command with options included.

Many popular Linux distributions come with a set of predefined aliases.

Let’s see the default aliases of Ubuntu 20.04, to do so simply type “alias” and press [ENTER].

Bash Tips and Tricks 1

By simply issuing the command “l”, behind the scenes, bash will execute “ls -CF”.

It's as simple as that.

This is definitely nice, but what if we could specify our own aliases for the most used commands?! The answer is, of course we can!

One of the commands I use extremely often is “cd ..” to change the working directory to the parent folder. I have spent so much time hitting...

Pardus GNU/Linux Migration
by Huseyin GUC

Eyüpsultan Municipality decided to use an open source operating system in desktop computers in 2015.

The most important goal of the project was to ensure information security and reduce foreign dependency.

As a result of the research and analyzes prepared, a detailed migration plan was prepared.

As a first step, licensed office software installed on all computers has been removed. LibreOffice software was installed instead.

Later, LibreOffice training was given to the municipal staff.

Pardus GNU/Linux

Meanwhile, preparations were made for the operating system migration.

Instead of the existing licensed operating system, Turkey's developed Pardus GNU / Linux distribution was decided to use.

Applications on the Pardus GNU / linux operating system were examined in detail and unnecessary applications were removed.

And a new ISO file was created with the applications used in Eyüpsultan municipality.

This process automated the setup steps and reduced setup time.

While the project continued at full speed, the staff were again trained on LibreOffice and Pardus GNU / linux.

After their training, the users took...

Linux BPF For Observability: Getting Started Quickly
by Kevin Dankwardt

How and Why for BPF

BPF is a powerful component in the Linux kernel and the tools that make use of it are vastly varied and numerous. In this article we examine the general usefulness of BPF and guide you on a path towards taking advantage of BPF’s utility and power. One aspect of BPF, like many technologies, is that at first blush it can appear overwhelming. We seek to remove that feeling and to get you started.

What is BPF?

BPF is the name, and no longer an acronym, but it was originally Berkeley Packet Filter and then eBPF for Extended BPF, and now just BPF. BPF is a kernel and user-space observability scheme for Linux.

A description is that BPF is a verified-to-be-safe, fast to switch-to, mechanism, for running code in Linux kernel space to react to events such as function calls, function returns, and trace points in kernel or user space.

To use BPF one runs a program that is translated to instructions that will be run in kernel space. Those instructions may be interpreted or translated to native instructions. For most users it doesn’t matter the exact nature.

While in the kernel, the...

Linux For Beginners
by John Duchek

So you have decided to give the Linux operating system a try. You have heard it is a good stable operating system with lots of free software and you are ready to give it a shot. It is downloadable for free, so you get on the net and search for a copy, and you are in for a shock. Because there isn’t one “Linux”, there are many. Now you feel like a deer in the headlights. You want to make a wise choice, but have no idea where to start. Unfortunately, this is where a lot new Linux users give up. It is just too confusing.

The many versions of Linux are often referred to as “flavors” or distributions. Imagine yourself in an ice cream shop displaying 30+ flavors. They all look delicious, but it’s hard to pick one and try it. You may find yourself confused by the many choices but you can be sure you will leave with something delicious. Picking a Linux flavor should be viewed in the same way.

As with ice cream lovers, Linux users have their favorites, so you will hear people profess which is the “best”. Of course, the best is the one that you conclude, will fit your needs. That might not be the first one...

SeaGL - Seattle GNU/Linux Conference
by Webmaster

This Friday, November 13th and Saturday, November 14th, from 9am to 4pm PST the 8th annual SeaGL will be held virtually. This year features four keynotes, and a mix of talks on FOSS tech, community and history. SeaGL is absolutely free to attend and is being run with free software!

Additionally, we are hosting a pre-event career expo on Thursday, November 12th from 1pm to 5pm. Counselors will be available for 30 minute video sessions to provide resume reviews and career guidance.

Mission

The Seattle GNU/Linux conference (SeaGL) is a free, as in freedom and tea, grassroots technical summit dedicated to spreading awareness and knowledge about free/libre/open source software, hardware, and culture.

SeaGL strives to be welcoming, enjoyable, and informative for professional technologists, newcomers, enthusiasts, and all other users of free software, regardless of their background knowledge; providing a space to bridge these experiences and strengthen the free software movement through mentorship, collaboration, and community.

Dates/Times

  • November 13th and 14th
  • Friday and Saturday
  • Main Event:...

Hot Swappable Filesystems, as Smooth as Btrfs
by Tedley Meralus

Filesystems, like file cabinets or drawers, control how your operating system stores data. They also hold metadata like filetypes, what is attached to data, and who has access to that data. For windows or macOS users

Quite honestly, not enough people consider which file system to use for their computers.

Windows and macOS users have no valid reason to look into filesystems because they have one that’s been widely used since its inception. For Windows that’s NTFS and macOS that’s HFS+. For Linux users, there are plenty of different file system options to choose from. The current default in the Linux field is known as the Fourth Extended Filesystem or ext4.

Currently there is discussion for changes in the filesystem space of Linux. Much like the changes to the default init systems and the switch to systemd a few years ago, there has been a push for changing the default Linux filesystem to the Btrfs. No, I'm not using slang or trying to insult you. Btrfs stands for the B-Tree file system. Many Linux users and sysadmins were not too happy with its initial changes. That could be because people are...

How to Try Linux Without a Classical Installation
by Antonio Riso

For many different reasons, you may not be able to install Linux on your computer.

Maybe you are not familiar with words like partitioning and bootloader, maybe you share the PC with your family, maybe you don’t feel comfortable to wipe out your hard drive and start over, or maybe you just want to see how it looks before proceeding with a full installation.

I know, it feels frustrating, but no worries, we have got you covered!

In this article, we will explore several ways to try Linux out without the hassle of a classical installation.

Choosing a distribution

In the Linux world, there are several distributions which are quite different between them.

Some are general purpose operating systems, some others are created with a specific use case in mind. That being said, I know how confusing this can be for a beginner.

If you are moving your first steps with Linux and you are still not sure how and why to pick a distribution instead of another one, there are several resources online available to help you.

A perfect example of these resources is the website https://distrochooser.de/ which will...

Creating EC2 Duplicate with Ansible
by Tomasz Szandała

Many companies like mine use AWS infrastructure as a service (IaaS) heavily. Sometimes we want to perform a potentially risky operation on an EC2 instance. As long as we do not work with immutable infrastructure it is imperative to be prepared for instant revert.

One of the solutions is to use a script that will perform instance duplication, but in modern environments, where unification is an essence it would be wiser to use more common known software instead of making up a custom script.

Here comes the Ansible!

Ansible is a simple automation software. It handles configuration management, application deployment, cloud provisioning, ad-hoc task execution, network automation, and multi-node orchestration. It is marketed as a tool for making complex changes like zero-downtime rolling patching, therefore we have used it for this straightforward snapshotting task.

Requirements

For this example we will only need an Ansible, in my case it was version 2.9 - in subsequent releases there is a major change with introducing collections so let's stick with this one for simplicity.

Due to working with...

Pretty Good Privacy (PGP) and Digital Signatures
by Ankur Kothiwal

If you have sent any plaintext confidential emails to someone (most likely you did), have you ever questioned yourself about the mail being tampered with or read by anyone during transit? If not, you should!

Any unencrypted email is like a postcard. It can be seen by anyone (crackers/security hackers, corporations, governments, or anyone with the required skills), during its transit.

In 1991 Phil Zimmermann, a free speech activist, and anti-nuclear pacifist developed Pretty Good Privacy (PGP), the first software available to the general public that utilized RSA (a public key cryptosystem, will discuss it later) for email encryption and signing. Zimmermann, after having had a friend post the program on the worldwide Usenet, got prosecuted by the U.S. government; later he was charged by the FBI for illegal weapon export because encryption tools were considered as such (all charges were eventually dropped). Zimmermann later founded PGP Inc., which is now part of Symantec Corporation.

In 1997 PGP Inc. submitted a standardization proposal to the Internet Engineering Task Force. The standard was...

Mark Text vs. Typora: Best Markdown Editor For Linux?
by Sarvottam Kumar

Markdown is a widely used markup language, which is now not only used for creating documentation or notes but also for creating static websites (using Hugo or Jekyll). It is supported by major sites like GitHub, Bitbucket, GitLab, Stack Exchange, and Reddit.

Markdown follows a simple easy-to-read and easy-to-write plain text formatting syntax. By just using non-alphabetic characters like asterisk (*), hashtag (#), backtick (`), or dash (-), you can format text as bold, italics, lists, headings, tables and so on.

Now, to write in Markdown, you can choose any Markdown applications available for Windows, macOS, and Linux desktop. You can even use web-based in-browser Markdown editors like StackEdit. But if you’re specifically looking for the best Markdown editor for Linux desktop, I present you two Markdown editors: Mark Text and Typora.

I’ve also tried other popular Markdown apps available for Linux platforms such as Joplin, Remarkable, ReText, and Mark My Words. But the reason I chose Mark Text and Typora is the seamless live preview features with distraction free user interface. Unlike other...

In WWDC 2019, Apple announced a brand new feature for Xcode 11; the capability to create a new kind of binary frameworks with a special format called XCFramework. That was fantastic news to anyone, since an ongoing inconvenient situation that was lasting for years finally came to its end. Up until then, a binary framework could be used in one target platform only, and for a specific family of devices. For example, it was officially impossible to build a framework that would contain code aiming on both real iOS devices and the Simulator; unofficial solutions had come up of course […]

TCP Analysis with Wireshark
by Jeffrey Stewart

Transmission Control is an essential aspect of network activity and governs the behavior of many services we take for granted. When sending your emails or just browsing the web you are relying on TCP to send and receive your packets in a reliable fashion. Thanks to two DARPA scientists, Vinton Cerf and Bob Kahn who developed TCP/IP in 1970, we have a specific set of rules that define how we communicate over a network. When Vinton and Bob first conceptualized TCP/IP, they set up a basic network topology and a device that can interface between two other hosts.

Network A Network B

In the Figure 1 we have two networks connected by a single gateway. The gateway plays an essential role in the development of any network and bares the responsibility of routing data properly between these two networks.

Since the gateway must understand the addresses of each host on the network, it is necessary to have a standard format in every packet that arrives. Vince and Bob called this the internetwork header prefixed to the packet by the source host.

Internetwork header

The source and destination entries, along with the IP address, uniquely...

How to Add a Simple Progress Bar in Shell Script
by Nawaz Abbasi

At times, we need to write shell scripts that are interactive and user executing them need to monitor the progress. For such requirements, we can implement a simple progress bar that gives an idea about how much task has been completed by the script or how much the script has executed.

To implement it, we only need to use the “echo” command with the following options and a backslash-escaped character.

-n : do not append a newline
-e : enable interpretation of backslash escapes
r : carriage return (go back to the beginning of the line without printing a newline)

For the sake of understanding, we will use “sleep 2” command to represent an ongoing task or a step in our shell script. In a real scenario, this could be anything like downloading files, creating backup, validating user input, etc. Also, to give an example we are assuming only four steps in our script below which is why we are using 20,40,60,80 (%) as progress indicator. This can be adjusted as per the number of steps in a script. For instance, a script with three steps can be represented by 33,66,99 (%) or a script with ten steps...

Article Images
Image
Ubuntu 20.10 “Groovy Gorilla” Arrives With Linux 5.8, GNOME 3.38, Raspberry Pi 4 Support

Just two days ago, Ubuntu marked the 16th anniversary of its first ever release, Ubuntu 4.10 “Warty Warthog,” which showed Linux could be a more user friendly operating system.

Back to now, after the six months of development cycle and the release of the current long-term Ubuntu 20.04 “Focal Fossa,” Canonical has announced a new version called Ubuntu 20.10 “Groovy Gorilla” along with its seven official flavor: Kubuntu, Lubuntu, Ubuntu MATE, Ubuntu Kylin, Xubuntu, Ubuntu Budgie, and Ubuntu Studio.

Ubuntu 20.10 is a short term or non-LTS release, which means it will be supported for 9 months until July 2021. Though v20.10 does not seem a major release, it does come with a lot of exciting and new features. So, let’s see what Ubuntu 20.10 “Groovy Gorilla” has to offer:

New Features in Ubuntu 20.10 “Groovy Gorilla”

Groovy Gorilla

Ubuntu desktop for Raspberry Pi 4

Starting with one of the most important enhancements, Ubuntu...

Btrfs on CentOS
by Charles Fisher

Introduction

The btrfs filesystem has taunted the Linux community for years, offering a stunning array of features and capability, but never earning universal acclaim. Btrfs is perhaps more deserving of patience, as its promised capabilities dwarf all peers, earning it vocal proponents with great influence. Still, none can argue that btrfs is unfinished, many features are very new, and stability concerns remain for common functions.

Most of the intended goals of btrfs have been met. However, Red Hat famously cut continued btrfs support from their 7.4 release, and has allowed the code to stagnate in their backported kernel since that time. The Fedora project announced their intention to adopt btrfs as the default filesystem for variants of their distribution, in a seeming juxtaposition. SUSE has maintained btrfs support for their own distribution and the greater community for many years.

For users, the most desirable features of btrfs are transparent compression and snapshots; these features are stable, and relatively easy to add as a veneer to stock CentOS (and its peers). Administrators are...

How to Secure Your Website with OpenSSL and SSL Certificates
by Tedley Meralus

The Internet has become the number one resources for news, information, events, and all things social. As most people know there are many ways to create a website of your own and capture your own piece of the internet to share your stories, ideas, or even things you like with others. When doing so it is important to make sure you stay protected on the internet the same way you would in the real world. There are many steps to take in the real world to stay safe, however, in this article we will be talking about staying secure on the web with an SSL certificate.

OpenSSL is a command line tool we can use as a type of "bodyguard" for our webservers and applications. It can be used for a variety of things related to HTTPS, generating private keys and CSRs (certificate signing requests), and other examples. This article will break down what OpenSSL is, what it does, and examples on how to use it to keep your website secure. Most online web/domain platforms provide SSL certificates for a fixed yearly price. This method, although it takes a bit of technical knowledge, can save you some money and keep...

The tab bar interface appears in some of the most popular mobile apps such as Facebook, Instagram, and Twitter. A tab bar appears at the bottom of an app screen and let users quickly switch between different functions of an app. In UIKit, you use the UITabBarController to create the tab bar interface. For the SwiftUI framework, it provides a UI component called TabView for developers to display tabs in the apps. In this tutorial, we will show you how to create a tab bar interface using TabView, handle the tab selection, and customize the appearance of the tab bar. […]

mastering-swiftui-2We are launching the update of our Mastering SwiftUI book for Xcode 12 and iOS 14. Along with the release of Xcode 12, Apple released a big update to the SwiftUI framework with a lot of additions. Other than adding new UI components to streamline your UI development, Xcode 12 introduces a new App lifecycle API for SwiftUI. There are no more AppDelegate and SceneDelegate in the project. In other words, you can build a pure SwiftUI-based on iOS 14. All the content and projects of our Mastering SwiftUI book are updated to use this new lifecycle. You will learn […]

How to Use Shell Scripting in Linux
by Nawaz Abbasi

Simply put, a Shell Script is a program that is run by a UNIX/Linux shell. It is a file that contains a series of commands which are executed sequentially as if they were entered on the command line interface (CLI) or terminal.

In this quick tutorial on Shell Scripting, we will write a simple program to toss a coin. Basically, the output of our program should be either HEADS or TAILS (of course, randomly).

To start with, the first line of a shell script should indicate which interpreter/shell is to be used to execute the script. In this tutorial we will be using /bin/bash and it will be denoted as #!/bin/bash which is called a shebang!

Next, we will be using an internal Bash function - a shell variable named RANDOM. It returns a random (actually, pseudorandom) integer in the range 0-32767. We will use this variable to get 2 random values – either 0 (for HEADS) or 1 (for TAILS). This will be done via a simple arithmetic operation in shell using % (Modulus operator, returns remainder), $((RANDOM%2)) and this will be stored in a result variable. So, the second line of our program becomes...

How To Kill Zombie Processes on Linux
by Nawaz Abbasi

Killing Zombies!

Also known as “defunct” or “dead” process – In simple words, a Zombie process is one that is dead but is present in the system’s process table. Ideally, it should have been cleaned from the process table once it completed its job/execution but for some reason, its parent process didn’t clean it up properly after the execution.

In a just (Linux) world, a process notifies its parent process once it has completed its execution and has exited. Then the parent process would remove the process from process table. At this step, if the parent process is unable to read the process status from its child (the completed process), it won’t be able to remove the process from memory and thus the process being dead still continues to exist in the process table – hence, called a Zombie!

In order to kill a Zombie process, we need to identify it first. The following command can be used to find zombie processes:

$ ps aux | egrep "Z|defunct"

Z in the STAT column and/or [defunct] in the last (COMMAND) column of the output would identify a Zombie process.

Now practically you can’t kill a Zombie...

Linux Command Line Interface Introduction: A Guide to the Linux CLI
by Antonio Riso

Let’s get to know the Linux Command Line Interface (CLI).

  • Introduction
  • A bit of history
  • First look at the command line
  • Command syntax
  • Notes
  • Basic commands
    • pwd
    • ls
    • file
    • cat
    • cd
    • clear
    • history
    • cp
    • mv
    • rm

Introduction

The Linux command line is a text interface to your computer.

Also known as shell, terminal, console, command prompts and many others, is a computer program intended to interpret commands.

Allows users to execute commands by manually typing at the terminal, or has the ability to automatically execute commands which were programmed in “Shell Scripts”.

A bit of history

The Bourne Shell (sh) was originally developed by Stephen Bourne while working at Bell Labs.

Released in 1979 in the Version 7 Unix release distributed to colleges and universities.

The Bourne Again Shell (bash) was written as a free and open source replacement for the Bourne Shell.

Given the open nature of Bash, over time it has been adopted as the default shell on most Linux systems.

First look at the command line

Now that we have covered some basics, let’s open a terminal window and see how it looks!

First look at the command line

When a terminal is...

How To Upgrade From Fedora 32 To Fedora 33
by Sarvottam Kumar

Last week, a Red Hat-sponsored community project, Fedora, announced the availability of Fedora 33 Beta. It is a prerelease version of the upcoming Fedora 33 Linux distribution, whose final stable version will arrive in the last week of October.

Fedora 33 is one of the exciting releases as it contains the fundamental shift of the default filesystem from ext4 to btrfs for all Fedora desktop editions and spins, along with other new features and visual changes.

Here are some of the key updates that Fedora 33 Beta includes:

  • GNOME 3.38 desktop environment
  • Linux Kernel 5.8
  • GNU Nano as default terminal text editor
  • earlyOOM enabled by default in Fedora 33 KDE
  • Fedora IoT as an official edition
  • Package update like Ruby, Python, and Perl

For complete details of all features, you can check out the Fedora 33 change set.

Coming to the main topic, you can also upgrade your current Fedora system to the beta version of Fedora 33, which you’ll also be able to upgrade further to the final stable release by simply updating your system once it arrives at the end of October.

So, if you’re the one who wants...

Article Images
Image
Linux Mint 20.1 “Ulyssa” Will Arrive In Mid-December With Chromium, WebApp Manager

As the Linux Mint team is progressing to release the first point version of Linux Mint 20 series, its founder and project leader Clement Lefebvre has finally revealed the codename for Linux Mint 20.1 as “Ulyssa”. He has also announced that Mint 20.1 will most probably arrive in mid-December (just before Christmas).

Until you wait for its beta release to test Linux Mint 20.1, Clement has also shared some great news regarding the new updates and features that you’ll get in Mint 20.1.

First, packaging of open source Chromium web browser and its updates directly through the official Mint repositories. As the team noticed delays between the official release and the version available in Linux distros, it has now decided to set up their own packaging and build Chromium package based on upstream code, along with some patches from Debian and Ubuntu as well.

As a result, the first test build of Chromium is available to download from here.

In last month's blog, the Mint team introduced a new WebApp Manager, inspired by Peppermint OS and its SSB...

The Preservation and Continuation of the Iconic Linux Journal
by Matthew R. Higgins

Editor's note: Thank you to returning contributor Matthew Higgins for these reflections on what the return and preservation of Linux Journal means.

As we welcome the return of Linux Journal, it’s worth recognizing the impact of the September 22nd announcement of the magazine’s return and how it sparked many feelings of nostalgia and excitement in thousands among the Linux community. That being said, it is also worth noting that the ways in which journalism has changed since Linux Journal’s first publication in 1994. The number of printed magazines have significantly decreased and exclusively digitally published content has become the norm in most cases. Linux Journal experienced this change in 2011 when the print version of the magazine was discontinued. Although many resented the change, it is far from the only magazine that embraced this trend. Despite the bitterness by some, embracing the digital version of Linux Journal allowed for its writers and publishers to direct their focus on taking full advantage of what the internet had to offer. 

Despite several advantages of an online...

Installing Ubuntu with Two Hard Drives
by Tedley Meralus

Many computers these days come with two hard drives, one SSD for fast boot speeds, and one that can be used for storage. My Dell G5 gaming laptop is a great example with a 128GB NAND SSD and a 1TB SSD. When building out a Linux installation I have a few options. Option 1: Follow the steps and install Ubuntu on one SSD hard drive for quick boot times and better speed performance when opening files or moving data. Then mounting the second drive and copying files to it when I want to backup files or need to move files off the first drive. Or, Option 2: install Ubuntu on an older hard drive with more storage but slower start up speeds and use the 128GB as a small mount point.

However, as most Linux users are aware, solid state drives are much faster, and files, folders, and drives on a Linux system all have mount points that can be setup with ease.

In this article we’ll go over how to install Ubuntu Linux with separate /root and /home directories on two separate drives – with root folder on the SSD and home folder on the 1TB hard drive. This allows me to leverage the boot times and speed of the...

Image
IPFire 2.25 - Core Update 147

Michael Tremer, maintainer of the IPFire project, announced IPFire 2.25 Core Update 147 today. This is the newest IPFire release since Core Update 146 on June 29th.

IPFire 2.25 Core Update 147 includes some important security updates including a newer version of Squid web proxy that has patched recent vulnerabilities.

Beyond security updates, IPFire 2.25 Core Update 147 adds support for additional hardware, as well as enhancing support for existing hardware because the new release ships with version 20200519 of the Linux firmware package.

IPFire 2.25 Core Update 147 also rectified a recurring issue relating to forwarding GRE connections.

In addition, the update improved IPFire on AWS configurations.

IPFire 2.25 Core Update 147 includes these updated packages: bind 9.11.20, dhcpcd 9.1.2, GnuTLS 3.6.14, gmp 6.2.0, iproute2 5.7.0, libassuan 2.5.3, libgcrypt 1.8.5, libgpg-error 1.38, OpenSSH 8.3p1, squidguard 1.6.0.

You can download IPFire 2.25 Core Update 147 here.

Releases

In iOS 14, Apple introduced a lot of new additions to the SwiftUI framework like LazyVGrid and LazyHGrid. But matchedGeometryEffect is the new one that really caught my attention because it allows developers to create some amazing view animations with a few lines of code. The SwiftUI framework already makes it easy for developers to animate changes of a view. The matchedGeometryEffect modifier just takes the implementation of view animations to the next level. For any mobile apps, it is very common that you need to transit from one view to another. Creating a delightful transition between views will definitely […]

Linux Journal
by Webmaster

As of today, Linux Journal is back, and operating under the ownership of Slashdot Media.

As Linux enthusiasts and long-time fans of Linux Journal, we were disappointed to hear about Linux Journal closing its doors last year. It took some time, but fortunately we were able to get a deal done that allows us to keep Linux Journal alive now and indefinitely. It's important that amazing resources like Linux Journal never disappear.

If you're a former Linux Journal contributor or a Linux enthusiast that would like to get involved, please contact us and let us know the capacity in which you'd like to contribute. We're looking for people to cover Linux news, create Linux guides, and moderate the community and comments. We'd also appreciate any other ideas or feedback you might have. Right now, we don't have any immediate plans to resurrect the subscription/issue model, and will be publishing exclusively on LinuxJournal.com free of charge. Our immediate goal is to familiarize ourself with the Linux Journal website and ensure it doesn't ever get shut down again.

Many of you are probably already aware of...

By the time SwiftUI was announced and given to developers in WWDC 2019, it was made obvious that this was going to be the future for developing applications for all Apple devices. However, even though SwiftUI might be the framework that will dominate on UI creation sooner or later, UIKit is still here, and WWDC 2020 came to prove that with some great additions and improvements announced this year. Most of those improvements took place for making it easier to port iPadOS apps to macOS and achieve the maximum possible compatibility. That doesn’t mean though that they can’t be used […]

Earlier, we wrote a tutorial on customizing the appearance of a SwiftUI button. This week, let’s see how to customize the look & feel of a SwiftUI toggle. If you’ve read the tutorial, you know we can use a protocol called ButtonStyle to create your own button style for customizations. For toggles, the customization can be achieved by adopting the ToggleStyle protocol. Later in this tutorial, we will make use of the protocol to transform a toggle from the standard appearance to a checkbox. First, let’s start with the basics. In SwiftUI, you create a toggle by using the Toggle […]

When a macOS user specifically grants a sandboxed app access to a file/folder outside of that app’s container, that special access only survives until the app is closed. If the user reopens the app and wants to again read from and write to that “outside” folder, they have to go through the whole process of showing macOS their “intent” to stray out of the container — unless the developer adds something called “security-scoped bookmarks.” These bookmarks are the topic of today’s tutorial. I’ll be explaining in-depth how developers can create these special bookmarks, store them, access them later, including two […]

WWDC20 finished almost two months ago, but still we are all talking about the new frameworks, APIs, and improvements announced this year. Among all those there’s something that is going to have a strong impact to the way we work when implementing in-app purchases in our apps. That is the brand new capability of testing StoreKit locally in Xcode 12. Up until now one had to stop the development workflow and visit the App Store Connect in order to create the necessary in-app purchase records and at least one sandbox user so testing is possible. After having gone through all […]

core-ml-machine-learning-bookWe’ve been working with Vardhan Agrawal, an iOS developer who has been actively contributed to the machine learning community, to write a book on machine learning and Core ML. Now we are happy to announce that the book “Mastering Machine Learning with Core ML and Python” is now available for early access. This book covers Core ML in-depth. You will learn how to create and deploy your own machine learning model. On top of that, you will learn about Turi Create, Create ML, Keras, Firebase, and Jupyter Notebooks, just to name a few. All these are professional tools which are […]

Have you ever used the magic move animation in Keynote? With magic move, you can easily create slick animation between slides. Keynote automatically analyzes the objects between slides and renders the animations automatically. To me, SwiftUI has brought Magic Move to app development. Animations using the framework are automatic and magical. You define two states of a view and SwiftUI will figure out the rest, animating the changes between these two states. SwiftUI empowers you to animate changes for individual views and transitions between views. The framework already comes with a number of built-in animations to create different effects. In […]

WWDC 2020 introduced several new features and improvements in the entire spectrum of develpment in Apple ecosystem, and definitely every developer found lots of things to get excited with. One of those features regard Xcode 12 and SwiftUI, and we briefly met it in this previous post about what’s new in Xcode 12 and SwiftUI. It is the ability given to developers to create reusable SwiftUI views and modifiers using LibraryContentProvider, and add them as new items to Xcode’s library. One might wonder why this is such a big deal so it deserves a whole new tutorial to discuss about […]

Hey everyone and welcome back to the second and final part of this tutorial series where we explore the intricacies of Apple’s MusicKit by building our very own music player in SwiftUI that can stream songs from our Apple Music account. If you haven’t read Part 1, you can do that here. In the last tutorial, we looked at how to create a MusicKit Identifier for our Apple Developer account, created a JSON Web Token private key, and we were able to successfully make web requests to the Apple Music API. At the end of the tutorial, we also built […]

Feature Flags can improve your continuous integration process in a number of ways. This post will focus on how CloudBees Feature Flags can help improve your developer productivity and shorten the feedback loop with the Flag Override view for frontend validation.  It includes Javascript in examples, but the override view can be used in all available platforms. The flag override view is a lightweight UI element that is very useful for debugging purposes. This override view exposes the current status for each flag set by developers and allows users to override these flags. All this is accomplished from within a handy popup in […]

While I’ve introduced you quite a number of new features announced in WWDC 2020. Let’s step back a bit and check out a useful framework introduced in WWDC 2019. At first glance, it does not look as significant or important as other frameworks, however it consists of a really useful tool when it is needed. That is the LinkPresentation framework, and it provides a handful of built-in functionalities that makes presenting rich links in apps a really simple and straightforward process. LinkPresentation framework contains mechanisms that parse the website behind a link and fetch metadata necessary in order to display […]

macOS developers will most likely be faced with the requirement to build an installer for apps they want to — or must — distribute outside of the Mac App Store (MAS). There is also substantial economic incentive to explore macOS development targeting sales outside of the MAS. In this tutorial, I’ll be explaining how to use Packages, by far one of the most popular tools for developing macOS app installers. It is used by macOS developers worldwide. I’ll provide step-by-step instructions, including many screenshots, walking you through the entire process of building installers. Very importantly, Packages is freeware. A 2019 […]

WWDC 2020 was finished just a few days ago under unprecedented conditions for first time. Virtually, all developers around the globe had the chance for a seat in the front row, being able to learn about all new features and improvements that Apple had to announce this year right at the moment they were becoming available. As always, lots of new stuff and great advancements were introduced, and once again everybody has got really excited and eager to try many new things out. This post is dedicated to the base that makes everything else real; Xcode and Swift. The first […]

The first version of SwiftUI doesn’t come with a native UI component for multiline text field. For multiline input, you can wrap a UITextView from the UIKit framework and make it available to your SwiftUI project by adopting the UIViewRepresentable protocol. We have written a detailed tutorial on the implementationg, showing you how to create a multiline text field in SwiftUI. In iOS 14, which is expected to be released in late Sep, Apple introduced a new component called TextEditor for the SwiftUI framework. This TextEditor enables developers to display and edit multiline text in your apps. In this tutorial, […]

swiftui-outline-view-ios14SwiftUI list is very similar to UITableView in UIKit. In the first release of SwiftUI, Apple’s engineers already made creating list view construction a breeze. You do not need to create a prototype cell and there is no delegate/data source protocol. With just a few lines of code, you can build a list view with custom cells. In iOS 14, Apple continued to improve the List view and introduce several new features. In this tutorial, we will show you how to build an expandable list / outline view and explore the inset grouped list style. Building an Expandable List View […]

swiftui-grid-layout-lazyvgridThe initial release of SwiftUI didn’t come with a native collection view. You can either build your own solution or use third party libraries. In this year’s WWDC, Apple introduced tons of new features for the SwiftUI framework. One of them is to address the need of implementing grid views. SwiftUI now provides developers two new UI components called LazyVGrid and LazyHGrid. One is for creating vertical grid and the other is for horizontal grid. The word Lazy, as mentioned by Apple, means that the grid view does not create items until they are needed. In this tutorial, I will […]

The Linux Foundation

Decentralized innovation, built on trust.

Linuxtechi

Linux Today