Why Linux is great

There are many reasons available why Linux is used so often as a desktop operating system. One of them is the ability to download files with command line tools. A famous example is the new ISO image of the Fedora Operating system. The filesize is 1.9 GB which is huge, even for modern broadband connections. how Windows users are downloading files is unclear, perhaps never or they are clicking on the Windows Explorer on the file and are getting upset if something happens during the download. A Linux user can take advantage of the following command:

wget --continue --limit-rate=20k https://download.fedoraproject.org/pub/fedora/linux/releases/29/Workstation/x86_64/iso/Fedora-Workstation-Live-x86_64-29-1.2.iso

There are three interesting features combined. At first, a textual command is used, which can be run in background without any GUI webbrowser. Secondly the downrate is limited to occupy only a small fraction of the possible connection, which means that the total download will need 26 hours. And third, the “continue” parameter is used for resuming a canceled download. That means, the user can download for one hour a bit of the file and stop the process. And two days later he can resume the downloading, this give him the maximum control over the process.

Isn’t it very slow to download a iso file in such a way? No, it isn’t because it is using the given resources in the optimal way. That means, if the user only wants to provide a small amount of his internet connection for that task he can do so. The download task is put to the background and it can be delayed for many days.

After the iso-file is downloaded to the harddrive the next step is to copy it on an USB Stick. Under Linux this is possible with the dd command but there are a plenty of GUI tools available too. With such a prepared usb-stick it is possible to boot any notebook into a Fedora Live system. That can be an ordinary standard Windows 10 notebook, a MacOS PC and even a 7 years old refurbished notebook with 2 GB of RAM. Fedora Live is comparable to Google Chrome OS but only with more feature. Additionally to a webbrowser many other tools like Python interpreter, LibreOffice application and soundtools can be started. That means a simple USB stick will transform the notebook into a workstation without paying anything.

So what is the disadvantage? There is none. Fedora on an USB stick is superior to any other operating system. It is the right choice for low budget user who have a standard Notebook but it also the right choice for power user how are using a 2500 US$ notebook with a 4k display and SSD harddrive. Some users are asking which kind of manual they can read to become familiar with Fedora. The simple answer is, that they can take a look into a MAC OS X handbook and most information are the same. If somebody like the Apple desktop operating system he will like Linux too. That means, the network gets configured the same way, the handling is equal and the software quality is great.

Advertisements

A short history of network operating systems

In the 1980s the only available network operating system was Novel netware. They have hold the top position until the 1990s. A typical pool of PCs in the mid 1990s was a combination of NE2000 network cards, the novel netware operating system and on top some kind of MS-DOS / Windows. Microsoft was trying to fight against Novel and they have won. Today, the Novel company is nearly unknown, instead the Microsoft Server product can be used alone to handle all network related issues.

But let us go back into the 1990s. In that time, many companies were in the business of a network operating system. OS/2 from IBM was another famous example of software which was able to connect PCs to a LAN (local area network). That means, it was not a fight for the best operating system, it was about about networking. That is everything which has to do with TCP/IP, IPX, Netbios and network cards. The interesting fact is, that network operating systems have the tendency to become quite complex while at the same time, the user doesn’t recognize a difference. If we compare a WIndows 3.11 installation which is standalone on a PC with a WIndows 3.11 installation which is ontop of Novel netware, the user will see no difference. It is the same file manager and the same programs. What is the different is, that network features like filesharing, printsharing and sending messages is available. And dedicated network hardware like a token ring and a server is needed.

In 1994 Microsoft introduced the WIndows NT server product. It was the attempt to provide an alternative to OS/2 LAN server and to Novel netware at the same time. Windows NT can be called a success. Today the OS/2 project is dead, also Novel netware is no longer available. But the NT series (which evolved into the Windows Server product) is alive.

Today, there are only two vendors of network operating systems available: Microsoft and Red Hat. Both have a product for connecting PCs into a LAN.

