CS550 COMPARITIVE OPERATING SYSTEMS COMPARISON OF WINDOWS 2000 AND LINUX ON PERFORMANCE AND SECURITY Presented by Makesh Balasubramanian Student ID:999-29-3290 Course: CS 550-395 Email: balamak@iit.edu 1 COMPARISON OF WINDOWS 2000 AND LINUX ON PERFORMANCE AND SECURITY ABSTRACT: To make a choice between two operating systems really needs a lot of considerations. This paper is going to be a discussion on the features of the two famous operating systems, Microsoft’s WINDOWS 2000 and Linus Torvalds’ LINUX, focusing on the aspects of performance and security. Performance, in general, may be considered to be a technical measure of the system but what is discusses here, as performance is not only the technical aspects but also the users’ view of the two operating systems. The reason for comparing windows 2000 and Linux is that the former with its grand Microsoft banner has already established its power in the industry while the latter, considered to be the future hope by many, being so young, has given the hope of a potential alternate, leaving the users with a choice. This discussion is purely on comparing these two operating systems and doesn’t aim arriving at a conclusion of which is better or worse. 2 CONTENTS 1. Introduction. 2. History and features of Windows 2000 and Linux. 3. General comparison: a. Ease of use. b. User assistance c. History d. Technical assistance e. Pricing 4. Performance comparison: a. Stability b. Plug ‘n play c. System resilience d. Workload management e. Partitioning support f. Web service support g. Flexibility of commands h. Complexity i. Speed of execution 5. Security comparison 6. Tests 7. Conclusion 8. Bibliography. 3 INTRODUCTION: Operating system, being the nucleus, is responsible for all the actions a computer performs. Hence it has to be designed in such a way that it makes an efficient use of the system resources and perform all the desired activities. With the advent of new technologies and improvements in the already existing ones, it has become equally important for the operating system to support them, as to perform well with what it has. So, the operating systems should be designed with a foresight in such a way that it is fine with the existing technology and copes with the new technologies. At present, we have a lot of operating systems of which only a few have turned out successful. In this paper, a brief comparison of the two representative operating systems namely windows 2000 and Linux has been made. Following is the comparison of these two operating systems generally and then targeting on the aspects of performance and security. It’s quite interesting to trace the history of these two operating systems. Before going into the actual comparison lets briefly browse the histories of these two operating systems. WINDOWS 2000: The Windows traces its history from the time when the Microsoft developed a GUI based operating system to compete with the Macintosh. That was Win 3.0.It was basically developed as a desktop operating system. Then slowly the other versions of Windows were developed. Finally Windows-95 was released with much more features and later Windows-NT and then the version of Windows 2000 was released. This was developed to exploit the capabilities of a 32-bit processor. FEATURES: Windows 2000 has the same executive and microkernal architecture as the Windows NT 4.0. Windows 2000 is both single-user multitasking (W2K-professional) and multi-user multitasking (W2K server). Windows 2000 supports threads, SMP and IPC. It supports also the concept of multithreading within a single process. The thread management is fully by the kernel. The processes and threads are implemented as objects. It has got mechanisms for concurrency namely semaphores, mutex etc., The scheduling is priority-driven preemptive round robin within a priority level. 4 LINUX: It was in August 1991, when Linux first started to get into shape as a primitive operating system resembling minix. With its developer Linus Tovalds’ efforts, it soon took its shape as a major operating system. As it was given for free, many got interested in that effort and joined hands with Linus forming the Open-Source Society (OSS) and now it’s a potential alternate to Windows, a well-established operating system. FEATURES: Linux can be considered a full-featured Unix system running on a variety of platforms. It has a modular structure, that is, the kernel is organized in as a collection of loadable module. The thread management is fully by the kernel. Process are represented not as objects as in windows but represented as a task_datastructure. It supports virtual memory and the virtual memory management is by the 3 levels of paging structures. The scheduling policy followed here is the enhancement of traditional Unix scheduling with two new scheduling classes with the total of three classes namely SCHED_RR, SCHED_FIFO and SCHED_OTHER. A user’s acceptance of an interface depends mainly on the ease-of-use, quality and performance that it provides when trying to complete a specific task. An analysis of the organization and time/performance ratio of two different operating environments shows that advanced (power) users generally prefer a command-line interface to a system whereas novice users almost always prefer the graphical environment because of it’s visual object oriented approach to the system. GENERAL COMPARISON: The primary difference between the two is that in the Linux command line, tasks have to be performed using specific command and their proper parameters, whereas Windows 2000 sometimes provides a more logical task hierarchy, so it is easy for the user to perform a task even though the user has never done it before. Lets discuss some of the aspects in which these two operating systems can be compared: EASE OF USE: As we all know, the major reason for the success story of Windows is its ease of use and its logically understandable GUI. Though Linux also tries to compete with windows GUI, the vote is for the well-established Windows due to the ease of use even for the first time user. For example, let’s assume that both systems have a web server installed. In order for a user to manually start the web daemon on a system running Linux, they would have to type in a command similar to the following: “httpd –f /www/conf/httpd.conf”. This command would tell the program httpd (which is the web server) to start and use the file “/www/conf/httpd.conf” as its configuration. In Windows 2000, however, the user would just have to click the “Internet Information Services” node in the Computer Management 5 program and then select the “Default Web” and click the “Start service” button. As you can see, the steps required in performing the task in Windows 2000 were greater, but the graphical “Computer Management” program allows the user to visualize his entire system in a tree. Therefore if the user wanted to do something similar in the future, he would remember to use this program; and the chances of him finding the right information is great. However, in the command-line interface of Linux, if the user wanted to know where the root web directory was, he has no immediate way of finding it just because he remembered that he started the web server with the “httpd” command. USER ASSISTANCE: Some amount of help is available to both systems. In Linux however, help is command specific, whereas in Windows 2000 help is application specific. HISTORY: The Linux command-line provides a well-defined history that can be easily manipulated by the user. Windows 2000, however, does not have a history of any sort so it is really hard for the user to repeat tasks or retrace his steps. To view the history of commands that a user has typed, the user has to just type in a history command and he can get a list of all the previous few hundred commands. The history list is a saved file in the user’s home directory, so the user can also perform searches and compile statistics using this history file. TECHNICAL SUPPORT: Though Linux has the strong supporting arms of OSS, it still lacks the vendor depth or enterprise experience of Windows. SYSTEM MANAGEMENT: Windows has the necessary breadth of system management while Linux cant handle the variety of functions of a managed distributed environment. PRICING: As Linux is free software, it has a low and mid-ranged pricing depending on the distribution but this is not the case with Windows. PERFORMANCE: Performance benchmarking is subjective. So the only way of proving this is to try two systems and compare the response time, the requirements, and ultimately, the cost; even if Linux systems were to run half as effectively as a Windows equivalent, the low cost of implementation still means that a solution involving two systems will work out cheaper to install and maintain. There is currently almost no situation or scenario that shows Linux to be anywhere near as poor in performance as half that of an equivalent Windows system - the balance lies very much in the opposite direction. As a direct comparison, using equivalent hardware in both, it has been shown time and again that Linux will not only install, but perform adequately, on a system that Win2k will not even be able to grace with its presence. It of course depends somewhat on the requirements. Though, Windows 2000 has brought the Windows family to almost the 6 same level of reliability as Unix systems, making it a potential contender for deployment as a server, but in the server room, there is very little Linux systems cannot do more efficiently than a Windows system, and at a far lower cost. However, major omissions from an administrative point of view in Windows include granular system automation and scripting support - it is difficult to run scheduled tasks more than once a day. Given below are some of the performance comparisons: STABILITY: When compared to Windows Linux is far more stable. Windows NT has 16 million lines of code while Windows 2000 has 32 million lines of code. This large size mainly contributes to the instability of Windows 2000. PLUG ’N PLAY: As we all know Windows supports, in majority cases, the policy of plug and play but Linux, as it all started from scratch, still lags behind windows 2000 in this aspect. SYSTEM RESILIENCE: While comparing these two operating systems on the system resilience functions like the component failure resilience, dynamic reconfiguration and such functions, Windows 2000 looks ok while Linux is still developing. WORK LOAD MANAGEMENT: The work load management in both the operating systems is developing and for both these systems, it can’t be stated that the workload management has reached an appreciably enough state. PARTITIONING SUPPORT: Both the systems in this aspect works fine. WEB SERVICE SUPPORT: The web service support for these two operating systems is good as both these systems provide a good IP support, IP multi-path routing and such things but the web application server availability is just ok with Linux with PERL and J2EE but it is very good with Windows 2000 with. NET. Both these systems provide a good heterogeneous platform interoperability. FLEXIBILITY OF COMMANDS: The Linux commands are highly flexible. In Linux, unlike Windows 2000, for example, each task does not have it’s own command. Users can extend commands to perform tasks that were not thought of by the programmer. For example, the user can issue the copy command and then rename the destination file so that one command actually copies and renames a file at the same time. However, in Windows 2000, a user has to copy a file to the destination and then open up the destination location and then rename the file. The steps required to do certain tasks are reduced because of this command extensibility that Linux provides with pipes and redirection. 7 COMPLEXITY: The extensibility that Linux provides gives a way for users to perform complex operations using the same commands that they use for simple tasks. Linux provides a way for users to combine two commands using pipes or redirection, whereas in Windows 2000 this type of command-combined operation is almost impossible. For example, to search for a particular process id of a command that you have entered in Linux, you can type ‘ps –e | grep “<commandname>”’, which would filter the output of ps and display only results that match <commandname>, which makes it easy for the user to see the process id without having to look through many of them. In Windows 2000, however, the user has to manually search for the process id using the list of processes that is displayed in the Windows Task Manger. SPEED OF EXECUTION: Power users who probably know most of the important commands would be able to work quickly in the Linux environment as opposed to the Windows 2000 GUI. For example, if a user wants to move a file, he has to make sure they can see the source and destination and then they have to drag the file from one place to another. In the command-line however, the move command is called and the source and destination are passed in one line as arguments— something that is faster for a power user to do. Most tasks can be completed quickly and correctly because of the way the commands are designed. For example, deleting a file in both environments would cause the system to display a command confirmation before actually deleting the file (even if the user picked a time-saving shortcut method to delete the file). For example, in Linux there exists a ‘kill’ command to end currently running processes. If a programmer were to implement a different way of killing threads, for instance, then he would be forced to use a command like ‘killt’ instead of ‘killthread’ because the former is easier to type and could save time and user performance even though the latter is easier to remember. However in Windows 2000, since commands are usually labeled according to full phrases, one could implement a “Kill Process” and a “Kill Thread” button that is easy for the user to remember and recall. The really compelling reason to use Windows 2000 in the server room is for the speed of application development, especially in the areas of web and web-enabled desktop applications. Active Server Pages coupled with SQL server and IIS allow us to rapidly churn out web applications. SECURITY: The Internet has become more dangerous over the last few years. The amount of traffic is increasing and more important transactions are taking place. With this the risk from people trying to damage, intercept or alter secure data grows. So it is good that the systems are robust against the storms of the Internet and have many sophisticated security measures. This is a primary reason why Linux systems are so popular as Internet workhorses. However, if the Linux security tools are not used in an appropriate way then 8 they can be a liability. Problems can be caused by badly setup security measures. Linux has always been designed as a multi-user system. Windows 2000, on the other hand - its root being buried in the development of NT, was more of a patch to an existing legacy graphical shell running on DOS. Windows 2000 is not Linux, of course. One of the largest differences is in the security model - the security of NT pervades the entire operating system, not just that of the file system. Because of this, the implementation of controlling permissions and access means that the registry has to be able to encompass all possible settings for all data, applications, and resources found on the system. The biggest advantage of Linux over windows 2000 is historical. Windows grew out of a single-user context, and most developers build applications for windows with that philosophy. In windows, users are not as isolated from one another as they are in Linux. In Linux, each user gets his own separate user directory and can run processes (programs) as one another. While many of these things are possible in windows 2000, most commercial applications do not exploit this capability, nor do most windows-educated systems administrators take advantage of these features. This is one of the reasons why so many NT/2000/windows 9x machines are vulnerable to problems such as email attacks. For example, many think that the way to avoid being infected by a virus is to make it impossible for their email program to run an attached application. While this works, it is easy to be safe in Linux without having to give up this capability. First of all, Linux can protect all system programs from being touched by any user except root. That way, if a user runs a virus from his email program, it is impossible for that virus to infect anything but programs in his own home directory. Since root does not run any of those programs, the user may experience difficulties, but the system is safe. Better still, the system administrator can simply create a user account specifically for running email attachments and then isolate the account (put in ‘jail’). Then the system administrators set up the email programs so that all users automatically run their mail attachments as this ‘jailed’ user .now it is possible to run any attachment desired and it is impossible for any Trojan or virus to do harm the system or to the user’s own directory. Windows Scripting Host is not only horribly prone to insecurities, but also limiting in what can be done - the problem caused by relying on graphical tools rather than command line interfaces to maintain systems. It makes it very difficult to run centralized servers without these two basic control methods in place. Web and FTP hosting: These require separate user accounts and areas for each distinct user. In these instances, shell accounts are also useful to provide non-standard user-administered services such as cgi scripts, mailing lists, and the like. Attempting to achieve this securely within a Windows environment where applications frequently run with administrator privileges are difficult to say the least. 9 But Windows 2000 has also appreciable security systems. When dealing with the level of security obtainable with the systems it is necessary to distinguish between the security level realized by each of the standard installations and the level that can be achieved with an operating system in principle. In this respect, Windows 2000 standard installations are said to be more secure than Linux standard installations, the latter requiring further protection work by the administrator. The standard installation of a Windows 2000 network already contains an implementation of the Kerberos protocol for simple user authentication and access control in the network. Linux also provides this functionality as open-source software, albeit with additional installation effort. In the event of the theft of a mobile client encrypting the file system since the perpetrator gains unlimited access to the hardware can only protect important information. The NTFS 5.0 Windows 2000 file system, contains the Encrypted File System (EFS) installed as standard solution, which can be activated for any number of folders and all files. Encrypted file systems are available under Linux as an upgrade solution with additional installation effort. In large-scale organizations, the introduction of Public Key Infrastructures (PKI) often involves considerable expenses. Windows 2000 provides a simple PKI, which goes beyond the use of passwords and has smart card-based authentication mechanisms for use in the network. For Linux PKI functionality is only partly available at present. The results of the investigations showed that Windows 2000 was better suited for corporate use as a network operating system than Linux. Hence, when security is considered, Linux has the upper hand but it is the application that decides which operating system will suit the most. 10 TESTS: Given below are the results of some of the primary tests conducted in order to compare the two operating systems: Operation Copying a file Getting help Activation of editor Printing a file Linux Issue the copy command with both source and destination file name. Issue the help command along with the command for which help is needed. Windows 2000 Bring source and destination windows in the screen and drag’n drop. Result Linux is faster as the existence source and destination need not be seen before copying Windows 2000 is faster. But Linux has a much better command-specific help. Just F1 is enough for application specific helps. There’s no command specific helps in windows. Type the editor Just select the icon Windows 2000 is program’s command better. name Issue the print Open the file and Though both are command with the select the print from same in filename. the menu performance printing options such as selecting the number of pages and all are better in windows 2000. 11 CONCLUSION: Linux is simpler, cleaner, and more efficient with fewer bugs and generally less strangeness; whereas Windows 2000 is larger with bugs but at the same time has a lot more features and ease than Linux. So it really becomes a difficult task to judge the better of the two. As already stated, this paper aims not at concluding the better one, but comparing the features of the two, so as one can get a clearer vision of these two operating systems. Hence it could be concluded with a note that the knowledge of the features of these two operating systems, can well make one to take an educated-decision on which operating system to be chosen and for which application. BIBLIOGRAPHY: 1.“OPERATING SYSTEMS” by William Stallings. 2. www.linuxdocs.org 3. www.melbournelinux.com 4. www.microsoft.com/windows2000 5. “Linux Vs Windows 2000: the pros and cons” -an article by Erik Hughes. 12