├── Images ├── Pictures ├── pic12.png ├── Picture1.jpg ├── Picture10.jpg ├── Picture11.jpg ├── Picture12.jpg ├── Picture2.jpg ├── Picture3.jpg ├── Picture4.jpg ├── Picture5.jpg ├── Picture6.jpg ├── Picture7.jpg ├── Picture8.jpg └── Picture9.jpg ├── README.md ├── System call.md └── Ubuntu server.md /Images/Pictures: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Images/pic12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kalkidan-2412/ubuntu-server/HEAD/Images/pic12.png -------------------------------------------------------------------------------- /Images/Picture1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kalkidan-2412/ubuntu-server/HEAD/Images/Picture1.jpg -------------------------------------------------------------------------------- /Images/Picture10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kalkidan-2412/ubuntu-server/HEAD/Images/Picture10.jpg -------------------------------------------------------------------------------- /Images/Picture11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kalkidan-2412/ubuntu-server/HEAD/Images/Picture11.jpg -------------------------------------------------------------------------------- /Images/Picture12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kalkidan-2412/ubuntu-server/HEAD/Images/Picture12.jpg -------------------------------------------------------------------------------- /Images/Picture2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kalkidan-2412/ubuntu-server/HEAD/Images/Picture2.jpg -------------------------------------------------------------------------------- /Images/Picture3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kalkidan-2412/ubuntu-server/HEAD/Images/Picture3.jpg -------------------------------------------------------------------------------- /Images/Picture4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kalkidan-2412/ubuntu-server/HEAD/Images/Picture4.jpg -------------------------------------------------------------------------------- /Images/Picture5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kalkidan-2412/ubuntu-server/HEAD/Images/Picture5.jpg -------------------------------------------------------------------------------- /Images/Picture6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kalkidan-2412/ubuntu-server/HEAD/Images/Picture6.jpg -------------------------------------------------------------------------------- /Images/Picture7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kalkidan-2412/ubuntu-server/HEAD/Images/Picture7.jpg -------------------------------------------------------------------------------- /Images/Picture8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kalkidan-2412/ubuntu-server/HEAD/Images/Picture8.jpg -------------------------------------------------------------------------------- /Images/Picture9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kalkidan-2412/ubuntu-server/HEAD/Images/Picture9.jpg -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # **Ubuntu-server-OS** 2 | 3 | 4 | This project is all about the Ubuntu server. This documentation includes an introduction, the installation process steps, the system requirements, the filesystem support and the advantage and disadvantages of the Ubuntu server. It also includes the virtualization in modern operating system and the system call, specially the shutdown system call. 5 | 6 | -------------------------------------------------------------------------------- /System call.md: -------------------------------------------------------------------------------- 1 | # *SYSTEM CALL* 2 | 3 | ## Contents 4 | - [System call](#system-call) 5 | - [Shutdown system call](#shutdown-system-call) 6 | - [Common options used in conjunction with the shutdown command](#common-options-used-in-conjunction-with-the-shutdown-command) 7 | - [Abnormal system shutdowns and reboots](#abnormal-system-shutdowns-and-reboots) 8 | - [C program to shut down a Windows PC](#c-program-to-shut-down-a-windows-pc) 9 | - [C program to shut down a Linux PC](#c-program-to-shut-down-a-linux-pc) 10 | - [Reference](#reference) 11 | 12 | 13 | 14 | 15 | 16 | 17 | # System call 18 | A system call is a programmatic way in which a computer program requests a service from the 19 | kernel of the operating system on which it is executed. A system call is a way for programs 20 | to interact with the operating system. A computer program makes a system call when it 21 | requests the operating system’s kernel. System call provides the services of the operating system 22 | to the user programs via the Application Program Interface(API). System calls are the only entry 23 | points into the kernel system and are executed in kernel mode. 24 | 25 | # Shutdown system call 26 | A shutdown is a mechanism for safely shutting down the system. In this process, all logged-in users are first notified that the system will be turned off, and in the last five minutes, new logins are prevented. 27 | A simple C program is displayed that shuts down a PC by calling internal OS features. This type of functionality can be helpful where sometimes you have to shut down or restart the PC due to some requirement, like after updating the system driver. 28 | 29 | shutdown [options] [time] [message] 30 | 31 | • **Options**: This specifies the action to be taken (e.g., halt, reboot). 32 | 33 | • **Time**: Defines when the specified action should occur. 34 | 35 | • **Message**: A custom message to display to actively logged in users before the shutdown. 36 | 37 | ### Common options used in conjunction with the shutdown command: 38 | The shutdown command in Linux is versatile, allowing for various operations related to shutting down the system. 39 | - **h or --halt**: Halts the system by stopping all the CPU functions immediately. 40 | - **r or --reboot**: Reboots the system after shutting down. 41 | - **c or --cancel**: Cancels a scheduled shutdown or reboot. 42 | - **k or --kmsg**: Sends a warning message to all logged-in users without actually shutting down. 43 | - **-n or --no-wait**: Instructs the system to shut down without waiting for processes to terminate gracefully. 44 | - **-t or --time**: Specifies the time at which the system should be shut down. 45 | 46 | Here's a complete breakdown of the different commands used to shut down your Linux system: 47 | 48 | 1) Shutting the system down immediately 49 | 50 | `sudo shutdown -h now` 51 | 52 | The command "sudo shutdown -h now" initiates an immediate system shutdown on a Linux system. 53 | 54 | 2) Restarting the system on Linux 55 | 56 | `sudo shutdown -r now ` 57 | 58 | The command "sudo shutdown -r now" is used to initiate a system shutdown and restart immediately on Linux. 59 | 60 | 3) Scheduling a shutdown on Linux 61 | 62 | You might need to reboot machines at odd hours. Being able to instruct the machine to shut down on its own will save you the trouble of manually doing so. 63 | 64 | There are two ways to go about scheduling a shutdown on Linux systems. You can either specify the exact time at which the system needs to be shut down, or shut down the system in "n" minutes from a particular time. 65 | 66 | `sudo shutdown -h +10` 67 | 68 | The above command will schedule a shutdown in 10 minutes from the moment the command is executed. 69 | 70 | `sudo shutdown -h 09:00 ` 71 | 72 | In this command, the timestamp "09:00" indicates the specific time at which the system should be shut down. 73 | 74 | 4) Force shutting and force starting the system on Linux 75 | 76 | You'll inevitably have situations where the systems will act up and refuse to shut down. In such cases, you can execute the following command to enable a force shutdown of your system. 77 | 78 | `sudo systemctl poweroff --force` 79 | 80 | or 81 | 82 | `sudo systemctl reboot --force ` 83 | 84 | If this does not work, you can use the command with the --force option twice. 85 | 86 | `sudo systemctl poweroff --force --force` 87 | 88 | The above command is akin to unplugging the machine and should only be used as a last resort, as it bypasses standard shutdown procedures. 89 | 90 | 5) Broadcasting a custom message at the time of shutdown 91 | 92 | This option allows you to send out a message to all system users notifying them of when the shutdown will take place. This gives everyone the chance to save their work and log off safely before the system shuts down. 93 | 94 | `sudo shutdown +30 "System will shut down in 20 minutes. Please save your work."` 95 | 96 | 6) Canceling a scheduled shutdown 97 | 98 | `sudo shutdown -c` 99 | 100 | By executing this command, you can cancel a previously scheduled shutdown. 101 | 102 | ### Abnormal system shutdowns and reboots: 103 | 104 | Unexpected shutdowns and reboots are the last thing you want as an administrator. If a critical system experiences this, any unsaved data in the applications will be lost. This includes documents and files that were open at the time of a shutdown. 105 | 106 | You can check the shutdown history of a system using the following command: 107 | 108 | `last shutdown -x | more` 109 | 110 | This command used to display a list of the most recent login sessions and system shutdowns, providing a summary of user activity and system events. 111 | 112 | • **last:** This command retrieves the login history of users on the system by reading from the /var/log/wtmp file. It shows information such as usernames,terminal names, login times, and durations of sessions. 113 | 114 | • **-x:** This option extends the output to include system shutdowns and run level changes, allowing you to see when the system was shut down or rebooted alongside user logins. 115 | 116 | • **| more:** Sends the output of the last -x command to more, which allows you to view the output one screen at a time. This is particularly useful for long outputs that exceed the terminal's display capacity. 117 | 118 | The entries in the output show two timestamps, where the first timestamp is for system shutdown and the second is for system startup. 119 | ### C program to shut down a Windows PC 120 | 121 | A simple C program to shuts down a Windows PC by calling internal Windows features: 122 | ``` 123 | #include 124 | #include 125 | int main() 126 | { 127 | system("c:\\windows\\system32\\shutdown /i"); 128 | return 0; 129 | } 130 | 131 | ``` 132 | 133 | ### C program to shut down a Linux PC 134 | 135 | To do the same thing in Linux, you have to change the command parameter; the rest of the code will remain the same. 136 | ``` 137 | #include 138 | #include 139 | int main() 140 | { 141 | // Running Linux OS command using system 142 | system("shutdown -P now"); 143 | return 0; 144 | } 145 | ``` 146 | ### Reference 147 | 148 | - [W3schools: Shutdown system call](https://www.w3schools.in/c-programming/examples/c-program-to-shutdown-windows-and-linux-systems) 149 | 150 | - [How to shutdown your Linux system using the command line](https://www.manageengine.com/products/eventlog/kb/linux/linux-shutdown-command.html) 151 | 152 | - [Introduction to system call](https://www.geeksforgeeks.org/introduction-of-system-call/) 153 | 154 | 155 | 156 | -------------------------------------------------------------------------------- /Ubuntu server.md: -------------------------------------------------------------------------------- 1 | # **UBUNTU SERVER** 2 | 3 | # CONTENTS 4 | 5 | - [Introduction](#introduction) 6 | - [What is Ubuntu Server?](#what-is-ubuntu-server) 7 | - [Difference between Ubuntu Desktop and Ubuntu Server](#difference-between-ubuntu-desktop-and-ubuntu-server) 8 | - [Key Features](#key-features) 9 | - [Ubuntu Meaning and History](#ubuntu-meaning-and-history) 10 | - [Motivation](#motivation) 11 | - [Objectives](#objectives) 12 | - [System Requirements](#system-requirements) 13 | - [How to Install Ubuntu Server?](#how-to-install-ubuntu-server) 14 | - [Issues or Problems Faced](#issues-or-problems-faced) 15 | - [Filesystem Support](#filesystem-support) 16 | - [Fully Supported Filesystems](#fully-supported-filesystems) 17 | - [Why Ext4 is Default?](#why-ext4-is-default) 18 | - [Partially Supported Filesystems](#partially-supported-filesystems) 19 | - [Advantages](#advantages) 20 | - [Disadvantages and Key Limitations](#disadvantages-and-key-limitations) 21 | - [Recommendations for Improvement](#recommendations-for-improvement) 22 | - [User-Centric Future Vision](#user-centric-future-vision) 23 | - [Conclusion](#conclusion) 24 | - [Virtualization in Modern Operating Systems](#virtualization-in-modern-operating-systems) 25 | - [What is Virtualization?](#what-is-virtualization) 26 | - [Benefits of Virtualization](#benefits-of-virtualization) 27 | - [Main Components of Virtualization](#main-components-of-virtualization) 28 | - [Physical Machine](#physical-machine) 29 | - [Virtual Machine](#virtual-machine) 30 | - [Hypervisors](#hypervisors) 31 | - [How Virtualization Works](#how-virtualization-works) 32 | - [Reference](#reference) 33 | 34 | ![Ununtu server](Images/Picture1.jpg) 35 | 36 | # Introduction 37 | 38 | ## What is Ubuntu Server? 39 | 40 | Ubuntu Server is a version of the Ubuntu operating system designed and engineered as a backbone for the internet. Ubuntu Server brings economic and technical scalability to your datacenter, public or private. Whether you want to deploy an OpenStack cloud, a Kubernetes cluster or a 50,000-node render farm, Ubuntu Server delivers the best value scale-out 41 | performance available. 42 | 43 | Ubuntu Server is a popular and dependable open-source operating system tailored for servers and cloud computing settings. It is a good choice for businesses and individuals seeking a reliable, ecure, and flexible operating system. Setting up Ubuntu Server in a virtual environmentprovides a versatile and economical option for businesses, developers, and IT professionals seeking to manage and implement servers without the need for dedicated physical hardware. 44 | 45 | Ubuntu Server is a variant of the Ubuntu operating system, specifically designed for server environments. Built on the Linux kernel, it provides a stable platform for hosting websites, running applications, and managing network services. 46 | 47 | ## Difference between Ubuntu Desktop and Ubuntu Server 48 | 49 | The main difference between Ubuntu Desktop and Server is the desktop environment. While Ubuntu Desktop includes a graphical user interface (GUI), Ubuntu Server does not. When choosing between Ubuntu Server and Ubuntu Desktop, the most important differences revolve around their intended use cases and interfaces. Ubuntu Desktop is designed for general personal computing, featuring a user-friendly graphical user interface (GUI) that is ideal for tasks like web browsing, office work, and media consumption. 50 | 51 | Ubuntu Server, on the other hand, is tailored for running network services, web hosting, and enterprise applications, relying on a command-line interface (CLI) to optimize performance and resource efficiency. Unlike the desktop version, Ubuntu Server doesn’t include a graphical user interface by default, making it lighter and more efficient for server use. Understanding these 52 | distinctions can help you select the appropriate version for your needs, whether it’s for everyday use, server management, or specific business applications. 53 | 54 | You should use Ubuntu Desktop to use your computer as a daily driver. It includes a bevy of multimedia and productivity software. There's a GUI, and installation is pretty simple. Moreover, you can install server software to use Ubuntu Desktop as a server. 55 | 56 | ## Key Features 57 | 58 | One of its distinguishing features is its Long-Term Support (LTS) versions, which ensure stability and security updates for a minimum of five years. These attributes make Ubuntu Server particularly suited for environments requiring consistent performance and minimal downtime. 59 | 60 | Key features of Ubuntu Server include: 61 | 62 | • Command-line interface for efficient remote management 63 | 64 | • Lower resource requirements compared to desktop versions 65 | 66 | • Built-in security features and regular security updates 67 | 68 | • Support for a wide range of server applications and services 69 | 70 | • Scalability to meet growing business needs 71 | 72 | ## Ubuntu Meaning and History 73 | 74 | The name “Ubuntu” comes from an African philosophy meaning “humanity to others” or “I am what I am because of who we all are.” This reflects the collaborative nature of the open-source community behind Ubuntu. Ubuntu Server is a Linux-based operating system developed by Canonical Ltd., designed for servers and cloud computing environments. It is derived from Debian and is composed mostly of free and open-source software Canonical, the company founded by South African entrepreneur Mark Shuttleworth, released the first version of Ubuntu in 2004. Ubuntu Server is built on Debian architecture and is composed mostly of free and opensource software. 75 | 76 | The history of Ubuntu Server dates back to the first release of Ubuntu in 2004. Initially, Ubuntu was perceived as a desktop-focused operating system, but its server capabilities were present from the beginning. Canonical, the company behind Ubuntu, emphasized its server potential by renaming the "Custom" installation mode to "Server," which marked the formal recognition ofUbuntu Server. Over time, Ubuntu Server gained popularity for its simplicity, reliability, and support for features like RAID and LVM, making it a strong choice for server users. 77 | 78 | ## Motivation 79 | 80 | The motivation to choose Ubuntu Server stems from its compatibility with a wide range of hardware and virtualization technologies. As organizations continue transitioning to virtualized and cloud-based infrastructures, the need for an operating system that offers high scalability, cost efficiency, and robust performance becomes critical. Ubuntu Server is optimized for virtual environments such as VMware Workstation and Oracle VM VirtualBox, making it an ideal 81 | candidate for learning, development, and enterprise-level deployment. 82 | 83 | Additionally, its extensive documentation and community support lower the entry barrier for administrators, developers, and businesses looking to deploy an efficient and reliable server solution. With security at its core and support for advanced tools like Kubernetes and OpenStack, Ubuntu Server meets the demands of modern IT landscapes. 84 | 85 | # Objectives 86 | 87 | The objectives of the Ubuntu Server operating system are centered around providing a reliable, secure, and efficient platform for server environments. Here are some of its key objectives: 88 | 89 | 1. **Stability and Reliability:** Ubuntu Server aims to deliver a stable and dependable operating system for hosting critical applications, ensuring minimal downtime and consistent performance. 90 | 91 | 2. **Security:** It prioritizes robust security features, including regular updates, built-in firewalls, and support for encryption, to protect sensitive data and systems. 92 | 93 | 3. **Scalability:** Designed to scale with growing business needs, Ubuntu Server supports a wide range of hardware and virtualization platforms, making it suitable for small-scale deployments and large enterprise infrastructures. 94 | 95 | 4. **Flexibility:** The operating system is highly customizable, allowing users to tailor it to their specific requirements, whether for web hosting, database management, or cloud computing. 96 | 97 | 5. **Cloud and Virtualization Support:** It is optimized for modern IT environments, offering seamless integration with cloud platforms like OpenStack and Kubernetes, as well as virtualization tools like VMware and VirtualBox. 98 | 99 | 6. **Open-Source Philosophy:** Ubuntu Server promotes the use of free and open-source software, encouraging collaboration and innovation within the global community. 100 | 101 | 7. **Ease of Use:** Despite being a server-focused OS, Ubuntu Server is designed to be user-friendly, with extensive documentation and community support to assist users of all skill levels. 102 | 103 | # System Requirements 104 | 105 | Ubuntu Server provides a flexible base for your solution that can run on a wide range of hardware, from small virtual machines to enterprise-scale computing. Hard requirements depend on the scenario. 106 | 107 | Ubuntu Server 24.04 LTS (the latest version at the time of writing) has modest hardware requirements, making it suitable for a wide range of systems: 108 | 109 | • **CPU:** 1 GHz or better (x86-64 processor) 110 | 111 | • **RAM:** 1 GB (2 GB recommended for comfortable use) 112 | 113 | • **Storage:** 2.5 GB for minimal installation (10 GB or more recommended for most use cases) 114 | 115 | • **Network:** Ethernet adapter (for network installation) 116 | 117 | For running Ubuntu Server 24 on VMware or other virtualization platforms, similar requirements apply. However, you may want to allocate more resources depending on your specific use case and the applications you plan to run. 118 | 119 | • **Compatible Hardware:** Ensure your hardware meets the minimum requirements 120 | (e.g., 2 GHz dual-core processor,). 121 | 122 | • **Bootable Media:** Create a bootable USB drive or DVD with the Ubuntu Server ISO 123 | file. (This is required if you are not using virtual machine environment like VMware workstation or Oracle virtual box.) 124 | 125 | • **Internet Connection:** A stable internet connection for downloading updates and 126 | additional packages. 127 | 128 | • **Backup Data:** Backup any important data before installation. 129 | 130 | • A tool like **Rufus** (for Windows) or **Startup Disk Creator** (for Ubuntu) to create a bootable USB. 131 | 132 | ![Ubuntu server requirements](Images/Picture2.jpg) 133 | 134 | # How to Install Ubuntu Server? 135 | 136 | The process of downloading Ubuntu Server and setting it up on VMware allows users to leverage virtualization for testing, development, and deployment without requiring dedicated hardware. It is an ideal setup for learning server administration, exploring cloud technologies, or managing enterprise-level applications. 137 | 138 | **Step 1: Prepare VMware Workstation** 139 | 1. Download and install VMware Workstation from the official VMware website. Ensure your system meets the minimum hardware requirements. 140 | 141 | ![VMware website](Images/Picture3.jpg) 142 | 143 | 2.Launch VMware Workstation and ensure you have administrative access on your device. 144 | 145 | **Step 2: Acquire the Ubuntu Server ISO File** 146 | 147 | 1. Visit the official Ubuntu website and download the latest stable version of the Ubuntu Server ISO file. 148 | 149 | ![Official ubuntu website](Images/Picture5.jpg) 150 | 151 | **Step 3: Create a New Virtual Machine in VMware Workstation.** 152 | 153 | 1. Open VMware Workstation and click **"Create a New Virtual Machine."** 154 | 155 | ![VMware workstation home page](Images/Picture4.jpg) 156 | 157 | 2. Choose **Custom (advanced)** or **Typical (recommended)** as per your preference. 158 | 159 | 3. In the wizard: 160 | 161 | • Select **Installer disc image file (ISO)** and browse for the downloaded Ubuntu Server ISO file. 162 | 163 | ![select the iso file in the VMware workstation](Images/Picture6.jpg) 164 | 165 | • Name the virtual machine and choose the location where it will be stored. 166 | 167 | • Specify the virtual machine’s hardware configuration (e.g., RAM, CPU cores, disk space). All those details must meet the required software and hardware information listed above. 168 | 169 | **Step 4: Configure the Virtual Machine.** 170 | 171 | 1.Set the recommended resources for Ubuntu Server: 172 | 173 | **RAM:** At least 1 GB (for basic installation; adjust based on your use case). 174 | 175 | **Disk space:** At least 10 GB (for a minimal installation; more for additional packages). 176 | 177 | ![memory for the virtual machine](Images/Picture7.jpg) 178 | 179 | 2. Configure the virtual network (choose NAT or Bridged based on your setup 180 | requirements). 181 | 182 | 3. Complete the virtual machine creation process. 183 | 184 | 185 | **Step 5: Start the Installation** 186 | 187 | ![install ubuntu server](Images/Picture8.jpg) 188 | 189 | 1. Select the newly created virtual machine and click **Power on this virtual machine.** 190 | 191 | 2. Follow the Ubuntu Server installation prompts: 192 | 193 | • Choose the language, keyboard layout, and time zone. 194 | 195 | • Configure the network settings (automatic or manual). 196 | 197 | • Set up partitions (let Ubuntu auto-configure or customize as needed). 198 | 199 | • Enter user credentials and password. 200 | 201 | ![enter the credentials and password](Images/Picture9.jpg) 202 | 203 | **Step 6: Finish Installation** 204 | 205 | 1. Complete the setup process and let the installation finish. 206 | 207 | 2. Once completed, restart the virtual machine within VMware Workstation. 208 | 209 | 3. Log in to the server with the user credentials you created. 210 | 211 | # Issues or Problems Faced 212 | 213 | ![Error on workstation](Images/Picture11.jpg) 214 | 215 | The error message on my screen suggests that Intel VT-x is disabled, preventing virtual machine from starting in VMware Workstation 16 Player. Here's a step-by-step solution to fix : 216 | 217 | 1. Go to Windows settings and select **Update &Security.** 218 | 219 | 2. Select the **Recovery option.** 220 | 221 | 3. Under the Advanced startup click on **Restart now.** 222 | 223 | 4. Then on the blue screen displayed choose an option **Troubleshoot.** (Just single click on it) 224 | 225 | 5. Select **Advanced options.** 226 | 227 | 6. Select **UEFI Firmware settings.** 228 | 229 | 7. Finally, select the **Restart** button. This will reboot the system and after a while it will display different keys. 230 | 231 | 8. Then on the keys listed press f10 to access **BIOS Setup**. 232 | 233 | 9. Under the system configuration tab the Virtualization technology. 234 | 235 | 10. Press f10 to save the changes and exit. 236 | 237 | ![exit the boot window](Images/Picture12.jpg) 238 | 239 | # Filesystem Support 240 | 241 | File systems divide the storage space on a drive into virtual compartments known as clusters, maintain an index of where individual files are located and of available free space. The first Windows file system was known as the File Allocation Table or FAT, with three major variants developed, known as FAT12, FAT16 and FAT32. Each FAT variant can divide a drive into an increasing number of clusters and supports an increasing maximum file size and volume size. 242 | Ubuntu Server primarily supports **Linux-native filesystems**, though it can work with some others via additional drivers. Here's a breakdown: 243 | 244 | ## Fully Supported Filesystems: 245 | 246 | 1. **Ext4** – The default and most widely used Linux filesystem. ext4 was introduced which is the most modern dedicated Linux file system. ext4 has a maximum file size of 16 terabytes and the maximum volume size of 1 exabyte. It's reliable, supports journaling (for data integrity), and is well-integrated with Ubuntu. 247 | 248 | #### Why Ext4 is Default? 249 | 250 | • **Stability:** Ext4 is rock-solid and tested extensively in production environments. 251 | 252 | • **Performance:** Handles large files well, reducing fragmentation. 253 | 254 | • **Compatibility:** Works seamlessly across all Linux distributions. 255 | 256 | • **Journaling:** Protects against data corruption in case of system crashes. 257 | 258 | If you're setting up an Ubuntu server, **Ext4** is the safe default, while ZFS or Btrfs could be worth considering for advanced storage needs. 259 | 260 | 2. **Btrfs** – A modern filesystem with advanced features like snapshots and checksums, good for redundancy and scalability. 261 | 262 | 3. **ZFS** – Known for strong data integrity, compression, and powerful RAID-like features.By integrating physical drive management with file system functionality, ZFS provides increased protection against data loss or corruption. ZFS is currently available for Linux, FreeBSD and TrueOS and in the future may be ported to Windows and Mac OS. Ubuntu provides built-in ZFS support. 263 | 264 | ## Partially Supported Filesystems: 265 | 266 | 1. **NTFS** – Can be used via the ntfs-3g driver, but performance isn't optimal for Linux. NTFS also supports file permissions, file encryption and other features that make NTFS more suitable than a FAT32. The only real downside of NTFS is a lack of compatibility with older versions of Windows and non-Windows operating systems. For example, by default NTFS volumes are read-only in Mac OS and in older Linux distros, and may not be readable at all on other devices such as standalone media players. 267 | 268 | 2. **FAT32 / exFAT** – FAT32 can store individual files up to 4 gigabytes in size and is limited to 32 gigabyte volumes if formatted in Windows, up to 2 terabytes when formatted with other operating systems, and has an absolute maximum volume size of 16 terabytes. FAT32 remains a popular filesystem due to its high level of compatibility across operating systems. 269 | 270 | **exFAT** is less sophisticated than NTFS but has significant benefits over FAT32. The maximum file size is 16 exabytes or effectively unlimited. Many Linux systems require extra drivers to be installed to access exFAT devices. Supported via additional packages, useful for external drives and compatibility with Windows/Mac. 271 | 272 | 3. **HFS+** – it is the extended version of HFS or known as Mac OS Extended. This edition wil Read and write support available, but lacks full journaling features. 273 | 274 | 4. **APFS** – Apple's proprietary filesystem is not natively supported, but experimental read support exists. 275 | 276 | • HFS+ and APFS are not natively supported by Windows, Linux or other non 277 | Apple operating systems. 278 | 279 | # Advantages 280 | 281 | As an open-source platform, the Linux-based Ubuntu Server merits serious consideration given its reliability, security, and cost-effectiveness. 282 | 283 | Let’s recap the benefits that come with Ubuntu Server: 284 | 285 | **1.Free Operating System for Personal and Enterprise Computing** 286 | 287 | One of the main advantages of Ubuntu is that it is a free-to-download and open-source desktop operating system. In other words, unlike Windows from Microsoft and the macOS from Apple, individuals and organizations can own and use personal computers and workstations without the need for purchasing software licenses or purchasing exclusive devices. 288 | 289 | **2.Works in a Wide Range of Devices and Computing Platforms** 290 | 291 | This OS can be installed on most computers and alongside other desktop operating systems such as Windows and macOS. It has a default support for processors based on the CISC-based x86-64 architecture such as Intel Core and AMD Athlon or AMD Ryzen and also supports processors based on various RISC-based architectures such as ARM and Power ISA. 292 | 293 | **3.A Well-Rounded Operating System for Desktop Computing** 294 | 295 | Another advantage of Ubuntu is its intuitive and straightforward graphical user interface that provides its users with a familiar user experience. It can compete against Windows and macOS in terms of offering a complete desktop computing experience. The minimalist visual design is also similar to the clean and simple design principle of Apple operating systems. 296 | 297 | **4. Ease of Installing and Running and Customization Options** 298 | 299 | The installation process is straightforward and guided. It is doable even for users with limited technical knowledge. This operating system can also run from a bootable external storage medium such as an optical disc or a USB flash drive. There is also less need for manual driver installation because it automatically detects and configures most hardware. 300 | 301 | A live environment is available for preview before installation. Users can personalize the desktop environment by changing the themes, icons, and other settings. The operating system also allows experienced users to access the terminal for performing advanced tasks and customization settings. It also offers a range of tools and libraries for software development. 302 | 303 | **5. Light Operating System With Minimal System Requirements** 304 | 305 | The default Ubuntu does not require high-end system requirements. The recommended hardware configurations are a 2 GHz dual-core processor, 4GB of RAM, and 25GB of storage space. The specific lightweight Ubuntu flavors or variants called Lubuntu and Xubuntu are developed and optimized for computers with lower-end hardware specifications. 306 | 307 | It is also important to reiterate that another advantage of Ubuntu is that it can be downloaded as a disk image and can run from an external storage medium such as a removable solid-state drive, a USB flash drive, and optical media. A live operating system works almost the same as an installed operating system without altering the configuration of the computer. 308 | 309 | **6.Continued Support from Developers and the Community** 310 | 311 | Remember that this operating system is open-source. One of the many benefits of open-source software is that there is an active community that helps in providing bug fixes and introducing or rolling out new updates or features faster and more efficiently. 312 | 313 | # Disadvantages and Key Limitations 314 | 315 | **1. Limited Functionalities Due to Limited Applications** 316 | 317 | One of the major disadvantages of Ubuntu is the limited choices of applications. The app store is sizeable but it is still not comparable to Windows and macOS. Most software developers prefer developing first for Microsoft and Apple because of their larger user bases. 318 | 319 | **2. Also Has Limited and Unimpressive Game Titles** 320 | 321 | It is also important to note that this is not an operating system for PC gamers. There are few game titles available for Linux distributions. Most of these titles are unimpressive because they are too simple or lack advanced gameplay and immersive graphical experience. 322 | 323 | **3. Problems About Software and Hardware Compatibility** 324 | 325 | Some users have reported driver issues or compatibility between the operating system and the hardware specifications of their computers. There have been occasional stories of wireless card drivers not working or a printer not connecting to the computer due to an unidentified hardware problem. 326 | 327 | **4. Issues About Commercialization Versus Open Source** 328 | 329 | One of the main criticisms of Ubuntu is its apparent commercialization. Canonical appears to move a little bit further away from the open-source model with each operating system update. The company works on its own most of the time instead of working with the open-source community. This prevents receiving inputs from hundreds of volunteer developers. Understanding error messages and navigating logs might require technical knowledge or community support. 330 | 331 | **5. Troubleshooting Issues and Absence of Dedicated Support** 332 | 333 | The entire graphical user interface of this operating system is intuitive. However, when it comes to troubleshooting, beginners and even intermediate users might still struggle. 334 | 335 | It is also worth mentioning that another disadvantage of Ubuntu, as well as of other open-source and free operating systems, is the lack of dedicated technical support. The sole option for users is the open-source community. Canonical does not maintain a team dedicated to answering user inquiries or helping with troubleshooting and other technical issues. 336 | 337 | # Recommendations for Improvement 338 | 339 | **1. Simplify Beginner Troubleshooting** 340 | 341 | A lack of specialized technical help makes troubleshooting Ubuntu Server difficult for many users. Canonical might make technical problems easier for novices and non-expert users by implementing user-friendly features like streamlined logs or guided error 342 | resolution interfaces. 343 | 344 | **2. Increase the Application Ecosystem** 345 | 346 | Limited application options are frequently cited by users as a disadvantage. Canonical might work with developers to include more popular software into Ubuntu Server, especially enterprise-grade programs and gaming apps. It would become much more appealing if it were compatible with other commonly used tools. 347 | 348 | **3. Improve the Integration of Community Support** 349 | 350 | Although the open-source community is a great resource, Ubuntu Server users would gain from community solutions being more closely integrated into the operating system. Users could find answers more rapidly, for example, if system utilities included community-driven FAQs, tutorials, or solutions. 351 | 352 | **4. Boost Driver Compatibility** 353 | 354 | Users may become frustrated by sporadic incompatibilities with particular devices, like wireless cards or printers. To guarantee seamless interoperability across all devices, Canonical should keep concentrating on creating universal drivers and collaborating closely with hardware manufacturers. 355 | 356 | **5. Boost Open-Source Cooperation** 357 | 358 | One popular criticism is that Ubuntu is becoming more commercialized. Canonical can restore user confidence in the open-source ideology by re-engaging with the community more thoroughly and making sure that upgrades continue to adhere to collaborative development norms. 359 | 360 | **6. Introduce Easier GUI Options for Beginners** 361 | 362 | While advanced users appreciate the efficiency of the command-line interface, 363 | newcomers often struggle with it. Providing optional lightweight graphical tools or guided configuration setups within Ubuntu Server would lower the entry barrier for inexperienced users. 364 | 365 | **7. Focus on Accessibility for All Users** 366 | 367 | Canonical can explore developing Ubuntu Server features tailored for smaller-scale personal use cases, like home servers and hobby projects, as these are becoming increasingly popular. Expanding documentation and tutorials targeting such use cases could further engage users. 368 | 369 | **8. Emphasize Advanced Security Features** 370 | 371 | While Ubuntu Server already provides robust security, adding user-friendly tools for encryption management, security auditing, or vulnerability scanning would enhance its appeal to both individual users and organizations. 372 | 373 | ## User-Centric Future Vision 374 | 375 | By implementing these user-focused recommendations, Ubuntu Server can strengthen its position as the go-to server OS for diverse user groups, from beginners to seasoned IT professionals. Its rich features and strong community support give it an edge, and with continued attention to user needs, it has the potential to grow even more indispensable in the evolving IT landscape. 376 | 377 | # Conclusion 378 | 379 | Ubuntu Server stands out as a robust, dependable, and adaptable operating system, suitable for both conventional server setups and contemporary cloud computing environments. Its opensource nature guarantees affordability, flexibility, and strong community backing. Canonical’s Long-Term Support (LTS) releases further improve its reliability by offering assured security updates and stability for prolonged durations. 380 | 381 | The use of the default Ext4 filesystem illustrates Ubuntu Server's dedication to stability, efficiency, and compatibility, making it a top choice for various server implementations. For more specialized requirements, filesystems such as Btrfs and ZFS offer capabilities like snapshots, data redundancy, and enhanced data integrity, addressing the needs of more demanding enterprise settings. 382 | 383 | Though Ubuntu Server excels in numerous aspects, including scalability, security, and support for leading-edge tools like Kubernetes and OpenStack, it does have its drawbacks. Issues such as limited gaming compatibility, occasional hardware issues, and the necessity for technical know 384 | how in troubleshooting must be recognized. 385 | 386 | To sum up, Ubuntu Server emerges as a top choice for both organizations and individuals in search of a secure, scalable, and versatile server operating system, ideally equipped to meet the evolving requirements of today’s IT environments. 387 | 388 | ## Virtualization in Modern Operating Systems 389 | 390 | ### What is Virtualization? 391 | 392 | Virtualization is a technology that enables the creation of virtual environments from a single physical machine, allowing for more efficient use of resources by distributing them across computing environments. 393 | 394 | Using software, virtualization creates an abstraction layer over computer hardware, dividing a single system’s components such as processors, memory, networks and storage into multiple virtual machines (VMs). Each VM runs its own operating system (OS) and behaves like a separate physical computer, despite sharing the same underlying hardware. 395 | 396 | Today, virtualization is a fundamental practice in enterprise IT architecture and a key enabler of cloud computing. It allows cloud service providers (CSPs) such as IBM Cloud®, Microsoft Azure, Google Cloud and Amazon Web Services (AWS), to optimally utilize their IT infrastructure to deliver scalable resources. For businesses, this means they only purchase the computing resources they need and then scale them cost-effectively as their workloads grow, maximizing their investment. 397 | 398 | ### Benefits of Virtualization 399 | 400 | Virtualization offers numerous benefits to both on-premises and cloud-based data centers that support IT operations, including the following: 401 | 402 | • Resource efficiency 403 | 404 | • Easier management 405 | 406 | • Minimal downtime 407 | 408 | • Faster provisioning 409 | 410 | • Disaster recovery (DR) 411 | 412 | • Cost-effectiveness 413 | 414 | ### Main Components of Virtualization 415 | 416 | Virtualization relies on several key components to create and manage virtual environments. Each plays a vital role in ensuring the effective allocation of resources so multiple VMs can run simultaneously without interference. 417 | 418 | • Physical machine (server/computer) 419 | 420 | • Virtual machine (VMs) 421 | 422 | • Hypervisor 423 | 424 | #### Physical Machine 425 | 426 | The physical machine, also referred to as the “host machine” is the hardware (e.g., server or computer) that provides CPU, memory, storage and network resources for the virtual machines. 427 | 428 | #### Virtual Machine 429 | 430 | A virtual machine (VM) is a virtual environment that simulates a physical computer in software form. VMs are usually referred to as guests, with one or more “guest” machines running on a host machine. Virtual machines typically consist of several files, including the configuration, storage for the 431 | virtual hard drive and other dependencies. By sharing system resources among virtual machines, virtualization offers on-demand scalability, efficiency and cost savings. 432 | 433 | #### Hypervisors 434 | 435 | A hypervisor is the software layer that coordinates VMs. It serves as an interface between the VM and the underlying physical hardware, ensuring that each has access to the physical resources it needs to execute. It also makes sure that the VMs don’t interfere with each other by impinging on each other’s memory space or compute cycles. 436 | 437 | # How Virtualization Works 438 | 439 | Virtualization works by creating virtual versions of physical computing resources, such as servers, storage, or networks, using specialized software called a hypervisor. The hypervisor abstracts the underlying hardware and allows multiple virtual machines (VMs) to run independently on the same physical system. Each VM operates as if it were a separate computer, with its own operating system and applications. This technology enables efficient resource utilization, scalability, and flexibility, making it a cornerstone of modern IT infrastructure, especially in cloud computing and data centers. 440 | 441 | # Reference 442 | 443 | - [Ubuntu Server Download](https://ubuntu.com/download/server) 444 | 445 | - [ Wikipedia: Ubuntu](https://en.wikipedia.org/wiki/Ubuntu) 446 | 447 | - [Ubuntu Server System Requirements](https://ubuntu.com/download/server#system-requirements-lts) 448 | 449 | - [VMware Workstation download](https://blogs.vmware.com/workstation/2020/09/workstation-16-now-available.html) 450 | 451 | - [Profolus: Advantages and Dsadvantages of Ubuntu server](https://www.profolus.com/topics/ubuntu-operating-system-advantages-and-disadvantages/) 452 | 453 | - [Ubuntu server documentation/tutorial](https://documentation.ubuntu.com/server/tutorial/basic-installation/#basic-installation) 454 | 455 | - [Ubuntu server vs. Ubuntu desktop](https://www.makeuseof.com/tag/difference-ubuntu-desktop-ubuntu-server/) 456 | 457 | - [server acadamy:Ubuntu server vs. Ubuntu desktop](https://serveracademy.com/blog/ubuntu-server-vs-desktop/#:~:text=and%20use%20cases.-,Ubuntu%20Server%20vs%20Desktop%20vs%20Core%20Table,management%2C%20or%20specific%20business%20applications) 458 | --------------------------------------------------------------------------------