Innerhalb der Linux Community gibt es ein breites Unverständnis gegenüber Windows User. Linux wird als das technisch bessere System definiert und folglich wird das Winbdows Ecosystem verspottet und es wird unterstellt dass Windows ein Auslaufmodell wäre.
Anstatt an diesen Gedankengang anzudocken und gebetsmühlenartig zu wiederholen was die Vorteil von Linux auf dem Desktop sind, sollen an dieser Stelle einmal die nachteile von Linux genannt werden mit dem ziel dass Windows Benutzer gestärkt werden.
Der wichtigste Grund gegen Linux ist, dass dort die beliebte Datenkbank-Anwendung MS Access nicht lauffähig ist, es gibt ferner kein Opensource pendant was dem Funktionsumfang nahe kommt. Lediglich für MS Word und MS Excel gibt es etablierte Linux Alternativen, für die Desktop_datenbank fehlte bisher die nötige Manpower um ein Open Source Projekt durchzuführen.
Eine Desktop Datenbank wie MS Access ist ferne nicht irgendeine Büroanwendung ähnlich wie ein texteditor oder ein Malprogramm, sondern mit besagter Software kann man ohne Programmieren zu müssen leistungsfähige Frontend und Backend EDV Anwendungen erstellen. Datenbanken mögen für Physiker und Mathematiker entbehrlich sein die eher Programmiersprachen und Mathematik-Software einsetzen, jedoch sind Datenbanken im Geschäftsumfeld die Brot und Butter Anwendung. Der Computereinsatz von Unternehmen ist ausnahmslos datenbank orientiert. Ohne Übertreibung kann man sagen, dass MS Access die Killerapplikation für Compüuter im Büroumfeld darstellt, fehlt diese Applikation sind alle weiteren Vorteile unwichtig.
Linux hat jedoch noch weitere Nachteile. Zunächst einmal ist es auf Consumer-PC nicht vorinstalliert. Wer einen neuen PC im Handel kauft wird dort lediglich Windows 11 vorinstalliert vorfinden. Technisch kann man das Problem natürlich mit einem selbst erstellten USB Bootstick lösen, jedoch wird der Umsteiger schnell erkennen, dass es im PC Fachgeschäft für Linux generell keine Software verfügbar ist. Sämtliche kommerzielle Software von Softwarefirmen die an Privat und LBusinesskunden verkauft wird, wurde dezidiert für das MS Windows Betriebssystem entwickelt.
es gab früher einmal auch kommerzielle Linux software die im Fachladen als Package verkauft wurde, jedoch hat sich das konzept nie durchsetzen können. Die PC Welt ist deshalb zweigeteilt: es gibt einmal kommerzielle Software entwickelt von Firmen für das Windows system und dann gibt es noch Open Source software die es nur online im Internet gibt, die aber nicht kommerziell vermarktet wird. Dadurch stehen normale 'Anwender die auf Linux setzen, plötzlich allein da. Sie müssen sich das nötige Fachwissen mühsam anlesen, sie müssen die Software online herunterladen und wenn es dabei Probleme gibt erhalten sie in Foren den Rat doch einfach auf eine andere Linux Distribution zu wechseln, weil die angeblich viel besser wäre.
Für den Durchschnittsanwender, der einen PC mit vorinstallierten Windows verwendet gibt es keinen Grund auf Linux zu wechseln. Er wird dort nur Nachteile erleben, und wegen der steilen Lernkurve an einfachsten Aufgaben scheitern wie der Installation eines Spieles oder dem Öffnen eines Word Dokumentes. MS Windows ist in sämtlichen Punkten überlegen und bildet unverändert den Industriestandard für Desktop PC sowohl bei Privatanwendern als auch in der Geschäftswelt.
February 16, 2026
Gründe gegen Linux auf dem Desktop
December 03, 2025
Der Marketshare von Linux
Eine Fehlannahme der Open Source community lautet dass es möglich sei den gegenwärtigen niedrigen Marktanteil von Linux auf dem Desktop zu erhöhen. Von aktuell 4% auf 10%, dann auf 20% usw bis Linux WIndows verdrängt hat. Diese Annahme wird seit den 1990er propagiert, nur hat sie sich seit über 20 Jahren als nicht realisierbar herausgestellt. Die ERklärung hat weniger etwas mit der Software Linux an sich zu tun sondern mit den Erwartungen der Nutzer.
Der Hauptgrund warum besonders Softwareentwickler Linux als mächtige Alternative zu Windows auf dem Desktop schätzen hat etwas mit den Stärken von Linux zu tun: es ist Open Source, es enthält eine Kommmandozeile, es ist konfigurierbar, es enthält vorinstallierte Compiler für C++ und Python, es enthält vorinstallierte SQL Datenbanken und ganz wichtig es verfügt mit kvm über eine Virtualisierungsumgebung um weitere Linux und Windows instanzen zu starten.
Leider spielen diese Punkte für den Mainstream anwender keine Rolle. Was für den ENdkonsumenten wichtig ist geht eher in Richtung: Auswahl aus sehr vielen Spielen, vorinstalliert auf einem PC, technischer Support durch Hersteller und Auswahl aus 200k vorhandenen Programmeren. Keine dieser Erwartungen kann Linux erfüllen. in all diesen Punkten ist Linux sehr schlecht und es gibt keine Aussicht auf Besserung.
Daraus folgt, dass der künftige Marktanteil von Linux auf dem Desktop bei dem heutigen niedrigen Wert von 4% verharren wird, sowohl in 2030, in 2040 und die jahre danach wird Linux ein Nischenbetriebssystem bleiben. Entwickelt für professionelle Informatiker die Datenbanken, Programmiersprachen und virtuelle Computer benötigen und für die Windows zuviele Einschränkungen mitbringt.
December 02, 2025
Disappointed with Linux Mint
The promise of the Linux Mint system is, that its a beginner friendly lightweight system in tradition of Ubuntu. None of these claims was fulfilled, there are many reasons to dismiss the ISO file and prefer the old and widely used Debian system instead.
First problem is, that a normal gnome on wayland system with Linux will occupy around 5 GB of RAM after major applications are started. This makes the system a poor choice for older hardware. To be fair, the Debian system needs the same amount of RAM and even more but at least Mint has to no advantage. It seems, that a modern operating system needs always too much of RAM.
Second problem is the quality of the documentation. The main Linux online forum can't be displayed on a text browser like lynx which is a bad confusing for a Linux operating system which is based on the idea of openess, and command line preferences.
Third problem with Linux mint is, that the built in GUI interface cinnamon looks a bit outdated. IT has much in common with the XFCE system. Of course its possible to switch the desktop in favor to KDE or gnome, but this will Linux mint transform into another distribution like Debian. Another reason to reject the Cinnamon desktop is, that the Linux philosopöhy works different from Windows. In Microsoft Windows there is indeed only one desktop available for everyone, but in Linux there are around 8 different desktops out there and the user has to decide for one of them. Linux mint hasn't solve this issue but has added another desltop to the existing ecosystem.
In general, Linux mint is not a bad Linux distribution. It can be installed easily and has preinstalled Libreoffice suite plus a webbrowser so its a good starting point for former Windows users. The real problem is, that Linux itself was not designed for a mainstream audience. Linux is a programmer friendly open source operating system with a maximum market share of 5%. Its not possible to motivate more users to install the system on their computer and Linux mint won't increase the market share in the future.
Unfurtunately Linux Mint has a middle positition which doesn't fulfill the needs of the user. Its to complicated for normal users because it is delivered with powerful software like a GCC c Compiler and a command line which makes it a good choice for a programmer's workstation. on the other hand, it doesn't fit to expert users because Linux mint has to much GUI oriented addtional software and a poor documantation which doesn't fit to the need of expert users. Because Linux mint is based on the Debian and Ubuntu packages it won't replace these established projects and is some sort of add one which is not required by most people.
September 16, 2025
Wie man eine Linux Distribution auswählt
Neueinsteiger sehen sich mit einer Unmenge unterschiedlicher Linux Distributionen konfrontiert, die untereinander vollständig inkompatibel sind. Ferner ist es selbst für Computer Experten nahezu unmöglich, sich selbst eine Linux Distribution zu erstellen. Daraus ergibt sich das Problem sich entscheiden zu müssen was mit einem hohen Lernaufwand verbunden ist.
Die wohl einsteigerfreundlichste Methode sich der Welt von Open Source und Linux zu nähern besteht darin, ein aktuelles Debian Live image auf einen USB Stick zu kopieren, damit einen älteren Rechner zu starten und auf der Festplatte dann Linux zu installieren. Sollte der potentielle User auf technische Schwierigkeiten stoßen beim erstellen des Debian Live images, so sollte die Linux Migration an sich hinterfragt werden. Wenn selbst Debian Live zu hohe Anforderungen an einen User stellt, wird er mit anderen Distributionen auf noch viel tiefer gehende Probleme stoßen und dann ist möglicherweise Linux das falsche Betriebssystem für den User.
Angenommen das Booten eines PC mit der live iso datei und das anschließénde installieren auf der Festplatte funktioniert, so wird der User feststellen, dass Linux grundsätzlich anders aufgebaut ist, als das gewohnte Windows oder MacOS. Es gibt andere Programme, andere Online Foren und die Kommandozeile spielt eine viel wichtigere Rolle. Der wichtigste Unterschied bei Linux ist die Abwesenheit von komerzieller Software und die Abwesenheit von Computerspielen. Rein technisch kann man in Linux durchaus mittels der Steam Software Spiele installieren und einige User machen das tatsächlich, doch die Mehrzahl der 80 Mio Linux User dürfte selten Computerspiele spielen. Jedenfalls ist das den Zahlen zu entnehmen, bezüglich angemeldeter Clients in Online Rollenspielen.
Linux ist klassischerweise ein Betriebssystem für Programmierer. Es kann durchaus auch von Nicht Programmierern verwendet werden, doch ist dieser Anwendungsfall eher die Ausnahme. Es gab in der Vergangenheit zahlreiche Versuche, Linux für die große Masse zugänglicher zu machen, ähnlich wie Android bei Smartphones, doch all diese Versuche sind gescheitert. Projekte wie Ubuntu Linux, Linux Mint oder Videotutorials im Internet die schritt für schritt erklären wie man eine ext4 Partition verkleinert kommen ihrem Ziel Linux für Jedermann zu erklären nicht nach. Nutzer die sich nicht technisch mit einem Betriebssystem auseinandersetzen wollen bleiben seit Jahren dem etablierten Windows und MacOS Ökosystem treu und fühlen sich von Linux eher abgeschreckt. Mag sein, dass Linux bei Supercomputern, bei Servern und auf Smartphones das dominerende Betriebssystem weltweit ist, bei Desktop PC ist es Nischensystem was sich an einer sehr kleine Zielgruppe von Programmierern wendet. Wer noch nie in der Sprache C programmniert hat und in LaTeX keinen Sinn erkennen zu vermag, der ist definitiv falsch bei Linux, ganz egal ob er Debian, Arch Linux oder Suse preferiert.
Zum Abschluss noch ein kleiner Selbsttest für die Programmiersprache C. Nur wenn man 6 von 6 Antworten korrekt geben konnte, sollte man den Versuch unternehmen auf Linux umzusteigen. Andernfalls wird das Projekt sehr wahrscheinlich scheitern.
Quiz: Die Programmiersprache C für Anfänger
1. Was ist das grundlegende Element, das ein C-Programm benötigt, um zu starten?
a) Eine `#include`-Anweisung.
b) Die `main()`-Funktion.
c) Eine Variable mit dem Namen `start`.
d) Eine Bibliothek namens `begin.h`.
2. Welche Header-Datei wird typischerweise benötigt, um die Funktion `printf()` zu verwenden?
a) `stdlib.h`
b) `string.h`
c) `stdio.h`
d) `math.h`
3. Wofür wird ein Semikolon (`;`) in C hauptsächlich verwendet?
a) Um das Ende einer Code-Zeile zu markieren.
b) Um eine Variable zu deklarieren.
c) Um das Ende einer Anweisung zu markieren.
d) Um Kommentare zu schreiben.
4. Wie wird in C eine einfache Ganzzahl-Variable namens `zahl` deklariert, die den Wert 10 enthält?
a) `int zahl = 10;`
b) `number zahl = 10;`
c) `integer zahl = "10";`
d) `zahl = 10;`
5. Welches ist der korrekte Datentyp für ein einzelnes Zeichen in C?
a) `string`
b) `char`
c) `text`
d) `byte`
6. Was ist die Aufgabe eines Compilers?
a) Er wandelt den C-Code direkt in Text um.
b) Er führt das Programm aus.
c) Er übersetzt den C-Quellcode in maschinenlesbaren Code.
d) Er sucht nach Viren im Programm.
---
Richtige Antworten
1. b) Die `main()`-Funktion. Sie ist der Einstiegspunkt, an dem das Programm beginnt.
2. c) `stdio.h` (Standard Input/Output). Diese Bibliothek enthält grundlegende Ein- und Ausgabefunktionen wie `printf()` und `scanf()`.
3. c) Um das Ende einer Anweisung zu markieren. Jede Anweisung muss mit einem Semikolon abgeschlossen werden.
4. a) `int zahl = 10;`. `int` steht für Integer (Ganzzahl).
5. b) `char`. Dies ist der Standard-Datentyp für Zeichen.
6. c) Er übersetzt den C-Quellcode in maschinenlesbaren Code. Der Compiler ist das Werkzeug, das den Code in ein ausführbares Programm umwandelt.
September 15, 2025
Criticism of Linux Mint
Linux Mint is frequently discussed Linux Distribution which is sometimes introduced as a beginner friendly version of Debian. Instead of assuming that the user is already a Linux expert, the Linux community assumes, that the new user has a background in the Microsoft operating system and needs a similar experience in Linux.
To verify if this claim is correct or not it a working thesis is presented first which gets explored in detail. The thesis is, that Linux Mint is at foremost a desktop environment similar to XFCE and Gnome. The core element of the Linux mint distribution is the Cinnamon desktop, which is based on gnome2 and was improved with additional programs. What the user gets presented as Linux mint is a certain look&feel of the programs, a task menu on the bottom and a certain file manager with some other utility programs, e.g. for updating the system or change the settings.
It doesn't make sense to describe Linux Mint as a new linux distribution because it has many similarities with existing distributions. For example, the package format apt has its roots in the Debian ecosystem, the kernel if of course the normal Linux kernel and the display manager is the well known x.org system.
A true Linux distribution has its own philosophy and its own package manager. For example the Arch Linux project is working completely different from debian, because its organized around the pacman package manager.
With the working thesis, that Linux Mint is mostly a desktop environment it possible to judge if the project fits to a certain user. If the user likes the Gnome2 environment and is familiar with some Linux mint enhancement, than he will become a fan of Linux Mint. In contrast, if the user prefers a different desktop environment like XFCE or gnome3, he won't be happy with the Mint project.
From a technical perspective, a debian user can install the Cinnamon desktop in Debian, this resulting look and feel comes close to the Linux Mint distribution which is usually delivered on an entire .iso file. Instead of arguing which of the Linux distribution is the best, the real question is which sort of desktop environment the user likes. There are multiple options like Lxqt, gnome3, KDE, xfce, lxde and so on.
Unfurtunately, this huge amount of choices makes it hard for a former Windows user to become familier with Linux. The look and feel of cinnamon looks very different from Gnome3 which looks completely different from xfce. Even the file manager is a different program and the printer settings are located in another section. Unfurtunately, the prediction is, that future Linux desktops will look even more chaotic with additional forks of existing desktop systems. The introduction of the newly developed wayland display server has increased the amount of choices.
What is missing in the Linux ecosystem is a single one for all desktop system which is highly developed and has accumlated most of the users. Such kind of super-desktop is available for windows users and in the macos ecosystem.
But let us go back to the Linux Mint project. The assumption is, that the visual look and feel of a Linux system is highly important. That means, for Linux mint the cinnamon desktop is the core element and all the documentation and the tools are added to this desktop. The cinnamon desktop has the same pros and cons like other desktop systems. Some user like the design, while other not.
The problem with the "desktop is the Linux distribution" mentality is, that redefines reality and creates a bias. Let me give an example. Suppose the lxde desktop decides to start an entire linux distribution which promotes Lxde as default window manager. The assumption is, that all the users are prefering this single desktop but are discouraged to install alternative desktops like gnome3. Even if some users are prefering such an idea, it won't fit for other users. The better alternative is to see a Linux distribution only as a framework for different desktops.
September 03, 2025
Preinstalled gnome apps
Even there are 100 different Linux distributions available, there are only two Linux desktops available which are Gnome and KDE. Gnome is widespread used and should be explained briefly. It consists of a handful of apps in different categories:
- system tools: archive manager, gnome-disks, file-manager, gedit, terminal, screenshot, system-monitor
- document tools: scanner, pdf viewer
- office apps: video player, evolution e-mail
No matter which Linux distribution was installed on the PC for example Ubuntu, Arch Linux or Slackware, these gnome apps are available for sure. It allows to organize files on the hard drive, create new partitions, create text files, enter commands in the terminal or write an email. These tools are frequently used by the average end user so they are preinstalled on every system.
Of course, all these programs are distributed under a GPL License, which means that they are free of charge and without advertisement. They are nearly error free, because the tools were improved over decades and used by million of users.
September 02, 2025
Secure erase of a hard drive in Linux
Debian based operating systems have a graphical frontend for hard drive manipulation called gnome-disks. According to the selected hard drive, there are different options available in the menu. For older drives there is an option to overwrite a disk with zeros and for more recent drives there is a dedicated secure erase option available. What these options have in common is, that it takes multiple hours for doing so.
Unfortunately, the photorec recovery software is able to restore files from hard drive which was overwritten with zeros. Even if this sounds technically not possible some online forums are mention such kind of behavior. To ensure, that the data on the hard drive are really gone it makes sense to combine a secure erase operation with creating a newly encrypted volume. This ensures, that even photorec can't recover former data.
The good news is, that Linux user doesn't have to use command line tools for formatting a drive and creating an encrypted volume. Such kind of operation is fully supported in the gnome-disks software. The program is so powerful, that even less known filesystems like F2FS (flash friendly filesystem) are supported which is a great choice for usb thumb drives. Of course, the user needs to interact with the software carefully, because a simple click on a button can shredder an entire disk.
March 01, 2025
Advantages of Linux in a single sentence
November 02, 2023
Introduction to the Linux operating system
Books about the Windows operating system are assuming that the user has never seen a computer before and needs guidance for most tasks. The typical windows book explains, that a computer consists of a mouse, a USB interface, a printer and a monitor and the user is asked to start a program or modify settings in the menu.
It doesn't make sense to transfer this language style to Linux operating systems because Linux wasn't created for computer newbies but for experts. The simple difference between both user groups is, that computer newbies can't program in Python while computer experts are able to do so. As a consequence the typical book about Linux should assume that the user is familiar with the Python language.
The positive effect is, that the explanation what Linux is about can be shorten drastically. Linux allows to execute self written python programs, consists of a powerful package manager and is distributed for free. If the user have no need for such functionality he probably doesn't need open source software and is recommended to use existing Windows software.
The reason why the market share of Linux is much smaller is because the amount of programmers is small. What we can say for sure is that non programmers won't feel comfortable with Linux. Its not about a certain windows manager like gnome vs xfce and it is not about the position of the start menu, but without programming skills in at least one language the Linux OS doesn't make sense for the user.
From a programmers perspective it is pretty easy to understand the Linux operating system. In comparison to write a medium size software project in Python, the interaction with Linux is much easier. There is no need to call a method in a python program, nor implement a recursive function, but the installation of linux is gui driven and apart from clicking on some buttons no further skills are needed. 99% of existing software engineers are able to install and use Linux with ease.
Let us take a closer look into the numbers. There are 1000 million PC worldwide available and around 27 million programmers. This ratio of 2.7% is the maximum market share of Linux on the desktop. It is not possible to growth the market share of Linux above this level because this would imply that non programmers have installed Linux on the desktop PC in favor of Windows.
October 27, 2023
The Linux kernel as a device driver repository
Most of the lines of code within the Linux project are about device drivers. Its not about about 1000 lines of code, nor 1 million lines of code but device drivers need around 20 million lines of code within the Kernel. Instead of analyzing what the drivers are doing from a technical perspective there is a need to describe the philosophy.
In classical closed source operaring systems, the device driver is provided by the hardware manufactorer. A certain company is producing a flatbad scanner and has to deliver the hardware itself plus a 3.5" floppy disc which contains of drivers to run the hardware. The same issue is there for a mouse, an usb stick, a camera and so on. In the 1990s it was common that device drivers where delivered on physical discs inside the box of the hardware. The end user was asked to insert the disc into the pc and run a program which was mostly setup.exe to install the drivers. Then and only then the hardware was working.
More recent version of Windows are installing the needed drivers in the background without human interention. The Windows operating system detects with plug and play which hardware is in use and downloads the drivers from the internet. These drivers are mostly writtein in C language and compiled into executable binary programs.
In contrast the linux kernel is working with open source hardware drivers. The Kernel is basically a collection of drivers for getting access to all the devices like cd-rom, ssd, ethernet card and so on. The shared similarity between Windows and Linux is that somebody has write all the drivers. Within the Windows ecodsystem this task is handled decentralized. Each company has to write its own drivers and doesn't explain to the public what the code is about. In contrast, Linux is working with a centralized model. There is only a single kernel and all the drivers are in the kernel.
The focus on the device drivers might explain why apart from the major three operating systems (win, linux and macos) there are no alternative projects available for desktop PC. Everybody who likes to establish a new operating system has to make sure that all the hardware is working with this operating system. The only way for doing so is to write all the needed drivers from scratch. This will take a lot o man years. Because of this single reasson there is no Forth operating system, and smaller projects like Haiku are not working well enough for production machines. The cause is, that most devices won't work with these devices. That means, the proud user of the Haiku OS is plugging in an USB stick into the PC but nothing happens. The OS isn't detecting the hardware and has no executable driver for this hardware.
The major cause why device drivers are released as closed source for Windows is because it is a time consuming task to write the software. A single expert programmer is able to create around 10 lines of code per day. Even if the programmer has access to all the hardware specification and has a lots of experience he will need months up to years until the driver for a certain device was written. It doesn't make sense for a hardware company to release the software as open source because the source code including the ability to write code for new devices is a asset for a company which can't be shared with other comapnies.
The Linux ecosystem is working the opposite way. Its a mandatory rule that all the code has to be released in the open source version. If a certain driver is not available then the device won't work with the kernel. The result is, that the quality of the hardware drivers in Linux is lower and that the amount of drivers is lower. There are lots of hardware available which is supported in Windows but not in Linux. Its not of technical requirements but because of the ecosystem and especially the time consuming effort to write a driver in C.
Suppose it would be possible to create a universal device driver in 10k lines of code which can interact with any possible hardware. Then it would be pretty easy to create new operating systems from scratch. All what is needed is this single device driver and some additional programs can be added. Unfurtunately there are technical limitations which prevents that such a universal driver can be realized. Existing computing hardware is so complex and so different that any single device will need a dedicated driver.
Let us estimate how many different hardware devices are available. suppose a single device like an ethernet card is controlled by driver with 10k lines of code. There are 20 million of codelines in the Linux project for hardware drivers., so the total amount of different devices is 2k. It is equal to a large museum fully equipped with computer hardware from floor to ceilling. In addition, modern computer hardware is more complex than previuos models For example the avarage mouse is equipped with infrared sensors while the typical mouse in the 1990s was using a simple rubber ball to detect the movements. So we can estimate that in the future the complexity will grow further which results into more different devices which have a need for more codelines.
October 26, 2023
Writing device drivers in C
The core element of any operating system is a collection of device drivers. These drivers ensures that hardware components like a mouse, the graphics card, ethernet cards and keyboard is available for the end user. The only programming language for implementing a device driver is C. C gets compiled into assembly instructions and this ensures the maximum efficiency.
Suppose the idea is to realize an operating system in Forth with the aim to run it on a stackmachine. In such a case, the c language isn't available but the user is forced to rewrite the device drivers in Forth. This will produce a situation in which all the code isn't written yet but has to be rewritten. It will take lots of man years to rewrite c device driver in a Forth dialect. Even if the programmers are highly motivated, they won't be able to fullfill the task within the next 30 years.
One possible attempt to overcome the Forth bottleneck is a virtual machine and high level languages like BASIC. The basic programming language gets converted into byte code which is executed on a virtual machine. The virtual machine is running on top of a Forth chip so the programmer doesn't need to program in Forth anymore. The only problem is, that BASIC is a high level programming language while device drivers are written in a low level language.
Unfurtunately, it is not possible to execute C in a virtual machine because C code needs direct hardware access. The only way to execute c code is by compiling it into assembly language. But compiling c code into assembly is only possible for register machine, not for stackmachines. There is no such thing available like a C to forth converter, and even it is possible to implement such a thing it can't be applied to device drivers.
Device drivers are an important element of any operating system. They make sure that all the hardware like printers, usb port, webcam and so on are working. Programming an operating system by ignoring the device won't make sense. It seems that only the C low level language is only option for writing device drivers. This situation makes it unlikely, that operating systems will work on stackmachines.
The problem is not located in technical terms. Forth is a great language for getting direct access to hardware. There are some microcontrollers available which are running with Forth at bare metal. The more serious problem is, that a desktop operating system consists of thousnands of different hardware devices. Writing the code for all the devices will take endless amount of man years.[1] This effort is very costly. Rewriting existing C device drivers into Forth is to expensive. This prevents that such a project gets started. It seems, that the x86 architecture is the only valid computer system which is able to run desktop operating systems.
Perhaps it makes sense to go a step backward and understand why exactly C was choosen in mainstream computing. The goal was to write device drivers which contains of millions of codelines. Instead of writing this code in assembly language which is different for each processor, the idea was to write the device drivers in C. C is more portable than Assembly and is easier to learn. What is needed in addition is a compiler for generating assembly instructions automatically. This paradigm is valid in computing since decades.
The only bottleneck for a c compiler is, that it needs a certain target architecture which is a compiler friendly x86 architecture. Possbile alternatives like a RISC Cpu and especially a Forth cpu are preventing that C code gets converted into assembly instructions.
The linux kernel contains of at least 5 million lines of code reserved for device drivers.[1] A potential Linux alternative written in Forth has to provide the same functionality. From a technical point of view it is possible to rewrite the device drivers in Forth, but from an economical perspective it doesn't make sense. Its a well known fact that a single programmer can write down only 10 lines of code per day no matter which programming language he prefers. And the open question is who exactly should write all the code in Forth?
There is a certain reason available why all the desktop operating systems were written in C. Because existing code was written mostly in C and it is much easier to add something to an existing codebase than rewriting it from scratch. The untold assumption is, that all the 5 million lines of code are needed, otherwise the computer isn't able to detect or manage a certain hardware for example a graphics card or a network card. The second assumption is, that even the Forth language will need device drivers. It is not possible to write a Forth OS in 10k lines of code which provides the same functionality like the existing device drivers which are written in 5 million lines of code. This might explain why Forth is not very popular in mainstream computing. Even if the concept is interesting from a theoretical point of view it can't answer the question how to write all the source code which is needed in an operating system. Existing Forth tutorials are explaining to the newbie what a stack machine is about and how to combine Forth words into programs. But this ability is not enough to realize full blown desktop opeating systems in the style of Linux, MacOS or Windows.
In contrast the C language explains very well how to handle complexity. According to the C language paradigm the programmer has to write C code for newly hardware, commit this C into the existing codebase and this will improve the functionality of the Linux kernel. That means, there are 5 million LoC already there, and a new device driver will add around 200 lines of code and its only a detail question how to program the code exactly.
So called Forth systems and stack oriented programming languages like Factorcode are ignoring the problem of device drivers. Especially the aspect how to create millions of codelines to get access to endless amount of existing hardware.
[1] Kadav, Asim, and Michael M. Swift. "Understanding modern device drivers." ACM SIGPLAN Notices 47.4 (2012): 87-98.
October 11, 2023
Gaming on Linux
What the newbie gamer has to know is, that the Linux operating system provides a different experience than the well known Windows ecosystem. Its not about kernel drivers nor open source licences, but Linux gaming is about reducing the own expectations. The user has to like what he gets no matter how low the quality is. So Linux gaming is equal to potato gaming. The typical resolution is 320x200 pixel which is upscaled to the monitor. Of course, such a resolution looks terrible and it doesn't fullfill the minimum standard. But on the other it allows to see gaming from a new perspective.
In a direct comparison, Linux gaming has a lower quality than windows gaming. More advanced graphics hardware from nvidia isn't supported in Linux and if a graphic chip was detected it will produce for sure a lower frame rate. In every case it is impossible to run the same games as in Windows so the overall situation is about missed opportunity. There is no way to fix it because the Linux ecosystem hasn't the resources to program drivers. Most users are playing older games like Tetris or Pingus which was developed 25 years ago.[1] If they are asking for more recent games with 3d graphics they barely understood what Linux is about.
It is unlikely that the situation will become better in the near future. Linux gaming is a mess and perhaps this was the objective from the beginning. Because of this reason, it doesn't make sense to compare Windows with Linux because they have different objectives. The only thing which is for sure is, that Windows is a here to stay, while Linux is hated by everybody. Nobody likes to play low resolution games from 20 years ago which have lots of bugs.
[1] Wikipedia: pingus
March 25, 2023
Tribute to the FreeBSD operating system
November 17, 2022
Linux is a large hard drive
Computers in the past were easy to explain. The commodore 64 consists of ROM which holds the operating system and MS DOS needs a single boot floppy drive which consists of only three files: command.com, io.sys and msdos.sys
In contrast, a modern operating system like Linux looks similar to a mess. There are endless amount of small files which contains of config files, man files, documentation, binary files and log files. The exact amount of all files can be determined either the in graphical "disc usage analyzer" or on the command line with:
df -i /
The amount of active inodes is equal to the files which includes directories. For most fresh installed Linux distribution the amount is around 500k. Only for comparison reason a fresh Windows installation needs around 300k files.
Most Linux beginners and even experts will struggle to explain what is stored in the these files. In most cases it contains of system programs, applications and helper files for the fonts, icons and so on. The only thing what is for sure is, that Unix will need all these files and many real life webservers will need much more additional files for the home directory. The huge file count is perhaps the most obvious difference between a commodore 64 and a unix system.
It is not possible to install the Unix operating system on a single flopp drive or in the ROM of a the hardware. This is an advantage and disadvantage at the same time.
It should be mentioned, that the amount of 0.5 million files on a standard linux system is a small amount of files. The reason is, that only the trunk version of each file which is the latest was installed. In addition the git repository contains many more versions which is available in the cloud. So we can say that the Linux operating system contains of a much more different files which were created over the years. It seems, that this is not perceived as a problem, but it is strength of Unix. Because it allows to growth the system endless.
Unix is working with some underlying assumptions. The idea is not about running a program on a CPU. Such a paradigm was valid for homecomputers. In contrast Unix is working with the assumption that there are 500k files on the harddrive and with each update, additional files are created. Also the existing files are modified by the upstream in a version control system. So the overall Unix system has much in common with a repository of programs and config files.
On the Commodore 64 and early CP/M computers the principle was to reduce the amount of files. Fewer files can be stored on less floppy disks and are running faster on the computer. In addition, fewer files can be compiled faster and contains of fewer bugs. With the advent of Unix, such a minimalist approach has been abandoned.
August 17, 2022
Number of commits for Linux and Freebsd
December 23, 2021
How to avoid LaTeX at all
September 21, 2021
Predicting failure pattern for Linux
August 05, 2021
Why promoting Linux is a bad idea ...
March 07, 2020
Small introduction into the Kexi software
But it makes no sense to be too critical. Because all the advanced existing database applications are close source projects and so called web databases on top of PHP and Ajax are very complicated to use and can't replace a desktop database. So i'd like to introduce Kexi to the newbies with some screenshots and explain what the developers have programmed so far.
The program is available in Fedora and Debian as well. According to the official description its an “integrated database environment for the Calligra Suite” and an “visual database applications builder” [1] The program has only a small size. The kexi sourcecode consists of 150k lines of code which is around 4 MB for the program.

