An operating system is powerful, and a usually main program that controls and manages the hardware, resources manager, and other software on a computer (OUM, 2014). An operating system is a fundamental component of any computer system. Application programs need and operating system to function accordingly. Objectives of an operating system are:
- Execute user programs and make solving user problems simpler
- Make the computer system easy to use
- Utilise the computer hardware in a proficient way.
Operating systems can be found on almost any device that contains a computer from mobile phones, tablet, smartwatch, router, and video game consoles to supercomputers and web servers (Wikipedia, 2019).
File management, memory management, and process management are three essential elements of all operating systems.
Windows is a many series versions of operating systems, computer operating system developed by Microsoft for a personal computer. Each operating system comes with a graphical user interface (GUI) with a desktop which allows a user to interact with the operating system by viewing all files, videos, etc. (Wikipedia, 2019). The first version of Windows OS released in 1985 which is a simple GUI, an extension of existing disk operating system (MS-DOS) and major Windows release was in 1995, a consumer release which has integrated windows and DOS with built-in internet support. Majority of the PC is currently running on Windows operating system only. It is designed to run on x86 hardware such as AMD, Intel processors. So windows OS comes with almost all company who made PC’s or laptops. Latest Windows OS version is Windows 10, which is currently ruling the market.
Linux is an open-source operating system based on UNIX which was created in 1991. Linux is an operating system that evolved from a kernel created by Linus Torvalds when he was a student at the University of Helsinki. To say that Linux is an operating system means that it’s intended to be used as an alternative to other operating systems, Windows, Mac OS, MS-DOS, Solaris and others (The Linux Foundation, 2019). Linux is an interface between computer/server hardware, and the programs which run on it. Users can modify the existing code and create distributions from it as it is an open-source operating system. Linux operating system also comes with a graphical user interface (GUI) with some necessary software’s which are used on a daily basis. Linux is mostly used as a server – as most of the web pages over the internet are generated from Linux servers and also used in desktop computers, mobile devices, gaming consoles, digital storing devices, eBook readers, cameras, video recorders have Linux running.
Users who are thinking about making changes from Windows to Linux or Linux to Windows usually need to know the advantages and disadvantages of every one of the operating systems (Computer Hope, 2019). The following is a diagram to help outline the significant advantages and disadvantages of every one of these operating system:
|Cost||Linux can be freely distributed and downloaded. There is a paid version for Linux also, but they are usually cheaper than Windows.||Windows 10 Home – Starting from USD 139 Windows 10 Pro – Starting from USD 199.99|
|Development and Distribution||Linux is developed by Open Source development i.e. through sharing and collaboration of code and features through forums etc. and it is distributed by various vendors and distributors.||Developed and distributed solely by Microsoft.|
|License||GNU General Public License||Proprietary|
|Manufacturer||Kernel is developed by the community.||Microsoft|
|Company/Developer||The Linux community.||Microsoft|
|Usage||Can be installed on a varieties of computer hardware such as mobile phone, tablet computer, game console to mainframes and supercomputer.||On PC’s, desktop, laptops, tablets and server.|
|File system support||Ext2, Ext3, Ext4, Jfs, ReiserFS, Xfs, Btrfs, FAT, FAT32, NTFS||FAT, FAT32, NTFS, exFAT|
|Test mode interface||BASH (Bourne Again SHell) is the Linux default shell. It can support multiple command interpreters.||Windows uses a command shell and each version of Windows has a single command interpreter with dos-like commands, recently there is the addition of the optional PowerShell that uses more Unix-like commands.|
|User interface||Gnome, KDE, XFCE, Cinnamon, MATE and many more.||Graphical (Windows)|
|Update Method||Many||Windows Update|
|Software||There are many programs available for Linux, and many are available as easy-to-install and mostly are free but there might have a compatibility issue. Linux supports a wider array of free software than Windows.||Windows commands the highest number of desktop users, and therefore the largest selection of software. It also has the largest selection of video games by a wide margin.|
|Software Cost||Many of the available software programs, utilities, and games available on Linux are free and open source. Even complex applications, such as GIMP, InkScape, Blender, OpenOffice and LibreOffice are available for free.||Although there are many free Windows programs, utilities, and games, the majority of Windows software is commercial and must be purchased. Most Windows software can cost between USD 5.00 and USD 100.00|
|Hardware||Linux struggled to support new hardware. Manufacturers often considered Linux support a secondary concern Furthermore, device drivers for Linux were created only by enthusiasts who devoted their own time and resources to making Linux compatible with new hardware. Today, the majority of hardware manufacturers give Linux support the same priority as Microsoft Windows.||Windows has a massive user base, so it would be madness for a consumer hardware manufacturer not to support Windows. As a Windows user, you can rest assured that your operating system is compatible with nearly any hardware you might buy.|
|Security||Linux is a highly secure operating system. Although attack are still discovered but its source code is open and available for any user to review, which makes it easier to identify and repair vulnerabilities.||Microsoft has made great security improvements in Windows over the years. But as the operating system with the largest user base, especially among novice computer users, it is the primary target for malicious coders. As a result, of all major operating systems, Microsoft Windows is the most likely to be the victim of viruses and malware.|
|Support||There is a massive amount of online support available for Linux. There are also many books providing help with many of the Linux distributions.||Microsoft Windows offers integrated and online help systems, and there are thousands of informative books about Windows available for every skill level.|
A file management system is a type of software that manages data files in a computer system. It has limited capabilities and is designed to manage individual or group files, for example, special office documents and records. It may display report details, like owner, creation date, state of completion, and similar features useful in an office environment. A file management system is also considered as a file manager.
A file management system should not be mistaken for a file system, which deals with all types of data and files in an operating system (OS), or a database management system (DBMS), which has relational database capabilities and includes a programming language for further data manipulation (Techopedia, 2019).
A file management system’s tracking component is key to the creation and management of this system, where documents containing various stages of processing are shared and interchanged on an ongoing basis (OUM, 2014).
It additionally the system gives a range of command to:
- Assigning queued document numbers for processing;
- Change the ownership;
- Read and write the consent of files;
- Set and use the protection mechanism;
- List files in a directory; and
- Create, modify, copy, delete and other file operations
File management in windows can be done through Windows Explorer or My Computer. Windows Explorer displays the hierarchical list of files, folders, and storage drives (both fixed and removable) on your computer. It also lists any network drives that have been mapped to as a drive letters on your computer (National Institute of Open Schooling, 2019). Windows Explorer can be used to copy, move, rename, and search for files and folders. For example, to copy a file, you can open a folder that contains the desired file to be copied or moved, and then just drag and drop the file to target folder or drive.
When files or folders are deleted from hard disk, Windows places them in the Recycle Bin, from where they can be retrieved, until the Recycle Bin is made empty. Files or folders deleted from a removable storage media such as network drive are permanently deleted and are not sent to the Recycle Bin.
Linux utilises an inverted tree structure to organise the files on the operating system. It is called an inverted tree because the file path for Linux is in reverse. Hence, the name inverted (upside-down) tree structure. Linux is not so user-friendly and easy to understand like Windows. It is a long way from it since when a file is saved within Linux, it saves the data within a directory (directory structure). Windows have what they call folders, and the folders have files stored in them. The folders in Linux are called directories, as mentioned earlier. All files on Linux systems are accessed as part of a single large tree-structured filesystem that is rooted at /.
For example on Linux, the path to a user’s home directory is:
Each operating system has a means to an end to execute processes, yet each operating system handles these requests in their own way. Process management involves the execution of various tasks such as the creation of processes, scheduling of processes, management of deadlock, and termination of processes (Shukla, 2017). The operating system has to deal with all the running processes of the system. The operating system oversees processes by performing tasks, for example, resource allocation and process scheduling. When a process runs on computer device memory, and CPU of computer are used and utilised. The operating system also has to synchronise the various processes of a computer system.
A process includes, besides instructions to be executed, the temporary data such as subroutine parameters, return addresses and variables (stored on the stack), data section having global variables (if any), program counter value, register values and other associated resources (OUM, 2014).
Stallings, 2012 has mentioned that Windows process configuration is driven by the need to offer support for a collection of operating system environments. To enabled the subsystem to duplicate the structure of another process, Windows can keep running on a wide range of platforms its native design, which is not complicated. Windows process started when a task is being requested. The process will be assigned a security access token, which Windows calls the primary token of the process. This token also contains the information about the user to access the object or to perform the functions on the system. Alongside the token, the process object is attributes, actions, or other services needed to complete the task.
The next part of the process in Windows is the thread. Windows implements a priority-driven scheduling system, the highest priority runnable threads always run with the caveat that the thread chosen to runs might be limited by the processors on which the thread is allowed to run (Russinovich & Solomon, 2009). The thread is what the operating system is executing as a component of process execution. They can be paused and resumed for the operating system to deal with all requests effectively.
Linux is a very dynamic system with continually changing computing needs. The process is representing a computational needs of centres around Linux. In a Linux operating system, the process is created every time a program is launched either by the user or by the OS itself (Sanchez, 2016). This process is a container of information about how that program is running and what’s happening. In Linux, the tasks are handled in a data structure (Piehl, Fontaine, McCarthy, & Hart, 2014). Each task comprises many information categories including state, scheduling information, identifiers, links, times and timers, file system, address space, and processor-specific context. Those categories can be described as attributes for the process.
To provide resources sharing and security, Linux takes the user level threads for the tasks and can map them to kernel level processes with the same group ID. Within the Linux kernel, a process is represented by a rather large structure called task_struct. In Linux, every running process is given a Process ID Number or PID. From the user’s perspective, a PID is a numeric value that uniquely identifies the process. A PID doesn’t change during the life of a process, but PIDs can be reused after a process dies, so it’s not always ideal to cache them (Jones, 2008).
Memory management is an extensive term that includes all processes and methods for the effective use, allocation, monitoring and management of computer memory to ensure optimal performance (Techopedia, 2019). It is also the process of managing computer memory and allocating blocks of memory for different running programs to achieve peak performance. Memory management deals with the management of a computer’s physical memory or random access memory (RAM).
Memory is an important part of any computer system. All computer has preinstalled with main memory which is used for processing running applications and services. No matter how huge the memory capacity on a computer is, it cannot accommodate all running applications or processes simultaneously. Therefore, memory management helps to allocate necessary memory space for each process by moving it in between hard drive and memory. It also helps to in assigning priorities and the overall organisation of the applications/processes. Memory management is commonly performed and managed by the host operating system. Finally, memory management also involves other non-volatile memories within a system for instance cache memory and virtual memory (Technopedia, 2019).
Microsoft (Microsoft, 2018) has described windows Memory management as following “Each process on 32-bit Microsoft Windows has its own virtual address space that enables addressing up to 4 gigabytes of memory. Each process on 64-bit Windows has a virtual address space of 8 terabytes. All threads of a process can access its virtual address space. However, threads cannot access memory that belongs to another process, which protects a process from being corrupted by another process.”
Dynamic memory allocated in heaps must be physically in a paging file. The Windows’s memory management controls page movement between physical memory and the paging file and also maps the process’s virtual address to the paging file. When the process terminates, the physical space in the file is deallocated (Code Project, 2019).
In Windows virtual memory is managed through the Advanced tab of the System applet in Control Panel. Windows manages the virtual memory settings automatically, which should be sufficient in most cases. However, we can also manually configure the maximum size of the virtual memory swap file and the disk partition on which the swap file is stored. The recommended size for the swap file is 1.5 times the amount of physical RAM. For a slight increase in performance, we can move the swap file to a different physical disk than is being used by the operating system. However, if the paging file is on the system drive, Windows creates a memory dump file if the system crashes. This file can be used to help identify what caused the system crash (Utilize Windows, 2019).
The virtual memory concept is based on virtual addresses. When data is stored in virtual memory, it is allocated a virtual address that maps to a physical address. So, when the virtual address is called it is translated into a physical address through the use of page tables. This process of calling memory is known as paging. This will also be allowed a multiple process to share memory.
Memory management is one of the most complex activities done by the Linux kernel. Similar to Windows, Linux also allowed memory sharing. Linux uses a slightly different method to share memory. To share a memory, one process must allocate the segment. Then each process desiring to access the segment must attach the segment. When finished with the segment, each process detaches the segment (Mitchell, Samuel, & Oldham, 2001). At some point, one process must deallocate the segment. This is often referred to as Malloc.
Linux has this basic rule: a page of free RAM is wasted RAM. RAM is used for a lot more than just user application data. It also stores data for the kernel itself and, most importantly, can mirror data stored on the disk for super-fast access, this is reported usually as “buffers/cache”, “disk cache” or “cached” by top. Cached memory is essentially free, in that it can be replaced quickly if a running (or newly starting) program needs the memory. Keeping the cache means that if something needs the same data again, there’s a good chance it will still be in the cache in memory (LinuxHowtos.org, 2019).
There are many differences between the windows and Linux operating systems in various fields. Both operating systems have their advantages and disadvantages, but we cannot say exactly which OS is the better one between the two. Some users still do not know that some advanced features exists uniquely in each of the operating systems. Both Windows and Linux have a unique file, process and memory management systems which fulfils the users need when choosing an operating system.
OUM. (2014). CBOS2203 Operating System. Open University Malaysia.
Wikipedia. (2019, July 10). Operating system. Retrieved from Wikipedia: https://en.wikipedia.org/wiki/Operating_system
Wikipedia. (2019, July 10). Microsoft Windows. Retrieved from Wikipedia: https://en.wikipedia.org/wiki/Microsoft_Windows
Computer Hope. (2019, July 10). Linux vs. Windows. Retrieved from Computer Hope: https://www.computerhope.com/issues/ch000575.htm
Diffen. (2019, July 10). Linux vs. Windows. Retrieved from Diffen: https://www.diffen.com/difference/Linux_vs_Windows
The Linux Foundation. (2019, July 10). What is Linux? Retrieved from Linux: https://www.linux.com/what-is-linux
Russinovich , M. E., & Solomon, D. A. (2009, June 17). Windows Internals, 5th Edition. Microsoft Press. Retrieved from The Microsoft Press Store by Pearson: https://www.microsoftpressstore.com/articles/article.aspx?p=2233328&seqNum=7
Shukla, A. (2017, July 23). Process management of operating system. Retrieved from Include Help: https://www.includehelp.com/operating-systems/process-management-of-operating-system.aspx
Stallings, W. (2012). Operating Systems – Internals and Designs Principal. Prentice Hall.
Techopedia. (2019, July 12). File Management System. Retrieved from technopedia: https://www.techopedia.com/definition/1832/file-management-system
Piehl, C., Fontaine, D., McCarthy, K., & Hart, B. (2014). Windows vs. MAC vs. Linux.
Sanchez, R. (2016, February 10). Hosting Advice. Retrieved from Linux Process Management: Commands You Should Know: https://www.hostingadvice.com/blog/linux-process-management-commands-know/
Jones, M. (2008, December 20). Anatomy of Linux process management. Retrieved from IBM Developer: https://developer.ibm.com/tutorials/l-linux-process-management/
Technopedia. (2019, July 12). Memory Management. Retrieved from technopedia: https://www.techopedia.com/definition/8302/memory-management
Code Project. (2019, July 12). Windows Memory Management. Retrieved from Code Project: https://www.codeproject.com/Articles/29449/Windows-Memory-Management
Utilize Windows. (2019, July 12). What is Virtual Memory and Why Do We Need It. Retrieved from Utilize Windows : https://www.utilizewindows.com/what-is-virtual-memory-and-why-do-we-need-it/
LinuxHowtos.org. (2019, July 12). Overview of memory management. Retrieved from LinuxHowtos.org: https://www.linuxhowtos.org/System/Linux%20Memory%20Management.htm
National Institute of Open Schooling. (2019, July 12). File Management in Windows. Retrieved from NIOS: http://oer.nios.ac.in/wiki/index.php/FILE_MANAGEMENT_IN_WINDOWS
Microsoft. (2018, May 31). About Memory Management. Retrieved from Microsoft Dev Center: https://docs.microsoft.com/en-us/windows/win32/memory/about-memory-management
Mitchell, M. L., Samuel, A., & Oldham, J. (2001). Advanced Linux Programming. Sam Publishing.