Linux compatible with Windows. Which operating system is better - Windows or Linux? Free software

Windows and Linux are the most popular operating systems on the world market. The debate about which one is better has not subsided since the advent of systems. There are many adepts, as well as opponents, for each of them. Of course, both Linux and Windows have their advantages and disadvantages, which some users are willing to put up with, while others are not. In this article, we will try once again to push the foreheads of these two giants and, finally, find out which is better: Windows or Linux. Go!

Every platform has its advantages and disadvantages

Let's start with Linux. In general, this OS is less popular than Windows; working with it, as a rule, raises more questions from users. It is worth noting that Linux is more likely focused on professionals, and not on ordinary users. It is those people who want to get the most opportunities when working with a computer, and become the most ardent fans of this system. Now let's take a look at each of the advantages of Linux in turn.

The main and weighty advantage is free distributions, the choice of which is quite extensive. Linux is the basis on which developers "hang" a graphical interface for the convenience of users. All distributions are official and completely free, which means that you have the opportunity to get at your disposal a proven and reliable OS, which is a licensed product. Windows has nothing to brag about in this respect. The most popular distributions are: Ubuntu, Mint, Fedora, Mandriva - the list goes on and on. Choose what you like best.

Free software

As you already understood, Linux is a real find for those who want to use a quality, licensed product for free. The choice of programs is quite extensive, but you still won’t be able to use the most popular tools for free.

variability

Linux is a very flexible system that allows you to do literally anything with yourself. This makes this operating system an excellent choice for programmers. Computer scientists can create whatever they want in Linux, creating a wide variety of software tools for solving a variety of problems.

Design

While the beauty of Linux isn't in the graphical interface, it's worth noting the stylish and modern design of some distributions that many people will love.

Performance

Linux OS is absolutely not demanding on hardware and works perfectly even on the weakest machines. Experiment with distributions and find the one that gives you the best experience for maximum performance.

Now for the disadvantages. Linux, for all its functionality, cannot be called an entertainment system. For fans of computer games, this OS is definitely not suitable. In addition, you will have problems using popular software products, and instead of them you will have to use their counterparts, from which few people are enthusiastic. To summarize all of the above, Linux is really good for computer professionals, to whom it gives advanced work opportunities, and for those who need a free licensed operating system and software products. At the same time, it is difficult to call Linux really good choice just for home use.

The turn has come to talk about the mastodon and the almost absolute market leader in operating systems - Windows. This product from Microsoft is used on the vast majority of devices around the world. Perhaps there is no person in the world who would not come across this OS. Some people like her, some don't, but everyone worked with her. And now let's move on to the analysis of all the advantages of Windows and try to uncover the reason for such a success of this product.

Prevalence

The popularity of Windows has led to the emergence of a huge number of manuals and articles with answers to all questions of interest regarding working in the system or correcting errors in it. Although this OS is paid, there are not so many users of licensed versions. It is pirate Windows versions are installed on almost every computer in the CIS countries due to their availability.

Simplicity

A huge plus of this OS is that it is convenient for both simple users and advanced users. Windows provides the ability to work in command line mode, make changes to the registry, and so on, but for those who do not need all this and who do not understand this, this OS offers a clear and pleasant graphical interface, which is easy to understand.

Games

Where without it. Quite a lot of users regularly or occasionally play computer games. The undoubted advantage of Windows is that almost all existing PC games are compatible with it. And this means that if you have a Microsoft product installed, you get access to a huge selection of computer entertainment.

Software

The vast majority of utilities and applications are created specifically for Windows, which is very good for any user. All the most popular software products are embodied on Windows, and this gives you very wide opportunities when working with a computer.

Compatibility

Unlike Linux, you will hardly find any device that does not have Windows drivers. By choosing a product from Microsoft, you can say that you eliminate all problems with device compatibility, since all manufacturers are primarily focused on creating products that are compatible with Windows.

Design

Recently, the OS from Microsoft can boast of these. Design latest versions very unique and original. The huge tiles of the 8th version did not appeal to many, but the decision of the developers to combine the new and old design in the 10th version of the system satisfied many users. Windows 10 very organically intertwines the classic features invested in older versions with the most modern and newfangled developments.

Microsoft Office

Everyone who has had to work in Libre Office on Linux understands that they have not come up with a better text editor than Word. This utility is really indispensable in our time, and against the background of it, Libre Office looks like one big misunderstanding, working with which brings nothing but torment.