The main menu looks exactly like a small project. The user is asked to create tables, forms and reports. The menu bar on top of the screen have no purpose, all the features have to do with tables, forms and reports. At first the user can create a new table. I have done so and the table stores the firstname and the last name of fictional students. Additional a primary key was defined which is incremented in the auto mode.

In the next screen the form editor is shown. Which is a minimalist one. There are some widgets available which can be dropped with the mouse into the form The most important one is the text field which holds the data of the underlying table. The data source can be provided right the properties menu. In contrast to the Gambas software (which is a visual basic clone) the connection between the database table and the form is working great. The user is able to see the data in the form.

The last item in the list is the report generator. This module has less features than the minimalist form generator but the user is able to create simple reports. He can drag and drop text fields, specify the underlying data source and with the printing driver of the Linux operating system it's possible to create a pdf document.

More features are not available. The official Kexi handbook explains mostly what is missing in the project and indeed the software is in an early stage. But compared to other software open source projects, Kexi is my personal favorite. It has to two main advantages. First one is, that the project is going into the right direction. The project goal is to program in C++ and integrated database software which contains of tables, forms, reports and scripting features. The second advantage is, that the code written so far is stable and the user can create a small but working database.
Let us make a simple thought experiment. Suppose enough manpower is provided for this project, and the amount of codelines grows by the factor 10 from today 150k to 1.5 million. Additionally some example .kexi files are provided and the forum gets more traffic. The prediction is, that Kexi will become one of the most interesting Open Source projects since decades. The reason is, that the normal user can do a lot of things with a database RAD tool. The options are endless. If such a software is programmed as open source with open standards in mind it can change the software industry.
I would guess that the next milestone for the project is to bring kexi on the same level like the outdated MS-access 2.0 software. I would guess that today kexi provides around 20% of the features from Access 2.0. Most of the interesting features are missing. But from a technical perspective it's possible to improve the software.
Importing CSV
Under the tab “external data” the user can import existing csv data. I have tested out the feature with an example csv file. [2] It works great. The csv file is converted into a kexi table.
disadvantages
Some major problems are visible with the software. The first one is, that after clicking with the right mouse button on a table and select “Export table as csv” the kexi program crashes without warning. It's not possible to export the table at all. This makes it hard to use the data for external purposes. The second problem is, that kexi has some preinstalled plugins which includes an sqlite driver, but it's not possible to connect to a sql lite database.
It's not clear what exactly the reason is why the important features are not working, but suppose the connection to a sqlite database works, and suppose the export filter gets improved, then the normal user would be able to use Kexi for some smaller databases. It has some advantages over LibreOffice calc to create a dedicated database, and create queries with the SQL language. As far as i can see the sourcecode is available so it would be possible either to contribute to the existing kexi project or fork the project and start a clone.
sources
[1] Debian kexi package, https://packages.debian.org/search?keywords=kexi
[2] CSV sample data, https://people.sc.fsu.edu/~jburkardt/data/csv/csv.html
February 16, 2020
Alternatives to Debian
A docker container is a virtualized server. It reduces the costs and has became the defacto standard for all the webservers. In theory, it's possible to install a debian operating system in a docker container but in reality lightweight distrubutions like Alpine Linux were used for this purpose. Alpine Linux is a relative new development. It was first published in 2010 but has become very successful. It's not based on Debian and not on Fedora, but it was developed with a different purpose in mind.
What we can say for sure is, that Debian can't compete with Alpine Linux. Only another Docker-friendly Linux distribution can compete with Alpine Linux. But if Debian is no longer relevant for a text-only webserver, which purpose is fulfilled by the project? Right, it has become obsolete. If the idea is to provide not a cloud webserver but a desktop operating system there are many alternatives to Debian. One is Clear Linux. Clear Linux is very different from classical desktop operating systems. It is working with a combination of highly optimized binary files plus an incremental update mechanism. Similiar to Alpine LInux it's a very new development not available in the past.
We can say in general that the computing industry has changed a lot over the times. Innovations like github, Stackoverflow and Google Scholar were not available 20 years ago. The disadvantage of this development is, that projects from the past will become obsolete. They are not serving the needs of today's programmers anymore. Debian is one example for an outdated project. Similar to Windows XP and Google+ the service has lost it's influence. The Ubuntu operating system which includes the well written Wiki was perhaps the greatest milestone in the long history of Debian. Bye.
[1] Zerouali, Ahmed, et al. "On the relation between outdated docker containers, severity vulnerabilities, and bugs." 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE, 2019.
