TVs. Consoles. Projectors and accessories. Technologies. Digital TV

Disadvantages of Linux that Linux people prefer not to talk about. Linux or FreeBSD? Without anger and passion Let's watch Star Wars

We pass the microphone to him.

No, seriously, don't do this. You may think that this will instantly solve all your problems and you will find yourself in a nirvana of eternal happiness and a fun terminal - but this is not so. It’s fashionable to say so, but in reality everything will only get worse.

But let's start with a short introduction.

Part one: I had one friend...

... and this friend, let's call him Sasha, had one netbook. This is a typical netbook, no better or worse than other netbooks that were bought a long time ago and were used mainly on rare trips and business trips. On board, as befits all netbooks, there were 2 gigabytes of RAM, and on the case there was a sticker Intel Atom, as everyone understood, Inside, not Outside.

This netbook served Sasha faithfully for a long time: on it he watched videos, played simple toys and edited office documents.

But in lately something went wrong: everything began to slow down and lag, even if there was only one single tab open in the browser with an important document in Google Doc or just one single entertaining “sup-dvach-I-lamp-nyasha-shy” on YouTube.

"What's the problem?" - Alexander asked exactly this question. And first of all, he decided to ask his programmer friends: the people were smart, developers, lords and gods modern technologies. “Surely they will suggest something useful,” Sasha thought.

Part Two: Linux Propaganda

Sasha’s IT specialist friends, like any other IT specialists, found the problem right away: the vile Windows 7 was to blame for everything.

They, of course, still used Windows, but only 6.5 days a week, the rest of the time they worked on, as they said, “Divine Linux”, while, however, the only commands they knew were apt-get install, cd and sudo.

“Alex, get off your proprietary piece of shit and install Debian – everything will work.”

And Sasha believed. He fell for Linux propaganda. But Linux didn't help him. And here's why.

Part three: and everything was illuminated

After a not so simple installation, he finally sighed and was happy: a fresh “Gnome” was shining before his eyes. Everything, of course, at first glance was funny and incomprehensible, but Alexander himself was not very far from an IT person, so he didn’t think that it would be difficult to understand the interface.

And so it happened: after ten minutes he already found out where the “Control Panel” was located and was able to launch the browser.

Taking his time typing vk.com into the address bar, Alexander went into his audio recordings, selected his favorite song from his favorite artist and clicked “Play.”

But nothing happened.

“Google help, install drivers,” said friends.

2 hours 42 minutes - that’s how long he scrolled through domestic and foreign forums, sites with questions and blogs with instructions. None of the instructions and pre-suggested commands helped him. There was no sound. And no one could help him. There was a community, of course, but it was not possible to fix the problem that arose specifically in his device.

After some time, Sasha needed to leave, and he closed the lid of the netbook. The computer went into sleep mode, but when Sasha returned, instead of the working screen, he saw... and he saw nothing. The netbook froze tightly, the noise of the cooler was heard, but it did not respond to any manipulations - only holding down the power button helped.

“Google help, you have crooked hands,” said friends.

After several hours of googling and a dozen read logs and tried solutions, the computer still froze when going into sleep mode.

Part four: well, to hell with it, the main thing is that now everything flies!

Google Docs still slows down, YouTube lags even with one open tab and minimal video quality.

Everything is as it was. Alexander gained only 3 things from switching to Linux:

  1. Bugs, lags and hardware brakes.
  2. Inability of your favorite software even under Wine and its vague analogues.
  3. Any problem with the system is now solved or not solved only by hours of Googling and smoking manuals.

But what he didn't get was the only thing he needed - increased system performance.

But no. Doesn't fly.

Part last: final

Linux is a great OS. I would even say one of the best. I have been developing software for more than 5 years, and 2 of them have been under Linux. Linux is needed by me and other professionals who themselves felt that they needed it. We can say that the entire OS here is an IDE. So this is perfect for us.

But everyone else doesn't need it. This is a pretty unpopular opinion, but it's true. A computer that has not flown under Windows will not fly under Linux.

And everyone else will get absolutely nothing out of this except a lot of wasted time. They will not gain any profit for themselves. They will only be nervous and angry at themselves and at the world, solving yet another problem with a computer that has long needed not Linux, but a trash can.

Please don't recommend Linux to people who don't really need it. Stop wasting their time. Don't become part of the pointless Linux propaganda.

Did you know that Linux is not just for serious admin work? You can play text games on it, talk to the terminal, or even create beautiful ASCII pictures on it. Yes, Linux is really fun if you know the right commands. Let's look at commands that can make you smile or that you can enter at the end of a difficult work day and get a breath of fresh air in the form of positive emotions. You will return home in a good mood.

1)Get a random quote with the fortune command

