How much fear has Microsoft before Linux?

About the inner working of Microsoft isn’t known very much. We can only speculate what is going on. The most dominant invention in the last 5 years was the so called “Linux Subsystem for Linux”. Why has Microsoft made such an important step? There was no real need. Most Windows users doesn’t need Linux, and people who are running Linux have Wine. So the step makes no sense. But every step in Microsoft’s history has a meaning, it is not possible that they are making something wrong.

Let us investigate the Windows ecosystem in detail. Windows is very strong for mainstream desktop users and especially for gamers. Here the Windows system has a market share of 99%. Windows is also very strong for programmers / developers, the market share is around 80%. Most active users in Stackoverflow who are programming with C++, Java and PHP are using Windows but not Linux. In contrast, the technical situation is very optimistic for Linux. A java programs run in Linux as well as in Windows, and the new steam client for Linux works also reasonable well.

We have the situation, that from a technical point of view a state of the art Fedora Linux / Ubuntu is a very good choice for playing youtube videos, run Java programs and playing Steam games, while in reality the people are preferring MS-Windows. According to the latest stats, the number of Steam users who are running the client in Linux is below 0.1%. That means, nobody is doing so.

I would guess, that Microsoft has the fear, that after the technology works well with Linux, it is only a question of time, if the average users are finding out, who well the Linux ecosystem works. This could explain the project “Linux subsystem for Windows” which is a try to get control over the situation. What Microsoft is doing is some kind of proactive marketing, in the hope this will extend the lifecycle of his operating system.

Let us explain, why the average desktop users is not using Linux but Windows for creating word-documents, playing youtube videos or playing Steam games. The answer is simple, it is 100% the result of marketing. Only from a technical point of view, Linux is superior. It boots faster, costs less and is more powerful (e.g. the bash shell) then a Windows operating system. On the same time, 99% of the users are fans of Microsoft. That means, Microsoft has the better marketing but an outdated technology. I would guess, that Microsoft is aware of the problem. They know, that on a technical side they are no longer powerful.

Let us watch in slowmotion how the battle between Microsoft and Linux is going on. The first round took place in the 1990s. That was the time, in which Linux was able to replace commercial UNIX vendors. Today all supercomputers and most webservers are running with Linux operating system. In the 2000s the average programmer become familiar with Linux and the Android development began to start. Now in the year 2018 we have the situation, that Microsoft itself is promoting Linux. They have introduced a Linux subsystem for Windows which works better then any x-window port before, and they are using git for internal reasons. Let us assume, Microsoft is trying to increase the effort to promoting Linux. What will happen, at first, the number of endusers who are getting in touch with Open Source will raise, and at the same time, the Open Source community can bring Microsoft in front of a court, because they are using the GPL license the wrong way. Short explanation: if somebody is using Open Source gpl software he must open his own sourcecode too, that is not the case for Microsoft, they make the subsystem open but not the rest of the operating system. That means, the Linux movement is in a very comfortable position. Either everything stays the same, or the world is switching to Linux. That means, it is not possible to win against Open Source software in the long run. What is possible, and we see it, to make profit in a short term perspective, because right now, 99% of the customers are preferring Windows and are paying a lot of money for it. THat means, there is a cultural bias which is against Linux, at least by the enduser.

Bottleneck

Let us describe the bottleneck of Open Source software. The main problem, which has to be answered is how to become new sourcecode. Only what is available as sourcecode can be called an operating system. The interesting point is, that the Open Source movement has solved the issue. The business model is simple and was invented in the 1980s. In short, the idea is to pay programmers for writing code, and publish the code under a gpl license. From a classical point of view, this makes no sense. Because somebody has to pay money without getting a copyright protected product which can be sold to the customer. But according to the latest earining report of Red Hat, it is possible to earn money with it. The reason is, that companies like Cisco, IBM and Google have a demand for Open Source software, so they are paying the price. And if the Linux kernel doesn’t fit their needs, they are simply changing the sourcecode.