The interesting fact is, that the timeperiod in which Novel netware was strong is not very old. In the mid 1990s Novel was the market leader in LAN PCs. It was the time before the Windows NT product was available. Novel netware in this area looked like an improved MS-DOS. It consists of hardware drivers for the network card, and some software-implemented protocols. Even in the beginning of the 2000s Novel netware was used by many companies and universities. It was a common choice to use Windows NT or Novel network or both. With the upraising of the Windows 2000 server line the situation changed. In the mid 2000s the Novel netware series was replaced by Microsoft only software.

On the first look it might be surprising why large organizations have a need for a novel netware like operating system. Isn’t it enough to boot the PC and play games on it? No it is not, because what large organizations have is usually a huge amount of computers which are used at the same time. That means, a LAN is some kind of standard which is needed everywhere. It is the backbone on which all the applications and printer requests are executed.

The role of a moderator in an opensource project

According to news-websites, the Linux founder Linus Torvalds is leaving the project. Some rumors are going on, that the reason why he quits has to do with his continuous violation of the Code of conduct. The code of conduct is a language system which clean the slang on the Linux Kernel mailing list. The problem is, that with the leaving of Torvalds the situation will not become better. Because Linus Torvalds usually speaks not for himself, but he had the social role of a group moderator. That means, his rant against Nvidia which was recognized by the public as rude was some kind of group behavior of the Open Source community against nvidia.

Perhaps it is important to make the role a manager in a software project more clear. A moderator is according to the definition not somebody who is contributing to a project with sourcecode, but his role is make sure, that the team members in the project are motivated. A moderator is some kind of proxy which sends messages back and forth with a certain spin. His obligation is enrich information with a context and make it easier for new members to become part of the team. Usually, the moderator doesn’t speak for himself, but he is the personification of the group. Not Linus Torvalds has used rude language, but the Linux kernel team was doing so.

The reason why is known. It doesn’t to be explained in detail. What I want to make clear, that the new moderator of LInux will use the same language like the previous one …

Let us go back to the video recording in which Linus Torvalds has made the rant against Nvidia. It started with a question of a woman who was upset about missing graphics driver on their notebook. What Linus Torvalds has done was to hear actively to that customer, has recognized that her problem was serious and amplified the speech. That means, in reality the woman has said that she doesn’t agree with nvidia and Linus gave her a stronger voice. To reducing the rant to Linus Torvalds in person, ignores the social aspect. Not Linus himself had a problem with nvidia, but the customers who are using Linux.

The question is not, which kind of language Linus Torvalds is using, the question what the language code of the Linux customers is. That means how emotional they want to express their anger about companies who are boycotting Open Source software. If the customers are friendly and calm there is no need to given them a powerful voice and vice versa.

The game which is played on the Linux kernel mailing list is called “chinese whispers”. That means a message is routed through different stations and the last one (which is Torvalds) has the obligation to speak it loud. The question is not, why Torvalds is using a certain kind of vocabulary, the question is who was the sender and how does look the original message? It can be sure, that Torvalds didn’t figured out the slang by himself, he is according to his social role only the manager of Linux but not the driving force behind the project. That means, somebody else delivers the source code and the requirements. The question is, which kind of software projects needs a rude language? Perhaps the reason is, that Linux is young project which was initiated by students which are rebels? Using a certain kind of slang is normal in such groups. That means, the members in the Linux team have asked Torvalds to speak in such a tone, they wouldn’t tolerate somebody else as their speaker.

Is Linux the best network operating system?

A network OS is a piece of software to connect computers in a LAN and sometimes to connect computers with the internet. Another term which is used is “Server operating system”. Linux is the best one, especially the RHEL distribution which is shipped by Red Hat. It can be called the most advanced network operating system today. At the same time it is the cheapest one. Even the user has decided to use the original RHEL system he will save compared to Windows Server a lot of money.

Why Linux is strong in networking has to do, that it was created for that purpose only. Linux wasn’t created for gaming or for video-editing, Linux has it’s priority on computer networks. It supports all protocols available and the user can install any kind of monitoring and server software in his Linux distribution. If he has questions about the usage he finds an endless numbers of books in all languages he wants.

