How does Red Hat earn money?

The first impression is, that the business model of Red Hat makes no sense, because they are posting new developed sourcecode to the internet for free. How does the model works financially? Open Source software is not grouped around a product, for example a box with a CD-ROM in it, instead is build on companies. On the market, we see companies like IBM, Intel, Red Hat and Apache. For example, Red Hat has 10k employees, they get their paycheck from Red Hat Inc. The question is now: where get the company Red Hat the money from? Red Hat is comparable to a staffing firm like Manpower and Adecco. That means, they have employees which they are train, support and selling to the public.

I want to give a small example. Suppose, we want to have Linus Torvalds as a speaker for a conference. We are not talking to Linus directly, but to Red Hat, because Linus is the employee of Red Hat. We are paying money to Red Hat, and Linus comes to us. Or suppose, we want that Alan Cox creates a new cpu scheduler which supports hardware invented from Intel. Then the game is the same.

What is the alternative to use a staffing firm? Intel may have the idea, that they need somebody who is writing kernel code in C, and the name Alan Cox sounds familiar to them. They want to hire Alan Cox permanently. But it is not possible to make a contract with him, because he is employee of Red Hat.

Open Source works like a staffing firm for producing intellectual goods. It is a contract over many edges which increases the freedom of the stakeholder. Earning money is possible, because the different people are doing work and demand for work. Again, it is not about the Linux product, it is about the invested time of the programmer and the demand for that time from the customer.

Founding an opensource company is equal to become a hub for work distribution. Red Hat doesn’t produce software, they are pairing between software developer and companies how need software developer. On a formal level, Linus Torvalds gets his paycheck from Red Hat, but in reality he is an employee of Intel, IBM, Apache, Oracle and most other tech companies. Red Hat is a laborlaw construct for getting all the different customers satisfied.

Let us observe the founder of Red Hat, Bob Young a bit in detail. Is he only a programmer, is he only the CEO of a software-company, is he only a lawyer? What Bob young really looks like is the boss of an staffing agency. That means, he is not interested in products or technology but in people. He knows, which companies have a demand for programmers, and he knows which people can fulfil the demand. Bob Young sits in between them.


Red Hat – the unknown Linux distribution

Even after writing some papers about Red Hat [1] [2] the distribution itself is a mystery. The first impression is, that RHEL is simply yet-another-linux-distribution. It has the Linux Kernel, the Gnome GUI, and programs like GCC and Java. But something is special about it. I would call it the collective ignorance of the so called community. The community is the sum of weblogs, online-forums, podcasts, magazine and dedicated Linux conferences. Let us investigate hundred, random selected podcasts about Linux which has the newbie or the expert user as the target. The surprising fact is, than in 99 of them any other Linux distribution like Ubuntu or Gentoo is presented but not Red Hat. Red Hat is in the contrast the big elephant in the room who is ignored by everyone. That means, it is hard to find information about it. If we are searching not explicitly for the new version of RHEL, we can be part of the Linux community for many years without even notice it.

Why is RHEL special? The reason number one is, that it is not used by private users. Red Hat earns money with Linux, around 2,4 billion US$ per year. If the ordinary customer pays 500 US$ per year per RHEL PC, than the operating system is installed on 4.8 million PCs worldwide. Most of them are servers and workstations in big companies. The operating system is out there, it works great, but it is unknown by private users.

The typical Linux beginner is migrating from Windows to Linux because he wants to surf in the internet, improve his programming skills and likes games. So the natural choice is Ubuntu or a similar distribution. That RHEL is not on the list of favourite operating system for home-users is not very surprisingly. If the media doesn’t promote it, the end-user will not use it.

In my opinion the imbalance of public reception and the technology itself is a sign for an information gap. That means, RHEL is well suited for the Linux beginner, it is only uncommon. In reality, the newest version of Fedora is well suited for installing the chrome browser, Opensource games, and every programming tool available for Linux. The reason is, that the distribution is very stable, the dnf-package manager works and the system gets the latest security patches. If Fedora is bullet-proof for business needs it is also the right choice for amateurs users who want to have fun with their machine. The only problem is, that this usage scenario isn’t very widespread. That means, I have found no podcast, no blog or no book which describes “Fedora for home users”. RHEL can be called an elephant without any advertisement. It is unexplored land.

But what makes Fedora special from all the other Linux distributions? The main difference is, that RHEL is not for free. That means, if somebody wants to use the software daily for his business he must pay real money. According to the latest pricelist it is 350 US$ per year for the workstation version and 700 US$ for the server version. In my opinion this paid-model is the reason why the Red Hat distribution is superior. Because it is a serious distribution, which is not programmed by enthusiasts or people who hate Microsoft, but by a company who has financial interests. On the first hand this sounds familiar with Microsoft. But Red Hat is different. Apart from the EAL4+ certified RHEL version, there is also the Fedora community distribution out there which has all the feature but can be downloaded for free. And apart from Microsoft, the software-development is done inside opensource projects like Apache or Gnome. RHEL is only the marketing-term to bundle all the software into a product and makes it easy to use.

