Open-source News

5 reasons virtual machines still matter

opensource.com - Thu, 04/13/2023 - 15:00
5 reasons virtual machines still matter alansmithee Thu, 04/13/2023 - 03:00

Virtualization used to be a big deal. For a while, it was the primary way to run services in a "sandbox" environment. IT departments used virtual machines by the hundreds. And then containers happened, doing much of what a virtual machine could do with a fraction of the resources required. While container technology made virtual machines seem cumbersome, it didn't make them entirely redundant. In fact, virtualization is as useful today as ever, and here are five reasons why.

1. Distro hopping

"Distro hopping" is the term often used to describe the inability (willfully or otherwise) to choose a single distribution. Some people just love to trying a different Linux distribution every time one is released. And why not? Linux distributions are little works of art, a labor of love created by teams of passionate people from all over the world. It's fun to see what people put together.

Part of the experience of a fresh distro is the graphical install process, the very first login, and the big desktop reveal. How fast is the install? What desktop does it use? What's the wallpaper look like? How easy was it to understand and navigate? Most importantly, could this be the one even your friends still using Windows or macOS could install and love?

You can't replicate that in a container. A container is, by design, a partial image of an operating system that assumes it's already been installed. That's a big advantage of containers for the busy sysadmin, but if you're after the desktop user experience, then a virtual machine is what you want.

2. Development

Programming is hard to get right, and it's even harder to get right when you develop an application for more than just one platform. Aside from Java, few programming languages are able to target all the platforms out there. An application that launches and runs fine on Linux might render an error on Windows, and may not launch at all on macOS.

A tool like Vagrant and libvirt ensure that you can run a specific version of a specific operating system on demand. You get a quick environment that's easy to replicate across several developers. This is great for testing code, confirming compatibility, and for testing out new versions of a library or toolkit.

3. Support and documentation

Bug reports can be very specific, and sometimes all it takes is a look at GDB to determine the cause of a problem. Other times, however, a bug report comes in that's not about the code but the process itself. For instance, a user might complain about the layout of an application, or the way an application interacts with some element on the desktop, or how to accomplish a complex configuration. In cases like those, you might need to try to replicate the user's workflow, and sometimes that requires running exactly what the user is running.

I've done this several times in the past when I've needed to describe to a user the exact steps to take, on their distribution, to achieve a goal. General statements weren't enough. I installed a fresh copy of the distribution my users were running, and documented the steps, complete with screenshots. If they couldn't get it to work, then I was confident that the problem wasn't their setup.

4. Architecture

Containers use your operating system's CPU. A virtual machine uses an emulated CPU. If there's software you need to run that wasn't compiled on the CPU you have on your machine, then you have to run a virtual CPU.

More Linux resources Linux commands cheat sheet Advanced Linux commands cheat sheet Free online course: RHEL technical overview Linux networking cheat sheet SELinux cheat sheet Linux common commands cheat sheet What are Linux containers? Our latest Linux articles 5. Some other OS

Containers are Linux. When you run a container, you're running Linux in a container, regardless of whether you're running that container on Windows or Mac.

To run Windows, whether it's for support, legacy services, or development, you have to virtualize it. Apple continues to enforce, to put it politely, a "complex" legal requirement around virtualizing macOS, but when it is permitted it happens in a virtual machine. Or maybe you're on Windows or macOS but want to run a Linux distribution with a desktop as a way to get comfortable with a new OS. Virtual machines are a pragmatic and easy way to have a spare computer without actually having a spare computer.

Linux virtualization eBook

Virtual machines are an easy way to gain access to a software-defined computer for everyday tasks. And there are a lot of options for how to interact with your virtual machines, including GNOME Boxes, Vagrant, VirtualBox, or even Qemu directly. Whether you're new to virtualization or you've used it in the past, download our complimentary eBook for a tour of all the latest options, specialized configurations, and ideas on you might use a fleet of virtual machines!

Containers are a vital technology for modern infrastructure, but virtual machines still have their place.

Image by:

Opensource.com

Linux What to read next eBook: Everyday virtualization on Linux This work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License. Register or Login to post a comment.

Run Git on a mainframe

opensource.com - Thu, 04/13/2023 - 15:00
Run Git on a mainframe pleia2 Thu, 04/13/2023 - 03:00

One of the fascinating things I keep encountering in my journey to learn everything I can about the mainframe world is how my expertise in Linux distributed systems and open source tooling carries over into this realm. I recently discovered zigi, an independently developed open source (GPLv3+) Git interface for IBM z/OS ISPF (Interactive System Productivity Facility).

I had been aware of zigi for some time, but it wasn't until I joined a recent z/OS Open Tools guild call that I could soak in the demo that zigi contributor Lionel B. Dyck gave. That led me to a call with zigi founder Henri Kuiper, who explained that zigi was an answer to a specific pain point of his. That sounds familiar! I could definitely appreciate the story of an open source project born from frustration.

I need to explain ISPF for you to have a good understanding of what zigi provides.

ISPF