As for the disadvantages, the main disadvantage of Windows is that this OS costs money. This problem is especially relevant for the CIS countries. All users are constantly downloading pirated versions that are not verified and reliable, and this, in turn, greatly affects the reputation of Windows and Microsoft. Another drawback, which to some extent can be associated with the first one, is the frequent “crashes” of the system. Probably everyone is familiar with the "blue screen" or, as it is also called, the "screen of death". Windows user. Like it or not, the reliability and stability of this system leaves much to be desired. In conclusion, we can say that the strength of Windows is that this system is for everyone. Everyone will find something of their own in it, regardless of their own skills or tasks. We can say that this is what makes this product so popular all over the world.

As you can see, it is not possible to make an unambiguous choice in favor of any of the systems discussed in the article. All I can advise you is to try to work with one or the other, and then decide what is best for you. After all, everyone has their own ideas about good design, functionality, performance and other aspects in which comparison can be made. With all the advantages and disadvantages of each of the operating systems, it is impossible to make an objective verdict, since in the end it all comes down to elementary “taste”. This article is intended to give you the necessary food for thought, and which is better: Windows or Linux - you decide.

Leave your feedback on the article and write in the comments your opinion about which of the considered OS you consider the best and why.

  • In contact with
  • regular form

    It is enough to understand once what the blue screen of death or bsod is, as you like. The blue screen is the inability to read the file. Moreover, a deaf impossibility due to the absence of this file or due to the absence of a path to it. Now I'll explain it easier. The missing file can be for two reasons. First. Damage to the hard drive, which is possible only on an old computer. Second. Driver mismatch. For instance. A hard drive with a wide cable or bundle, the so-called IDE interface on which we install a new operating system that does not have such drivers. In this case, you need to take care and download the drivers separately and have them during installation. Another option. On the sata hard drive, or new hard drive install an old operating system, such as windows xp, Zver and so on. As part of these operating systems, there are no Sat drivers. As a result, the screen of death. There are no other options and there cannot be. In the case of full compliance with the drivers, everything will be fine if you do not deliberately mock the computer and do not pull the plug out of the socket to please your psycho. In this case, you will kill your hard drive in a few turns and then you will receive a death screen already due to an unreadable hard drive. It is better not to repair bad clusters or places in the hard drive and not even waste time. Winchester is a very complex device that requires respect and care. Take care of your computer. Do not try to experiment, otherwise you will get such crap and financial costs on your ass that it is easier to buy a new computer.

    Author)))) What would you know. Just for wild beginners and for home use, Linux is ideal. At least the fact that it does not allow you to delete your system folders in the usual Windows way. Secondly, the same mint mate is very similar in terms of the location of the buttons and the program menu to Windows. Thirdly, what is not in Linux for beginners? Specialized programs - that's how it should be written. Fourth, does Linux have poor technical support? I beg you)))) On the forums, they will chew it out in the same way that pensioners are not taught in computer courses. And they won't whine.

    You need to work at LeebreOffiese first to evaluate this program correctly.
    I graduated from the LeebreOffiese Institute, built graphics and wrote a diploma in it. 4.5 years of practice.

    All markers are different in taste and color.
    Or someone can say with 100% certainty that the sea is still better than a lake, and the ocean is better than a river.
    Who-who-and-what is trying to prove? Is that once again to convince themselves ...

( 2007-08-15 )

To make a decision as to whether a certain computer can work perfectly under Linux or not, you need to check all its components - video card, sound card, printer, scanner, digital camera and other devices for compatibility with Linux.

Of course, over the past decade, support for various hardware in Linux has improved markedly and now you have a fairly good chance of buying a computer without any problems to run almost any distribution on it. However, there is still equipment that currently not supported.

Today, almost all equipment works well, but you should be wary of equipment that is controlled by programs and not buttons. Because programs are most likely written for Windows and sometimes for Mac OS X.

Even when a manufacturer claims Linux support, be very careful. Most likely you will have to go to the manufacturer's website, where, most likely, you will find information that is not entirely up to date. An internet search won't be very useful either, as it will end up with a lot of pages with outdated or not entirely correct information in your case.

Below is a listing of some Internet resources, the information on which is regularly updated and is quite complete and detailed.

Video cards

If you want to check if your graphics card is supported, start at the X.Org site, there is a list of supported graphics cards. You can also check the manufacturer's website. This is true, for example, for video cards from NVIDIA and ATI. In addition, there is the Nouveau project, which develops open source drivers for NVIDIA cards, and its brother - the Avivo project, which develops open drivers for ATI cards. However, none of these projects has yet presented an official release.

