Tuesday, June 9, 2020
Report on Analysis of Linux Operating System - 3575 Words
Report on Analysis of Linux Operating System (Essay Sample) Content: Running head: REPORT ON ANALYSIS OF LINUX OPERATING SYSTEM.Analysis of Linux operating system outlining design principle and elements underlying process management, inter-process communication, memory management, scheduling, File system handling, methods for handling i/o functions, Linux program interface, pros and cons of Linux OS and environments that Linux can work best.NameInstitutionCity and State.AbstractThis report provides an analysis of the Linux operating system and it examines its design and functionality. Some design principles are discussed, and these principles are notably emphasized in the development, make and how operations are executed, and programs run in this system. Major elements of the key aspects of any other operating systems are explored, examined and discussed in the context of Linux. The aspects of operating system covered in this report include the process management, the methods used for inter-process communication when utilizing Linux sy stem tools and commands. This report also explores Linux major elements of memory management, scheduling, file system handling, methods for handling I/O functions and the elements of programming interface. Finally, the pros and cons of utilizing this operating system are outlined as well as real life environments where Linux system can be utilized best.TABLE OF CONTENTS TOC \o "1-3" \h \z \u Design principles PAGEREF _Toc434093753 \h 5UNIX compatibility PAGEREF _Toc434093754 \h 5POSIX documents compatibility PAGEREF _Toc434093755 \h 5Speed, efficiency, and standardization PAGEREF _Toc434093756 \h 5Free software foundation PAGEREF _Toc434093757 \h 5Elements of process management PAGEREF _Toc434093758 \h 6Process identity (PID) PAGEREF _Toc434093759 \h 6Process environment PAGEREF _Toc434093760 \h 6Process context PAGEREF _Toc434093761 \h 7Process threads PAGEREF _Toc434093762 \h 7Methods for inter-process communication PAGEREF _Toc434093763 \h 8Signals PAGEREF _Toc434093764 \h 8Pipes PAGEREF _Toc434093765 \h 8Sockets PAGEREF _Toc434093766 \h 9Elements of memory management PAGEREF _Toc434093767 \h 9Virtual memory PAGEREF _Toc434093768 \h 10Elements of scheduling PAGEREF _Toc434093769 \h 12Scheduling Policy PAGEREF _Toc434093770 \h 12Time slice PAGEREF _Toc434093771 \h 13Process priority PAGEREF _Toc434093772 \h 13Process Preemption PAGEREF _Toc434093773 \h 13Elements of file system handling PAGEREF _Toc434093774 \h 14Structure PAGEREF _Toc434093775 \h 14Permissions and Attributes PAGEREF _Toc434093776 \h 15Locating files PAGEREF _Toc434093777 \h 15Methods for handling I/O functions PAGEREF _Toc434093778 \h 15Redirection using operators PAGEREF _Toc434093779 \h 16Advanced redirections PAGEREF _Toc434093780 \h 16Utilizing filters PAGEREF _Toc434093781 \h 16Linux programming interface PAGEREF _Toc434093782 \h 17Advantages of Linux operating system PAGEREF _Toc434093783 \h 18Security PAGEREF _Toc434093784 \h 18Open-source distribution PAGEREF _Toc434093785 \h 18Linu x in World Wide Web PAGEREF _Toc434093786 \h 18Disadvantages of Linux operating system PAGEREF _Toc434093787 \h 19Difficult to understand PAGEREF _Toc434093788 \h 19Compatibility issues PAGEREF _Toc434093789 \h 19Alternative programs PAGEREF _Toc434093790 \h 19Environments for Linux operating system PAGEREF _Toc434093791 \h 19Conclusion PAGEREF _Toc434093792 \h 20References PAGEREF _Toc434093793 \h 21Design principlesUNIX compatibilityLinux operating system has a multitasking system, and it is a multi-user consisting of a full set of UNIX-compatible tools. The underlying Linux file system ascribes to the traditional UNIX semantics; it notably fully implements the established UNIX networking model. Its programming interface adheres to SVR4 UNIX semantics as opposed to BSD behavior (Tanenbaum, 2009). Linux has implemented more UNIX functionality, and this has been attributed to the growth of more powerful PCs and easy availability of PCs hard disk and memory.POSIX documents compatibil ityLinux operating system is designed such that it complies with the underlying relevant POSIX documents. Currently, two Linux distributions have acquired the official POSIX certification (Mauerer, 2010).Speed, efficiency, and standardizationThis principle is the key major goals of Linux operating system. The current Linux operating system design majorly concentrates on standardization. The diversity of UNIX implementations is available in a source written for one specific system, and it may not necessarily run correctly on another system.Free software foundationDefined by the free software foundation, Linux kernel is distributed under the GNU General Public License (GPL) (KotimÃÆ'ki, 2010). Linux users, as well as individuals considering creating Linux derivative, cannot take the invention propriety. All software released under GPL should include its underlying source code.Elements of process managementIn the context of Linux operating system, processes are dynamically created and represented by a dynamically task_struct. In Linux, processes are collected by way of the hash table, and this is hashed by the PID value (Love, 2013). The second way is through a circular doubly linked list that is then iterated through task list. The major key elements of Linux process management basically entail the following.Process identity (PID)Under Linux process identity, there is a unique process identifier that specifies processes to the operating system. It is used when an application triggers a system call to modify, wait for another processor signal. In the context of process identity each of the specific processes has their assigned user ID, which determines the underlying rights to access Linux system files and resources (Comer, 2015). Also, each of the Linux processes has their associated personality identifiers that can modify the semantics of certain specific system calls. Personality identifier is used by emulation libraries to request system calls to be compatib le with specific UNIX flavors.Process environmentIn Linux operating system, the process environment has two null-terminated vectors embedded in it. The first vector is the argument vector that lists command-line arguments used to invoke running program, and it starts with the program name (Armand et al., 2009). Secondly is the environment vector that is basically a list of "NAME=VALUE" and it plays the role of pairing the associated environment variables with arbitrary textual values. The flexible means of passing information to components of the user mode software is executed by way of passing environmental variables among Linux processes and inheriting variables. Environmental-variable mechanism facilitates customization of Linux operating system enabling it to be set on per-process basis without necessarily configuring the whole system (Muelder, 2009).Process contextProcess context entails the constant change of a running program state at any given time. Linux process context tak es into consideration the scheduling context. It involves obtaining the necessary information for running, scheduling or restarting as a process. Linux system maintains accounting information regarding resources used by each process. The file table is also an important feature of Linux which enables processes to refer to relevant files by index mainly when making file input output. It also lists the existing files and also file system context apply when requesting to open new files.Process threadsRegarding this, Linux makes use of same internal representation for processes and threads that are the new processes (Potluri et al., 2012). A distinction occurs when the clone system call creates new system threads. New processes are created by fork comprising of new process context while on the other hand clone system creates processes with a new identity. Users can use clone system to achieve fine-grained control over information and data shared between two threads.Methods for inter-proc ess communicationInter-process communication entails communication among the system processes with the kernel. It is notable that Linux supports some Inter-Process Communication (IPC) methods that include.SignalsLinux uses this method to signal asynchronous events to the system processes. Linux can generate a set of defined signals which can also be generated by other processes in the system. Processes can accept or ignore the generated signals with the exception of SIGNSTOP signal that may cause the process to halt its execution (Gupta, 2010). The other exemption is the SIGKILL signal that causes the process to exit. Processes can choose the manner in which each of the generated signals is handled. Linux actualizes signs utilizing data put away as a part of the task_struct for the procedure. The quantity of bolstered signs is constrained to the word size of the processor. Forms with a word size of 32 bits can have 32 signals though 64-bit processors like the Alpha AXP may have up t o 64 signals.PipesUnderlying Linux, the output is piped from the ls charge posting the index's records into the standard info of the pr order which paginates them. At last the standard output from the pr order is channeled into the standard information of the lpr charge which prints the outcomes on the default printer (Soares et al, 2010). Pipes are unidirectional byte streams that interface the standard yield from one procedure into the standard information of another procedure. A pipe is implemented utilizing two file data structures pointing the same temporary VFS.The processes are not allowed non-blocking reads. There are also named pipes referred to FIFOs supported by Linux and they operate on a First In, First Out principle. In Linux, the processes use FIFO so long as they have the required access rights.SocketsThis method of inter-process communication comprises of... Report on Analysis of Linux Operating System - 3575 Words Report on Analysis of Linux Operating System (Essay Sample) Content: Running head: REPORT ON ANALYSIS OF LINUX OPERATING SYSTEM.Analysis of Linux operating system outlining design principle and elements underlying process management, inter-process communication, memory management, scheduling, File system handling, methods for handling i/o functions, Linux program interface, pros and cons of Linux OS and environments that Linux can work best.NameInstitutionCity and State.AbstractThis report provides an analysis of the Linux operating system and it examines its design and functionality. Some design principles are discussed, and these principles are notably emphasized in the development, make and how operations are executed, and programs run in this system. Major elements of the key aspects of any other operating systems are explored, examined and discussed in the context of Linux. The aspects of operating system covered in this report include the process management, the methods used for inter-process communication when utilizing Linux sy stem tools and commands. This report also explores Linux major elements of memory management, scheduling, file system handling, methods for handling I/O functions and the elements of programming interface. Finally, the pros and cons of utilizing this operating system are outlined as well as real life environments where Linux system can be utilized best.TABLE OF CONTENTS TOC \o "1-3" \h \z \u Design principles PAGEREF _Toc434093753 \h 5UNIX compatibility PAGEREF _Toc434093754 \h 5POSIX documents compatibility PAGEREF _Toc434093755 \h 5Speed, efficiency, and standardization PAGEREF _Toc434093756 \h 5Free software foundation PAGEREF _Toc434093757 \h 5Elements of process management PAGEREF _Toc434093758 \h 6Process identity (PID) PAGEREF _Toc434093759 \h 6Process environment PAGEREF _Toc434093760 \h 6Process context PAGEREF _Toc434093761 \h 7Process threads PAGEREF _Toc434093762 \h 7Methods for inter-process communication PAGEREF _Toc434093763 \h 8Signals PAGEREF _Toc434093764 \h 8Pipes PAGEREF _Toc434093765 \h 8Sockets PAGEREF _Toc434093766 \h 9Elements of memory management PAGEREF _Toc434093767 \h 9Virtual memory PAGEREF _Toc434093768 \h 10Elements of scheduling PAGEREF _Toc434093769 \h 12Scheduling Policy PAGEREF _Toc434093770 \h 12Time slice PAGEREF _Toc434093771 \h 13Process priority PAGEREF _Toc434093772 \h 13Process Preemption PAGEREF _Toc434093773 \h 13Elements of file system handling PAGEREF _Toc434093774 \h 14Structure PAGEREF _Toc434093775 \h 14Permissions and Attributes PAGEREF _Toc434093776 \h 15Locating files PAGEREF _Toc434093777 \h 15Methods for handling I/O functions PAGEREF _Toc434093778 \h 15Redirection using operators PAGEREF _Toc434093779 \h 16Advanced redirections PAGEREF _Toc434093780 \h 16Utilizing filters PAGEREF _Toc434093781 \h 16Linux programming interface PAGEREF _Toc434093782 \h 17Advantages of Linux operating system PAGEREF _Toc434093783 \h 18Security PAGEREF _Toc434093784 \h 18Open-source distribution PAGEREF _Toc434093785 \h 18Linu x in World Wide Web PAGEREF _Toc434093786 \h 18Disadvantages of Linux operating system PAGEREF _Toc434093787 \h 19Difficult to understand PAGEREF _Toc434093788 \h 19Compatibility issues PAGEREF _Toc434093789 \h 19Alternative programs PAGEREF _Toc434093790 \h 19Environments for Linux operating system PAGEREF _Toc434093791 \h 19Conclusion PAGEREF _Toc434093792 \h 20References PAGEREF _Toc434093793 \h 21Design principlesUNIX compatibilityLinux operating system has a multitasking system, and it is a multi-user consisting of a full set of UNIX-compatible tools. The underlying Linux file system ascribes to the traditional UNIX semantics; it notably fully implements the established UNIX networking model. Its programming interface adheres to SVR4 UNIX semantics as opposed to BSD behavior (Tanenbaum, 2009). Linux has implemented more UNIX functionality, and this has been attributed to the growth of more powerful PCs and easy availability of PCs hard disk and memory.POSIX documents compatibil ityLinux operating system is designed such that it complies with the underlying relevant POSIX documents. Currently, two Linux distributions have acquired the official POSIX certification (Mauerer, 2010).Speed, efficiency, and standardizationThis principle is the key major goals of Linux operating system. The current Linux operating system design majorly concentrates on standardization. The diversity of UNIX implementations is available in a source written for one specific system, and it may not necessarily run correctly on another system.Free software foundationDefined by the free software foundation, Linux kernel is distributed under the GNU General Public License (GPL) (KotimÃÆ'ki, 2010). Linux users, as well as individuals considering creating Linux derivative, cannot take the invention propriety. All software released under GPL should include its underlying source code.Elements of process managementIn the context of Linux operating system, processes are dynamically created and represented by a dynamically task_struct. In Linux, processes are collected by way of the hash table, and this is hashed by the PID value (Love, 2013). The second way is through a circular doubly linked list that is then iterated through task list. The major key elements of Linux process management basically entail the following.Process identity (PID)Under Linux process identity, there is a unique process identifier that specifies processes to the operating system. It is used when an application triggers a system call to modify, wait for another processor signal. In the context of process identity each of the specific processes has their assigned user ID, which determines the underlying rights to access Linux system files and resources (Comer, 2015). Also, each of the Linux processes has their associated personality identifiers that can modify the semantics of certain specific system calls. Personality identifier is used by emulation libraries to request system calls to be compatib le with specific UNIX flavors.Process environmentIn Linux operating system, the process environment has two null-terminated vectors embedded in it. The first vector is the argument vector that lists command-line arguments used to invoke running program, and it starts with the program name (Armand et al., 2009). Secondly is the environment vector that is basically a list of "NAME=VALUE" and it plays the role of pairing the associated environment variables with arbitrary textual values. The flexible means of passing information to components of the user mode software is executed by way of passing environmental variables among Linux processes and inheriting variables. Environmental-variable mechanism facilitates customization of Linux operating system enabling it to be set on per-process basis without necessarily configuring the whole system (Muelder, 2009).Process contextProcess context entails the constant change of a running program state at any given time. Linux process context tak es into consideration the scheduling context. It involves obtaining the necessary information for running, scheduling or restarting as a process. Linux system maintains accounting information regarding resources used by each process. The file table is also an important feature of Linux which enables processes to refer to relevant files by index mainly when making file input output. It also lists the existing files and also file system context apply when requesting to open new files.Process threadsRegarding this, Linux makes use of same internal representation for processes and threads that are the new processes (Potluri et al., 2012). A distinction occurs when the clone system call creates new system threads. New processes are created by fork comprising of new process context while on the other hand clone system creates processes with a new identity. Users can use clone system to achieve fine-grained control over information and data shared between two threads.Methods for inter-proc ess communicationInter-process communication entails communication among the system processes with the kernel. It is notable that Linux supports some Inter-Process Communication (IPC) methods that include.SignalsLinux uses this method to signal asynchronous events to the system processes. Linux can generate a set of defined signals which can also be generated by other processes in the system. Processes can accept or ignore the generated signals with the exception of SIGNSTOP signal that may cause the process to halt its execution (Gupta, 2010). The other exemption is the SIGKILL signal that causes the process to exit. Processes can choose the manner in which each of the generated signals is handled. Linux actualizes signs utilizing data put away as a part of the task_struct for the procedure. The quantity of bolstered signs is constrained to the word size of the processor. Forms with a word size of 32 bits can have 32 signals though 64-bit processors like the Alpha AXP may have up t o 64 signals.PipesUnderlying Linux, the output is piped from the ls charge posting the index's records into the standard info of the pr order which paginates them. At last the standard output from the pr order is channeled into the standard information of the lpr charge which prints the outcomes on the default printer (Soares et al, 2010). Pipes are unidirectional byte streams that interface the standard yield from one procedure into the standard information of another procedure. A pipe is implemented utilizing two file data structures pointing the same temporary VFS.The processes are not allowed non-blocking reads. There are also named pipes referred to FIFOs supported by Linux and they operate on a First In, First Out principle. In Linux, the processes use FIFO so long as they have the required access rights.SocketsThis method of inter-process communication comprises of...
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.