Library
|
Your profile |
Software systems and computational methods
Reference:
Khlestkin, A.Y., Raikov, A.V., Kazantsev, A.A., Emelin, D.P., Larin, D.V. (2024). The role of operating systems and shells in cloud computing: analysis of OS and shells used in cloud platforms and their impact on cloud infrastructure. Software systems and computational methods, 4, 93–108. https://doi.org/10.7256/2454-0714.2024.4.70626
The role of operating systems and shells in cloud computing: analysis of OS and shells used in cloud platforms and their impact on cloud infrastructure
DOI: 10.7256/2454-0714.2024.4.70626EDN: KYNBQHReceived: 01-05-2024Published: 05-01-2025Abstract: The main focus of the article is on operating systems, cloud computing and command shells, which have been actively developing for several decades and are already part of the life of both an ordinary user and a computer technology professional. These objects are considered as separate components of information technology, as well as their relationship and the results of this relationship. Operating systems in cloud servers perform a managerial role. To be more precise, they manage the resources of physical servers. Operating systems or OS in this case define several parameters. These parameters include how operating systems can use and manage memory and storage for various virtual machines. Command shells, in turn, are represented by an application that provides the user with a command-line interface in which he enters commands both individually and runs scripts consisting of a list of commands. Research methods include theoretical (classification, comparative analysis, literature analysis) and practical (experiment, modeling) approaches. This allows for a comprehensive analysis of the functioning of operating systems and command shells in cloud computing. The scientific novelty of our research is the creation of scripts to perform a particular task in the field of cloud computing on a specific operating system using the above-described command shells. Thus, the authors provided theoretical data on operating systems and command shells. The authors provided examples of scripts for Bash and Bourne Shell (sh) command shells for the Linux operating system and scripts for Command Prompt command shells (cmd.exe ) and Windows PowerShell for the Microsoft Windows operating system. As a result of the analysis of the scripts, a table was compiled with the impact of the operating system and the command shell on cloud computing. The analysis of the table allowed the authors to characterize the objects of research of this scientific work and draw appropriate conclusions. Keywords: operating systems, command shells, cloud computing, cloud platforms, cloud infrastructure, Linux, Microsoft Windows, Bash, Bourne Shell, HyperfineThis article is automatically translated. You can find original text of the article here. Introduction By their very nature, operating systems and command shells are fundamental elements of the cloud infrastructure. These elements ensure stability, security, efficient use of resources, and convenient management of the cloud infrastructure. It is important to make the right choice and configure the operating system and shell for successful computing. Cloud computing can be called the process of providing remote computing power to the end user. These capacities can be used in various ways, ranging from the use of workplaces using virtual machines and other virtualization technologies, and ending with mining cryptocurrencies [1]. "Cloud computing" or "Cloud computing" is the implementation of a certain metaphorical image of the Internet in the form of a cloud, through which users gain access to all possible services and resources. The fundamentals of computing are the use of virtualized or scalable resources. This article attempts to conduct a structural analysis of operating systems and shells and their impact on cloud infrastructure.
The practical part In today's world, there are many specialized operating systems for running containers. The authors of the article would like to mention CoreOS Container Linux as an example of such an operating system. This operating system is automatically updated, and also provides high availability in the use of containerized applications. The choice of this operating system was made because of its features. Thus, the main advantage of CoreOS Container Linux is the concept of immutable infrastructure. That is, the operating system and applications run in containers and are not subject to changes during execution. Any changes to the system are made by replacing the entire operating system image with a new version. CoreOS Container Linux provides a kind of update management system, which in turn updates the operating system without restarting. If we compare CoreOS Container Linux with the Microsoft Windows operating system, then in most cases, the second requires an additional action after installing the update - a reboot. The absence of a reboot after an update in CoreOS Container Linux ensures its security and reliability of updates in a cluster environment without downtime. CoreOS Container Linux lacks redundancy, like many Linux distributions. CoreOS Container Linux provides a minimal set of components, resulting in simplified configuration, as well as reliable operation in distributed environments. Container-Optimized OS is an operating system image for the Google Compute Engine virtual machine, optimized for running Docker containers provided by the Google Cloud Platform (GCP) (a set of cloud services provided by Google). Container-Optimized OS has the following functions: · Out-of-the-box Container launch: Container-optimized operating system instances come with pre-installed Docker and containerd and cloud-init runtimes. Using an instance of the operating system optimized for containers, it is possible to run a container simultaneously with the creation of a virtual machine, without requiring configuration on the part of the host. · Smaller attack surface: An OS optimized for use in containers takes up less space, which reduces the potential attack surface for the created instance. · Blocked by default: Container-optimized operating system instances include a blocked firewall and other security settings by default. · Automatic updates: Container-optimized instances of the operating system are configured to automatically download weekly updates in the background; only a reboot is required to use the latest updates.
The user can choose this operating system if he needs to solve the following tasks: · Requires support for containers or Kubernetes with minimal configuration. · You need an operating system that takes up little space and is secure for containers. · You need an operating system that has been tested to run Kubernetes on Google Compute Engine instances. The authors decided to focus on Linux, Microsoft Windows operating systems and on Bourne Again Shell, Bourne Shell (sh), Command Prompt (cmd.exe ), Windows PowerShell. Finnish student (student, mind you) Linus Torvald created a Unix clone in 1991 and named it Linux (version 0.0.1). The entire OS was located in the kernel, it was monolithic (9300 lines of code in C, 950 in Assembler). It ran on an Intel processor (386). The final release date is considered to be 1994, version 1.0 (165 thousand lines of code, new file system, network software). 2nd version - 1996 (470 thousand lines of code, new device drivers added) [2]. Linux is one of the largest well-documented software product lines studied so far. The Linux developer community includes both volunteer and paid developers from over 200 companies, including Red Hat, IBM, Intel, Oracle, Google, and Microsoft, among others[4]. The maturity of the project is shown by several indicators, such as the size of the code base (more than 8 million lines), the number of active developers (600-1200 for each release and beyond) and the level of activity (up to 10,000 fixes per release) [5]. If we talk about the advantages of this operating system, then it is worth noting open source. Answering the question of what this might mean, we can say that the kernel of any Linux distribution has an open source, which makes it possible to improve any program or the kernel of this operating system itself. Linux most often interacts with the Bash shell, or as it is also called the Bourne Again Shell. At the moment, this shell is increasingly installed by default in many Linux distributions. The Bash shell includes tools such as: · Editing the command line; · Job management; · Unlimited team history size; · Shell functions and aliases; · Indexed arrays of unlimited size; · Integer arithmetic in any base from two to sixty-four [5]. The authors of the article wrote the following codes on the Linux operating system using Bash to visualize their impact on the Mail cloud infrastructure. · Script for automatic creation of a new virtual server: #!/bin/bash # Cloud authentication Mail.ru mcloud login # Creating a new virtual server mcloud vm create --name my-server --flavor b2.micro --image centos_7 · Script for launching a virtual server by its ID: #!/bin/bash # Cloud authentication Mail.ru mcloud login # Launching a virtual server by its ID mcloud vm start --id · Script to stop a virtual server by its ID: #!/bin/bash # Cloud authentication Mail.ru mcloud login # Stopping the virtual server by its ID mcloud vm stop --id After analyzing these codes, we can conclude that Bash allows the user to create a script that simplifies and, most importantly, automates operations with any cloud resources, as well as creak allows you to quickly create a virtual server and configure its parameters. In addition, based on the second script, we can say that the Bash script allows you to manage a virtual server by performing various operations without involving particularly time-consuming and costly resources. For example, the operation described in the script is starting and stopping a virtual server by its ID. Do not ignore the Bourne Shell (sh). The history of this shell begins with the Shell included in the delivery of the first edition of UNIX, developed by Ken Thompson. But this shell was not very convenient to work with, as it had numerous limitations. As a result, Stephen Born rewrote the standard UNIX Shell. The shell gained popularity due to its compactness and predominantly high speed of operation. Due to these advantages, it has become the default shell for the Solaris OS. But the Bourne shell has a number of significant drawbacks: · There are no built-in functions for processing logical and arithmetic operations. · It cannot remember previously executed commands, unlike most other command shells. · There are not enough comprehensive functions for convenient interactive use [6]. To view how Bourne Shell (sh) interacts with the Mail cloud platform on the Linux operating system, you can view the following primitive code scripts: · Script for automatic creation of a new virtual server: #!/bin/sh # Cloud authentication Mail.ru mcloud login # Creating a new virtual server mcloud vm create --name my-server --flavor b2.micro --image centos_7 · Script for launching a virtual server by its ID: #!/bin/sh # Cloud authentication Mail.ru mcloud login # Launching a virtual server by its ID mcloud vm start --id · Script to stop a virtual server by its ID: #!/bin/sh # Cloud authentication Mail.ru mcloud login # Stopping the virtual server by its ID mcloud vm stop --id The authors noted that the script allows you to automate the process of creating and managing cloud resources. Writing scripts on Bourne Shell (sh) makes it possible to create a virtual server, and most importantly, to configure it. These options allow the administrator to speed up and optimize the workflow. Flexibility and manageability of cloud resources through running scripts on Bourne Shell (sh) becomes a simple and accessible action, like creating and managing object repositories. Microsoft Windows is a family of proprietary Microsoft operating systems designed to use a graphical user interface for management. Initially, Windows provided a graphical add-on for MS-DOS. Windows currently occupies an overwhelming share of the global operating system market [7]. The history of the Microsoft Windows operating system begins in November 1985. Microsoft Windows is currently releasing updates. As of December 2024, the most recent operating system is Windows 11 version 24H2. In addition, Microsoft Windows distributes its operating systems to tablets and smartphones. The result of this decision was the Microsoft Windows 8 operating system, which was released in October 2012. The new system started to load much faster, but there were some problems with drivers and running games. In Windows 10, Microsoft collects a lot of computer usage data. Examples of such data are name, email address, and others. Because of this, Microsoft received a barrage of criticism [8]. One of the oldest command line applications and tools shipped with the Windows operating system is the command prompt, commonly referred to as CMD [9]. Below is a fragment of the Command Prompt start window (cmd.exe ) for the convenience of understanding by readers. Figure 1. Command Prompt Example (cmd.exe ) To open the Command Prompt (cmd.exe ) follow these steps: 1. Click on the Start menu on the desktop toolbar. 2. Enter the command "cmd" and press Enter. The most common use of using Command Prompt (cmd.exe The role of administrators is to administer tasks, such as formatting or managing disk partitions. In addition, Command Prompt (cmd.exe ) is convenient for viewing and managing directory files. Below are examples of scripts for working with the cloud. Mail.ru which can be executed in the Command Prompt (cmd.exe ) in the Microsoft Windows operating system: · Script for automatic creation of a new virtual server: mcloud vm create --name my-server --flavor b2.micro --image centos_7 · Script for launching a virtual server by its ID: mcloud vm start --id · Script to stop a virtual server by its ID: mcloud vm stop --id Administrators' use of the Command Prompt command line (cmd.exe ) is due to the convenience of use, since Command Prompt (cmd.exe ) allows you to perform operations with cloud computing directly from the standard Microsoft Windows command shell, which means you do not need to install additional tools. The last command shell discussed in this article will be Windows PowerShell. Windows PowerShell is used by administrators to automate routine tasks. Windows PowerShell, like previous command shells, allows you to change settings, stop and start servers, and maintain installed applications. Windows PowerShell allows you to: · Change the operating system settings; · Manage services and processes; · Configure server roles and components; · Install the software; · Manage the installed software through special interfaces; · Embed executable components in third-party programs; · Create scripts to automate administration tasks; · Work with the file system, Windows registry, certificate store, etc. [10]. Windows PowerShell is a command shell originally built on the basis of Microsoft.NET Framework, and later on .NET, and integrated with them. This shell command uses a variety of storage facilities that resemble a file system, which providers have been created to access. Scripts for performing cloud computing should also be considered.: · Script for automatic creation of a new virtual server: mcloud vm create --name my-server --flavor b2.micro --image centos_7 · Script for launching a virtual server by its ID: mcloud vm start --id · Script to stop a virtual server by its ID: mcloud vm stop --id PowerShell provides the widest range of functions and features for use when compared with the Command Prompt (cmd.exe ). The syntax of this shell will be more convenient, which makes it optimal when choosing a tool for automating and writing complex scripts. Support for auto-completion and hints allow a novice user to easily learn how to manage this shell. Performance analysis using the Hyperfine utility To analyze the performance of various shells in cloud computing, the Hyperfine utility [11] was used, a command—line tool designed to test the speed of command execution. This utility provides an easy way to estimate the running time of various scripts and commands, ensuring accurate measurements. As part of the study, tests were conducted in which scripts performed similar tasks, such as creating, starting, and stopping virtual machines in a cloud environment. Mail.ru . Comparing the execution time of scripts in different shells revealed key differences in their performance. For clarity, the authors have developed a table (Fig.2) with the criteria necessary as a result of testing when using command shells.: · Windows PowerShell running Microsoft Windows OC; · Bash, running OC Linux; · Command Prompt running Microsoft Windows OC; · Bourne Shell running OC Linux. The results of fulfilling the criteria are presented: · Start time (in seconds); · Shutdown time (in seconds). Figure 2. Comparison table Security when using different operating systems and shells PowerShell: Access Control: PowerShell supports granular access control, which allows you to restrict user and group rights, as well as configure roles to ensure security. Execution Policy: This setting regulates the execution of scripts in PowerShell. Enabling "Restricted" or "AllSigned" modes helps prevent unsigned or malicious scripts from running. Encryption and cryptography: PowerShell uses various mechanisms for data protection and authentication, including SSL/TLS support. Vulnerabilities and attacks: PowerShell is a popular target for attacks such as the use of malicious scripts, which requires proper security settings and the use of multi-factor authentication (MFA). Remote control: PowerShell Remoting provides the ability to execute commands remotely, which can be used by intruders. Therefore, it is important to protect this channel with strong authentication and access restrictions. Bash: Environment variables: Sensitive data such as passwords can be stored in environment variables, which increases the risk of leaks if they are not protected. Command Injection: Bash is vulnerable to Command Injection attacks if the input is not checked properly. Therefore, it is important to carefully filter all data coming from the user. Sudo and root privileges: Using superuser rights can lead to serious vulnerabilities if these rights are not limited or properly controlled. Security Updates: Since Bash has a long history, it is important to update the system regularly to protect against known vulnerabilities such as Shellshock. Command Prompt (cmd.exe): Limited security: Command Prompt has limited cryptography and security capabilities, which makes it less flexible in terms of data protection compared to PowerShell. Obsolete commands: Using old commands in cmd.exe can lead to vulnerabilities, such as data leakage through commands that are designed to display the contents of confidential files. Vulnerabilities in BAT files: Scripts in the format .bat can be easily executed in cmd.exe, which makes the system vulnerable to malicious code injection if these files are not checked properly. Integration with PowerShell: Because cmd.exe supports integration with PowerShell, vulnerabilities in PowerShell can be exploited through cmd.exe . Bourne Shell (sh): Command injection: Like Bash, Bourne Shell is vulnerable to command injection if data is not checked correctly, which can lead to arbitrary code execution. Scripts with privileges: Scripts running with superuser rights can become a source of vulnerabilities, especially if they contain errors or are incorrectly configured. Environment variables: Bourne Shell also uses environment variables to store sensitive data, which increases the risk of leaks if they are not properly protected. Authentication and Encryption: Modern versions of Bourne Shell can use tools such as SSH to improve security and authentication in cloud systems. Common threats for all shells: Remote access: All shells are at risk of executing commands remotely, which requires reliable firewall configuration, encryption, and multi-factor authentication. Script vulnerabilities: Errors in scripts can lead to data leaks or malicious code execution. Command injection: Command injection is one of the most common threats that can affect the security of the entire system. Privileged rights: All shells require strict control over the use of superuser rights to prevent data leakage or compromise of the system. Prospects for further research As part of further research, the following areas can be considered:: Exploring new shells and operating systems: Evaluating the performance of new or less popular shells and operating systems in the context of cloud computing, as well as their security. Optimization of existing solutions: Development of methods aimed at improving the efficiency and security of current shells and operating systems. Hardware Impact: A study of the impact of various types of hardware on the performance and security of cloud services. The use of artificial intelligence: The use of machine learning and AI methods to automate administration tasks and optimize cloud computing management processes. Conclusion In this article, the authors examined the impact of operating systems and command shells on cloud computing. Operating systems, Linux and Microsoft Windows, play an important role in the cloud infrastructure. They ensure stability and efficient use of resources. Command shells, Bash, Bourne Shell (sh), Command Prompt (cmd.exe ) and PowerShell, provide various tools for automating tasks and managing cloud resources. The authors analyzed the main features of each operating system and command shell, and provided examples of scripts for working with cloud computing. It has been shown that the choice of an operating system and a command shell can significantly affect the speed of cloud computing and cloud infrastructure management. If we compare the codes by criteria, then the simplest and most effective shell is Windows PowerShell on the Microsoft Windows operating system. It allows you to write concise and easy-to-understand codes. If we talk about the syntactically extensive shell and operating system, then the Bash and Bourne Shell (sh) shells on the Linux operating system will have the advantage. The authors also developed a table (Fig.3) with the criteria necessary as a result of the analysis using command shells that were used in the research stages.: · Bash, running OC Linux; · Bourne Shell running OC Linux; · Windows PowerShell running Microsoft Windows OC; · Command Prompt running Microsoft Windows OC. An assessment was carried out for compliance with the following criteria in the shells: · Conciseness; · Simplicity of syntax; · The volume of the code; · Ease of use. Figure 3. Compliance criteria Thus, understanding the role of operating systems and command shells in cloud computing is essential for system administrators, developers, and all information technology stakeholders. References
1. Saveliev, D.N., & Gavrilov, S.V. The role of operating systems in cloud computing: challenges and prospects. The electronic periodical scientific journal sci-article.ru : [Electronic resource]. Retrieved from https://sci-article.ru/stat.php/stat.php?i=1697382177
2. Trubacheva, S.I. (2015). Why Linux and real-time systems? Bulletin of the V.N. Tatishchev Volga State University, 2(24), 99-105. 3. Kolosov, L. S., & Umaraliev, I. V. (2023). Review of the evolution of the GNU/Linux operating system functionality during the evolution of the kernel. Scientific aspect, 7, 1390-1393. 4. Passos L., Czarnecki K., & Wasowski A. (2012). Towards a catalog of variability evolution patterns: the Linux kernel case. In FOSD '12 Proceedings of the 4th International Workshop on Feature-Oriented Software Development (pp. 62-69). Association for Computing Machinery. 5. Upasana Why do you need the different Linux Shells? / Upasana // edureka : [Electronic resource]. Retrieved from https://www.edureka.co/blog/types-of-shells-in-linux/#differenttypesofshells 6. siberianMan About different Linux and Unix command shells / siberianMan // Habr : [Electronic resource]. Retrieved from https://habr.com/ru/articles/157283 7. Leontiev, V. O., & Velikoselsky, S. A. (2018). Microsoft Windows family. Alley of Science, 3(19), 727-729. 8. Vlad Massino, Aram Papoyan Three decades of Windows / Vlad Massino, Aram Papoyan // gazeta.ru : [Electronic resource]. Retrieved from https://www.gazeta.ru/tech/2015/11/19/7902437/windows_30th_anniversary.shtml 9. Gaurav Bidasaria Command Prompt vs PowerShell vs Windows Terminal: How They Differ / Gaurav Bidasaria // techwiser : [Electronic resource]. Retrieved from https://techwiser.com/command-prompt-vs-powershell-vs-windows-terminal-comparison 10. ru_vds What is Windows PowerShell and what is it eaten with? Part 1: main features / ru_vds // Habr : [Electronic resource]. Retrieved from https://habr.com/ru/companies/ruvds/articles/487876 11. sharkdp Hyperfine releases v.1.19.0 / sharkdp [Electronic resource] Retrieved from https://github.com/sharkdp/hyperfine
First Peer Review
Peer reviewers' evaluations remain confidential and are not disclosed to the public. Only external reviews, authorized for publication by the article's author(s), are made public. Typically, these final reviews are conducted after the manuscript's revision. Adhering to our double-blind review policy, the reviewer's identity is kept confidential.
Second Peer Review
Peer reviewers' evaluations remain confidential and are not disclosed to the public. Only external reviews, authorized for publication by the article's author(s), are made public. Typically, these final reviews are conducted after the manuscript's revision. Adhering to our double-blind review policy, the reviewer's identity is kept confidential.
Third Peer Review
Peer reviewers' evaluations remain confidential and are not disclosed to the public. Only external reviews, authorized for publication by the article's author(s), are made public. Typically, these final reviews are conducted after the manuscript's revision. Adhering to our double-blind review policy, the reviewer's identity is kept confidential.
|