Linux for education

Explaining what Red Hat is, can be done with a reference to the Minix operating system. Minix was developed for higher education. It was embedded in a university course about operating system. Minix is similar to Xinu only a theoretical operating system. It makes sense to print out the sourcecode and write a paper about it, but it is not ready for daily usage on a webserver. Linux is different. It was not designed with education in mind but with business-oriented daily usage. That means, Linux is not a university project but has a financial background. Alan Cox and Linus Torvalds earning money with their work and their are not part of higher education system.

Let us investigate some of the Linux distributions out there. Most of them were created with an education purpose. For example, Debian, Gentoo or “Tiny core Linux”. The idea is not only create the distribution, but to explain the people how they can make their own distribution. In the ArchLinux project for example, is a powerful meta-distrubution-creator part of it, which downloads the sourcecode of programs and creates of that an iso-file. Gentoo works with the same principle. The best example for a teaching-only distribution is perhaps “Linux from scratch”. It is like Minix created with the purpose in mind, to explain the people what a distribution is, and how the booting process works.

From a practical point of view this knowledge has no top priority. If somebody is interested in using Linux on his workstation or on the server, he is not interested in getting knowledge about how to create a distribution. He do not need another Andrew Tannenbaum who is explaining to him, how to compile a piece of code or how to careful select the components of a distribution. What the user wants is a ready-to-run distribution, created by somebody other and optimized for daily usage. RHEL is such a distribution. And according to my research it is the only distribution out there which can be used in real life. All the other examples like LFS and Debian have an educational purpose. That means, if somebody is interested in the distribution building itself than it is the right choice.

From a historical point of view the evolution of Linux-like software can be summarized in the following timeline:

1. Minix, educational unix-clone -> Debian, educational distribution
2. Linux, daily usage kernel -> RHEL, daily usage distribution

Let us investigate potential alternatives to RHEL a bit in detail. I understand the concept behind LFS and Gentoo very good. “Linux from scratch” was created with a special purpose in mind. The idea was, that an Opensource kernel alone is not an operating system. If somebody downloads the latest tar-ball from he is not able to run his computer with it. Because apart from the kernel, additional software for the command-line and the boot-up process is needed. “Linux from scratch” provides these programs. Or better, they are distributing knowledge how the user can find these programs and creates his own operating system. The information inside the LFS project are valuable, it is one of the best books about creating a distribution. LFS is similar to the Minix operating system and it is very well suited to teach the knowledge in higher education.

But, what LFS is missing is a practical usage. That means, if a company needs a ready to run workstation, LFS is the wrong choice. Even in 10 years, the user will get with LFS not a Linux distribution up and running. And even the system will boot, it has too many problems in the daily usage. The LFS project knows about the problems. And they won’t fix it because LFS was created with a different purpose in mind. The same reason Minix can’t be used as a workhorse, LFS can’t be used too.

With LFS, Gentoo or Debian nothing is wrong. They are like Minix very well suited to explain the people how an operating system distribution works. But using Gentoo on a productive server is not a good idea. Because, there are certain requirements which have to be fulfilled.

Teaching vs. usage

At first, it is important to define what the user wants. If he is interested in learning Linux, than he should look at Minix and LFS. The minix-documentation gives him a good introduction how a kernel has to be programmed in theory, while the LFS documentation gives him background knowledge how to create on top of the kernel a distribution which includes other projects like a bash-shell and a package manager. I would go a step further and would call Minix the definitive resource for learning purpose and the official LFS book the most important book about how to build a distribution.

But “Learning Linux” is not the only aim a user may have. Apart from it, he can also be interested in using Linux as a workstation for private usage or in a company. In the same way he uses today MS-Windows or Apple. Then, Minix and LFS are a poor choice. That means, it is not able to use LFS productive. The system updates don’t work, and even the user has read the book he has no Linux-distribution. For this purpose the RHEL/Fedora distribution was created. It is the right choice for people who are not interested in learning Linux but using it as a server or a workstation.

Migration from Ubuntu zu CentOS complete

In July 2017, I decided to migrate from Ubuntu to RHEL. At first, I switched only to CentOS because according to the docs the system is more stable than Fedora. But after I while, i noticed that CentOS has more bugs than Ubuntu. .That means, after adding extra repositories the dependencies broke each other. So I switched from centOS to Fedora. Until now, I found no major bug in the distribution. It works out of the box very stable, is for free, and gets all the latest security updates.