You can get random quotes and funny predictions using the fortune command. In this case, it is necessary that the fortune package be installed on your system.
To install fortune on systems with apt or aptitude:

Linuxtechi@linuxarena:~$ sudo apt-get install fortune

To install fortune on yum systems like CentOS/RHEL/Fedora, enter the following lines:

# yum install fortune*

Once the installation is complete, enter the fortune command. The result can be seen just below.

2) Team Rev

This command expands any string given to it. The command is available immediately after installing Linux.

# rev
LinuxTechi
ihceTxuniL
Linux Rocks
skcoR xuniL
Opensource World
dlroW ecruosnepO
Linux Mint Ultimate Desktop
potkseD etamitlU tniMxuniL

You can even create a file with a list of names and then provide this file team. In this case, all names from the file will be expanded.

# rev rev.txt
ihceTxuniL
skcoR syawla xuniL
dlrow ecruosnepO fo enobkcab eht si xuniL
ihceTxuniL moob moob
#

3) Yes command

The yes command will endlessly display the text given to it until you force it to stop (CTRL+C).

Syntax:

# yes TEXT

# yesLinuxTechi.com
LinuxTechi.com
LinuxTechi.com
LinuxTechi.com
LinuxTechi.com
LinuxTechi.com
LinuxTechi.com
LinuxTechi.com
LinuxTechi.com
LinuxTechi.com^C
#

4) Turn the terminal into an aquarium

Did you know that you can turn your Lnux system terminal into a beautiful aquarium with fish and algae? To do this, you will need to install the term animator, libcurses, and asciiaquarium packages on your system.

Before following the instructions, make sure you have the 'perl', 'perl-Curses' and 'perl-devel' packages installed.

For systems with yum:

# yum install perl perl-devel perl-Curses

For Debian systems:

Linuxtechi@linuxarena:~$ sudo apt-get install perl libcurses-perl

Now you can start installing this awesome command.

First, make sure you download the term animator package:

# wget http://search.cpan.org/CPAN/authors/id/K/KB/KBAUCOM/Term-Animation-2.6.tar.gz

Install the package as shown below.

# tar zxpvf Term-Animation-2.6.tar.gz
# cd Term-Animation-2.6
# perl Makefile.PL && make && make test
# make install

Attention: If you have difficulties with anything described above, then you can always use the cpan console and install the “Term Animation” package through it. You can do it like this:

Cpan> install Term::Animation

Finally download and install the asciiaquarium package. Here's how to do it:

# wget http://www.robobunny.com/projects/asciiquarium/asciiquarium.tar.gz
# tar zxpvf asciiquarium.tar.gz
# cd asciiquarium_1.1/
# cp asciiquarium /usr/local/bin/
# chmod 755 /usr/local/bin/asciiquarium

Now run the command

# /usr/local/bin/asciiquarium

#asciiquarium

5)Team Toilet

It is not at all clear why the team is called that way, because what it does has nothing to do with the latrine. This command produces beautiful titles made entirely of characters.

To install the toilet package on Debian based systems use the command below:

Linuxtechi@linuxarena:~$ sudo apt-get install toilet

For bases like CentOS or RHEL use:

# wget http://caca.zoy.org/raw-attachment/wiki/toilet/toilet-0.3.tar.gz
# tar zxpvf toilet-0.3.tar.gz
# cd toilet-0.3
# ./configure && make && make install

Linuxtechi@linuxarena:~$ toilet LinuxTechi Rocks

Toilet provides wide range features like fonts, colorful symbols and filters. Use the man page for the toilet command to familiarize yourself with a large number opportunities.

6) Set your terminal on fire

Don't worry, this command will only display symbols that form flames in your terminal.

Install a package that will allow you to issue the aafire command on a Debian-based system:

Linuxtechi@linuxarena:~$ sudo apt-get install libaa-bin
linuxtechi@linuxarena:~$ aafire

7) Ask the cow to repeat what he wrote

cowsay is another funny one Linux team, which displays the entered sentence as a utterance from a cow or any other animal of your choice.

Linuxtechi@linuxarena:~$ sudo apt-get install cowsay
linuxtechi@linuxarena:~$ cowsay Linux world Rocks

cowsay can be used in conjunction with the fortune command. An example can be seen just below:

Linuxtechi@linuxarena:~$ fortune | cowsay

8)Enter the world of the matrix

Let's brush up on the matrix using the cmatrix command.

The cmatrix command is not available by default. To install it on a Debian based system you need to enter the following:

The matrix starts like this:

Linuxtechi@linuxarena:~$ sudo apt-get install cmatrix

9) Do you love Jerry the mouse?

