Why geeks should switch to Linux
For the fourth year now, I have been a happy Linux user. I must say that before that, starting around 1996, I was at first just a user, and then a staunch supporter of Microsoft products. I worked with their OS for a very long time, from DOS 6.22 to Windows XP / 2003 Server. In the direction of Linux, I then looked with persistent distrust. But, I admit, I didn’t want to delve into it, and superficially Windows looked stronger. As my boss said, "I did not like all these occult things with demons and other things." Due to the nature of the work, dozens, if not hundreds, of Windows machines went through my hands. So everything that I will find fault here is suffering from experience :) I will also say that the standard arguments about security and stability in my case did not work out very well. Skillfully administer Windows, you can achieve quite acceptable stability and security. Windows crashed for me in 10 years a few times. Yes, of course, there were BSODs, but also not very often (the kernel panic, the BSU linkus analogue, was never seen on my machines, however). I can’t remember the virus infections on the home machine at all. At work, like everyone else, they came under Blaster. But in general, everything was not as bad as they talked about.
At the end of my Windows era, I worked as a .Net programmer. Then I already read “Running Linux” and some other book on the general architecture of Unix-systems. They shocked my worldview :) I saw how much slimmer and more correct you can do things. I saw how clumsy and crusty some of Microsoft's solutions are. In general, mentally, I was already ready. But in 2005, Mono was still an inoperable thing. I remember I even downloaded from the LiveCD project site with Mono Develop. But the environment crashed with a crash when trying to resize a frame. Such a development tool did not suit me. Linux had to be postponed until better times. And the time has come when I changed my job, betraying .Net in favor of Java. Already there was a minimum of bindings to the operating system. So God himself commanded. In addition, a separate laptop appeared at my place, on which I could painlessly experiment with the rest of humanity. In a month, I set it up to the Kubuntu 6.10 state that suits me. Since then, I became more and more annoyed every time I had to communicate with Windows XP on my wife's computer.
So, not for the sake of holivar, but for the benefit of, let's see what the IT specialist gets from using Linux?
On Windows, I had a 30 gigabyte "D: \ Distribs" folder. The software in it was outdated at an alarming rate. And most of it never started at all, but lay just in case. After the transition, I banged her boldly, but about the problem of searching and updatingI forgot the software completely. In almost every distribution you will find some kind of package manager. In my case, it was apt. The software repository system is just great. You just need to find out the name of the package that you need, and most likely it is already in the repository of your distribution. After executing one command, all that is needed will be installed and configured. With pulling up all the dependencies, help files and GUI settings if necessary. You do not have to talk with a multi-step installer, in which the vast majority of people just press “Next” anyway. An application installed in this way will automatically update when needed. And you can also remove the program simply, with one command, without all this horror with special uninstallers, garbage in the registry and a bunch of other places on the system. Windows of course also allows you to update itself. In the case of critical vulnerabilities, she even does it quite quickly. As far as I know, there is even a way to update some third-party software, but this is already used by fractions of a percent of users. Here you get updates not only of the system, but of everything that is installed on your machine. If in any application there is suddenly a serious vulnerability, within days or even hours, you will be prompted to update it. In the case of Windows, you will have to independently update some Acrobat Reader, through the hole in which dozens of worms work. In the best case, the program itself can ask for updates on the Internet. but it’s already used by fractions of a percent of users. Here you get updates not only of the system, but of everything that is installed on your machine. If in any application there is suddenly a serious vulnerability, within days or even hours, you will be prompted to update it. In the case of Windows, you will have to independently update some Acrobat Reader, through the hole in which dozens of worms work. In the best case, the program itself can ask for updates on the Internet. but it’s already used by fractions of a percent of users. Here you get updates not only of the system, but of everything that is installed on your machine. If in any application there is suddenly a serious vulnerability, within days or even hours, you will be prompted to update it. In the case of Windows, you will have to independently update some Acrobat Reader, through the hole in which dozens of worms work. In the best case, the program itself can ask for updates on the Internet. through a hole in which dozens of worms work. In the best case, the program itself can ask for updates on the Internet. through a hole in which dozens of worms work. In the best case, the program itself can ask for updates on the Internet.
On Windows, drives drove me crazy. C: \ D: \ and other emoticons at the beginning of the path, which seem so natural for the usual Windows user, in the eyes of the person who saw the alternative, this is real nonsense! On Linux, you get a “single” file system with a single root. You are free to connect your sections wherever you want. To decompose information from disks in the form you need. Yes, I remember that in Windows it was possible to "mount the partition as a folder." I never used it. For me, then it seemed too opaque. Also, many times an interesting thing happened to me - the letters of the disks changed places. For example, after connecting another device to the cable or running a monster, such as Acronis Partition Expert. Remapping letters if the system partition was “affected” was not possible. The system, along with the programs and the user, went crazy.
Further more. Linux has some recommendations on where programs should store their files. There are some standard paths in the file system structure that have a predetermined purpose. This greatly simplifies the search for the file you need and, in general, system administration. I know where to look for settings, logs, binary files. In Windows, there was a complete variety. Some applications strove to shit directly under themselves in Program Files, some - and even worse - in C: \ Windows! Some of the files were stored along the terrible path "C: \ Documents and settings \ User \ Application data", some were stored at a higher level. Some programs are generally used, God forgive me, the registry. At the same time, reinstalling the system, which was usually done with cleaning the system partition, led to the loss of all these settings and data, if you don’t know where they live and how to save them. On Linux, however, we have a coherent and certainly working concept for home directories, where the program stores everything that is important to it. Each user has his own directory. For each user, the program will behave as this user wanted. Moreover, even after reinstalling Linux (which I had to do several times, after some unsuccessful updates to alpha :)) It’s enough to install the application package, and it will behave exactly the same as before if / home is placed on a separate section. I know that in Windows this is, in principle, also implemented. But at the time of my betrayal, only cross-platform open applications correctly used this concept in Windows. where the program stores everything that is important to her. Each user has his own directory. For each user, the program will behave as this user wanted. Moreover, even after reinstalling Linux (which I had to do several times, after some unsuccessful updates to alpha :)) It’s enough to install the application package, and it will behave exactly the same as before if / home is placed on a separate section. I know that in Windows this is, in principle, also implemented. But at the time of my betrayal, only cross-platform open applications correctly used this concept in Windows. where the program stores everything that is important to her. Each user has his own directory. For each user, the program will behave as this user wanted. Moreover, even after reinstalling Linux (which I had to do several times, after some unsuccessful updates to alpha :)) It’s enough to install the application package, and it will behave exactly the same as before if / home is placed on a separate section. I know that in Windows this is, in principle, also implemented. But at the time of my betrayal, only cross-platform open applications correctly used this concept in Windows. after some unsuccessful updates to alpha :)) It is enough to install the application package, and it will behave in the same way as before if / home is moved to a separate section. I know that in Windows this is, in principle, also implemented. But at the time of my betrayal, only cross-platform open applications correctly used this concept in Windows. after some unsuccessful updates to alpha :)) It is enough to install the application package, and it will behave in the same way as before if / home is moved to a separate section. I know that in Windows this is, in principle, also implemented. But at the time of my betrayal, only cross-platform open applications correctly used this concept in Windows.
Simlink support provides an additional degree of freedom when organizing a file system. In Windows, it seems, you can also make symbolic links in some way, but again this is secret knowledge. Ordinary users do not go beyond the shortcuts. Meanwhile, symbolic links allow you to make the environment much more convenient and flexible.
Due to professional needs, first as an administrator, then as a developer, from time to time I had to do something in the Windows console. It was terrible :) Probably it was the inhumanity of the Windows console that led to the overdevelopment of graphic tools. Even for simple file operations, users had to install some kind of manager. In my case, it was first Windows (Total) Commander, then Far. Although I have even seen people using the guide. My mom, for example. On Linux, we get a real, highly functional command shell. Almost immediately, I began to carry out the vast majority of file operations from the console. After all, it is much more efficient to tell the system what you want it to do as a command than to do it with your own hands, jumping through panels and windows, selecting and dragging files and pressing extra buttons. “A lot of small, fussy movements” is an excellent characteristic of the working method, which I now recall the Windows period. For example, create a standard maven project structure in Explorer or Far:
Surely there are tools for this, maybe even built-in ones. But I, in due time, was tormented with such simple things. And in the Linux console, this will be one command:
Almost all administrative tasks can be performed from the console. Needless to say, some are feasible only from it. Many things are done from the console much faster than through the GUI. The completely opaque operation of environment variables also repels the use of the console in Windows. I rarely managed to get $ PATH to work as it should. Often, to run a command from the console, it was necessary to write the full path to the binary. On Linux, this is great.
Linux also offers the broadest automation capabilities, using shell scripts, or any language convenient for you. Nevertheless, in all distributions oriented to the "ordinary" user, there is a very rich GUI, which is possible according to rumors from Windows 7. And certainly superior to the XP interface.
Windows has Scheduled Tasks. I once even tried to use them. I did not succeed :) It just did not find the binary that needs to be launched. Since then I have used some kind of third-party program that mimicked the Linux cron scheduler. That's what worked flawlessly! And, of course, working with the original of this wonderful program is even more pleasant. cron is a very simple and predictable program. No glitches or surprises. It works like a clock :)
I remember how I rejoiced in Windows being able to work through RDP. 2 competitive sessions, forget to go out - overload the car. XP is worse. On a thick channel, otherwise lags. With the glitches of many applications.
On Linux, you get ssh - a secure shell on a remote machine, with the ability to forward ports to either side or even a graphical application, transfer files, mount remote file systems, run any other commands. The last few years have been an indispensable and indispensable tool in my work. With it, you can manage both huge farms and mobile phones. I can’t imagine how you can live without it :) But no one has canceled VNC, which in exceptional cases can be useful for Linux users.
This counterargument of Windows fans in my case had the opposite effect. Recently, Linux device support is not satisfactory. Quite the contrary. For example, a noname webcam, which in Windows started only with drivers from a disk out of the box, which I had lost for a long time, was perfectly recognized and worked in Linux. The kernel simply knows how to work with the chip in this camera, which, I suspect, gives it the opportunity to work with any cameras built on this chip. I don’t remember the device for which I would have to look for drivers. Maximum, search on the Internet how to make the device work. The system either offers me to download some proprietary module, or everything works like that ... or it doesn’t work in any way :) But this refers to completely exotic and, usually, very “Chinese” devices. Popular devices of well-known, hopeful manufacturers, capable and willing to write support for their device for Linux, work no worse than in Windows. In general, I almost forgot about device support. My old laptop, new netbook and nettop work out of the box.
The Windows help system was, to put it mildly, useless. The only normal source of information was then MSDN. And he affected only the works of Microsoft itself. Unlike this, the built-in Linux documentation system is an extremely useful thing, sufficient to solve most problems. You will receive comprehensive information about using the command, possibly even with examples, and sometimes in Russian.
In addition, a huge number of solutions to various problems is generated by the community itself. All kinds of forums, wiki, blogs. For a person who knows how to use a search engine, almost any documentation is available. In extreme cases, there are a huge number of places where you can ask a question, and, importantly, get an answer.
Before rushing into the pool, I would advise you to do a few things. Reconsider again all (or at least the basic) tasks that you solve on Windows. What programs are used for this? Will these tasks be facing you in another OS? Are there any tools for this? I recommend looking for solutions in advance. For a softer transition, it is better already on Windows to switch to cross-platform analogues of commonly used programs.
Particular difficulties, they say, arise with games and CAD-like programs. And also some exotic. To do this, you either have to try wine, or keep Windows in a virtual machine.
Try the selected distribution on your specific hardware. In case something is used that is not very popular or just from a manufacturer who does not want to support Linux, even now problems may arise. Try at least the Live version of the distribution. An alternative is to look for examples of using distributions on your hardware. It is especially good if it is a laptop, or other non-assembled device. More likely to find. Although you can search by components.
Learn English :) You may have to read a lot. Read good, helpful documentation in English.
In general, the above advantages are what made me, as an IT specialist, more enjoyable and, most importantly, more efficient than it was in Windows. Surely there are a number of advantages that I did not mention. If you often face technical problems and the environment allows, I highly recommend trying Linux. I also recommend it to simple home and office users, whose tasks include working with the Internet, documents, multimedia. All of this can be perfectly done on Linux.
In my current company, more than half of the developers use Linux machines (C ++ and Java development). In a former company, the entire development department has successfully migrated to Linux with Windows.
I hope I did not hurt anyone's religious or other feelings.
At the end of my Windows era, I worked as a .Net programmer. Then I already read “Running Linux” and some other book on the general architecture of Unix-systems. They shocked my worldview :) I saw how much slimmer and more correct you can do things. I saw how clumsy and crusty some of Microsoft's solutions are. In general, mentally, I was already ready. But in 2005, Mono was still an inoperable thing. I remember I even downloaded from the LiveCD project site with Mono Develop. But the environment crashed with a crash when trying to resize a frame. Such a development tool did not suit me. Linux had to be postponed until better times. And the time has come when I changed my job, betraying .Net in favor of Java. Already there was a minimum of bindings to the operating system. So God himself commanded. In addition, a separate laptop appeared at my place, on which I could painlessly experiment with the rest of humanity. In a month, I set it up to the Kubuntu 6.10 state that suits me. Since then, I became more and more annoyed every time I had to communicate with Windows XP on my wife's computer.
So, not for the sake of holivar, but for the benefit of, let's see what the IT specialist gets from using Linux?
Manage Installed Programs
On Windows, I had a 30 gigabyte "D: \ Distribs" folder. The software in it was outdated at an alarming rate. And most of it never started at all, but lay just in case. After the transition, I banged her boldly, but about the problem of searching and updatingI forgot the software completely. In almost every distribution you will find some kind of package manager. In my case, it was apt. The software repository system is just great. You just need to find out the name of the package that you need, and most likely it is already in the repository of your distribution. After executing one command, all that is needed will be installed and configured. With pulling up all the dependencies, help files and GUI settings if necessary. You do not have to talk with a multi-step installer, in which the vast majority of people just press “Next” anyway. An application installed in this way will automatically update when needed. And you can also remove the program simply, with one command, without all this horror with special uninstallers, garbage in the registry and a bunch of other places on the system. Windows of course also allows you to update itself. In the case of critical vulnerabilities, she even does it quite quickly. As far as I know, there is even a way to update some third-party software, but this is already used by fractions of a percent of users. Here you get updates not only of the system, but of everything that is installed on your machine. If in any application there is suddenly a serious vulnerability, within days or even hours, you will be prompted to update it. In the case of Windows, you will have to independently update some Acrobat Reader, through the hole in which dozens of worms work. In the best case, the program itself can ask for updates on the Internet. but it’s already used by fractions of a percent of users. Here you get updates not only of the system, but of everything that is installed on your machine. If in any application there is suddenly a serious vulnerability, within days or even hours, you will be prompted to update it. In the case of Windows, you will have to independently update some Acrobat Reader, through the hole in which dozens of worms work. In the best case, the program itself can ask for updates on the Internet. but it’s already used by fractions of a percent of users. Here you get updates not only of the system, but of everything that is installed on your machine. If in any application there is suddenly a serious vulnerability, within days or even hours, you will be prompted to update it. In the case of Windows, you will have to independently update some Acrobat Reader, through the hole in which dozens of worms work. In the best case, the program itself can ask for updates on the Internet. through a hole in which dozens of worms work. In the best case, the program itself can ask for updates on the Internet. through a hole in which dozens of worms work. In the best case, the program itself can ask for updates on the Internet.
File system structure
On Windows, drives drove me crazy. C: \ D: \ and other emoticons at the beginning of the path, which seem so natural for the usual Windows user, in the eyes of the person who saw the alternative, this is real nonsense! On Linux, you get a “single” file system with a single root. You are free to connect your sections wherever you want. To decompose information from disks in the form you need. Yes, I remember that in Windows it was possible to "mount the partition as a folder." I never used it. For me, then it seemed too opaque. Also, many times an interesting thing happened to me - the letters of the disks changed places. For example, after connecting another device to the cable or running a monster, such as Acronis Partition Expert. Remapping letters if the system partition was “affected” was not possible. The system, along with the programs and the user, went crazy.
Further more. Linux has some recommendations on where programs should store their files. There are some standard paths in the file system structure that have a predetermined purpose. This greatly simplifies the search for the file you need and, in general, system administration. I know where to look for settings, logs, binary files. In Windows, there was a complete variety. Some applications strove to shit directly under themselves in Program Files, some - and even worse - in C: \ Windows! Some of the files were stored along the terrible path "C: \ Documents and settings \ User \ Application data", some were stored at a higher level. Some programs are generally used, God forgive me, the registry. At the same time, reinstalling the system, which was usually done with cleaning the system partition, led to the loss of all these settings and data, if you don’t know where they live and how to save them. On Linux, however, we have a coherent and certainly working concept for home directories, where the program stores everything that is important to it. Each user has his own directory. For each user, the program will behave as this user wanted. Moreover, even after reinstalling Linux (which I had to do several times, after some unsuccessful updates to alpha :)) It’s enough to install the application package, and it will behave exactly the same as before if / home is placed on a separate section. I know that in Windows this is, in principle, also implemented. But at the time of my betrayal, only cross-platform open applications correctly used this concept in Windows. where the program stores everything that is important to her. Each user has his own directory. For each user, the program will behave as this user wanted. Moreover, even after reinstalling Linux (which I had to do several times, after some unsuccessful updates to alpha :)) It’s enough to install the application package, and it will behave exactly the same as before if / home is placed on a separate section. I know that in Windows this is, in principle, also implemented. But at the time of my betrayal, only cross-platform open applications correctly used this concept in Windows. where the program stores everything that is important to her. Each user has his own directory. For each user, the program will behave as this user wanted. Moreover, even after reinstalling Linux (which I had to do several times, after some unsuccessful updates to alpha :)) It’s enough to install the application package, and it will behave exactly the same as before if / home is placed on a separate section. I know that in Windows this is, in principle, also implemented. But at the time of my betrayal, only cross-platform open applications correctly used this concept in Windows. after some unsuccessful updates to alpha :)) It is enough to install the application package, and it will behave in the same way as before if / home is moved to a separate section. I know that in Windows this is, in principle, also implemented. But at the time of my betrayal, only cross-platform open applications correctly used this concept in Windows. after some unsuccessful updates to alpha :)) It is enough to install the application package, and it will behave in the same way as before if / home is moved to a separate section. I know that in Windows this is, in principle, also implemented. But at the time of my betrayal, only cross-platform open applications correctly used this concept in Windows.
Simlink support provides an additional degree of freedom when organizing a file system. In Windows, it seems, you can also make symbolic links in some way, but again this is secret knowledge. Ordinary users do not go beyond the shortcuts. Meanwhile, symbolic links allow you to make the environment much more convenient and flexible.
Real console
Due to professional needs, first as an administrator, then as a developer, from time to time I had to do something in the Windows console. It was terrible :) Probably it was the inhumanity of the Windows console that led to the overdevelopment of graphic tools. Even for simple file operations, users had to install some kind of manager. In my case, it was first Windows (Total) Commander, then Far. Although I have even seen people using the guide. My mom, for example. On Linux, we get a real, highly functional command shell. Almost immediately, I began to carry out the vast majority of file operations from the console. After all, it is much more efficient to tell the system what you want it to do as a command than to do it with your own hands, jumping through panels and windows, selecting and dragging files and pressing extra buttons. “A lot of small, fussy movements” is an excellent characteristic of the working method, which I now recall the Windows period. For example, create a standard maven project structure in Explorer or Far:
project / `- src | - main | | - java | `- resources `- test | - java `- resources
Surely there are tools for this, maybe even built-in ones. But I, in due time, was tormented with such simple things. And in the Linux console, this will be one command:
mkdir -p project/src/{main,test}/{java,resources}
Almost all administrative tasks can be performed from the console. Needless to say, some are feasible only from it. Many things are done from the console much faster than through the GUI. The completely opaque operation of environment variables also repels the use of the console in Windows. I rarely managed to get $ PATH to work as it should. Often, to run a command from the console, it was necessary to write the full path to the binary. On Linux, this is great.
Linux also offers the broadest automation capabilities, using shell scripts, or any language convenient for you. Nevertheless, in all distributions oriented to the "ordinary" user, there is a very rich GUI, which is possible according to rumors from Windows 7. And certainly superior to the XP interface.
Scheduler
Windows has Scheduled Tasks. I once even tried to use them. I did not succeed :) It just did not find the binary that needs to be launched. Since then I have used some kind of third-party program that mimicked the Linux cron scheduler. That's what worked flawlessly! And, of course, working with the original of this wonderful program is even more pleasant. cron is a very simple and predictable program. No glitches or surprises. It works like a clock :)
Telework
I remember how I rejoiced in Windows being able to work through RDP. 2 competitive sessions, forget to go out - overload the car. XP is worse. On a thick channel, otherwise lags. With the glitches of many applications.
On Linux, you get ssh - a secure shell on a remote machine, with the ability to forward ports to either side or even a graphical application, transfer files, mount remote file systems, run any other commands. The last few years have been an indispensable and indispensable tool in my work. With it, you can manage both huge farms and mobile phones. I can’t imagine how you can live without it :) But no one has canceled VNC, which in exceptional cases can be useful for Linux users.
Device support
This counterargument of Windows fans in my case had the opposite effect. Recently, Linux device support is not satisfactory. Quite the contrary. For example, a noname webcam, which in Windows started only with drivers from a disk out of the box, which I had lost for a long time, was perfectly recognized and worked in Linux. The kernel simply knows how to work with the chip in this camera, which, I suspect, gives it the opportunity to work with any cameras built on this chip. I don’t remember the device for which I would have to look for drivers. Maximum, search on the Internet how to make the device work. The system either offers me to download some proprietary module, or everything works like that ... or it doesn’t work in any way :) But this refers to completely exotic and, usually, very “Chinese” devices. Popular devices of well-known, hopeful manufacturers, capable and willing to write support for their device for Linux, work no worse than in Windows. In general, I almost forgot about device support. My old laptop, new netbook and nettop work out of the box.
Documentation
The Windows help system was, to put it mildly, useless. The only normal source of information was then MSDN. And he affected only the works of Microsoft itself. Unlike this, the built-in Linux documentation system is an extremely useful thing, sufficient to solve most problems. You will receive comprehensive information about using the command, possibly even with examples, and sometimes in Russian.
In addition, a huge number of solutions to various problems is generated by the community itself. All kinds of forums, wiki, blogs. For a person who knows how to use a search engine, almost any documentation is available. In extreme cases, there are a huge number of places where you can ask a question, and, importantly, get an answer.
What to do when you decide
Before rushing into the pool, I would advise you to do a few things. Reconsider again all (or at least the basic) tasks that you solve on Windows. What programs are used for this? Will these tasks be facing you in another OS? Are there any tools for this? I recommend looking for solutions in advance. For a softer transition, it is better already on Windows to switch to cross-platform analogues of commonly used programs.
Particular difficulties, they say, arise with games and CAD-like programs. And also some exotic. To do this, you either have to try wine, or keep Windows in a virtual machine.
Try the selected distribution on your specific hardware. In case something is used that is not very popular or just from a manufacturer who does not want to support Linux, even now problems may arise. Try at least the Live version of the distribution. An alternative is to look for examples of using distributions on your hardware. It is especially good if it is a laptop, or other non-assembled device. More likely to find. Although you can search by components.
Learn English :) You may have to read a lot. Read good, helpful documentation in English.
In general, the above advantages are what made me, as an IT specialist, more enjoyable and, most importantly, more efficient than it was in Windows. Surely there are a number of advantages that I did not mention. If you often face technical problems and the environment allows, I highly recommend trying Linux. I also recommend it to simple home and office users, whose tasks include working with the Internet, documents, multimedia. All of this can be perfectly done on Linux.
In my current company, more than half of the developers use Linux machines (C ++ and Java development). In a former company, the entire development department has successfully migrated to Linux with Windows.
I hope I did not hurt anyone's religious or other feelings.