In theory it is possible to beat even the RHEL server operating system. This is possible with the Forth language and the OSkit meta operating system. It is possible to use OSkit to generate a truly unique operating system which is created from a template and modified by Forth sourcecode. http://www.cs.utah.edu/flux/janos/ For most users this approach isn’t practical because they doesn’t have the needed amount of knowledge and because Forth nor OSkit is well documented. But for the protocol it is important to know of this candidate to bypass even Linux. For most users, a normal off-the-shelf RHEL system by Red Hat is everything they need. They can install the software on their computers and it will run without any problems.

RHEL vs. Windows Server 2016

It is rare to compare both Network operating systems against each other. Both systems can be called called expensive. The standard subscription of RHEL server is 800 US$ per year, while the Microsoft WIndows server 2016 can be calculated with 800 US$ for the overall lifespan. That doesn’t mean, that Microsoft is cheaper, because the enduser gets in case of Red Hat the sourcecode and he has the opportunity to test the product with the Fedora distribution which is shipped for free. But what is the reason why some customers are choosing RHEL while other are preferring Windows?

The main reason why RHEL is prefered by Internet service providers and other professionals has to do, that Linux was developed as a networking operating system. It was created with routing and webserver capability in mind. In contrast, Windows Server is derived from a single user operating system and his networking capabilities are not very high developed. But there are also reasons, why somebody would prefer Windows Server, especially in the business environment. It has to do, that WIndows Server is working great with GUI-applications written in C# for Windows clients. That means, if a company has already code for business applications they can be executed easily on Windows Server, that is not possible on RHEL.

Let us focus on the weakness and the strength of Linux. His strength is the networking feature. If the focus is to connect computers to a computernetwork which includes wireless lan, fast gigabit access, and server capabilities, Linux is unbeatable. It has the greatest amount of documentation and all the tools are working out of the box. I’ve never heard of a case in which a user was not satisfied by the networking capabilities of Linux. The software provides much more feature than the average user will need. On the other hand, Linux has a weakness in GUI support. The integrated GUI API is called GTK+, which is nearly unknown in mainstream computer market. The so called “GIMP toolkit” is bad documented and it is very complicated to use external programming languages like C++ to write an application for it.

That doesn’t mean, that Linux is a bad choice. If Red Hat would put more energy in the GTK+ API, provide more beginner friendly tutorials and improve the API to other languages, GTK+ can be used in the same way, like in the C# world programs are developed. A interface designer (Glade) is available and the ressource consumption of GTK+ apps is reasonable well. But, if a mainstream user doesn’t want to wait and needs now an operating system which supports GUI desktop application the best choice would be Windows Server.

Networking GUI Apps

Let us describe what the mainstream company is doing with Windows Server. On the lowest level they are connecting computers to a network. That means, they have clients, servers and the TCP/IP protocol. Linux would be a great choice for this job, but Windows Server provides also the ability to connect computers. The interesting fact is, that the normal business user isn’t satisfied by connecting PCs on a physical level, he wants to run on top of the network business applications. That means on the client has a program, and this program retrieves data from a server database. In most companies these programs are created for the Windows operating system. C# makes it easy to program such applications. They can be run on Windows and they are able to use the networking features.

In contrast, in RHEL and Linux environments, such a feature is missing. The only way to create business applications in RHEL is GTK+ which is poorly documented. Another option would be Java, but Java isn’t accepted as an advanced technology. What most programmers prefers is either C# or C++ and both is supported very well in WIndows environment. The reason why the mainstream customers doesn’t want to install Linux has to do, that Red Hat didn’t make their homework. They are not explaining to their customers how they can create networked business apps with Linux.

Is it possible for Red Hat to fix the problem? From a technological side this is possible. A valid alternative to .net and C# is C++. C++ is an accepted industry wide standard for programming applications. If C++ is used together with the GTK+ framework it is possible to created businesses applications for the Intranet. That means, the gui can retrieve information from a server database. In theory, this is possible right now, but Red Hat doesn’t promote this capability very much. Not a single book with a title like “Business applications with the GTK+ framework” is available, and without tutorials it is hard for the ordinary programmer to figure out the details. If Red Hat would engage in this area a bit more, they can beat Microsoft in the future. All what is needed are some presentations, some tutorials, a better documented API and some demo applications which convince business users.

