What is Linux?
Linux is a Unix-like operating system that is free to use and spread freely. It is a multi-user, multi-tasking operating system that supports multi-threading and multi-CPU. It can run major UNIX software tools, applications and network protocols. It supports 32-bit and 64-bit hardware. Linux inherits the network-centric design philosophy of Unix and is a multi-user network operating system with stable performance.
Linux features
Stable system:
It is very common for Linux to run continuously for more than a year without any downtime. Linux is used by many computer experts, so it has many maintainers and is quickly updated and maintained. Windows, on the other hand, can be used by everyone and is not open source for multitasking.
Multiple Users:
Different levels of users are planned on a Linux host, and each user can have a different working environment when logging into the system. Different users can also be allowed to log in to the host at the same time to use the host’s resources.
Planning of user groups:
On a Linux machine, files can be divided into three categories: readable, writable, and executable (these attributes can also be set on Windows, in the command line, which will be written in a future Windows blog). In addition, these attributes can also be divided into Three categories: the file owner, the user group to which the file belongs, and other non-owners and user groups. This has good confidentiality for the project or other project developers.
Less system resource usage:
Any personal computer currently on the market can use Linux to build a host that serves more than a hundred people. It can be customized and transplanted to embedded platforms (such as Android devices).
Various graphical user interfaces to choose from (such as GNOME, KDE)
High degree of modularity:
The Linux kernel design is very sophisticated and is divided into five parts: process scheduling, memory management, inter-process communication, virtual file system and network interface; its unique module mechanism can insert or remove certain modules from the kernel in real time according to user needs. Go, so that the Linux system kernel can be cut very compactly, which is very suitable for the needs of embedded systems.
Source code public:
Since the development of the Linux system has been closely integrated with the GNU project from the beginning, most of its components come directly from the GNU project. Anyone or any organization can freely use Linux source code as long as they comply with the terms of the GPL, providing users with maximum freedom. This is also beneficial to embedded systems. Because embedded system applications vary widely, designers often need to modify and optimize the source code for specific applications. Therefore, access to source code is crucial to the development of embedded systems. . In addition, Linux has very rich software resources. Almost every common program can be found on Linux, and the number is still increasing. All this makes it very easy for designers to carry out secondary development based on it. In addition, since the Linux source code is open to the public, users do not have to worry about security risks such as “back gates”.
At the same time, open source code provides great convenience to educational institutions, thereby also promoting the learning, promotion and application of Linux.
Extensive hardware support:
Linux can support microprocessors of multiple architectures such as x86, ARM, MIPS, ALPHA and PowerPC. It has been successfully ported to dozens of hardware platforms and can run on almost all popular processors.
Since many developers around the world are contributing to the expansion of Linux, Linux has an extremely rich driver resource, supports various mainstream hardware devices and the latest hardware technology, and can even run on processors without a storage management unit MMU. Running on Linux, these further promote the application of Linux in embedded systems.
Good security and reliability:
The kernel is efficient and stable. The efficiency and stability of the Linux kernel have been verified by a large number of facts in various fields.
A large number of network management, network service and other functions in Linux allow users to easily establish efficient and stable firewalls, routers, workstations, servers, etc. To improve security, it also provides a large number of network management software, network analysis software, network security software, etc.
Has excellent development tools:
The key to developing embedded systems is a complete set of development and debugging tools. The traditional embedded development and debugging tool is the In Circuit Emulator (ICE), which provides a complete simulation environment for the target program by replacing the microprocessor of the target board, so that developers can clearly understand the program. The working status on the target board facilitates monitoring and debugging the program. The price of online emulators is very high, and they are only suitable for very low-level debugging. If you are using embedded Linux, once the software and hardware can support normal serial port functions, you can develop and debug well without using an online emulator, thus saving a considerable amount of development costs. Embedded Linux provides developers with a complete tool chain (Tool Chain), which can easily achieve debugging at all levels from the operating system to application software.
Has good network support and file system support:
Linux has been inseparable from the Internet since its birth, supports various standard Internet network protocols, and is easily transplanted to embedded systems. Currently, Linux supports almost all mainstream network hardware, network protocols and file systems, so it is a good platform for NFS.
On the other hand, since Linux has good file system support (for example, it supports Ext2, FAT32, romfs and other file systems), it is a good platform for data copying, synchronization and replication, which lays the foundation for the development of embedded system applications. solid foundation.
Fully UNIX compatible:
Currently, the tools and utilities included in Linux can complete all the main functions of UNIX.
However, since Linux is not designed for real-time, this has become the biggest regret for the application of Linux in real-time systems. However, many free software enthusiasts are currently working tirelessly on this and have achieved many results.
Features of windows
The intuitive and efficient object-oriented graphical user interface is easy to learn and use. The Windows user interface and development environment are both object-oriented. This operation method simulates real-world behavior and is easy to understand, learn and use.
The difference between Linux and win
Windows platform: advantages in quantity and quality, but most of them are paid software; important support and services are officially provided by Microsoft
Linux platform: Most of them are open source free software, which users can modify, customize and redistribute. Since it is basically free and there is no financial support, some software quality and experience are lacking; it is supported by all Linux developers and free software communities in the world.
Security
Windows platform: Even if you patch and install system security updates every three days, you will still be infected by viruses and Trojans, resulting in a black screen for unknown reasons.
Linux platform: It is of course impossible to say that Linux has no security issues. It is impossible not to be infected by viruses or anything. This is a matter of opinion. Relatively speaking, it is definitely safer than the Windows platform.