# virtual-machine

Published articles for virtual-machine.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Generating Java bytecode: Write yourself a compiler, Part V

DevFeed: [Generating Java bytecode: Write yourself a compiler, Part V](<https://devfeed.tech/articles/generating-java-bytecode-write-yourself-a-compiler-part-v-38041.md>)

Original publisher: [Read original article](<https://nurkiewicz.com/2026/09/generating-java-bytecode-write-yourself-a-compiler.html>)

Published: 2026-09-14T22:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Nurkiewicz around Java and concurrency](<https://devfeed.tech/sources/tomasz-nurkiewicz-around-java-and-concurrency.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [bytecode](<https://devfeed.tech/tags/bytecode.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [file](<https://devfeed.tech/tags/file.md>), [go](<https://devfeed.tech/tags/go.md>), [interpreter](<https://devfeed.tech/tags/interpreter.md>), [java](<https://devfeed.tech/tags/java.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [virtual-machine](<https://devfeed.tech/tags/virtual-machine.md>), [writing-compiler](<https://devfeed.tech/tags/writing-compiler.md>)

### AI overview

This tutorial explains how to extend a toy-language compiler to emit valid JVM bytecode in a .class file that can run on the Java Virtual Machine. It introduces JVM instruction families for pushing integer values and explains how the constant pool stores constants and symbolic references for reuse.

### Source excerpt

Last time we created a virtual machine for our toy language. I think you can agree that designing a language which barely recognizes expressions like 2 + 3w and building a brand-new virtual machine for it seems a bit tedious. So what about keeping our microscopic language for now, but running it on a real, production-ready, battle-proven virtual machine? Like the Java Virtual Machine? Our task for today is to emit JVM bytecode in the form of a valid .class file. That file can then be fed directly to the JVM to run our program.

## Your First Virtual Machine: Write yourself a compiler, Part IV

DevFeed: [Your First Virtual Machine: Write yourself a compiler, Part IV](<https://devfeed.tech/articles/your-first-virtual-machine-write-yourself-a-compiler-part-iv-38040.md>)

Original publisher: [Read original article](<https://nurkiewicz.com/2026/08/your-first-virtual-machine-write-yourself-a-compiler.html>)

Published: 2026-08-24T22:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Nurkiewicz around Java and concurrency](<https://devfeed.tech/sources/tomasz-nurkiewicz-around-java-and-concurrency.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>)

Tags: [arithmetic](<https://devfeed.tech/tags/arithmetic.md>), [bytecode](<https://devfeed.tech/tags/bytecode.md>), [clojure](<https://devfeed.tech/tags/clojure.md>), [code](<https://devfeed.tech/tags/code.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [feature](<https://devfeed.tech/tags/feature.md>), [go](<https://devfeed.tech/tags/go.md>), [interpreter](<https://devfeed.tech/tags/interpreter.md>), [reverse-polish-notation](<https://devfeed.tech/tags/reverse-polish-notation.md>), [stack](<https://devfeed.tech/tags/stack.md>), [virtual-machine](<https://devfeed.tech/tags/virtual-machine.md>), [vm](<https://devfeed.tech/tags/vm.md>), [writing-compiler](<https://devfeed.tech/tags/writing-compiler.md>)

### AI overview

This tutorial explains how to build a virtual machine that reads and executes a binary intermediate representation. It covers the instruction loop, operand stack, arithmetic operations, postfix notation, and how the resulting executable compares with JVM files and .NET assemblies.

### Source excerpt

In the previous article, we emitted an intermediate representation (IR) for our programming language that is easier to process than source code. However, we did not build a program that could read and execute that IR. Such a program is called a virtual machine. Technically, it's still an interpreter. But instead of interpreting source code, it interprets IR. Our IR is binary, compact, structured, and generally faster to interpret than the original source. Moreover, as you'll see later, the VM's instruction set can express programs that our source language cannot produce yet!

## Using OpenTofu/Terraform to create a disposable Tails virtual machine

DevFeed: [Using OpenTofu/Terraform to create a disposable Tails virtual machine](<https://devfeed.tech/articles/using-opentofu-terraform-to-create-a-disposable-tails-virtual-machine-39535.md>)

Original publisher: [Read original article](<https://blog.wagemakers.be/blog/2025/06/22/using-opentofu-to-create-tails-environment/>)

Author: Staf Wagemakers

Published: 2025-06-22T06:37:00Z

Content type: tutorial

Language: en

Sources: [stafwag Blog](<https://devfeed.tech/sources/stafwag-blog.md>)

Topics: [opentofu](<https://devfeed.tech/topics/opentofu.md>), [Infrastructure as code](<https://devfeed.tech/topics/infrastructure-as-code.md>), [virtualization](<https://devfeed.tech/topics/virtualization.md>), [gnu linux](<https://devfeed.tech/topics/gnu-linux.md>)

Tags: [fosdem](<https://devfeed.tech/tags/fosdem.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>), [libvirt](<https://devfeed.tech/tags/libvirt.md>), [linux](<https://devfeed.tech/tags/linux.md>), [linux-foundation](<https://devfeed.tech/tags/linux-foundation.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [opentofu](<https://devfeed.tech/tags/opentofu.md>), [tails](<https://devfeed.tech/tags/tails.md>), [terraform](<https://devfeed.tech/tags/terraform.md>), [tor](<https://devfeed.tech/tags/tor.md>), [virtual-machine](<https://devfeed.tech/tags/virtual-machine.md>), [virtualization](<https://devfeed.tech/tags/virtualization.md>)

### AI overview

This tutorial explains how OpenTofu and Terraform can provision disposable environments and presents a Terraform/OpenTofu module for creating a virtual machine running the latest Tails version on libvirt. It also notes security considerations for running Tails in a virtual machine.

### Source excerpt

OpenTofu Terraform or OpenTofu (the open-source fork supported by the Linux Foundation) is a nice tool to setup the infrastructure on different cloud environments. There is also a provider that supports libvirt. https://github.com/dmacvicar/terraform-provider-libvirt If you want to get started with OpenTofu there is a free training available from the Linux foundation: https://training.linuxfoundation.org/express-learning/getting-started-with-opentofu-lfel1009/ I also joined the talk about OpenTofu and Infrastructure As Code, in general, this year in the Virtualization and Cloud Infrastructure DEV Room at FOSDEM this year: https://fosdem.org/2025/schedule/event/fosdem-2025-6057-the-iac-tooling-multiverse-and-the-future-of-iac/

## Effective Kotlin Item 47: Avoid unnecessary object creation

DevFeed: [Effective Kotlin Item 47: Avoid unnecessary object creation](<https://devfeed.tech/articles/effective-kotlin-item-47-avoid-unnecessary-object-creation-39293.md>)

Original publisher: [Read original article](<https://kt.academy/article/ek-unnecessary-objects>)

Published: 2021-08-22T00:00:00Z

Content type: article

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [performance-optimization](<https://devfeed.tech/topics/performance-optimization.md>), [object](<https://devfeed.tech/topics/object.md>), [Code](<https://devfeed.tech/topics/code.md>), [Cache](<https://devfeed.tech/topics/cache.md>)

Tags: [arrays](<https://devfeed.tech/tags/arrays.md>), [code](<https://devfeed.tech/tags/code.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [memory](<https://devfeed.tech/tags/memory.md>), [object](<https://devfeed.tech/tags/object.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performance-optimization](<https://devfeed.tech/tags/performance-optimization.md>), [virtual-machine](<https://devfeed.tech/tags/virtual-machine.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This Effective Kotlin item explains why unnecessary object creation can hurt performance on the JVM. It covers object reuse, boxing of primitives, memory overhead, references, and the additional access cost of encapsulated elements, especially for large collections and performance-critical processing.

### Source excerpt

About the most essential rule of performance optimization.

## Why I'm Learning Perl 6

DevFeed: [Why I'm Learning Perl 6](<https://devfeed.tech/articles/why-i-m-learning-perl-6-37905.md>)

Original publisher: [Read original article](<https://www.evanmiller.org/why-im-learning-perl-6.html>)

Author: Evan Miller

Published: 2017-07-25T14:50:00Z

Content type: opinion

Language: en

Sources: [Evan Miller](<https://devfeed.tech/sources/evan-miller.md>)

Topics: [Perl](<https://devfeed.tech/topics/perl.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [perl](<https://devfeed.tech/tags/perl.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [unicode](<https://devfeed.tech/tags/unicode.md>), [virtual-machine](<https://devfeed.tech/tags/virtual-machine.md>)

### AI overview

Evan Miller explains why he is exploring Perl 6, focusing on its runtime and concurrency capabilities. He highlights MoarVM's event-loop-aware scheduler, continuations, lightweight worker routines, and concurrent bytecode execution without a GIL, while noting that the article is not a full language review.

### Source excerpt

The Perl 6 virtual machine is a promising piece of technology: Why I'm Learning Perl 6

## Keygenning with KLEE

DevFeed: [Keygenning with KLEE](<https://devfeed.tech/articles/keygenning-with-klee-39699.md>)

Original publisher: [Read original article](<https://doar-e.github.io/blog/2015/08/18/keygenning-with-klee/>)

Author: Michele "brt\_device" Bertasi

Published: 2015-08-19T05:12:00Z

Content type: tutorial

Language: en

Sources: [Diary of a reverse-engineer](<https://devfeed.tech/sources/diary-of-a-reverse-engineer.md>)

Topics: [Software](<https://devfeed.tech/topics/software.md>), [Code](<https://devfeed.tech/topics/code.md>), [debug](<https://devfeed.tech/topics/debug.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [gcc](<https://devfeed.tech/topics/gcc.md>), [Scripting, bash](<https://devfeed.tech/topics/scripting-bash.md>), [WPF](<https://devfeed.tech/topics/wpf.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [ida](<https://devfeed.tech/tags/ida.md>), [ida-pro](<https://devfeed.tech/tags/ida-pro.md>), [linux](<https://devfeed.tech/tags/linux.md>), [reverse-engineering](<https://devfeed.tech/tags/reverse-engineering.md>), [scripting](<https://devfeed.tech/tags/scripting.md>), [software](<https://devfeed.tech/tags/software.md>), [symbolic-execution](<https://devfeed.tech/tags/symbolic-execution.md>), [virtual-machine](<https://devfeed.tech/tags/virtual-machine.md>), [windbg](<https://devfeed.tech/tags/windbg.md>)

### AI overview

This article examines the reverse engineering of a software serial-number validation process and describes using the KLEE symbolic virtual machine to build a key generator. It also discusses tools and practices including IDA Pro, WinDbg, Linux, gcc, Bash scripting, and a WPF application.

### Source excerpt

Introduction In the past weeks I enjoyed working on reversing a piece of software (don't ask me the name), to study how serial numbers are validated. The story the user has to follow is pretty common: download the trial, pay, get the serial number, use it in the annoying nag ...

## Dissection of Quarkslab's 2014 security challenge

DevFeed: [Dissection of Quarkslab's 2014 security challenge](<https://devfeed.tech/articles/dissection-of-quarkslab-s-2014-security-challenge-39696.md>)

Original publisher: [Read original article](<https://doar-e.github.io/blog/2014/09/06/dissection-of-quarkslabs-2014-security-challenge/>)

Author: Axel "0vercl0k" Souchet

Published: 2014-09-07T03:37:00Z

Content type: article

Language: en

Sources: [Diary of a reverse-engineer](<https://devfeed.tech/sources/diary-of-a-reverse-engineer.md>)

Topics: [Security](<https://devfeed.tech/topics/security.md>), [Code](<https://devfeed.tech/topics/code.md>), [Python](<https://devfeed.tech/topics/python.md>), [compilers](<https://devfeed.tech/topics/compilers.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [code](<https://devfeed.tech/tags/code.md>), [compilers](<https://devfeed.tech/tags/compilers.md>), [python](<https://devfeed.tech/tags/python.md>), [reverse-engineering](<https://devfeed.tech/tags/reverse-engineering.md>), [security](<https://devfeed.tech/tags/security.md>), [virtual-machine](<https://devfeed.tech/tags/virtual-machine.md>)

### AI overview

A detailed walkthrough of solving Quarkslab's 2014 security challenge, including analysis of an obfuscated Python one-liner and the techniques used to understand it.

### Source excerpt

Introduction As the blog was a bit silent for quite some time, I figured it would be cool to put together a post ; so here it is folks, dig in! The French company Quarkslab recently released a security challenge to win a free entrance to attend the upcoming HITBSecConf conference ...

## Deep dive into Python's VM: Story of LOAD\_CONST bug

DevFeed: [Deep dive into Python's VM: Story of LOAD\_CONST bug](<https://devfeed.tech/articles/deep-dive-into-python-s-vm-story-of-load-const-bug-39694.md>)

Original publisher: [Read original article](<https://doar-e.github.io/blog/2014/04/17/deep-dive-into-pythons-vm-story-of-load_const-bug/>)

Author: Axel "0vercl0k" Souchet

Published: 2014-04-18T06:22:00Z

Content type: article

Language: en

Sources: [Diary of a reverse-engineer](<https://devfeed.tech/sources/diary-of-a-reverse-engineer.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [bug](<https://devfeed.tech/topics/bug.md>), [x86](<https://devfeed.tech/topics/x86.md>), [Code](<https://devfeed.tech/topics/code.md>), [C](<https://devfeed.tech/topics/c.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [c](<https://devfeed.tech/tags/c.md>), [ctf](<https://devfeed.tech/tags/ctf.md>), [exploitation](<https://devfeed.tech/tags/exploitation.md>), [python](<https://devfeed.tech/tags/python.md>), [virtual-machine](<https://devfeed.tech/tags/virtual-machine.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

A technical deep dive into a known bug in Python 2.7.5's virtual machine. The article explains how the bug can be used to control the virtual processor, instrument the VM, and execute native x86 code, with a focus on Windows.

### Source excerpt

Introduction A year ago, I've written a Python script to leverage a bug in Python's virtual machine: the idea was to fully control the Python virtual processor and after that to instrument the VM to execute native codes. The python27_abuse_vm_to_execute_x86_code.py script wasn't really self-explanatory, so I believe only a ...