Are you tired of the old dark mouse pointer, so much so that you would like to do something special with it? The "oneko" package will help you. It attaches the famous Jerry mouse to your mouse pointer. As a result, wherever you point the pointer, the mouse will follow it. Quite funny, isn't it?

To install the oneko package on a Debian-based system, enter:

Linuxtechi@linuxarena:~$ sudo apt-get install oneko

Once the installation is complete, type the command "oneko" .

10) Make the terminal talk to you

Turn on your speakers, because with the espeak command you can make your Linux terminal speak. First, let's install the espeak package.

Linuxtechi@linuxarena:~$ sudo apt-get install espeak

For systems with yum:

Execute the espeak command with the text:

Linuxtechi@linuxarena:~$ espeak "LinuxTechi is the best Website for Linux guide and tutorials"

11) Steam locomotive in your terminal

Everyone knows the "ls" command, which can be used to display the contents of a directory, but do you know the "sl" command? This is a fun command that draws a steam locomotive in your ASCII terminal.

"sl" is not a basic command, so it's worth installing first.

For Debian based systems, enter:

Linuxtechi@linuxarena:~$ sudo apt-get install sl

For systems with yum:

# yum install espeak

Run the sl command and enjoy:

# sl

12) Let's watch Star Wars

Want to go back to school when you were fascinated by Star Wars characters? Of course, you can’t watch a movie in the terminal, but you can quite enjoy scenes from the movie in ASCII format.

# telnet towel.blinkenlights.nl

You just need to wait a little and the scenes will be displayed Star Wars in ASCII format.









To stop, hold down the combination ctrl+] . Once the telnet terminal appears, enter quit in it.

This is where the article ends. I hope you enjoyed the teams. If you know any other similar commands, be sure to share them in the comments!

Well, again the fryakhods have come to our cozy little world! :) Well, hello and peace to you brothers...
And now the sad lyrics, for BSD:
1. The ports system - a source-based system, by definition, will bore anyone when trying to build, say, KDE or OpenOffice.org, bludgeoning. This process is not even bad modern system It will take a couple of hours, at least (at one time we were talking about a day). A special obstacle is (for beginners who have not mastered make config, make config-recursive and portupgrade -c/-C) the dependencies of ports, which were apparently written according to the principle “make a combine out of everything” - you can often observe the compilation process of completely unnecessary ones for the user cups/gtk/qt-webkit/whatever-else-the-polyinternet-wants-to-download. In addition, the incorrect choice of optimization flags sometimes leads to the inoperability of the assembled software. However, no one canceled the packages - however, it is impossible to observe the long compilation process, bida-bida.
2. Oracle is natively compiled under BSD exclusively for CNN and they won’t give it to anyone, and running the rpm version through Linux compatibility mode will give you slowdowns and glitches, in addition, the newest Oracles just don’t start, and the fryakhod is forced to limit itself to the ancient one mammoth shit is rubbish, like Oracle 8.0, which you can’t even link to your PHP or Erlang.
3. The native file system is not the most stable and does not like sudden power outages.
4. It is still much inferior to the zoo of Linux distributions in the range of supported equipment. The GUI is less than completely unusable on most PCs, not to mention laptops with their buggy ACPI.

this is why I choose FreeBSD - it is one of the most stable systems in the world, it breaks all records for continuous uptime, which Linux is very far from achieving. and it NEVER happens that after any update there are any problems, if any troubles appear with the system, it is only because of the curvature of the hands of its owner, because random glitches due to something are simply IMPOSSIBLE, you are always sure that after the next launch everything will start as it should, and you will NEVER have to look for anything, pick anything, tear out hair on your head, etc.
only here's the problem, it's not bubunta, but real UNIX, as a result of which there are no pre-installed " beautiful wallpaper" and various tricks, you will have to administer the system manually from the console, reading mana to figure it out. But once you master it, you can easily use almost any Unix, be it OpenBSD, or some illumos thread.

There are a few advantages for the brothers in UNIXe:

1. The port system is one way to install the entire avalanche of free software: make install clean. You can also install software from ready-made binary packages from the repository. Which were compiled from the same ports, by the way.
2. A bunch of manuals on the network for organizing everything in the world: from a simple router for a shitty local network to a cunning Internet distributor with Radius authorization and traffic limitation by the number of pimples (the table of the number of pimples is stored in the SQL database / LDAP directory). Moreover, they, even written for FreeBSD 4.7, are also suitable for the latest 7.x and 8.x. In rare cases, minimal modification is required.
3. Dynamic tracing framework ported from OpenSolaris - DTRACE.
4. HAST - GEOM class for creating fault-tolerant storage!
5. There is a jail mechanism that makes it possible to launch several copies of a subject on one piece of hardware, for which there are different utilities. Each such prison looks from the inside like a full-fledged box with a network interface. FreeBSD 9 introduces a resource cage limiting mechanism (RCTL) and also introduces a network stack virtualization mechanism (VIMAGE). You can also create recursive jails. Or install the Debian environment from the Debian GNU/kFreeBSD project into the FreeBSD jail.