Ubuntu itself is also a nice Linux distribution. Most of the time the system works and every software can be installed. The ubuntuusers wiki is very helpful especially for beginners like me. The main problem with Ubuntu is, that it is based on Debian. Either Debian nor Ubuntu are business ready. That means, it is only an amateur project, driven by volunteers and if something is broken, nobody is responsible. It is not possible to use it in small or big companies and this makes it unusable for private usage too. Red Hat instead is a real company. That means, if the newest version of RHEL doesn’t boot, this will be noticed at the stockmarket. The reason is, that RHEL has real customers who are paying money for the product, so Red Hat has constraints which they must fulfil. I think this helps a lot to prevent ideology based discussions like the in FreeBSD or Archlinux project.

Apart from it, Fedora has some major technical advantages like a working Gnome environment, the dnf package manager which has produced no error so far and with Java a business friendly middleware which makes it easy to see RHEL as an alternative to MS-Windows.

JavaFX brings Linux to the desktop

Not the enduser is the bottleneck in Linux on the desktop, but it is the developer. That means, according to the last survey of Stackoverflow, only 20% of programmers worldwide using Linux as their main operating system. Most of them under Ubuntu, which doesn’t count as Linux, because it isn’t a real distribution. The reason why the developers are preferring Windows is because they doesn’t know how they can use Linux for creating GUI applications in business environments. The answer is easy: JavaFX and FXML.

Both is running out of the box in RHEL and Fedora. JavaFX is an improved version of swing which is well suited for creating graphical userinterfaces with the object-oriented paradigm, while JavaFX is an XML language for describing complex business GUI layouts in a XML file. In theory, it is possible to develop such applications under every operating system, but Fedora is well suited for the job, because only Fedora has a GPL license.

JavaFX together with FXML is not the only option for creating a GUI app in Linux. Gtkmm is a well-known alternative. The difference is, that gtkmm is not documented and it is unknown in the programmer community, while JavaFX is heavily documented and thousands of developers are familiar with it. I think, Java has the potential to migrate the developers to Linux, and Red Hat is the forefront of the movement. They are bundling the kernel, the OpenSource ecosystem and the Java software into a commercial grade distribution and sell it to the customer. +1

JavaFX in Fedora 27

In a former blogpost, the gtkmm framework was described, which is the native GUI toolkit under Linux and can be programmed with C++. The problem with gtkmm is, that beginner-tutorials are missing. If a developer wants to program his own Hello World app, the JavaFX framework is much more suitable.

The first step is to install the missing packages in Fedora 27:
dnf install openjfx java-1.8.0-openjdk-openjfx

Then example sourcecode for a HelloWorld JavaFX application is used from We are removing the first line with the package statement and compile the code in Geany IDE. After pressing start, a simple Java Window is shown on the screen.

Admitted, I do not like Java very much. Compared to C++ it is inferior, but the advantage of JavaFX under Linux is, that an enormous number of books are available and nearly all user on Stackoverflow are familiar with it. So it makes sense, to use Java for programming business applications under RHEL.

Red Hat is searching for a new logo

How the new logo should look like is simple. It is a clown with a pyramid hat, and the hat is in the color red. The shape of a pyramid is important, because the new strategy of Red Hat is, to be more paranoid, ’cause only the paranoid survive. A pinterest user has made a suggestion: The idea is that the hat is conical like at a witchcraft The female version of the new logo is given here:

GUI Development with Fedora

In a talk about the failed LiMux project in the city of Munich a small discussion was held at the end. It was interesting to hear, that even Linux in Munich has failed, there is until now a general interest in the topics Opensource and Desktop-Linux. The number one problem of the developers was, that under Linux no standards are existing. That is remarkable, because the GUI development under Android and under MS-Windows has clear Standards. So what could be the answer to this challenge?

At first, a base standard for the operating system itself is out and working. This is called RHEL Workstation edition. This operating system costs around 400 US$ per year and includes the Opensource software, continuous updates of all parts and support from Red Hat. After booting up RHEL the same desktop is visible like in Fedora Linux. It consists of Gnome and that’s it. But from the perspective of daily usage, a vanilla Gnome GUI is not what the user want. He can start LibreOffice, and surf in the Internet, but most users in business and public government have so called special applications. That are handmade GUI applications which are normally written for MS-Windows. The apps consisting of many menus, and often a network connection to a remote database it integrated. Sometime the programs are standardized, and sometimes they are hand-tailored. The number one problem of the developers seems how to migrate these applications to Linux.