The bottleneck in Open Source (who programs the code) can be seen as solved, and that is the reason, why Linux has a market share on supercomputers of 99%, and on Smartphones above 50%. And that is the reason, why Microsoft is in fear of it. Because they have nothing against it. The interesting feature in Linux vs. Windows is, that both operating systems are not defeat each other on the same market. In reality. there is only a windows Market, in which Microsoft has 100% market share and an Open Source market in which the Market share of Microsoft is below 5%. That means, red hat is not attacking Microsoft directly on their own market, they have created a new rule book which works differently. In theory, both markets can exists together. But the underlying subject is in both cases software, so there is some kind of challenge ongoing.

Advertisements

5 questions to Linus Torvalds

1. I have heard your talk about the git version control system. The work you have done impressed me and I assume, that git is an object oriented programming language which can be replace C, is that right?

2. I have heard, that your company Red hat is trying to buy Microsoft? Is that true?

3. Why don’t you have ported the Linux kernel to the Intel x86 architecture? It would make sense, because this hardware is used in mainstream computing.

4. One of your famous programming project was the GNU C compiler. I would like to thank you for the work you have done and want to know more about the development itself.

5. Why is the Linux kernel not programmed in 64 bit mode but only in 16 bit mode which is not compatible to current cpu generation?

Making a modern looking PDF paper

The normal output from the Lyx textprocessor uses only the Pdflatex program which is outdated today. It is very slow, doesn’t support Unicode and has problems with modern fonts. The better alternative is:

1. Export from Lyx as Xelatex
2. Change the latex file and insert the following command:
\usepackage{fontspec}
\setmainfont[Scale=0.9]{FreeSans}
\setmonofont{FreeMono}
3. compile:
xelatex paper32.tex
bibtex paper32.tex
xelatex paper32.tex
xelatex paper32.tex

After compiling the file with xelatex, the most recent Opentype fonts are used. In the PDF document they are shown as Truetype Font, which is the correct name. The above explained strategy replaces form LaTeX best-practices like the Metafont program (used in the beginning), and Type1 fonts (not unicode ready). Using Xelatex together with opentype is not a reinvention of LaTeX but it’s evolutionary development.

The bad news is, that the FreeSans font doesn’t support chinese characters. But that is no problem, because scientific documents are always written in English.

Windows is like the Commodore 64

spelling

There was a time in the 1980s, in which the Commodore 64 was a great piece of hardware. His main advantage was it’s price. It was the first time, that a normal consumer had the opportunity to buy a computer. He didn’t have to be part of the university system, he didn’t have to be an amateur electronics, instead the Commodore 64 was sold in the same store like washing machines and TV sets.

Today it is possible to write for the same machine programs. The best way for doing so, is using the CC65 crosscompiler. The programmer creates in C a program whichs is compiled to Assembly, and it is even possible to write programs for the GEOS operating system. But makes this any sense? No, from a technical point of view, the C-64 is no longer interesting. Because he is no longer sold, his RAM is too small, and there is no community who is interested in the new created software. The main lesson of the Commodore 64 was, that any product has a lifetime, that means, from around the 1990s on the Commodore 64 was only computerhistory, but not a working system.

Let us take a look at the MS-Windows operating system. Like in the Commodore 64 area, there was also a time in which Windows was great. And yes, Windows can be called the legitimate predecessor to the C-64. The PC-revolution of the 1990s results into cheap hardware like the C-64 but with more capacity. The 1990s was the first time, that the normal consumer was able to buy harddrives with more than 100 MB, and highres-graphics card. In a direct comparison, the IBM PC and his clones had a better price-ratio than for example the CMD harddrive for the C-64. So the PC revolution was also a poor-mans-computer.

The cheapest operating system in this time was MS-Windows. But like the Commodore 64, the product had only a limited lifespan. It was replaced by the Linux operating system. And like in the lesson before, it had to do with a better price-ratio. Driving a Webserver with Windows was possible but very expensive, doing the same with Linux was no big deal. After the C-64, the Windows operating system was the next system which was no longer an active maintained product but computer history.