Well, and much more...
I'm honestly tired of writing about this today...

This note was born during numerous transitions from one system to another, during many years (in IT time scales) of their joint use, as well as during reflections on the topic: which system should I install on new car? The immediate impetus for it was correspondence with a number of authors and dreams of an ideal distribution, discussed not so long ago on. But first, a couple of disclaimers

I must warn you right away that the answer to the question posed as the title will not be found here. Because I don’t know him myself. But I vouch for the fact that I follow the behest of the great Roman historian. Because I love both systems and, moreover, I use both systems in everyday life - sometimes together, sometimes separately, depending on tasks, circumstances and just my mood.

And one more thing: not a word will be said further about the use of Linux or FreeBSD as servers or nodes local network and similar system administrator matters. And exclusively about user, that is, desktop, qualities. Anticipating the reaction of a certain category of readers, I am ready to tag the last phrase and repeat twice and thrice:) Subjective introduction

Soon it will be four years since FreeBSD and Linux alternate on my machines (home and work) with some frequency. Or they coexist peacefully in one, separately taken system unit. And during this time I noticed an interesting pattern.

During periods when there is only FreeBSD on my machine, my working time is distributed approximately like this: 90% practical work (it absolutely does not matter what nature it is at the moment), and 10% more or less unhealthy experiments on the system. As soon as some kind of Linux is nestled in a corner of the hard drive, the time share of experiments immediately jumps to 50%. And during the periods when I was building Linux from scratch, the experimental mode actually became permanent.

And I asked myself the question why? And for myself answered: FreeBSD is a solid and harmonious system, in which, after the complex initial settings there is no desire to add or subtract anything. It is no coincidence that the movement, which from time to time covers wide layers of Linux users, has not actually received development in the FreeBSD world: the famous work of Jens Schweickhardt (which also exists in) is more a description of an automated alternative to sysinstall, rather than a manual construction own system from scratch.

Linux cannot demonstrate such internal harmony. And therefore the desire to change something in the already installed system, improve, add, clean, or even simply rebuild everything again, arises constantly, and can only be overcome by a lack of time.

However, this does not mean that I unequivocally think FreeBSD is the best system to work with. Because my work, among other things, consists of creating various notes near the computer. Plots that are carried out by those very unhealthy experiments on the system, the implementation of which is so favorable for Linux and for which FreeBSD is so not disposed.

However, I repeat, all this is purely subjective, because not everyone is engaged in writing notes near the computer. And so I’ll try to make a more objective comparison. First attempt at objectivism: “hardware”

What do most users require from an operating system as such? Firstly, of course, support for hardware, which, as you know, does not suffer from monotony on desktop PCs.

There is an opinion that Linux supports a wider range of hardware than FreeBSD. Indeed, for the latter we will not find, say, printer drivers from the manufacturer. Full support for modern video cards is implemented only if they are from NVIDIA (and even then, according to reviews, it is significantly worse than for Linux). There will probably be tension in this OS with the so-called. winmodems. This is on the one hand.

On the other hand, all happy owners of ATA RAID and Serial ATA controllers in Linux until recently had to resort to all sorts of tricks. Moreover, it is not always successful, especially if the disks attached to such controllers were intended to be used as boot devices. Actually, the situation can be considered normalized only in the latest kernels of the 2.6.X branch...

In FreeBSD, the 5th branch is more or less in parallel, on which controller of the IDE family does it sit? hard drive: thanks to CAM (Common Access Method), it will be possible to somehow work with it in any case, and if it is also correctly identified, then there will be no obstacles to loading from it. And in the 4th branch I have never encountered problems with “same age” ATA RAID controllers.

Another example sound cards. All of them, which are based on more or less common chips, worked in FreeBSD without the slightest effort (of hand or thought). The same can be said about the “chipset” sound. In Linux, similar devices often required not entirely trivial manipulations with ALSA drivers, fortunately they are now built into the kernel. However, even in the latter case, you cannot do without some adjustment steps. But this is already the subject of the second attempt at objectivism.

And I would formulate the result of “iron” objectivism as follows: maybe Linux supports more wide circle all kinds of equipment (including some exotic ones), but all the hardware that is supported by FreeBSD (and this is almost all standard and common hardware) is, in most cases, easier to use. And here we smoothly move on to the second exciting moment for the user, especially a beginner (and non-beginners have long made their choice) moment, whose name is Settings