If you do not know which is better to choose - open drivers or proprietary - there are several ways to make this choice. Firstly, you can make a choice based on your philosophy, but most likely the choice will be made based on their functionality. The main problem of open drivers is limited or completely absent support for 3D capabilities, while proprietary drivers suffer from slowness and (especially ATI) instability.

Another option is the policy of the distribution you are using. Commercial distributions like Xandros and Linspire usually include proprietary drivers, while Ubuntu uses open source drivers. True, Ubuntu also has Restricted Device Manager, which makes it easy to install proprietary drivers on the system. Fedora 7 is one of the first distributions to use Nouveau drivers whenever possible instead of proprietary NVIDIA drivers.

Sound cards

Unfortunately, there is no single site with detailed information, but you can find a list of Linux-compatible cards on the Linux-Sound website. You can also get information from the Linux Audio Developers mailing lists.

Another good source is Soundcard Matrix on the ALSA project website. If your card is in this matrix and the Notes column is empty, your card is guaranteed to be supported.

Printers

Any printer that supports the Universal PostScript Language is guaranteed to work. However, if you want more information, start with the Printer Compatibility Database, which is part of the OpenPrinting project (Formerly LinuxPrinting.org).

The Printer Compatibility Database is a nearly perfect source of information on printers. It contains almost all known printers. For each printer, it has its own level of support: Good, Mostly, Partially and Paperweight :). The base also describes which driver works with which printer, and a detailed description of the settings for the full use of the printer. As an alternative, you can choose a printer for your needs using part of the same database. All information is based on user reports.

Scanners

If you are using a multifunction printer as a scanner, the printer database can help you (see the previous chapter). However, the main source of information about scanner compatibility is the SANE project information lookup service, which will help you find compatibility information. specific model for use on Linux. When problems arise, it is best to ask questions on the SANE project forum.

Digital cameras

Modern digital cameras have abandoned the closed protocols of the past in favor of open - USB, support for which in Linux is very limited. high level. However, if you still need to make sure your camera is supported, check out the gPhoto project, which has a database of over nine hundred titles. Another source is the Hubert Figuiere database, which contains detailed information not only about camera support, but also about configuring the system to use them.

Wireless adapters

A few years ago, the main gap in device support was modems. These days it's wireless adapters. In addition, the constant releases of new models further complicate support. For example, two related models may have fundamentally different firmware and, accordingly, require different drivers.

The only timely updated website with information on wireless adapters- maintained by Jean Tourrilhes and sponsored by Hewlett-Packard. The information on the site is placed quite chaotically, but if you wish, you can figure it out.

If your adapter is not supported, you may be able to start it with , or, for Broadcom adapters, - . Both of these projects are actually wrappers for drivers from Windows or Mac OS X.

The downside of both programs is that you need to use lspci to get your adapter's Bus ID. Therefore, before you buy something - see how many adapters like yours are supported by ndiswrapper.

Laptops and other mobile devices

New hardware is bought from time to time, and of course you want it to work on Linux. It's not that the free community doesn't know how or doesn't want to support devices - experience shows that it can and does. The point is greedy and stupid manufacturers who do not want to not only write drivers for their hardware, but even open specifications for their devices. Usually, if the hardware doesn't work on Linux, then that manufacturer is generally not worth considering at all.

This post talks about Linux and installing hardware in Linux. Installing hardware on Linux is easy, and below are some resources to help you get there.

Where can I find information on the compatibility of devices and peripherals with Linux?
http://linux-wless.passys.nl/ - Extended WiFi card database for Linux. This is the most comprehensive resource for supporting wireless network cards in Linux, you can look at the manufacturers - and if supported, then the name of the driver is immediately given.

http://www.sane-project.org/sane-mfgs.html is a list of Linux scanners that are supported by the SANE subsystem. List by scanner models that work in Linux, depending on the manufacturer. Compatibility grades: full support, partial, basic, no support. It also indicates which backend is required for the device to work.

http://openprinting.org/printer_list.cgi - A database of working Linux printers maintained by the CUPS printing subsystem, which provides Linux printer drivers for Linux distributions. Convenient search by printer models and manufacturer. Compatibility gradations: works, works almost, works limitedly, ballast.

Databases by device category
http://www.linuxcompatible.org/compatibility.html - A database of all Linux compatible devices, from sound cards to printers and scanners. There are gradations of compatibility: it works fine, it works for the most part, some functions work, ballast. The database is very extensive, from time to time updated by the creators of the site. Either way, great resource.