From todays perspective it is possible to give both a second life in a so called emulator. It is for example possible to boot MS-windows in kvm and writing software for it. Other people are going a step forward, and have programmed a Windows clone, called reactos. Reactos is similar to the freedos project which is also a look back in the good old times. The question is: make it sense, for writing software for freedos or reactos? Propably not, it is like the C-64 an outdated technology.

For example, we can ask the freedos programmer and the reactos programmer what their wishes are for the future. Do they really want to program an operating system which is used on real hardware? No they won’t. Freedos and Reactos are invented as legacy per default, that means they shouldn’t replace Linux, instead the project can be seen like a C-64 emulator, which is created with the idea in mind to save the past and explain the future generation, how the system looks like. Comparing ReactOS with Linux makes no sense, Linux sees themself as an operating system for todays need, while ReactOS sees themself as an emulator for outdated technology.

Until now, i ignored the number of users, MS-windows has today. According to the latest count, at least 2 billion people worldwide are part of what they call the Windows community. That is a group of amateurs, who is using MS-Windows as their main operating system with the aim to install games and even wordprocessors on it. According to their self-destruction the community is healthy and stable. But in reality, MS-Windows user didn’t recognized that the time has changed. Since the 1990s there system is outdated, but they didn’t recognized it. In theory, it is possible to ignore the reality and using MS-Windows like a C-64 forever. But everybody who is interested in learning something about computers will recognize fast, that MS-windows has internal limits which can’t be overcome. That means, there is no certain bug in the software, but the overall system is broken.

Microsoft has published recently the so called “Windows Subsystem for Linux” (WSL). The marketing campaign was started with the aim, to bring back former Linux users to Windows. From the self-awareness of the MS-Windows community, there system is the future, and Linux is called nearly death. The reality is, that Windows Subsystem for Linux is trying to update Windows to the next iteration, which won’t work. Because the next step after the current WSL would be to run not only text-application but Gnome apps. And the next step after it, is equal to publish parts of the Windows sourcecode under a GPL license and so forth. WSL is not an improvement of Windows, it will be his end. MS-windows was never created as an opensource project, instead the community will collapse on the trial to imitate Linux.

What we see right now is the maximum in MS-Windows marketshare. Microsoft is like Commodore before top of the pops. They believe they are unbeatable. But in reality, they have lost the war. And the so called Windows community doesn’t even recognized the problem. They believe that the number of newly published games for the Windows operating system is a clear indicator, that the software-market is doing well. But in reality, nobody want’s to produce software for Windows. The programmers have other plans, than crosscompiling the Linux apps for the Windows market. What the motivation behind a programmer is, is simply: he wants to learn something about technology. And he do so with a system which supports his progress. Windows supports nobody. It is not possible to learn on the platform, especially not how to program future applications.

Short history of Unix

Unix is around 50 years old. In the 1970, Dennis Ritchie wrote the C programming language and programmed the first Unix operating system in 40kb. C was a replacement for assembly-like programming language and is very efficent. The 1980s was the are of commercializing Unix. That means, the former university research project migrated into a business. No longer computer scientists are programmed the software but companies like SUN (Stanford University Network). The 1990s was dominated by the invention of Linux. Linux is not a technical invention because it used the same C programming language and the same Unix specification, but it is legal idea to reduce the costs further. The typical SUN workstation of the 1980s costs around 30k US$ while the typical Linux computer of the 1990s was around 3000k US$ and the software was for free. The 2000s was the decade of the internet. That means, Linux based server and clusters powered the internet, and the OpenSource ecosystem was recognized in public.

The bad news is, that Unix is today no longer a computer science project. At least since the 1980s, and more obvious since Linux, it is driven by money, or more specific about the idea the reducing the costs of computing. Torvalds is not a researcher and he is also not a programmer, but a lawyer. That means, he is an expert for copyright law, and patent protected sourcecode. It is not possible to see Linux as part of the hacker community or computer science research, it is something different.