Using Linux to create business web applications

Suppose, somebody is interested in Linux and he doesn’t want to use ASP.net, C# or Microsoft products. Which kind of technology can he utilize for creating business web applications? The basic elements are web forms, that is a HTML formular which contains data. Webforms are comparable to a formular in a desktop application, it can visualize data for example the address of a customer. It is possible to create and show webforms in a Webbrowser like Firefox and Chrome. A possible language for creating webforms on the fly are C++ (recommended and very fast) or PHP (mainstream serverside programming language). The idea is, that not a desktop application is created but a website which is visible in the browser.

Understanding Linux is very easy

A while ago, I explored the networking category in the FreeDOS operating system. And this gives an insight view what Linux is about. Understanding Linux is possible if we reduce the operating system to its networking feature. That means we reduce the feature downto TCP/IP, network drivers, DNS resolution, FTP server and SSH. The surprising information is, that networking in LInux is similar to what is known from FreeDOS, Apple Mac OS X, Windows, Solaris and any other operating system. No matter, if the operating system is Open Source software or not, the networking section works all equal. That means, n Linux the user has to learn the details about ipv4 and in MS-Windows the user has to learn the same stuff. The surprisingly, the WIndows users have also config-file which they edit with a texteditor at the command line. That means, in reality the difference between Linux and Windows is very small …

In general, networking is very complicated. That means, there are endless number of books available and the user can configure his Server in dozens ways. WIthout any doubt, Linux can be called the king in networking. Most books are using Linux as an example operating system to explain what TCP/IP is, and Linux has the most features and the fastest connection. But even if somebody has decided to stay away from the penguin operating system he is not really in a different position. The topic networking is some kind of OS-independent knowledge, it is the same for all computers from 8bit Commodore homecomputer, over 64bit workstations until Android devices and rack based routers.

What i want to make clear is, that a comparison like LInux vs. Windows doesn’t make much sense. If we want to compare software from different vendors we must ask for the networking features in WIndows and compare them with the networking features in LInux. And if we doesn’t doing so and leave out networking, there must be good reason for doing so. What most comparisons “Windows vs Linux” are doing is to compare everything else apart from networking, for example the support for Games or the GUI environment. The idea is, that the internet was not invented yet, and the PC runs without an ethernet card. Under such a condition, Windows is superior to Linux, because the games are running faster.

The reason, why nobody in the Linux world is interested in such a comparison has to do, that for Linux users the networking feature has the top priority. That means, if an operating system doesn’t perform well in a Lan, the comparison is over. Let’s make a simple example. We are taking the newest Windows 10 version and install it on the PC. Now we are trying to plug in a network card and install a webserver. If this task doesn’t work or it takes to long, Windows 10 is out of the game. That means, we are not intersted how well the system performs in a desktop environment or many many games are running on the machine. If the networking feature doesn’t work excellent it is a k.o. criteria.

But why runs Linux so great in a network? The reason is, that from the beginning in the early 1990s, networking was the top priority in the Linux ecosystem. Linus Torvalds and Red hat ignored everything else for example a fast GUI, nice graphics drivers, and industry support for spreadsheet applications, but they set the maximum priority to the networking feature. That means, a PC which has a network card plugged in, will run great with the Linux OS in a network. The system is the perfect client, the fastest server and the most easy to configurable router. Linux was from the beginning designed as network ready. It is an out-of-the-box feature. All the energy of the programmers was focused on this important task.

Potential alternatives to Linux, for example Windows 10, Apple, OS/2 Warp or Windows Server had a different kind of priorities. They are designed as standalone operating systems which boot the PC and run applications. The networking feature is only a subsystem which supports the PC, but it is not the core ideology. Sure, it is possible to use an Apple imac as a webserver. The user can install the correct device driver for the ethernet card and can install a webserver like Apache. But this feature is not documented very well and it works not very stable. In contrast, Linux was born for this task. Here the priority is the other way around. In theory, it is possible to use Linux for editing JPEG images in a GUI, but Linux is not very well equipped for that task and it is poorly documented.

