First, declare that this article Article
Not Discussing whether win/Lin is good or bad. I am a dual-system user. This article is just about some of my usage experience.
Similarities and Differences . This article may have many descriptions of Linux and can be used as a simple introduction to Linux. However, this introduction is too abstract. First, let's talk about
Operating System (For easy typing, hereinafter referred to
OS . In terms of the definition of OS in computer science, OS is mainly responsible for the allocation and management of various hardware resources. Therefore, it should be just a kernel. However, for Windows users, speaking of OS usually refers to all things provided by MS, including the win kernel and all attached upper-layer applications, such as mspaint and notepad, of course, the overall GUI Design is also included. For common win users, OS is
Release . I often hear this conversation: "What are you using?
System ?" "I used win7 ". For Linux users, the boundaries between the kernel and upper-layer applications are very obvious. From the perspective of common users (compared with developers, the biggest difference between Linux kernel and Windows Kernel may be whether the GUI is in the kernel. Linux Kernel does not include GUI, while Windows implements GUI in the kernel. Therefore, Windows consumes less resources in GUI and is more suitable for deploying entertainment applications. (Someone may want to tell me that Linux's Gui consumes less resources, and Vista's hardware that cannot provide special effects can enable 3D effects on Linux. For these readers, I suggest you use Linux for more information .) In theory,
Linux It should only refer to Linux kernel and should not include any upper-layer applications. However, Linux actually refers to a kind of things. So Linux does not
Release This concept (each software has its own release), and
Release (
Distribution ) This concept is acceptable.
Equal to or greater Win's release. In general, apart from some livecd distro, the biggest difference between different distro is that the package management tool is different. Linux users know that each distro has its own software warehouse, which contains almost all the software. Users can download and install the software directly from the warehouse, you do not need to search and download on the Internet, but also worry about virus. The format of each distro warehouse is different, the format of the software package is also different, and their style is also very different. For example, Debian apt has a feature that is convenient for users and has a strong automatic conflict resolution mechanism. Users only need to install the software you want, just install it, and others will come; for example, Gentoo's emerge features that all packages are Source code Compile locally based on local optimization settings. You can select the specific functions of some software. Another feature of arch is that the provided software packages are the latest, it is suitable for users who like it. LFS does not have a package management mechanism, so it is not suitable for desktop users. But why is distro only equal to the release of win? From the perspective of common users, the biggest difference is the GUI. The GUI in Linux is not determined by distro. The GUI in Linux can be simply considered as different
Desktop Environment (
De , The so-called 3D effect is not de, but an application software, compiz fusion. The vast majority of the functions in compiz fusion can only be used to install B, No matter for development or desktop entertainment, there is no practical significance, so I do not need to use it after a short time. Each type of De is not only different in appearance, but also has a great difference in its design philosophy. For example, awesome is a typical tile window management tool. It always fills the front-end window with the entire screen and makes it easy to adjust the size of each window. It is suitable for developers. (I am used to gnome and cannot find time to toss about awesome configuration. Otherwise, awesome will definitely be installed)
As mentioned above, all of them are from the perspective of a desktop user. The following is a little more in-depth, and the similarities and differences between the two are closer to the OS. For users who are used to Windows, the directory tree may be one of the least used to use Linux. It is hard for many people to understand where so many of my partitions are located? What is mounting? Windows users always habitually think that the name of the first partition is called drive C , the name of the second partition is D disk . Therefore, in Linux, I always ask "Where is my c disk ". In fact, if you have a thorough understanding, you will find that the directory structure of win is very similar to that of Linux. See (browse in an equal width font):
\ (Root directory) Desktop |-home |-Control Panel |-USR, local |-my computer |-Proc, Dev, TMP |-c, d, e... |-boot |-network neighbors |-bin |-My Documents |-ETC |-Recycle Bin |-MNT (media) |-library... |-SRV, VAR, Lib... |-sbin | -...
Linux directory structure the directory structure of windows can be seen from this: the directory structure of Windows is similar to that of windows, and its root directory is desktop, with a control panel under this directory, my computer and other directories, while on my computer there are c, d, these directories, usually the first partition mounted on Desktop \ My computer \ c In this directory, the same applies to other logical partitions. Here, the control panel is a special directory, which is to put many management tools in the System32 directory "Soft link" to this directory, the network neighbor is also a special directory, display network-related status information in this directory. My document is equivalent to mounting a directory bind in Linux. the recycle bin combines the recycled directories in each partition, the library is similar to the recycle bin. In Windows, logical partition mount points are written in the registry, and in Linux, mount points are written in/mnt/fstab. For the Linux directory, this understanding may be easier: The/boot directory stores system kernel files and boot loader (such as grub) files. After the system starts, the kernel exists completely in the memory, and this directory is useless. The/home directory can be considered as my document, but it is organized in a different way than my document. In Windows, my documents are a set of directories on the Logical Disk, while/home is usually a separate Mount partition (do not mount it separately, and share the logical partition with \). the/usr directory is a bit similar to the C: \ Windows directory, the font directory and so on are all included, while/usr/share is equivalent to the Program Files directory, which stores files of various software. The/lib directory is similar to Program Files \ common files, is the place where various software Shared inventory is placed. The structure of the/usr/local directory is very similar to that of the/usr directory. However, in some distributions (such as Debian), this directory is a common user (which needs to be added to the staff group) accessible, so you can install the software here. (Of course, This method is suitable for single-host users, or only administrators with lower permissions on Multi-User Machines are recommended to install their own software in their home directory ); the/mnt or/media directory can be thought of as similar to my computer, but it is usually attached to a mobile hard disk partition. Of course, if you want, you can also mount all partitions to/Media/{c, d, e...} in the partition order ...} /proc directory is a special directory, which can be considered as a memory ing, from which you can directly read a lot of memory content, the status information of each process, and so on. Of course, some information requires certain permissions to be read. The/dev directory is a special directory that maps all physical hardware (such as SDA) and logical hardware (such as TTY, each file here represents a hardware device;/etc can be considered as a Windows registry, but it is a global configuration, which is equivalent to the root key of HKLM;/bin is actually to put all applicationsProgram The executable file of is put here, and the S in/sbin represents the meaning of system, which is easy to understand and can be considered as a necessary tool of the system.
In fact, from the perspective of operating system principles, there is no essential difference between these two systems. Memory Management, hardware resource management, process management, and so on are all identical or similar concepts, different implementations. Their differences are different as to their use philosophy. * Most of Nix's kernel and upper-layer software follow the so-called UNIX Philosophy The UNIX philosophy guides Code The writing style also affects the usage habits of software. For windows, I don't know if there are Windows Philosophy However, the Code style of Windows applications is very different from that of * nix, and their usage habits are different. They have different ideas. You can think of it as two major religions. Here we will not go into the details of Unix or Windows philosophy. I just want to give a general description of my feelings about these two concepts. Because windows is provided by Microsoft, and third-party software is generally developed using development tools provided by Microsoft, aggregation is the biggest feature, and the UI style is relatively unified. Because of the aggregation feature, the focus of the design of Windows is the lack of use. windows is not friendly to developers, but friendly to end users, this is why there are so many desktop users in windows. * The nix idea is friendly to developers but unfriendly to users. * In Nix, the learning curve of almost any tool is longer than that of windows, but its function is also very powerful. From the developer's perspective, I think the biggest feature is to maximize code reuse, because almost all software is open-source, so it eliminates the need to repeatedly invent wheel, afraid of being treated as sensitive words ......). I have seen a lot of complaints from software developers that their software is used.. Net Library, but the user's computer may not be installed, so although their software is only several hundred K, but the release of the installation package has to be dozens of megabytes. The size of the software has a direct impact on user acceptance. However, Microsoft's various release functions as life changing, entertainment, and office modes, affecting the lives of most people. In terms of Linux, Android is also a typical example. I personally think it is not as easy as andoid because it attracts so many developers to participate in the development of Android applications, it is too easy to develop the software above. By the way, let's talk about the command line. Many windows dishes always think that DOS is an amazing thing. When someone else clicks a few commands in cmd, they will feel very amazing. Why, I thought for a moment, maybe it was because people who thought they would be able to remember a lot of commands. Who can remember the long stuff! All you can remember is cool. However, in fact, most commands do not need to be remembered much. In this respect, * nix, which is long as a command line, has the most say. In * nix, bash is used as an example. It provides various completion methods, as well as various command line operations, and even VI and Emacs modes, in this way, you do not need to remember many things when typing commands, and the input process is also very easy, and can be used with pipelines (* files are treated as common standard interfaces in Nix ), * nix command line is superior to DoS or CMD in terms of UI experience. Win2k8 provides powershell. According to the introduction, it is indeed very powerful, at least in terms of configuration capabilities, and it is not a junior like cmd. However, I think it has no advantages over * nix shell. in a third-party program, * nix shell is powerful and does not provide much functionality with Bash itself, A variety of third-party tools make command lines almost omnipotent under * nix (of courseImpossible Absolutely omnipotent ).
It seems that I have written a lot, but I only talked about it a little bit. The code word is a little tired. Just take a rest and try again later. Finally, let's make a simple summary. This summary is a little general, and I am not very good at summing up, so the words may not be very accurate. From the operating system perspective, the two are similar. From the developer's perspective, Linux is development friendly. From the end user's perspective, windows makes you forget the hardware, the system kernel, and win make you feel that you are using software, while Linux makes you feel that you are using Linux.
Reprinted please indicate the source:Http://www.cnblogs.com/stephenjy/archive/2010/02/17/1668913.html