http://kmuto.jp/debian/hcl/ - database of devices supported by kernels 2.6.15 and higher. We just copy the output of lspci -n from the console and get information about the support of the hardware on the motherboard.

http://www.linux-laptop.net/ is the most comprehensive resource on running Linux on laptops. The page provides a classification by manufacturer, then links by model to specific pages of users telling what and how they did to get the functionality of their laptops. Most of the information is in English, but other languages ​​are also included.

http://start.at/modem is a great resource for supporting detrimental devices like winmodems. It turns out that something can also be learned from this ballast: an impressive list of supported devices is given.

http://www.phoronix.com/lch/ - user database of supported devices. It's starting to fill up, you can get involved too. There are RSS feeds both for a specific type of piece of iron, and for all at once.

- a great resource on devices in Linux with links to HOWTOs and "how to set up". On the page - classification by device type, then - links to how to configure and what problems may arise. There are also links to general information according to these devices. Very informative. There is a feed for site news (new documentation).

http://cdb.suse.de/?LANG=en_UK - List of devices compatible with SuSE Linux. Updated database of compatible devices with SuSe Linux. As a rule, these devices work in other distributions too.

http://www.linuxtested.com/ - compatibility and operation of devices by distribution. The site has information about testing devices in the following distributions: SuSE, Redhat / Fedora, TurboLinux, Debian, Mandrake.

http://www.linux.org/hardware/ - hardware that runs on Linux. The list is not exhaustive, but may be useful - there is information about exotic hardware that has Linux support.

http://www.linux-drivers.org/ - Links to many resources on Linux compatibility. A large number of links to resources and hardware support in Linux.

http://hardware4linux.info/ - directory of linux-compatible hardware, divided into categories: "works out of the box", "works with modification", "unknown", "works partially" and "does not work". Sufficiently large and constantly updated database of devices.

http://www.linmodems.org/ - a database of support for such vicious devices as win-modems. In them, all the main activity is shifted to a driver written for you-know-what-system. As a result, there are almost no "brains" on the device, just as the manufacturers of such devices do not have them. Through the efforts of free programmers, many of these devices can be made to run under Linux.

26.02.2007 Alexey Grinevich, Denis Markovtsev, Vladimir Rubanov

If we go back to the late 90s and plunge into the world of operating systems of that time, then hardly anyone will doubt the undivided reign of Unix-compatible systems. Everything is on the side of Unix - the family of these operating systems is studied at universities, hundreds of thousands of applications have been created for it, it is successfully used in various sectors of the economy, a lot of books and documentation have been written about it. True, you cannot buy Unix specifically, but you can buy IBM AIX, BSD, HP-UX, Sun Solaris, etc. This requires additional effort to make a program written for, say, AIX work under Solaris. The various Unix clones proved to be poorly compatible. Similar problems exist today for Linux OS.

To solve the infrastructure problem of poor compatibility between different versions of Unix, work began in 1985 within the IEEE on a standard that would ensure software portability. In 1990, the IEEE 1003 standard, also called POSIX, was released, which regulated the programming interfaces (API) and the list of Unix clone commands. However, for the players in the Unix market, unification has created complex political problems: any decision, any choice between alternatives to reach agreement, leads to the fact that the solution of one manufacturer is recognized as “more standard” than the solution of another. As a result, the standard is replete with ambiguous statements like "in this case, one of two alternative behaviors is possible" and white spots like "the standard does not regulate the behavior of the function in this case." In the end, fragmentation became one of the main reasons for the defeat of the Unix world. The players in this market competed not only with other types of operating systems, but also with each other, introducing private extensions and closed interfaces, limiting the circle possible applications any one clone.

Introduced in the early 1990s, the Linux operating system, incorporating code created as part of the GNU movement and absorbing the main ideas of Unix, has become a universal compromise due to its openness and independence. Her code was implemented from scratch, not relying on any implementation, but only on text. POSIX standard. As a result, the system turned out to be initially POSIX-compatible, and independence made it possible to combine the efforts of various players in the Unix market in the fight for the “return” of the lost segment of PC operating systems. However, the problem of fragmentation has remained relevant for Linux too: the presence of competing distributions raises concerns about a likely repetition of the fate of Unix.