From the programming language the best opportunity for doing so is C++, which can be compiled with GCC and works quite well under Linux. But on top of C++ it is unclear, how exactly a GUI app has to be programmed. I personally use SFML for game programming, but SFML has no option for creating full blown desktop apps. A menu function is missing. The alternative are toolkits like GTK+ and KDE. GTK+ runs under Gnome, and KDE under KDE. But, and here is the weak point of Linux. There is not standard. There are at least 20 possibilities to create such GUI applications.

If we are assuming, that RHEL is the standard operating system, and that Gnome is the standard Desktop, than the answer is called gtkmm. Which is a C++ interface for programming GUI applications. But, I’m not sure how to program an app with that technology. It seems possible, but there is a lack of good examples. Today, i can’t answer the question if wxwidget, gtkmm or Qt is the better framework under Linux. But it seems, that this question is the bottleneck why Linux is not used often as a desktop application. Even a developer is highly motivated to program under Linux, and is able to adept to new technologies he is not sure, which GUI interface is right. That the people think in general positive about Linux can be shown on the number of apps available for the Android system. If a clear best-practice method exists, for programming an app, it will be used by the community.


According to the number of published books, GTK+ is not very widespread in Linux GUI development. It is the historical older framework which is mainly programmed in C. GTK+ stands for Gimp Toolkit and has only the GUI interface itself onboard, but no extensions for threads or network programming. In contrast, the Qt toolkit has a much higher number of books available, which are explaining of how to use it. On the other hand it is important to know, that the RHEL workstation comes per default with the Gnome Environment but not the KDE, which is optional.

What can we say additional? I mentioned above, that only C++ is a good programming language, especially for GUI programming. Programming a full blown app in C, Python or Java is not a good idea, and nobody in the MS-Windows world is doing so. So we can say, that a Linux app consists of the following ingredients:

• RHEL Workstation as platform
• C++ as programming language
• Gnome or KDE
• GTK+ or QT or wxwidget or another framework

So the question which has to be answered is, what of the following technologies is well suited for app-development: Gnome, KDE, GTK+, QT, wxwidget. The weakness of the Linux ecosystem is, that this question is not answered today. And perhaps this is the number one reason, why potential app-developer do not use Linux on a desktop.

Let us compare direct the Qt framework with potential alternative. In a discussion thread somebody has mentioned, that Qt is used by 800k developers worldwide and runs under all major operating systems. According to the numbers of published books and youtube-tutorial videos this high marketshare seems legitimate. It seems, that Qt is apart from MS-Windows the most important GUI framework. In contrast, the GTK+ framework is even in the Linux community not very often used. Most games are programmed with SFML, and Kdenlive (a video editor) runs for example under KDE.

Qt seems the best

A first comparison of the different frameworks has shown, that Qt is the best option for programming a GUI app under Linux. It has today many problems, for example some bugs, and it needs additional libraries but it also has many advantages:

• the same program can be compiled for running under Linux, Windows, Mac and Android
• Qt comes with extra feature for network and database support
• lots of documentation available
• nearly one million developer are using it, most of them not in the Linux community itself

So in my opinion it is a good bet, the use RHEL Workstation plus C++ plus Qt for developing opensource applications under Linux.

Application development

The normal debate about “Linux on the desktop” works with the end-user in mind. The question is, if the ordinary user like the Linux system or if he prefers Windows because it is easier to use. I think, the enduser is not important. Instead the developer should be focussed. Let us investigate why Android is successful. It is not, because the enduser like the environment, it is more that it is very easy to program an app in Android. So the number of people is high who can with minimal effort create such apps and pushing them to the customer. This brings the development forward.

I think, Linux on the desktop will be only a success, if the developer likes the environment. In my opinion, Qt is the key in the workflow. For the enduser, the Qt framework is not important. Because he is not interested in programming something, nor he is interested if qt or gtk+ is the better framework. But for the developer qt is important, because it allows him to create programs for Linux. And this is the real bottleneck. Only if programmers are able to program for a platform, they will bring the platform forward. Before the enduser can install a program with the package manager, somebody must first write the C++ code. And if the developers doesn’t know how to develop a GUI in Linux, they will not create such apps.

What we need for Linux is a similar community driven development like for the android market. A huge amount of well programmed and not so well program GUI apps, from different programmers in the world who wants to bring their software on the desktop. The question is not, how to contribute to existing softwareprojects like Apache or GIMP, the question is how to write from scratch a new app, which is doing something and looks snappy.

How many programs are existing today for the MS-Windows desktop is simple: 500k apps, If we compare this with the number of apps in the Fedora software manager, it is much more. In the software manager of Linux only a small number of apps are available. Perhaps 1000 or less. Most of the programs are dedicated for server usage and are coming without a GUI.