What does the Linux kernel bring to us?

Source: Internet
Author: User
Article Title: What does the Linux2.4 kernel bring to us ?. Linux is a technology channel of the IT lab in China. Includes basic categories such as desktop applications, Linux system management, kernel research, embedded systems, and open source.
□Ye Yimin, technical deputy director of Zhongke Hongqi Software Technology Co., Ltd.
  
Supports more architectures
From the perspective of pure code lines, the Linux kernel mainly contains some drivers. In fact, for the latest releases, the Linux core capacity has not increased too much. Some drivers have independent structures, such as IDE drivers. That is to say, these programs can run on multiple platforms. Other drivers depend on a specific structure. For example, the ADB (Apple Desktop Bus) mouse driver is not applicable or supports Port i386. Linux kernel developers try to make drivers as generic as possible so that they can easily reuse the drivers on different platforms when getting a device. It is most convenient to regard the Linux kernel as a whole, but some functions will vary depending on the platform.
Linux2.4 added support for three new architectures: IA64 (Itanium), S/390, and SuperH (WindowsCE hardware ). Linux2.4 also includes support for the updated 64-bit MIPS processor.
Linux2.4 supports the latest PentiumIV processors and MMX and MMX2. It also adds optimization commands for all processors to accelerate Linux, especially for newer processors such as PentiumIII processors. It also supports Intel-compatible chips, such as CPUs produced by AMD and Cyrix. In addition, Linux2.4 will include support for other hardware that often appears on newer chips, including various non-Intel MTRR (Memory Type Range Registers ), these MTRR will improve performance on some high-bandwidth devices. Linux2.2 includes support for IO-APIC (Advanced Programmable Interrupt Controller) on multi-processor systems, and Linux2.4 will also support these new technologies on multi-processor systems, it also supports machines with multiple IO-APIC. The support for multi-IO-APIC systems will allow Linux2.4 to have better customized functionality than the previous high-end hardware-based Linux version.
As the processor continues to upgrade, the Linux kernel also needs to develop. 2.4 The new features added in the kernel support 2G processors and above.
Intel's 64-bit processor chip has begun to replace the X86 production line before the product was released to a long-awaited user. Before the chips are available, patches for these chips and their subsequent chips have been included in mainstream Linux kernel versions, at the same time, Linux also transplanted some support for 64-bit chips (such as Compaq Alpha and SPARC64.
  
Expansion and optimization of internal functions
Linux 2.2 is a major breakthrough based on Linux 2.0 and Linux1.x. It supports many new file systems, a new file buffer system, and is easy to upgrade. Linux 2.4 is built on this basis, and can run almost all the kernels in various environments.
The Linux kernel can be seen as a collection of various modules and subsystems, including drivers, protocols, and other components. They are bonded around the kernel through APIs and programming interfaces, and then the APIs and programming interfaces provide standard methods for calling the kernel. Most of this article will focus on Linux components, because most of the tasks are done by these components: drive disks, read files, and other obviously physical work. Linux2.4 is far more than that. These modules are centered around the center of the Linux kernel. The basic features of this central structure are scheduling, memory management, virtual file system, and resource allocation.
Linux2.4 is the first Linux version with a full-featured resource management subsystem. The plug-and-play feature we are now familiar with is regarded as not supported in previous Linux versions or is just a trace of support. Unlike other internal changes, many users can directly feel this change makes it easy to allocate resources and report resources to the kernel. Due to this change, the unrecognized PCI card database in Linux2.2 is re-enabled. Therefore, all resources can have a device name associated with it, rather than just an associated driver.
Linux2.4 fixed some VFS layer (Virtual File System) problems and modified the file buffer. In earlier versions of Linux, file buffering is independent of a dual-buffer system, which simplifies many problems, but causes headaches for programmers who have to ensure buffer synchronization. In addition, the use of redundant buffering increases the memory overhead, and the system has to do additional work to ensure the synchronization of these buffering, reducing performance. Linux2.4 solves this problem with a simple single buffer system.
Many Linux2.4 changes are called "enterprise-level. This means that the overall changes to these enhanced systems will not immediately reflect their utility for desktop users. In most cases, these additional performance does not significantly reduce the performance of Linux in normal environments. First, Linux2.4 can process more concurrent threads by upgrading to a multi-processor system or providing a configurable thread restriction. Secondly, an updated and more efficient scheduler can process more concurrent threads. Third, the updated Linux kernel can handle an astonishing number of users and groups-about 4.2 billion. In addition, the new kernel supports more powerful hardware. The limit on the file size of 2 GB has also been broken. All these changes indicate that Linux is competent for more environments.
Linux2.4 makes the improved shared memory more compliant with the standard. The side effect after the change is that Linux2.4 must load a special "shared memory" file system to make POSIX Shared memory fragments work normally. The SysV shared memory does not need another file system. The file system is provided at the release of Linux2.4.
Another "old" change in this new version of Linux kernel is an improvement on the VFS layer. In previous versions or even versions of Unix, only one file system can be loaded at a time, but Linux2.4 currently allows any file system to be loaded multiple times, and immediately display all changes on other loading points. This is very suitable for file systems that require loading multiple times in initrd like/proc. In addition, it allows uniform loading of files containing multiple file systems.
A frequently-mentioned problem is how much memory is required for Linux 2.4. Many operating systems seem to require more and more memory and resources as they mature. However, Linux2.4 effectively curbed this trend. In a specific environment, Linux2.4 requires less memory. Of course, Linux2.4 includes more features than Linux2.2, and many new features require resources.
  