At first glance, the very danger of fragmentation looks rather illusory - in fact, there is common code, most distributions work on the basis of the same kernel, the same libraries, which largely determines compatibility. It would seem that applications should remain functional and compatible between different versions of Linux. But this is not confirmed in practice. Along with the fragmentation of the Linux distribution market in terms of approaches and additional functionality, there are significant distortions in the support of various clones even for common and standard applications - different distributions use different versions of the kernel and system libraries(primarily glibc). This leads to the fact that the composition and behavior of the system interfaces provided by the system to applications vary from distribution to distribution. In order not to repeat the sad experience of Unix clones, in 1998, within the framework of a specially created organization Free Standards Group (now Linux Foundation), work began on the LSB standard (Linux Standard Base - “the base family of Linux standards”). Thanks to the efforts of the X/Open, IEEE, and ISO organizations that made the POSIX standard and some of the tests available for free, the foundation was laid for Linux standardization.

But what exactly and why should be standardized? Is it really a single open source itself is not a single and open standard?

Application Compatibility Issues

How do the differences between Linux distributions manifest themselves in practice, and how serious is the problem? Let's take an example. IBM's commercial offerings are based on five product lines: DB2, Websphere, Rational, Tivoli, and Lotus. Practice shows that supporting all five lines for one Linux distribution costs millions of dollars annually, which go to developers and testers responsible for supporting applications for a specific Linux distribution. Therefore, those distributions are supported for which the profit from the sale of products exceeds these millions; in fact, these are only distributions of SuSE and Red Hat. This is how a situation of inconsistency arises - what works on some distributions does not start on others.

Quite a different situation is observed for Sun Solaris. First of all, Sun Microsystems guarantees that a program compiled for Solaris 2.6 will work without recompilation under version 10. The Sun developers put a lot of effort into this; with each code change, a set of more than 2400 applications for various purposes and composition is run. Moreover, if someone discovers that an application has stopped working because of an incompatibility between versions of Solaris, then Sun takes the responsibility and the cost of correcting the inconsistency. In the case of Linux OS this work was not conducted for a long time, applications and distributions lived their own separate lives. The saddest thing about this is that there is no universal way to write a program in such a way that it is guaranteed to be portable. The efforts of the Linux Foundation consortium, which represents the interests of the main players in the Linux market, are aimed at solving this problem.

Structure of Linux

It's not uncommon for Linux to be understood as just its kernel, but there are many things that the kernel shouldn't do. Working with documents, sending mail, XML processing, drawing windows - for all this there are special libraries that are part of almost all distributions. These libraries, one way or another, lead to a call to the kernel, but problems and errors can occur not only in the kernel, but also in the libraries themselves.

There is an opinion that if the program stopped working when changing the Linux distribution (or its version), then, having the source codes, it is very easy to fix it, and therefore there is no compatibility problem. Before discussing whether this is true or not, let's first consider the structure of the Linux OS.

"Generalized" model of the system on Linux-based featured on

Rice. 1. System model based on Linux OS

Each specific Linux system is created for the operation of one or several applications, however, the code of the application itself is not enough to extract the service needed by users from the hardware - most applications use calls to library functions in their work. The LSB Core 3.1 standard defines the following system libraries: libc, libcrypt, libdl, libm, libpthread, librt, libutil, libpam, libz, libncurses. On modern Linux systems, the interfaces to these system libraries are implemented by the glibc, Linux-PAM, zlib, and ncurses libraries, which actually implement more interfaces than are defined in LSB Core.

According to the degree of interaction with the Linux kernel, the functions of system libraries can be classified as follows:

  • the implementation of the function is completely contained in the library, and the core is not used (for example, strcpy, tsearch);
  • the library implements a trivial "wrapper" to call the appropriate kernel interface (for example, read, write);
  • the function implementation contains both calls to the kernel system interfaces (possibly several different ones), and a part of the code in the library itself (for example, pthread_create, pthread_cancel).

The Linux kernel itself contains many exportable entry points, but the vast majority of them are internal interfaces for use by modules and subsystems of the kernel itself. The external interface contains about 250 functions (version 2.6). Of these, for example, glibc 2.3.5 uses 137 in its implementation.

Configurations

Under configuration The system part of the distribution is understood as a combination of the kernel version (including individual patches), versions of system libraries, their build parameters, and the architecture on which it all works. On the an example of the build configuration of two hypothetical distributions, which are a combination of component and patch versions, is given. Between versions of components, new functionality is added, and obsolete interfaces and functions are removed. So, in this diagram, it is easy to see that since distributions 1 and 2 use different versions of GCC, source compatibility between them is somewhat lost - not everything that was built with gcc 3.4 can be built with gcc 4.0 without modification.