I cannot explain the persistent (and carefully cultivated) opinion that FreeBSD is more difficult to install and configure than Linux as anything other than a misunderstanding. Because it has nothing to do with reality.

Let's start with installation. Installing FreeBSD regular means(using the sysinstall utility) is completed in half an hour, does not require access to the Internet (although it will not be superfluous) and ultimately gives a fully functional system with a Cyrillic console, a functioning dialup (or, as the case may be, a connection to LAN), launched Xs and the minimum packages necessary to start practical activities (from precompiled binaries). All settings, both system-wide and for application packages, are reasonable (even if not ideal from the point of view of a particular user).

Of course, installing FreeBSD requires some prior knowledge. Which boils down to a) an idea of ​​disk layout in BSD style, the nomenclature of drives adopted here and the strategy for creating file systems. Not because these moments are so complicated; they are simply very different from everything that the user could know before (from experience with DOS/Windows or Linux). And besides, the disk layout and file systems on them are the only thing that the user cannot change after installation (without a total reinstallation, of course). However, this is not so scary: the default layout and file system scheme proposed in sysinstall is quite suitable for a desktop personal computer, although it is not ideal in a number of special cases.

Most of the installers I know from different Linux distributions differ from Free sysinstall in two opposite directions:

  • there are installers that are simpler although, in my opinion, this is the same simplicity that is worse than... you know what;
  • and there are installers that are more flexible but they already require enough from the user deep knowledge and a clear understanding of the essence of the actions being performed.

Along with Free sysinstall, I would install (of all the ones I know) only the installer from Archlinux. Written, as its developer testifies, under the influence of the former, it provides much the same combination of simplicity and flexibility.

However (and this is the specificity of Linux as a system integrity), even in this case, the final workable system is not obtained. It will not be possible to do without manual finishing.

Of course, post-installation improvements are not prohibited in FreeBSD either. However, here it is aimed at achieving an ideal, rather than providing basic functionality. Which I would illustrate with a series of examples.

Let's start with the same Russification. Immediately after installing FreeBSD, the user, if desired, receives a fully Cyrillic console. True, in one and only version, with internal encoding kOI8R, input in it and screen output in DOS encoding, and even with not quite ideal fonts. But no further actions according to basic Russification from him to mandatory not required. And he can bring layouts and fonts in line with his ideal later. In Linux distributions that do not put much emphasis on user friendliness, manual editing of a couple of configs is probably unavoidable. I won’t dwell on the reasons for this (for those who understand the difference between the console in Linux and FreeBSD, they are obvious).

Of course, in user-oriented Linux distributions of domestic origin, the user receives a 100% Russified console out of the box. However, made in accordance with the ideas of the developers. Which do not have to coincide with the ideas (and, most importantly, the needs) of a given specific user. And in this case, he will have to spend significantly more effort on correction than when Russifying any Source Based distribution from scratch. In confirmation of this, let us recall the numerous articles devoted to the rollback in Red Hat (and Fedore Core) from the “progressive” UTF encoding to KOI8, albeit a “homeless” one, but quite suitable for many, many...

Russification of the console is closely related to the style of initiation files adopted in this system. And here the linear BSD style from the user’s point of view looks simpler than the System V style initiation adopted in Linux, based on the concept runlevels, the translation of which as “execution levels” can completely confuse a novice user.

Gentlemen, administrators of industrial servers, will object to me that the System V style allows you to flexibly connect and disconnect various starting services. I won't argue. However, how often does a desktop user face such a task? Much more often, its goal is to kill once and for all the numerous services that the distribution's maintainers considered vital for its happiness...

It is no coincidence that many modern Linux distributions tend to use the BSD boot style, examples of which, in addition to the classic Slackware, are CRUX and Gentoo. And in Archlinux, the concept of runlevels generally loses its meaning, although the corresponding words can be found in the /etc/inittab file; in practice, runlevels do not play a role at all when the system starts. But there are no attempts to introduce the “progressive” style of System V into BSD systems. Do not consider grouping scripts of various services in a single subdirectory in /etc in FreeBSD 5th branch as such.

As for the Russification of X X, as you know, it is also in Africa X. And the actions of entering paths to files with Cyrillic fonts, correcting the keyboard layout and installing a switch from Latin to Cyrillic will be inevitable, no matter what operating system X is installed on top of.

The second illustrative example is setting up the sound. In FreeBSD, this requires (for the vast majority of common chips and chipset audio) adding one (and the same in all cases) line to the kernel configuration and recompiling the latter. After which you can simply forget about the sound - it will work always and everywhere.

By the way, you can do without recompiling the kernel; the sound support module is assembled (like almost all modules) in FreeBSD without fail; you just need to load it manually or ensure it loads at system startup.