Since the 1980s, ISPF has been a common interface for interacting with IBM mainframes. Mainframe professionals still use it today with the modern versions of IBM z/OS and z/VM. The text-based interface, accessed with a 3270 terminal, features a series of menus, panels, and even an editor, that those proficient in the interface are incredibly fast with.

Image by:

(Elizabeth K. Joseph, CC BY-SA 4.0)

Users like Henri discovered while using ISPF that their organizations were rapidly adopting technologies familiar to the new generation of technologists. These tools, like Git, were sometimes difficult to integrate into the ISPF interface.

Enter zigi.

How zigi helps

The integration of zigi allows for Git commands to be built into the ISPF interface. That means Git command navigation is natural for ISPF users, who can simplify their working tech stack without adding on yet another tool with yet another interface to learn.

Also, note that z/OS works a bit differently than Linux or Windows-focused administrators and developers are used to. Instead of having a filesystem (such as EXT4, XFS, FAT, and so on) with a file and directory hierarchy, z/OS uses the concept of datasets. Git only understands files, so zigi must do some work here. It creates a sort of translation so that the remote Git repositories you may ultimately write to are still files, but they're a series of datasets when used inside the z/OS environment. Zigi handles this seamlessly for the user—an important distinction and a key part of what zigi does.

I'm excited about what this means for developers working with ISPF, but it's also great for systems folks in the organization looking to integrate with their mainframe counterparts. With today's tooling, you can bring mainframe development into your CI system. That all starts with making sure you have access to the revision control system your mainframe developers work with. So hold on tight, and get ready for some green screens.

(I'm joking, it's not all green, and the zigi home screen is quite delightful!)

Image by:

(Elizabeth K. Joseph, CC BY-SA 4.0)

Use zigi

Software or the z/OS Open Tools team. Then pull in the zginstall.rex installation file from the zigi Git repository. That's it!

For more detail, visit the official zigi documentation.

Next, create a repository or add a remote repository that's already managed by zigi from somewhere like GitLab or GitHub. These actions begin with the create and remote commands, respectively. The linked zigi documentation walks you through the rest.

If you're not sure whether a repository is zigi-managed, look for a populated .zigi folder at the top level. Being a zigi-managed repository is important because of how zigi works internally to manage the translation between the files, folders, and datasets.

A loaded repository looks similar to this screenshot of zigi's own repository loaded up in zigi (how's that for inception?):

Image by:

(Elizabeth K. Joseph, CC BY-SA 4.0)

Want to start exploring the repository? No problem. Say you want to see what's under ZIGI.EXEC in this repository. Use the interface to navigate to and select the desired partitioned dataset. In the screenshot above, that is IBMUSER.ZIGI317.ZIGI.EXEC. You're taken to a screen that looks similar to this:

Image by:

(Elizabeth K. Joseph, CC BY-SA 4.0)

Now you can get to work. It's valuable to look at what actions zigi supports on your repository from within the interface. Here is a command list:

Image by:

(Elizabeth K. Joseph, CC BY-SA 4.0)

More on Git What is Git? Git cheat sheet Markdown cheat sheet New Git articles

For anyone who has used Git before, a lot of this should look very familiar, even if the UI differs from what you expect.

To seasoned ISPF users, this screen is familiar from the other direction. You may be learning Git, but at least you're used to the options are presented in the UI.

Wrap up

As you can see, zigi already implements many of the basic, and not so basic, commands you need to work on your repository. And with zigi being an actively maintained project with several contributors, that support is growing.

What I ultimately love most about zigi is how it shows the ubiquity of Git these days. In the realm of mainframes, I still encounter many proprietary revision control systems, but that pool is shrinking. As organizations move to consolidate their codebases and even bring different operating systems into their CI pool, tools like zigi help teams make that transition and support a streamlined development process for everyone.

The zigi project is always looking for new contributors, including those who can bring unique insight and talent to the effort, so be sure to check out zigi.rocks to learn more.

The zigi application helps translate files to datasets and a command-line interface to ISPF.

Image by:

Opensource.com

Git What to read next This work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License. Register or Login to post a comment.

Upstream Mesa Close To Supporting The Experimental Xe DRM Kernel Driver

Phoronix - Thu, 04/13/2023 - 05:30
While we are still waiting for the Intel Xe kernel driver to be upstreamed as the modern alternative to the long-used i915 Direct Rendering Manager (DRM) driver, upstream Mesa Git is nearly ready in supporting the Xe kernel driver and its new/changed interfaces...

Ryzen Mobile Power/Performance With Linux 6.3's New AMD P-State EPP Driver

Phoronix - Thu, 04/13/2023 - 01:00
With Linux 6.3 there is the new AMD P-State EPP driver code for supporting the ACPI Energy Performance Preference (EPP) to further enhance the power efficiency and performance of modern AMD systems on Linux. Last week I ran some benchmarks of AMD EPYC with the new AMD P-State EPP mode while in today's article is a look at the laptop impact with Ryzen Mobile when comparing ACPI CPUFreq, the existing AMD P-State driver, and the new AMD P-State EPP mode and its multiple different preferences.

Pages