Rice. 2. Example distribution build configuration

distributions

By the address lwn.net/Distributions/ you can find a list of known Linux distributions (at the time of writing there were 542) open to the general public. This does not include versions made for internal use by individual enthusiasts, as well as by various companies, departments, etc. According to the GNU license, you can take an arbitrary distribution, make modifications to it (at least in components that fall under GNU) and distribute it further.

Distributions can be classified in a number of ways.

  • For base manufacturers. For example, Red Hat, Slackware, SuSE, Debian, Asianux, Mandriva, Gentoo are the main "branches" of the Linux industry. These distributions are not descendants of the others (although there are some historical dependencies between them). They can be considered strategic directions for development in Linux in general. Most of the other distributions clearly belong to one of the mentioned branches - mostly inheriting the source code and applications and adding specific functionality.
  • By localization. In many countries there is a local Linux manufacturer (for example, in Russia, ASP Linux and ALT Linux distributions are known to everyone).
  • By application. Distributions for embedded use in mobile devices; distributions that work without file system support; light versions for use in PDAs; portable versions to run from limited media (Linux on a floppy disk, Linux on a CD, etc.).
  • By specialization. Distributions to support a specific hardware architecture (AlphaLinux with Alpha processor architecture support, ARM Linux with ARM support, etc.).

Linux build procedure

It may seem that to achieve reliability and compatibility at the level of behavior of system library interfaces, it is enough that testing is carried out by the developers of the kernel and libraries, but this is not the case. Already at the level of system library interfaces, there are a lot of dimensions that make almost every Linux system unique in terms of quality. The behavior of interfaces for applications is determined by a combination of libraries, kernel, and hardware. In turn, the kernel and libraries are defined by their version (including official or unofficial patches and modifications) and, very importantly, by their build configuration.

The variety of different components included in Linux and the many dependencies between them can be illustrated by the procedure for building the kernel. The Linux From Scratch project contains the steps required to build a Linux distribution from scratch. Simplified LFS build sequence Linux versions 6.0 looks like this:

1. Binutils-2.15.94.0.2.2 - Pass 1
2. GCC-3.4.3 - Pass 1
3.Linux-Libc-Headers-2.6.11.2
4. Glibc-2.3.4

87. Util-linux-2.12q
88. Boot Configuration
89. Linux-2.6.11.12 - Kernel

The kernel is built at the very last step using the binary utilities built before. It is important to consider the versions of the component given in each list item. Replacing one version of a component with another is not always trivial - assembling the system may be impossible due to the absence or change of some function, or is complicated. Assembly of many components requires additional steps, for example, the flex assembly instruction for this distribution contains a remark :

Flex contains several known bugs. These can be fixed with the following patch:
patch -Np1 -i ../flex-2.5.31-debian_fixes-3.patch

The assembly process includes the assembly of compilation tools, which also undergo significant changes over time. Even the core components of Linux are often outdated. Thus, gcc compiler version 4.0.0 is not suitable for building the 2.6.11 kernel (although they are contemporaries) and requires the use of a special patch to eliminate this incompatibility.

Trapped in addictions

Fragmentation at the library level is a major problem modern world linux. The frequent release of new versions of Linux libraries is generally considered a good thing, and indeed the only way to quickly apply and test new ideas and make available the latest achievements of "engineering": there are sometimes dozens of versions of the same library in wide use. At the same time, an integral feature of the development of individual components of the Linux OS is its decentralized nature. Often, new versions of various components released almost simultaneously are known to be incompatible, which means that it is completely impossible to adequately test various combinations of libraries for compatibility and guarantee stable operation of the system in all possible combinations. As a consequence, the entire burden of problems falls on the user who decides to install a program or library that is clearly not guaranteed to be able to work in the environment that exists on his machine, and this situation develops quite often.

The category of problems associated with incompatibility of library versions is called dependency hell (“dependency hell”, en.wikipedia.org/wiki/Dependency_hell). What problems can a user encounter when installing any new library in his version of Linux OS? In this case, applications that worked with the previous version may no longer function correctly, as these applications may have relied explicitly or implicitly on certain bugs and side effects that were present in the old version. The reverse situation is also quite real, when a new version just contains a new error. But the real problem arises when a system has to run several different applications that rely heavily on different versions of the same library; it may turn out that teamwork these applications is simply not possible. It is sometimes possible to have multiple versions of the same library on the system and this is perfectly safe, but this is not at all recommended in the case of the glibc library.