Networking computers

Standalone computers are easy to understand. The PC has a bios, it boots up, and then the GUI is visible. The user presses some button and stores the result onto the disk. A computer network is something which is more complex. The ordinary network contains of hundred of computers. Some of them are Linux PC, others are Microsoft driven, some are Apple and also smartphones can be in the network. The question in a network is not, which operating system is better, but the problem is, that all possible operating systems are there and must be managed. Some of the users are using for example outdated Windows XP systems. That means, it is not a legacy system, it is visible in the network.

Managing a computernetwork is different from managing a single PC. A PC contains of RAM and a harddrive. And the software can work great or not. But a computer network contains of computers who are plugged in into the network and others not. It is some kind organic system which is the pure chaos.

The problem is called networking

Sometimes the two major operating system Linux and Windows are compared against each to other to identify the better piece of software. This doesn’t make much sense, the better idea is to declare the war over and declare Windows as the winner. Now we can discuss seriously about operating system. Let us focus on a detail question within the Windows OS, called networking. The question is: which programs are available to connect a windows PC with other computers in the internet, with a fileserver, with routers and which config files has to be edited to make the system protected against threads from the network.

The surprising answer is, that the task of networking has to do with manual configure webserver in Windows ini-files, with learning command line switches and writing shell scripts. That means, using Windows for networking looks very equal to what Linux users is doing all the day. They are booting their kernel, connect the network card and testing out different configurations. Can we make the task in WIndows more easier, perhaps with a nice looking GUI? No it is not possible, because everything around networking is horrible. That means, the protocols are making not much sense, the options are endless, and the ordinary user is lost. Sure, Windows is superior to Linux, but in configuring the networking this advantage isn’t much valuable. Configuring a network is not a Windows specific problem, it is a network problem. That means, it is located outside of the PC is an area called intranet, cloud, or TCP stack. It is something which has to be handled differently then installing a game.

The good news is, that the Windows operating system is well equipped in handling these tasks. The bottleneck is, that the amount of knowledge the user needs is very high. Books about networking in Windows are hard to read, and they are containing lots of vocabulary unknown to ordinary users. It is way more complicated then only pressing buttons, it has to do with ethernet drivers, packet switching and latency.

Linux doesn’t work and nobody cares

For the newbie it might be surprising how many problems the Linux operating system have but their fans are not switching to more advanced software. The Android OS for example has a low framerate and lots of unfixed security problems. In the Ubuntu OS it is not possible to install the latest games in Wine, in Gentoo the nvidia drivers doesn’t work and in Fedora it is not possible to switch the language in Libreoffice from English to German. If such problems would occur in Microsoft Windows or in Apple products the customer would boycott the ecosystem and force the vendor to fix the issue. Not so in Linux. Nobody cares of the problem and there is no effort to improve LInux.

The best example it GTK. GTK is some kind of GUI framework which is able to display applications on the desktop. The GTK library is bad documented, it is not possible to use it in normal programs and the documentation is missing. Suppose the ordinary user is open a troubleticket in the GTK bugtracker. What will happen? After a day, the admin will say, that the question is not written very nice, after a week the bug is put on hold, and after a month the posting will get deleted. That means, the other side is not motivated to research the details or even to talk about it. The result is, that the GTK library are some kind of work- in -progress and compared to their Windows equivalent their are inferior.

But why is nobody interested in fixing the problems with Linux? The answer is, the priority in Linux is different from WIndows operating system. Linux is not a desktop OS which is able to run programs. Instead the focus of Linux is networking and software development. That means, the top priority in the Linux ecosystem are Ethernet cards which are detected by the kernel and the ability to use this cards for connecting other computers in the same network. That means, the networking capabilities of the Linux distribution are the most important one, and all features like the framerate in Android have a lower priority.