Support for more System buses
Linux2.2 supports all major bus in Intel hardware, including (E) ISA, VLB, PCI, and MCA. In addition, Linux2.4 supports ISA Plug-and-play devices (which makes ISA devices almost as smart as PCI) and smart input/output (I2O) devices. Most importantly, Linux2.4 is the first Linux kernel version that provides a powerful system for resource management. During the development of Linux2.4, we found that to make Linux fully support USB, PC card or other advanced hardware, this is essential for Linux as a "modern" operating system.
ISA PnP has always been a major problem for Linux users. Although the support for ISA hardware has been reduced due to the emergence of more powerful PCI hardware, devices using ISA PnP are still on sale. In the past, Linux users used the ISA PnP hardware using the pnp utility, which usually takes several hours to complete. Some versions attempt to automatically complete this process but fail. Linux2.4 integrates the ISA PnP support with the resource manager to solve this problem. However, Linux 2.4 kernel-level support for ISA PnP has not yet been implemented for the less common PnP hardware.
Linux 2.4 also supports I2O. I2O is a hyperset of PIC, which provides centralized management of memory and registers. The I2O device provides APIs at the device level to provide independent drivers for the operating system. The underlying operating system must identify the "wildcard" I2O API, rather than the specified hardware. Since this technology is still relatively new, not many devices use this technology, but once such products are put on the market, Linux can be ready immediately.
At present, the main work of the device is not an internal bus, but an external bus, such as the PC card bus and various serial bus. Linux2.4 also enhances the pccard support for external devices. Many release versions already include it. However, to better use these devices, Linux 2.4 still needs an external daemon and other components.
USB is a welcome option for many new devices, including non-Intel hardware. Although Linux's support for these devices is still in its infancy, the Linux kernel already supports most of the general USB hardware (including the keyboard, mouse, microphone, and so on ).
Linux 2.4 has also added support for Firewire (IEEE1394), which has been favored by many high-bandwidth devices. However, many existing drivers or devices do not support these hardware architectures so far, but over time these support will likely be improved when the architecture matures.
  
Improved Block device support
In a simple list, block devices are described as a byte array that can be accessed without interruption. This will include disks (you can read any sector you want), but not serial ports (because you can only read online at the end ). Extending this concept (such as pop-up disks) makes it easy to use ioctls (I/O control) in Linux. However, the concept of block devices remains unchanged for a long time. The first Linux kernel Revision supports existing IDE and SCSI disk drives.
In Linux2.4, drivers of all block devices are rewritten, and the block device API removes some legacy junk from the interface, at the kernel level, the module API is completely separated from the File API. However, if the module maintainer uses a module other than the main sub-directory, the source code needs to be updated (no one assumes that the API is fully compatible with the main version kernel ).
In desktops, IDE bus disk drives are commonly used. Linux has been supporting IDE since the early kernel, and Linux2.4 has enhanced support for these devices in many ways. First, if you increase the number of IDE controllers from 4 to 10 in a high-end system with multiple IDE controllers, the effect will be better. Most motherboards have a maximum of two IDE controllers, which does not have much impact on desktop users. Second, the changes to these IDE drivers increase Linux2.4 support for PCI and plug-and-play IDE controllers, including IDE floppy disks and tape drives, DVDs and CD-ROM; and finally, linux 2.4 includes some issues that can be solved step by step with IDE chip driver updates, and better support for other advanced features such as ATA66.
It seems that the SCSI subsystem has not been significantly changed by the IDE subsystem, and the SCSI subsystem has been heavily rewritten in the Shell. In addition, this version supports many new SCSI controllers.
A new feature in the Linux2.4 kernel is the implementation of raw I/O devices. raw devices automatically find low-level devices without passing through the high-speed cache layer processing. If a complex program requires full control and cannot be satisfied by caching, you can use raw devices. Raw devices can be used when data requirements are strict. for example, if data is written to the disk immediately, data will not be lost when the system fails. Earlier versions do not have a proper method, including literally doubling the number of device nodes so that each block device has a raw device node (this is some of the methods used by commercial Unix ), this version uses a set of device nodes to connect to any block device.
One major improvement of Linux 2.4 is that the LVM (logical volume management) subsystem is added to the mainstream kernel. This is a system and standard in some enterprise-level Unix such as HP-UX and Tru64 Unix, and it completely reconsiders the method of managing file systems and volumes.
Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.