In Linux: let's start with the fact that the same chipset audio (and with the gradual extinction of cards like SB AWE128, it is becoming preferable for all users without pretensions to audiophilia or composing) certainly requires ALSA drivers. Fortunately, they are now built into the kernel and are included in default kernels as modules in most distributions. If not, then recompiling the kernel will not be difficult.

However, the matter is not limited to recompiling the kernel. You also need to install the appropriate ALSA toolkit (and, as a rule, means of compatibility with the old OSS sound system), activate the corresponding daemon and, using not entirely obvious means, ensure its “self-healing”. And after all this, you will again encounter surprises. For example, with the reluctance of ALSA and arts (the KDE sound system) to peacefully coexist. Of course, it may be argued that these are KDE problems, but FreeBSD does not have them at all.

By the way, about additional installation of tools (and other programs)... For this you need a Package Management System

Here, until recently, the championship, of course, belonged to FreeBSD. Its port system provided an incomparable combination of simplicity and flexibility, always leaving the possibility of choosing whether to build packages from sources or install them from binaries. A combination of these methods is not forbidden. Of all Linux's riches in this regard, only Debian's apt, assimilated into the depths of many rpm-based distributions, could be compared with ports. However, although apt assumes the ability to build your own packages, its main method is to use precompiled binaries, assembled in accordance with the maintainer’s ideas about their dependencies.

Nowadays, the situation has changed and Source Based Linux distributions widely use port-like systems that developed under the strong influence of their FreeBSD prototype: Gentoo ports, Sorcery from Sorcerer, CRUX ports, Archlinux Building System from the distribution of the same name. They sometimes surpass their ancestor in versatility, flexibility, globalization of configuration or transparency of the device, use and modernization. In addition, over the decade of its development, FreeBSD ports have become a very bulky and difficult to understand structure, keeping it up to date is a separate task that is not always solved with the help of additional tools like portupgrade (. which in itself is already part of not basic system, but port systems).

And here it is appropriate to say a few words about another widespread legend: that assembling from source code using port-like control complexes always leads to a “cleaner” (that is, free from unnecessary components) system. This is not always the case.

Firstly, the very nature of ports (and their clones) often involves some redundancy of installed components. A textbook example is cvs-up, which requires both the base system and FreeBSD ports for updating: in binary form it is a lightweight, compact package that does not burden even a user with a modem connection. When assembled through ports, it pulls along the modula distribution kit (since it is written in it), which will not be useful to anyone in the future except adherents of this programming language.

What has always surprised me about FreeBSD ports is the situation with the build of my favorite editor, joe. Which certainly required GNU make version 3.80 as a dependency, although its own make is included in FreeBSD Distributions and compiling it using Joe’s hands is not a problem.

In general, the “cleanliness” of installing a package very much depends on the specific implementation of the port. Recently I found a news report about a new window manager called edo small, as they said, compact and fast. It was also found in FreeBSD ports, from where I decided to collect it. As a result, this little one:) WM pulled along with it (as a dependency dependency) none other than MySQL...

However, if you think that this behavior of ports is a feature of FreeBSD, and the creators of their Linux clones took into account the mistakes of the past, then I assure you that this is not always the case. Moreover, in Linux the situation is aggravated by the features of the base system, or more precisely, by the inconsistency in the development of its individual components.

Anyone who has ever built Linux from Scratch knows that some versions of Base Linux packages tend to be built only with certain (not necessarily the most recent) versions of utilities such as autoconf and automake, categorically refusing to do so with other versions of them (even if more fresh and progressive).

Developers of Source Based Linux distributions sometimes get around this complexity by forcibly adding to the list of dependencies such “slimy” packages autoconf and automake from “last year’s” bottling, despite the fact that in itself basic kit includes their currently current versions. As a result, for example, in Gentoo, when performing bootstrapping or an emerge system, you can be surprised to see how the system climbs onto the Internet for a bearded, like Karl Marx, autoconf, although its latest version has just been deployed from the stage1 tarball. And if we remember that many people believe that a truly stable Linux kernel can only be compiled with gcc version 2.9.X, which results in the presence of two compilers in the system, then what kind of “purity” of the assembly can we still talk about?

However, achieving a reasonable balance between deploying precompiled packages, installing them from a ported system, and doing custom builds yourself is a completely different topic. In the meantime, I’ll risk formulating a couple more “lenses”:

  • FreeBSD, contrary to popular belief, is much easier to configure and local administer. Even without taking into account the fact that there is only one, and there are many Linuxes;
  • on the contrary, the FreeBSD ports system currently (unlike in the recent past) does not have significant benefits before similar tools from Source Based Linux distributions.