Let us make a thought experiment. Suppose, the Linux kernel has a problem in detecting a certain network device. The user created a bugticket. What will happen? After 2 minutes, the ticket is answered by Linus Torvalds in person, who has figured out the problem, discussed the issue with his team and developed a fix. After 24 hours, the fix is distributed to all major Linux distributions. The reason is, that such a problem has top priority. It is an issue, which is everybody in the Linux ecosystem is interested in and the motivation is high to fix it.

Has Linux any problems in the domain of networking? Not really. As far as i know, the Linux kernel is able to detect any kind of networking hardware, understands any kind of Internet protocol and is able to act as a server, client or whatever. The network through output is higher, than with any other operating system and the features are well documented in thousands of books.

Why is that so? I’ve mentioned it before, the top priority in Linux is networking and software development. That means, Linux supports the latest networking devices and the latest Internet-protocols. The idea is, that a device which runs LInux can connect over a lan cable to other devices. Other features which have to do with an operating system for example the GUI, the ability to run software or a German translation of the office suite are not important for Linux. It is something which is done, if the developers are bored and have too much time. They are not focused on that issue.

The open question: does it make sense to select networking as a top priority? In the time before the Internet the answer was no. Because in the 1980s networking hardware was expensive and nobody was interested in. The situation changed in the 1990s, in which networking cards became affordable. And even today, it is an asset if a computer is well connected to a network. That means, if the “ifconfig” command shows, that the hardware is detected and the connection is stable.

Somebody may ask how can a network card become so complicated. The device itself costs around 5 US$, and with a driver the networking is great. The problem is, that networking features are very complicated to program. If somebody is trying to understand how this is handled in MS-DOS, Windows, Apple or Linux he will notice that a lot of knowledge is used in that domain.The main problem is, that networking is not restricted to a single PC but it is a protocol family which interacts with other devices. Managing a network card and the connection to an Intranet is not a trivial task. The reason, why many people are fans of Linux despite the problems with nvidia graphics driver is, that Linux is great in networking. Linux is superior to all other software, for example Windows Server 2016. If we combine this feature with the advantages of an open source operating system we get the explanation, why Linux is so successful.

networking

Does it make sense to switch the focus away from a standalone PC which runs software to a networking device? Yes it make sense. Most people are not aware how powerful the internet is. The limits of a single computer are defined by the combination of hardware and software. For example a 486’er PC can handle a certain type of games. Or the system can be programmed to display a Word-document. What is not possible with a single computer is to copy a file to a second computer. This is a task for a network. The funny thing is, that only with putting the wire into a 486’er PC their capabilities are much more higher. And this without upgrading the hardware or install new software. The same PC can be used to retrieve or provide information. A simple webserver and even a intranet database can be run on such a device.

The only minor problem is, that a normal operating system like GEOS, MS-DOS, GEM, WIndows and so forth are not able to handle networking capabilities. The classical operating system from the 1980s were great in using computer hardware itself. That means, to use the graphics card together with the main memory to display overlapping windows on the screen. That was the great feature in the first Apple computers and for the same reason Microsoft has sold millions of copies of the Windows 95 operating system. The feature to display windows on the screen is useless if somebody want’s to connect computer together. Or to make it more visible. A text based operating system which is great in networking is more powerful than a graphical operating system which can display games but doesn’t provide internet access.

If the Linux developers give to bugs about non working nvidia graphics card and non working games in Wine a low priority they are right. It can be ignored if the graphics cards works or not. A Linux box is at foremost a networking device. Only if the TCP/IP stack is broken or the network card isn’t detected a major bug is there. It make sense to concentrate all the manpower on the networking stack and ignore the other features an operating system provides. That means, Libreoffice user who have problems with a menu can wait, gamers who want to play in Wine World of warcraft can wait, and people who run into problems because of pulseaudio become also a low priority. All what they are trying to do with their machine is a waste of time (compared with the networking feature of Linux). If they need software which has different priorities they can switch to Apple or Windows. In both cases, the GUI applications will run great and are handled with a top priority. What Linux fans expect from their system is well working network stack and the ability to compile C++ programs.