This article is for people interested in long-term Linux kernel maintenance. It introduces you to tools that can help keep the binary interfaces between the kernel and its loadable modules stable during the entire lifetime of a supposedly stable kernel, while the code is modified. As these tools are essentially analysis tools, they can be used not only by kernel developers, but also by quality assurance engineers and advanced kernel users (system programmers).
Upstream in-tree kernel modules: the ideal situation
In the canonical development model of the Linux kernel, the source code of all dynamically loaded modules is hosted alongside the source code of the core kernel. In this model, whenever the core kernel changes the interface it exposes to its modules, the compilers detects that the interface changed, making it easy to adjust the code of the modules accordingly.
Continue reading “Analyzing Changes to the Binary Interface Between the Linux Kernel and its Modules”
In order to maximize performance of the Open vSwitch DPDK datapath, it pre-allocates hugepage memory. As a user you are responsible for telling Open vSwitch how much hugepage memory to pre-allocate. The question of exactly what value to use often arises. The answer is, it depends.
There is no simple answer as it depends on things like the MTU size of the ports, the MTU differences between ports, and whether those ports are on the same NUMA node. Just to complicate things a bit more, there are multiple overheads, and alignment and rounding need to be accounted for at various places in OVS-DPDK. Everything clear? OK, you can stop reading then!
However, if not, read on.
Continue reading “Open vSwitch-DPDK: How Much Hugepage Memory?”
I work at Red Hat on GCC, the GNU Compiler Collection.
My main focus for the last year has been on making GCC easier to use, so I thought I’d write about some of the C and C++ improvements I’ve made that are in the next major release of GCC, GCC 8.
Continue reading “Usability improvements in GCC 8”
This article would help to configure http2 protocol support for the camel-undertow component.
- Camel’s undertow component use embedded undertow web-container of version undertow-core:jar:1.4.21. This version also supports the http2 connection.
- I have used camel version 2.21.0-SNAPSHOT from upstream https://github.com/apache/camel.
- Also, the curl version to test application using camel-undertow component is 7.53.1. This curl version supports –http2 flag for sending an http2 request.
- I have also used nghttp to test application from linux terminal. However, this article is not about http2 insights.
- For http2 details, I found articles  and  helpful.
Continue reading “Using Camel-Undertow component supporting http2 connection”
This blog is to resolve the following issues/answering the following questions.
- How to enable a repository using the Red Hat Subscription Manager/yum?
- Need to access a repository using the Red Hat Subscription Manager/yum?
- How to disable a repository using the Red Hat Subscription Manager/yum?
- How to subscribe a child channel using the Red Hat Subscription Manager/yum?
Continue reading “How to enable/disable repository using Subscription Manager or Yum-Utils”
When you want to run .NET Core process as a daemon on Red Hat Enterprise Linux, you can create a custom systemd unit. Today I’ll write about two examples of custom systemd unit for .NET Core. The one is a oneshot type for running a .NET Core console application and the other is a simple type for running an ASP.NET Core Web application.
Continue reading “Writing a Linux daemon in C#”
Over the past few months, we’ve been building and releasing a variety of technical cheat sheets and we’ve been getting many requests for more. We are working on new cheat sheets every day, ok maybe not weekends, but almost every day. Here are the cheat sheets available today: Linux Commands Cheat Sheet, Advanced Linux Commands Cheat Sheet, Wildfly Swarm Cheat Sheet, Containers Cheat Sheet, MongoDB Cheat Sheet, Kubernetes Cheat Sheet and the Eclipse Vert.x Cheat Sheet.
Continue reading “Technical Cheat Sheets for Developers”
As a web developer, being able to run a Linux distro alongside your pre-existing mobile OS on your android phone is a very enticing offer. With a fully functional Linux program in your pocket at all times, you can begin to utilize your phone for various processes including powering a LAMP server and turning the device into a portable network, troubleshooting tool, and pen-testing device.
Continue reading “Installing Linux on an Android Phone”
2016 was certainly an interesting year and, although we could probably discuss the election alone for an hour, there is one particular epidemic which has plagued the developer community in more ways than we probably care to mention. It seems as though even the best data encryption and reformatting of SSD’s is slowly becoming not enough when it comes to the continuous evolution of the hacker community and this is a pretty unsettling situation.
Continue reading “The Year of Data Breaches: Why Encryption and Reformatting SSD’s is Not Enough”
(Probably, a more accurate title would be “The Evolution of a Linux Container Developer”)
Since .NET now runs on Linux (as well as Windows and macOS), the whole world of Linux containers and microservices has opened up to .NET developers. With a large pool of developers, a long track record of success, and performance numbers that are impressive, .NET offers a great opportunity to expand the world of Linux containers to formerly Windows-centric developers.
While it’s tempting to rush in — and I am the first to say, “go for it” — there are some nuances which should not be missed when running .NET code inside a Linux container. It’s far too easy to push some code into an image and be done. After all, everything happens so quickly, surely all is well. Right?
Continue reading “The Evolution of a Linux Container”