The main evolutionary path to achieve compatibility between different Linux distributions is standardization. A mature and comprehensively supported standard will reduce the cost of porting Linux solutions, which will contribute to the growth of the number of applications for this platform, and hence the popularity of Linux as a whole. Today, Linux Standard Base acts as such a "saving" standard.

LSB is the main standard that defines compatibility requirements for Linux systems. Basic information on this standard has already been published, for example, in the work, which, however, highlighted old version standard and somewhat exaggerated the role of kernel interfaces. In fact, the LSB standard does not specify kernel interfaces, but defines higher-level application interfaces implemented by various libraries. LSB does not try to be a replacement for existing standards, but rather builds on all the major standards that have already taken root in Linux. It fixes versions and subsets of constituent standards to ensure consistency, and complements the descriptions of those interfaces that are present de facto in most Linux distributions but not included in any existing standards. The main part of the LSB standard is the requirements for system interfaces, which must be supported by all Linux distributions (a kind of "common denominator" of all Linux systems). In this part, the LSB references the POSIX standard in many ways.

The main difference with LSB is that application developers can target one platform, say LSB 3.1, and that's enough to make it work on all LSB 3.1 compatible distributions. The same applies to distribution vendors: once compliance with LSB 3.1 is achieved, the distribution automatically supports all applications that are compatible with it. For example, IBM, as part of the Chiphopper initiative, provides hardware solutions running only LSB-compatible distributions. Largely due to the activity of major players, the main distribution vendors have already passed the LSB certification or announced their intentions to be certified ( www.linux-foundation.org/en/LSB_Distribution_Status).

Now the main weakness of the LSB standard is the lack of tests. There are cases when the interface described in the standard works differently, and yet the system is successfully certified. This is because the test for given interface simply not, or it is too weak to fully test the performance of the interface. It is very appropriate to quote Ian Murdoch, the creator of Debian, and today the Director of Technology of the Linux Foundation: "It is known that an interface standard is only as good as the test coverage that checks for compliance with this standard."

The Open Group has opened some of its POSIX tests for inclusion in the LSB certification test suite. Free tests included in the LSB suite standard library GNU C++ Runtime Library Test Suite, adapted tests for libgtk and libxml. The Linux Foundation consortium is considering a buyout to open and include various paid test suites in the LSB.

We are also working on this issue in our country. Thus, on the basis of the Institute for System Programming of the Russian Academy of Sciences, the Linux OS Verification Center was created, where an open test suite OLVER is being developed, which is planned to be included in the official LSB tests. A cooperation agreement has been concluded between the Center and the Linux Foundation, under which work continues to improve the LSB test coverage and develops a new infrastructure for the development of this standard.

Conclusion

In order to prevent fragmentation, which has already occurred with Unix, measures are needed to ensure distribution compatibility - at least within some subset of functionality. Application portability within this subset will allow Linux to be unified as a single platform and significantly reduce the cost of developing and maintaining applications, which should positively affect their number and the popularity of Linux solutions in general.

Today, the main portability initiative is the LSB open standard adopted by the leading distribution vendors (Red Hat, SuSe, Mandriva) and applications (MySQL, RealPlayer, SAP MaxDB). Behind this standard is a powerful Linux Foundation consortium and its active members such as IBM, Intel, HP and Oracle, which allows us to hope for its successful development and widespread implementation in real life. Thus, in the face of the LSB standard, a reliable foundation has been laid for a single, unfragmented Linux platform that provides application portability both based on source code, as well as in binary form.