If you carefully calculate the above pros and cons of both operating systems, you can come to the conclusion that the score between them is equal. Perhaps with a slight positional advantage for FreeBSD, but so slight that it is quite reasonable to settle for a draw. However, each OS is installed, configured and expanded with applications not for its own sake, but for practical use. And therefore you should consider comparing their user qualities

Here, to begin with, I will risk expressing a seditious opinion, from the point of view of fanatics of any of the systems under discussion (however, fanatics will consider any opinion that does not coincide with their own to be seditious). Namely:

For a user who gives priority to working in graphic mode, there is practically no difference between FreeBSD and Linux.

Because such a user spends most of his time in Xs, and it makes absolutely no difference to him what operating system these Xs are running on top of. It only seems to him that he is working on Linux or FreeBSD (NetBSD, OpenBSD I dare to expand this list). In fact, it works in KDE (Gnome, XFce, WindowMaker add as necessary). And if he did not have to first install and configure his operating system, he would have a chance to never know which POSIX-compatible system he was working on: he would be faced with the same interface elements, the same configuration tools and applications .

So, in a comparative aspect, we can only talk about working in console mode using the system and user utilities of the basic set.

And here I can’t help but utter an ode to the FreeBSD text console and its management tools. Which include only two commands: vidcontrol and kbdcontrol, the purpose of which is clearly implied by their names. And which allow you to configure absolutely everything in the console - from the density of characters on the screen (the so-called resolution) to the color of borders, unique for each virtual terminal.

A Linux user first has to figure out which of the two console management packages - kbd or console-tools - is used in his distribution. Of course, now they are almost identical in their capabilities, but each has its own set of commands with slightly different syntax. And some settings (for example, text and background colors) require him to use commands that are not included in any of the packages. And some things (for example, the same colors of borders) will still remain inaccessible to him.

The same applies to the basic commands of both systems. FreeBSD Distributions is a monolith, closely tied to the kernel, which includes everything a user might need to administer and use the system (and administering a local desktop is a user task, just like word processing or file manipulation).

Of course, Linux also has the same set of classic Unix utilities (more precisely, like FreeBSD, their analogues). However, these are precisely disparate packages developed within the GNU Project, essentially independent of the operating system. And because of this, they are not so closely integrated with it and with each other.

So, in console mode, FreeBSD remains the leader? In my opinion absolutely. But only if we are talking about a purely text console. If you turn your attention to the so-called. graphical console (implemented using Frame Buffer), then everything looks a little different.

To begin with, the FreeBSD graphics console (the so-called Raster Mode) is limited to a single resolution of 800x600 (here we are talking about real pixel resolution, not character density). And even then, on some chips this mode does not work at all, on others it looks quite bad. Actually, I couldn’t achieve normal results in Raster Mode on any of the video cards at my disposal.

In Linux, the graphical console is simply pleasing to the eye. Even with Frame Buffer support for abstract VESAcompatible cards, you can vary resolutions from 640x480 to 1280x1024, with color depth changes in standard range. This ensures not only comfortable viewing of images, but also very decent (in my opinion, more than decent) video playback. For cards that have well-implemented native drivers in the Linux kernel (Matrox, ATI, chipset video from Intel), the ability to set non-standard screen resolutions is added to this.

Naturally, no one uses the console to work with images, and very few to watch videos. Why do I attach such importance to the graphical console? Yes, because imperceptibly, but the era of liquid crystal displays is coming, marking the death of the purely text mode (but not the console mode as such). Why will be easily understood by those who have seen the standard text mode of 80x25 characters on an 18-inch LCD monitor with a physical matrix resolution of 1280x1024. And I’m afraid to even imagine how it would look on a screen with an aspect ratio of 16:9...

Finally, there remains one more issue that is important for the user: About performance

The idea that FreeBSD is faster than Linux is just as traditional as the idea that it is more difficult to configure. However, is everything so clear?

Firstly, loading speed is considered as one of the main criteria, the correlation of which with the execution speed of applications is somewhat questionable. I remember that out of a considerable number of operating systems that I have seen in my life, MS DOS loaded the fastest:)

Secondly, even if we consider loading speed one of the performance criteria, only FreeBSD 4th branch shows superiority over Linux. The fifth branch loads exactly the same as any other Linux distribution, which uses the devfs device file system. Of course, in the noble Linux family you can select representatives that take even longer to load, but these are very user-friendly systems, burdened by... an abundance of starting services (in particular, the kudzu hardware auto-detector).

Based on my purely user experience, I would say that the difference in performance on user tasks between Linux and FreeBSD is usually not visible organoleptically. With two exceptions, the first of which is file operations.