But if Unix is no longer intersting from a scientific perspective, what has replaced Unix there? Let us go back into the 1970s. In this time, operating systems, timesharing and GUI development was an academic topic. That means, the work was done at universities. Since the 1970s on, the amount of work done at the universities is reduced, and today nobody in Stanford or MIT is interested in Unix anymore. Instead, computersoftware is a commercial product, sold by Microsoft, Redhat and Google Android. It may be look surprising for the oldschool hackers, that Unix is no longer the epicentre of future development. But the problem is, that everything was figured out. It is clear, how to write a compiler for a programming language, and what an operating system must do. It can be compared with the invention of the first steam engine. In the beginning, steam was a research subject, but later normal companies are producing the machine.

Crosscompilation from Linux to the world

Linux is not yet-another-operating system, it is the central hub for programming software which has to be run under other operating systems. Suppose we have a hello world program in C++ and want to compile this for different target platforms. MS-windows, Mac OS X, iPhone OS, Android, Playstation. The normal way is to install first a virtual machine for every of this target. Installing MS-Windows in kvm is easy, Mac OS is more difficult but possible, iphone os is really hard and Android is easy. The reason why it is so complicated has nothing do with Linux itself, it is the fault of the counterpart. That means, it is easier to install a opensource operating system in a virtual machine, than a closed source system.

Now we make the other way around. We are using MS-Windows as main operating system and cross-compile there a .elf binary for Linux. This can be done very easy. We need only a working Fedora in virtualbox, which is perfect documented and program for the Gnome GUI a app. Only the other way around do not work very well. That means, installing in a virtual machine a proprietary operating system is very difficult. Even older systems like the SuperNintendo game console runs not smooth in such environments. The same is true for Windows or Mac OS.

Can the Linux community improve the situation? No, with kvm and qemu everything is great. The problem is, that Mac OS X and Windows are not fully documented and the sourcecode is not available.. That makes it difficult to crosscompile an application for it. The best comparison is perhaps the above mentioned Nintendo SuperNES. It was designed with the idea, that apart from Nintendo nobody other should program software for it. That means, the technology is not cross-compiler friendly. Mac OS X is very similar to Nintendo SuperNES. The system itself is easy to use, and most people love the plattform, but writing software for it is a nightmare.

Let us investigate cross-compilation from and to Mac OS X in detail. If somebody has an imac and wants to program software, which runs in Linux, he will get no problems. He simply installs a Linux distribution and writes for this target the software. The iso-image for Linux can be downloaded from the internet without any costs, and compilers too. But the other way around is difficult or even not possible. Because installing Mac OS X in a virtual machine is not supported by Apple. The code is closed source. And cross-compiling software for it, is also forbidden because Apple alone decides who is allowed to create software.

That is surprising, because in theory Mac OS X and Linux are both unix-compatible. They are using a similar kernel and are both used for professional programming tasks. The different is, that Linux was designed as open per default, that means it is easy to write software for it, while programming software for the Mac OS X target is hard.

The problem with Mac OS X, MS-Windows and iOS is, that all of them are created as gaming-console. Similar to the Super Nintendo Entertainment system it is a closed platform which can’t be emulated on other systems.

Reliable Linux statistics found

https://www.linuxcounter.net/

Estimates the number of Linux users worldwide with 100M. The assumption is that 2,6% of all websites are visited with Linux based browser, and the number of total Internet users is 3 billion. In my opinion the estimation of 100M is too high. Because, about Fedora it is known that worldwide around 1 million installation are used. In reality, the number of 2,6% is too high, because most Linux users have installed Windows and using Linux only in a virtualbox for testing out how Ubuntu works. I would guess that real Linux users which booting the kernel on physical hardware are around 5 million worldwide and the rest a virtualbox users.