However, even very good standards remain only good wishes until there are convenient and reliable ways to check compliance with them. That is why improving the quality of LSB test coverage is one of the most important priorities in the collaboration between the Linux OS Verification Center and the Linux Foundation.

  • detecting inaccuracies and errors in the text of the LSB standard and related standards and reporting them to the original developers for changes in future versions;
  • development of formal specifications in the SeC language (specification extension of the C language), which will reflect the requirements of the LSB Core 3.1 standard for 1530 Linux interface functions;
  • development of open test suites for functional testing of various Linux systems for compliance with the requirements of the LSB Core 3.1 standard (the behavior of Linux system application programming interfaces is checked).
  • The test suite is based on automatic generation of tests from formal requirements specifications and corresponding test scenarios using UniTESK technology.

    By the end of 2006, the main phase of the project was completed; All results of the project are published on the Center's website. Now the project is in the stage of supporting and expanding the range of target platforms (combinations of hardware architecture with a specific distribution).

    * Flex contains several known bugs. They can be fixed with the next patch... - eng.


    Linux Compatibility Issues


    Linux uses a standard disk partitioning scheme and can share a hard drive with other systems, incl. with DOS.

    There is a bootloader that allows you to selectively boot the required OS from disk.

    Support for file systems of other operating systems.

    From Linux, in the usual way, you can work with hard disk partitions and floppy disks containing file systems of other operating systems, incl. DOS, Windows 95, Minix, Xenix, Coherent, System V file systems. DoubleSpace, HPFS-2 (OS/2) and Amiga file systems are available in read-only mode.

    DoubleSpace/Stacked file systems, etc. become readable and writable on Linux when running a DOS emulator.

    File system Linux OS supports all standard CD ROM formats.

    Linux is capable of being both a client and server of the NFS network file system. Linux supports the NCP and SMB protocols and can serve as a file server or access NetWare and Windows for Workgroups, Windows NT file servers.

    Installing Linux on a DOS partition.

    Linux supports the UMSDOS file system, which makes it possible to install Linux directly on a DOS file system without repartitioning the hard drive.

    Based on UMSDOS, a 4-floppy Mini-Linux distribution is built, which is installed on the DOS file system.

    Working with diskettes in DOS format.

    Linux can read and write DOS floppies. This is done both by the usual Linux tools (then the floppy is mounted as part of the file system), and by special commands for servicing DOS floppy disks. Floppy disks are also available in the DOS emulator.

    Execution of DOS application programs.

    Linux runs dosemu, a DOS emulator. This program allows you to run a DOS system on Linux that normally runs DOS application programs. You can run many DOS programs, but not all. For example, a DOS emulator allows you to work with

    • information databases:
      • Consultant +,
      • price pulse,
      • Russian wholesalers,
      • and etc.;
    • software systems for accounting tasks.

    DOS applications running on Linux can use the file system as DOS partition, and file Linux system, incl. network file system NFS.

    A DOS application runs in parallel with other processes. You can run multiple DOS applications at the same time.

    Working with MS Windows applications.

    Under development is the WINE system, which allows you to run MS Windows applications on X Windows. In this case, the MS Windows system is not used and its presence is not required. Currently, WINE allows you to run a limited number of MS Windows applications. Such popular programs as Word, PageMaker, CorelDraw do not yet work with the WINE system. The WINE project is under heavy development, and these and other applications will be usable on X Windows sometime.

    The DOS emulator can run MS Windows 3.0 in real mode and related applications. MS Windows 3.1 and Windows for Workgroups run in the 0.63 emulator, although dosemu should be considered alpha for the time being. The DOS emulator is rapidly evolving.

    Willows Software, Inc. developed the commercial TWIN XPDK system. This system contains a component similar in functionality to WINE, which runs Microsoft Office Applications, Word, Excel and Project on X Windows. All in all, TWIN XPDK is a toolkit for MS developer. Windows Applications(including for Win95), which allows the developer to easily transfer applications between a number of platforms, including Unix, OS / 2, Mac.

    Caldera, Inc. , whose start-up capital was invested by Noorda Family Trust, Inc. (Ray Noorda - former CEO of Novell) sells Linux-based Caldera Network Desktop. Caldera has licensed Wabi, a commercial system that is functionally similar to the freeware WINE system, from SunSoft, Inc. Priced at $200 or less, Wabi will ship as part of the Caldera Solutions CD.

    Running programs from different versions of Unix.

    Using the iBCS2 emulator, a Linux system can run downloadable programs from SCO Unix, Xenix V/386, SVR3 generic, Wyse V/386, SVR4 (Unixware, USL, Dell), BSD/OS, FreeBSD systems. For example, such SCO Unix applications as CorelDraw, WordPerfect, Oracle work in Linux.

    To Linux (and vice versa) are easily ported at the source code level of programs from Unix systems System V and BSDs.

    Linux supports open system standards, incl. POSIX. X/Open, a global information technology standardization leader and holder of the UNIX trademark, has awarded Linux OS POSIX.1 FIPS151-2 certification. This means official recognition of the fact that almost all Unix applications can be easily ported to Linux. Certification against POSIX.2, POSIX.4 and POSIX.7 is just around the corner. Lasermoon, the Linux-FT distribution company, is a member of X/Open.

    Liked the article? Share with friends: