From 73420c2ef5cae0d9a3185cd76164371cdce3109b Mon Sep 17 00:00:00 2001 From: William Wei Date: Tue, 9 Mar 2021 18:29:17 -0500 Subject: [PATCH] edited markdown file --- .../Team2LinuxKernel/linuxkernel2.md | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 how-to-contrib/Team2LinuxKernel/linuxkernel2.md diff --git a/how-to-contrib/Team2LinuxKernel/linuxkernel2.md b/how-to-contrib/Team2LinuxKernel/linuxkernel2.md new file mode 100644 index 0000000..d096b38 --- /dev/null +++ b/how-to-contrib/Team2LinuxKernel/linuxkernel2.md @@ -0,0 +1,55 @@ +**Linux Kernel** + +Linux Kernel is the primary component within the Linux operating system. It acts as the core interface between computer processes and the computer hardware by managing processes to run as efficiently as possible. Linux Kernel is named a kernel because it operates within the OS, controlling hardware processes, similar to a fragile seed inside a hard shell exterior. + + + +Linux Kernel, developed by Linus Torevalds in 1991, is a free and open-source Unix-like operating system kernel. The Linux Kernel was later adopted by multiple developers and combined with a free and open source OS called GNU, in which the Linux Kernel would replace the kernel GNU was running on. They decided to implement this change because of its increased functionality and other benefits that Linux had to offer. + + + +The purpose of Linux Kernel is to manage computer hardware and software resources and provide common services for computer programs. The kernel acts as the core program of an operating system and is the first program loaded on startup and has three main functions: 1) it handles the rest of the start-up process 2) it handles the input/output requests from other programs 3) it manages memory and hardware peripherals such as keyboards, mice, monitors, etc. Linux is ranked as the world’s most used and free open-source kernel, allowing consumers to read/write to the operating system at will. One operating system that branches off of Linux’s kernel is Google’s Android OS, which uses a modified version of the kernel. The Linux Kernel is an extremely versatile piece of software that even allows internet servers to use its functionalities. + +**Contributing** + +Unlike Windows and iOS, Linux is an open-source operating system which means that Anyone can see the source code and redesign it according to their needs. Linux is also free to install, meaning that you don’t need a license to use it. It has some advantages and disadvantages that have been discussed below. + +As mentioned earlier Linux is an open-source operating system. This can come in handy especially for people who code and/or need to make changes to the way their computer works. It is also free to install and use unlike Windows or Mac so it could be a great alternative for someone who is on a budget but needs a computer that can adapt according to his/her needs.One of the best qualities of Linux is that it is extremely secure. Since it is an open-source OS, there are several developers in the world that look out for viruses and potential threats. So, when the code needs to be upgraded or changed, it can be done in no time. + +Another reason for this security is that since the number of Linux users is comparatively lower than Windows users, it is not profitable to create viruses for this system. Automatically, lesser viruses equal lesser chances of your system being infected. It is a fact that antivirus programs slow down a system. Since the software is constantly updating its database of viruses and checking the system for those viruses, it uses a lot of memory. + +Since Linux does not require the installation of this software, a huge chunk of memory is unused, creating a faster system. On top of that, Linux already works faster than Windows because of its comparatively simpler user interface. + +One of the biggest advantages of Linux is that it is very easy to change according to your needs. It is also one reason why it is very popular amongst programmers. Since you can see the source code for this OS, it is easier and legal (unlike Windows), to change it according to your needs for your system. + +Another one of the reasons why Linux is a better choice is the fact that it works on computers with very low system specifications. If you have an older computer that you use and cannot throw away, Linux is a great choice for you. It will run without a problem, unlike Windows or Mac. + +However, learning how to use Linux can take a while, especially if you are used to using other Operating Systems and not an open-source operating system like Linux. The user experience is a lot different in Linux so you will need to set time aside to learn the system first. This could be frustrating to some people. + +A variety of applications that work on Windows or Apple OS do not work in Linux. If you are someone who needs to have access to certain applications for your work, you will probably want to see if it works in Linux. Microsoft applications are one such example of a software that isn’t available for Linux users. + +Statistically, the majority of computer users use either Windows or Apple OS so game developers create games suited to these operating systems. A lot of popular games aren’t supported by Linux. This is one reason why Linux isn’t popular among young users yet. + +One of the biggest problems in Linux, as reported by users, is that drivers don’t exist in this operating system. Like most software, there are ways to work around that but there have been problems reported when people tried to use old hardware or certain other hardware (greenga`enter code here`rageblog.org, 2017). + + +Along with the Linux Kernel’s three main functions, the kernel is also in charge of keeping track of the amount of storage used for which specific programs and determining which processes should be used by the CPU. The Linux Kernel is an important component within the operating system that allows users to read and write into the kernel due to its free and open-source software. If implement ed correctly, it should be undetectable by the user and able to allocate memory while keeping track of the computer’s processes. It acts almost as a miniature assistant that allows communication between the hardware such as the CPU and the computer processes. + + +How to Contribute + +Because Linux Kernel is an open-source framework, the contributors that have added to the software’s development have played a huge role in the kernel’s success. Some notable Linux Kernel contributors include: Linus Torvalds, David S. Miller, Chris Wilson, YueHaibing, Christoph Hellwig, and Thomas Gleixner. + +Linus Torvalds is the main contributor of Linux Kernel. He is unquestionably a brilliant man that has developed a large influence within the history of the kernel. Torvald used Andrew S. Tanenbaum’s Minix operating system as his inspiration to develop Linux, used a direct analogue of Unix for Intel-based computers, and then made the software available for other contributors around the world in source-code form. Linus Torvalds is known as one of the top pioneers in the open-source community. + +David S. Miller is another primary contributor to the Linux Kernel. He has contributed to numerous network card drivers that are implemented in the Linux Kernel, and have increased its performance since, especially in high load environments. Miller is also a founding member of the GNU Compiler Collection, an optimizing compiler produced by the GNU project that supports multiple programming languages and operating systems. + +Chris Wilson is an employee working for Intel as an open-source technology center coordinator that is responsible for the work on Cairo. Cairo is an open source graphics library that produces API’s for software developers and creates primitive 2D drawings across numerous backends. From his contributions on Cairo, he has improved the kernel’s error handling such as edge cases and gradually improved the performance of the library within Cairo. Chris Wilson also continues to contribute a lot of work to the Intel i915 graphics driver. + +Yue Haibing is an active community of the open-source community working on Linux Kernel version 5.4. He is the leading contributor who has changed 270 sets, making up 1.9% of the software’s biggest changes within the mainline repository in the 5.4 release. Haibing fixed a large number of small problems within the kernel which helped improve the software’s functionalities in the latest update. He found the issues using a system at Huawei called Hulk Robot, which ultimately uses scripts and reports results back to the user. + +Christoph Hellwig is a member of Linux FAST (Files and Storage Technologies) as well as an independent consultant and Linux Kernel developer. He is deemed as an expert when it comes to XFS, a file system created by Silicon Graphics that works with large files that are imported into the Linux system. Hellwig is responsible for the code of several filesystems and has worked with Conversancy;\s GPL Compliance Project for Linux Developers in order to combat copyright violations within the Linux code. The group works on very open projects and contains fellow kernel developers that often write kernel commits. + +Finally, Thomas Gleixner is a contributor to the Linux Kernel that is a member of the kernel’s top 10 developers. He is one of the ten members who has contributed to 45,338 changes, making up roughly 7 percent of the total contributions of the 2.6.11 update. Gleixner worked as an x86 architect, which is the generic interrupt subsystem. He also leads the real time pre-emption project. By reworking the CPU hotplugs and timer wheel, implementing the managed interrupt facility, and helping the resource director technology support alongside cleanups within the Linux Kernel software. + +Beginner contributors are also largely encouraged to participate in Linux Kernel’s growing software development community. In order to be a contributor, we need to have a strong work ethic with an attitude to change the software for better. Such as the saying, “This business is all about bits. It is up to us if we are one or zero”. The first thing that we can do to become a contributor for Linux Kernel is to improve the quality of the already existing code. Because Linux Kernel is an open-source software, we can view weak spots within the software where things can be improved, and push out patches that will increase its functionality. This will allow new contributors to learn the proper coding style, the various areas of the kernel code, and allows us to become a better programmer through first-hand experience. We can use scripts directory within the kernel repository to check if patches or any files have issues within the code using “git format-patch” which will tell the script that the input is a regular file so it won’t check the format of the patch. Next, we can improve the quality of the code by working on the TODO files, which contain descriptions of working parts of Linux Kernel. These are helpful for other developers to understand what processes are going on under the hood of Linux Kernel and promote more accessibility to the open-source software. Finally, we can try to debug the Linux Kernel by using Bugzilla and Kernel OOPS in order to debug any issues within the code that will prevent the kernel from crashing. In conclusion, we can still contribute to the Linux Kernel in many ways, such as improving the drivers/staging area, improving the quality of the code, updating the TODO files, and fixing multiple bugs within the kernel itself. All of this can be achieved through first-hand experience and will allow us to become better programmers!