It is obvious that the performance of file operations of each OS is influenced by two factors: the implementation of interaction with disk subsystem(for a desktop specifically with an ATA interface) and the organization of the supported file system(systems). And this is where FreeBSD finds itself at a disadvantage compared to Linux.

It was mentioned above that due to CAM in FreeBSD (we are talking about the 5th branch) universalism is achieved in working with disk controllers I got the impression that it does not care at all what specific controller the disk is on (as long as it is recognized by the BIOS but this is only necessary to load the kernel from it). However, there is a price to pay for universalism. in this case retribution comes in the form of a decrease in the performance of disk operations although reliable information on this issue I did not find, based on general considerations, this looks similar to the truth.

This is the first side of the question. The second is the FreeBSD file system, which is UFS and (by default in the 5th branch) its improved upgrade UFS2. Traditionally, in this OS, both are used in a partially synchronous mode (noasync mode), when changes to file metadata are written to disk immediately, and changes to data blocks are cached in RAM.

Linux uses a different model for working with ATA disks: different types controllers may (or may not) have their own support in the kernel. This excludes the use of clearly unsupported devices, but for supported ones, apparently, provides greater performance. File systems (and Linux supports several varieties as native ones) by default, all (except perhaps JFS) are used in a completely asynchronous mode (async mode), when both data and metadata are cached in RAM.

As a result of the combination of these factors, file operations are performed significantly faster on Linux than on FreeBSD. Actually, I always suspected this, but it only showed how significantly the FreeBSD 5th branch lags behind in this regard; even the SoftUpdates mechanism, designed to increase both the reliability and performance of file manipulations, cannot save the situation. By the way, in FreeBSD 4 branch such a lag was not previously observed, which indirectly confirms the negative impact of working with the disk subsystem (which aggravates the degradation of synchronous operations) it does not use the CAM model (at least it was not used when I used it used). But in Linux, with its exclusively asynchronous use of file systems, according to my observations, there is almost no dependence of the speed of working with files on the performance of disk hardware.

The second of the promised exceptions relates to swapping operations. Which are performed significantly differently in Linux and FreeBSD. To establish what, just look at the output of the top command in both OSs under an average user load. In Linux, you can see that with enough RAM, the percentage of swap space used tends to zero. For example, on my Linux laptop (512 MB of memory), at the time of writing these lines, with KDE loaded, Quanta html editor, konsole, two copies of konqueror and mplayer running (mpeg and RealAudio playback), swap is not used at all. On a desktop with FreeBSD (1 GB of memory), with the same load, the used swap area almost never drops below 10%.

This is due to the fact that Linux resorts to swapping only when RAM is full, while in FreeBSD, memory pages that have not been accessed for a certain period of time are swapped out to disk in any case (even if there is too much RAM). In essence, RAM in this OS it acts as a kind of cache for the swap area (more precisely, for virtual memory in general). Which is effective when its volume is limited and was justified in ancient times, when processors were slow and memory was scarce. Nowadays, this model of using swapping in some situations leads to slowdowns. Example KDE with a large number of desktops and periodic switching between them, where such slowdown is visible to the naked eye.

All this leads to greater objective (as determined by tests) and especially subjective performance of Linux compared to FreeBSD. Although I must again emphasize that we are talking specifically about the desktop sphere: on a heavily loaded server, the FreeBSD caching mechanism can show its effects strengths, and the speed relationships between these systems may, in some cases, turn out to be directly opposite. Let’s summarize

At the very beginning of this note, I did not promise to give a definite answer to the question posed in its title. More precisely, he promised that he would not be there. And indeed, I don’t see a definite answer for myself. But I’ll allow myself to make some notes for him.

What impresses FreeBSD is a) ease of installation, b) logical configuration and c) ease of administration on a local scale. However, the same features (at least most of them) are now characteristic of the best (in my opinion) modern representatives of the Linux family (CRUX and Archlinux, to some extent Gentoo). Although, for obvious reasons, one cannot expect from them the internal harmony and integrity of FreeBSD in the near future.

At the same time, I am aware of the archaic nature of the FreeBSD file system, which is especially evident in comparison with modern implementations of ReiserFS and XFS for Linux. And almost a month's use of a FreeBSD desktop and a Linux laptop, machines with almost equal nominal performance, as they say, head to head, convinces me of the higher performance of the latter. But what has more weight for the user is something everyone must decide for themselves. Although, sadly, Linux currently seems best choice for desktop use.

However, I emphasize at the moment, because the release of FreeBSD 5.3 can significantly change the situation. However, no matter what happens, I would like to see the future as mutual influence of both operating systems, mutual assimilation of all the pluses and elimination of the minuses. That’s why I would end my lengthy narrative with a slogan in the spirit of Soviet times:

Demon with a penguin brothers forever!



Related publications