UNIX/Linux, Mac, Microsoft Windows Operating System Differences University of Phoenix Abstract This paper will elaborate on the major differences of the main Operating Systems (OS), which are UNIX/Linux, Mac®, Microsoft® Windows®. The areas of discussion for this paper will be on Memory Management, Process Management, File Management, and Security for each operating system. Operating Systems (OS) for a computer is the main processing software program used to allow the computer processor to communicate with the software and hardware I/O devices.
Computers as SUN, SUSE use UNIX/Linux operating system, Mac® (Macintosh) computer uses Apple operating system, and Personal Computers (PC) and most business computers use Windows® Microsoft® operating systems. Operating System Computers as SUN, SUSE use UNIX/Linux operating system, Mac® (Macintosh) computer uses Apple operating system, and Personal Computers (PC) and most business computers use Windows® Microsoft® operating systems. Each operating system is a multi-user system, multiprocessing, multitasking, and multithreading.
An operating system capable of allowing multiple software processes to run at the same time is a multiprocessing and multitasking computer. Operating systems that allow different parts of a software program to run concurrently are considered multithreading. Computer processing uses memory for instructions and subroutines. The use of memory and managing is not simply just reading and writing to the computer. Each computer memory in the system uses it differently. Memory Management is a vital part of the processing of data. Virtual, cache, processor, data, direct access, random ccess, single in-line memory (SIMM) are types of memory used in a computer system. Processor speed is dependent on memory management, which allows the use and operation of the computers. Requirements for memory management are; Relocation, Protection, Sharing, Logical organization, and Physical organization. Each of these mechanisms of memory assists the processing of data between the processor, I/O, Direct Access Memory (DMA) and software packages (Stallings, 2012). Memory management of UNIX/Linux, Mac, and Microsoft Windows Operating Systems (OS) are very similar and different in execution of memory management.
The operating structure of UNIX computers is on an end terminal type configuration using their memory for servers, main-frame, engineering computers, workstations, and terminal to terminal use (Hass, 2012). Memories for these are large and fast operating. The UNIX computers use three different types of memory uses. The three named memories for a UNIX computer are Kernel, Cache, and virtual. Kernal memory is the OS’s own (semi) private memory (“Data Expedition”, 2012). This is always in Main memory. Cache memory’s main function is to hold the File System and other I/O operations.
Virtual memory is an addressable memory space for processes to run on the computer. Virtual memory is divided into pages. Windows computers are also based on personal computer and server environments. Memory is large, fast, and used for software packages. Memory management in Microsoft Windows operating systems has evolved into a rich and sophisticated architecture. Capable of scaling from the tiny embedded platforms (where Windows executes from ROM) all the way up to the multi-terabyte NUMA configurations, taking full advantage of all capabilities of existing and future hardware designs (Solomon&Russinovich, 2010).
Windows memory is more versatile in use than UNIX and Mac. The modern day personal home computer has Windows OS systems on them. Memory is used based on the operator use and software packages installed onto them. Memory management is different in each application for the different Operating Systems because of the way in which the memory is used. UNIX is more a business server use, needing more memory, and larger data transferring. Mac is a personal computer usage environment not needing as much memory for operating system, but for the software execution and data storage.
Windows is also a personal computer environment with a server type environment growing in use. This memory management is both needing large sections of memory for data and operating systems transferring. Along with the processor speed, memory management is one of the most important parts of computer operation. The operating systems also rely on process management. Computers today have developed from running single program capability and running run one program at a time to having the ability to run multiple programs at the same time.
They are also able to use multiple threads to provide more than one task to be run at the same time. Processes were created to help manage the execution of the programs. A process is defined as a unit of work in a modern time-sharing system during the execution of a program. There are five states that a process may be in new, running, waiting, ready, and terminated. Only one process can be running on a processor and the other processes are in a ready and waiting state. Operating systems use processes to execute the system code, which executes and runs the main programs to process and operate the computer.
Operating systems may use the state of a process in different ways. A process control block represents a process in the operating system and contains the process state, program counter, CPU registers, CPU scheduling information, memory-management information, accounting information, and the I/O status information. To maximize the CPU processes need to be running at all times. As a process enters the system, they are placed in a job queue. A process scheduler is used to select the next available process for program execution. Process can be executed concurrently in most operating systems.
Because all operating systems use processes to execute programs, This paper will compare and contrast some of the main systems like UNIX, Windows, and Mac. A UNIX operating system creates a process through a fork() system call and uses an identify processes by a unique identifier typically an integer number. The new process will contain a copy of the address of the original process known as the child. The child inherits the privileges and scheduling attributes from the parent. The parent could communicate easily to the child processes. The return code for the fork() call is zero for the child process and non- zero for the parent processes.
To begin the execution of the process, the exec() after the fork() system call. The process memory space will be replaced with a new program. This allows two processes the ability to communicate and go their separate ways. A parent process will issue a wait() command whereas the child process is running so that it is completely removed from the active queue. Once the child process is terminated the parent will begin processing. Windows operating system is similar but offers some differences to process management than the UNIX operating system. The Win32 API uses the CreateProcess() function to create new processes.
A specific program is loaded into the address space of a child process to create a new process. The CreateProcess() request expects at least 10 parameters. The first two parameters that pass through the command are START UPINFO and PROCESS_INFORMATION. The STARTUPINFO advises the new process what the window size and the appearance and handles to the I/O files. PROCESS_INFORMATION contains a handle and the identifiers for the new process and thread. A default parameter is used for the child process and the thread handles the specifying of no creation flags.
The parent process waits for the child to process by using the waitfor singleobject() command and will be processed after the child has been terminated. The Mac operating system uses a process manager to schedule process. The number of processes are limited to the amount of memory available. The manager will maintain the information about the process. Process serial number identifies each process. The process serial number identifies a particular instance of an application. The foreground process has priority to access the CPU because the process is to allow only one foreground process at a time.
A Multiple accesses process can be in the background. The process manager will automatically terminate a process when it exits its main routine or encounters a fatal error condition. The process manager will remove the process from the list of open processes and release memory occupied the application. Management of the processes is important to the operating system, but is also important on how files are managed. File management is primarily handled by the operating system software installed on a computer. Files are a sequence of logical records that are abstract and implemented by the OS.
The user is primarily exposed to the file system portion of the operating system making it even more important to have a user-friendly approach to the management of files. “A file system is a part of the operating system that determines how files are named, stored, and organized on a volume. A file system manages files and folders, and the information needed to locate and access these items by local and remote users (“What Is NTFS? ” Local File Systems”, 2012). Systems for managing files provide users and applications with services like file access, directory maintenance, and access control or security.
Windows NTFS, or New Technology File System, file system is intended to handle high-end applications like client/server applications, engineering, and scientific systems, and network applications for large companies and schools. One of the key differences in the Windows file system from other file systems is that it treats each file as two separate streams of bits within the same file. Key features offered by NTFS are recoverability, security, larger files, and disks, journaling, compression, and encryption, and hard/symbolic links. Files are generally stored as clusters, which are one or more sectors side-by-side on the disk, or as a volume.
NTFS does not recognize sectors, which are the smallest physical storage unit on the disk. Each volume consist’s of a partition boot sector, master file table, system files, and a file section. The master file table contains information about all of the files and directories on the volume. It is a table of 1,024-byte rows, or records with each row describing a file in the volume. A file can take up more allocated space, but tracked by pointers that point to additional clusters within the volume. Recoverability is not extremely robust but the NTFS does provide recoverability for directory/file structure if a crash occurs.
Full recovery would require far more resources if it were implemented. Linux/UNIX supports a broad variety of file systems that map back into the underlying system it uses to support them. All UNIX file systems maintain a tree structure that runs under a root directory. Inodes are control structures that contain information pertaining to a file. An inode stores information like control information, size of the file, th etime the file was created, and any other information specified by the particular inode structure implemented. There are a various different file types utilized in the UNIX file system.
Included are regular files, which encompass all software or data, and directories which contain files and other directories with at least a name and identification number for each file. Symbolic links are essentially an alias for another filename or directory, and IPC end points that communicate from one process to another process running on the same computer. Special files allow access to external devices, and physical devices. File access is controlled by a set of 12 protection bits comprised of nine bits of permissions, and three bits that define special behavior.
When files are accessed their inode is called into the main memory and stored. In UNIX all file allocation is dynamic, or on an ass needed basis. An indexed method is utilized to keep track of files and their locations on the Disk. Inodes contain both direct and indirect pointers to store index information for the file they are attached to. Macintosh systems utilize the hierarchical file system approach, but have updated the system to accommodate more modern utilization. HFS plus allows for smaller file sizes and more efficient utilization of larger storage spaces.
It offers 32 bits of block allocation allowing for more files to be stored, and for the space on the hard disk to be utilized more efficiently. A Unicode file length of 255 will allow for more specific naming of files and easier differentiation between them. Dynamic inode length allows for larger branching in the file tree and less wasted space. The way files are stored is similar to that of NTFS, but varies slightly in the way the volumes are broken down. The volume header is 1024 bytes in length and contains information about the contents.
A catalog file contains information about the hierarchy of the files and folders within the volume, and an extents overflow file handles information pertaining to files with more than eight fork extensions. Attributes files are not fully explained but are a B-tree file that will be implemented in later named forks. Allocation files are bitmaps utilized to determine if there is a file allocated to an allocation block. Startup files are special files that hold information utilized when booting a system without a built in ROM. All operating systems have security issues and need good security protection of the operating system.
Operating system security (OS security) is the process of ensuring OS integrity, confidentiality, and availability. OS security refers to specified steps or measures used to protect the OS from threats, viruses, worms, malware, or remote hacker intrusions. OS security encompasses all preventive-control techniques, which safeguard any computer assets capable of being stolen, edited, or deleted if OS security is compromised. (Stuart Ellis) As memory management, process management, and file management all are part of the operating systems vital elements, security is important, and even more important.
Having unwarranted and unwanted access to files, data from outside source can be damaging and detrimental to the organization. The Unix/Linux systems have many security features that help in securing the system. UNIX has User Accounts protection, Password, file permissions, data verification, encryption, system firewalls, and application isolation. Each of the following security features has unique security for the Unix/Linux operating system (Sans. org). A widely used UNIX password security technique is the use of hashed passwords and a salt value (Operating systems, 2012).
This type of password security is used on a UNIX-based system. When a password input into the system, it is combined with a fixed length word to complete the pass word. This added word is computer generated and is associated with the time of input. For the Apple/Mac user the Apple OS/X operating system is and has been very reliable and not prone to the virus attacks as other operating systems. For the general Macintosh user, the chances of getting hacked are low, especially if that user does not frequent any online chat facilities or make any on-line purchases; things of that nature.
Apple/Mac computers have software package called, “SecureMac” which is a virus protection software only for Apple/Mac computers. Microsoft Windows has been most of the target for security issues and breeches in security. Virus’s, malware, spyware have all been problems with accessing Windows-based operating systems. Security for these is ongoing and because of the changing threats from viruses. Windows security has access control; password, file protection, and all can be protected by using the windows configuration files on the operating systems.
Conclusion for this paper shows that each Operating System has memory management, processing management, files management, and security for the system to operate. The Operating Systems of UNIX/Linux, Apple/Mac and Microsoft Windows each have operating systems with these features. Each operating system is different but operate in the same manner for the computer system to work. The memory of each operating system is the same as it needs the memory to cache, save, and execute programs within the systems.
File processing for each system also is similar but uses other software packages to process the files and deposit the data and execution files for operation. Process management is different because of its dependency on the executable programs in each operating system type. Security for each system is different as the way it is executed in the operating system. Security does the same purpose on each system, it provides security to not allow unauthorized access, system protection, and prevents data loss. The operating system is the main executable program that operates the computer, without it will not operate.
As there are different operating systems, they are all making each computer sytem operate to the best way for users. References Haas, J. (2012). WHY UNIX. Retrieved from http:/Linux. about. com/cs/Unix101/a/Whyunix. html Data Expedition. (2012). Retrieved from http://tips. dataexpedition. com/memory/html Inside Windows 2000 by David A. Solomon & Mark E. Russinovich (2012). Operating Concepts (8th ed. ). New York, New York: John Wiley and Sons. (2012) Operating Systems(7th ed. ). New York, New York: Pearson Education Inc. What is NTFS? Local File Systems. (2012). Retrieved from http://technet. icrosoft. com/en-us/library/cc778410(v=ws. 10). aspx Stallings, W. (2012). Operating systems: Internals and design principles (7th ed. ). Boston, MA: Prentice Hall. MAC OS X File Systems. (1994-2010). Retrieved from http://osxbook. com/book/bonus/ancient/whatismacosx/arch_fs. html Technical Note TN1150. (2007). Retrieved from http://dubeiko. com/development/FileSystems/HFSPLUS/tn1150. html#HFSPlusBasics http://www. washington. edu/lst/help/computing_fundamentals/computermgmt/secure_winxp Operating Systems. (2008). Retrieved from http://www. mywikibiz. com/Operating_system? amp;lang=en_us&output=json&session-id=e48fac3a399120f77fb76caecd40b9b1 Janssen, C. (ND). Operating Systems Security. Retrieved from http://www. techopedia. com/definition/24774/operating-system-security-os-security? &lang=en_us&output=json&session-id=e48fac3a399120f77fb76caecd40b9b1 Introduction to Processes and Task. (ND). Retrieved from http://3 [email protected]ions. com http://www. stuartellis. eu/articles/unix-security-features/ http://www. sans. org/course/securing-linux-unix http://its. virginia. edu/unixsys/sec/ Memory Management. (ND). Retrieved from http://www. s. uah. edu/~weisskop/Notes490/mych7_mm1. ppt? &lang=en_us&output=json&session-id=e48fac3a399120f77fb76caecd40b9b1 Windows Memory Management. (nd). Retrieved from http://wiki. answers. com/Q/Difference_between_MS-DOS_and_Window_XP_Memory_Management? &lang=en_us&output=json&session-id=5eb449a7f1ebcb74325b62cb62158562 How NFTS Works. (2003). Retrieved from http://www. keppanet. netfirms. com Mac OS X security guide. (nd). Retrieved from http://www. securemac. com/macosxsecurity. php? &lang=en_us&output=json&session-id=de09de61be8aec54504d05a42635bfc1