System components
2.3 Operating systems
2.3.7 Comparing Unix-like and Windows computers
The two most popular classes of operating system today are Unix-like operating systems (i.e. those which are either derived from or inspired by System V or BSD) and Microsoft Windows NT-like operating systems. We shall only discuss Windows NT and later derivatives of the Windows family, in a network context. For the sake of placing the generalities in this book in a clearer context, it is useful to compare
‘Unix’ with Windows.
The file and directory structures of Unix and Windows are rather different, but it is natural that both systems have the same basic elements.
Unix-like OS Windows
chmod CACLS
chown CACLS
chgrp No direct equivalent
emacs Wordpad or emacs in GNU tools kill killcommand in Resource Kit ifconfig ipconfig
lpq lpq
lpr lpr
mkfs/newfs formatand label
mount net use
netstat netstat nslookup nslookup
ps pstatin Resource Kit
route route
setenv set
su suin resource kit
tar tarcommand in Cygnus tools traceroute tracer
Table 2.1:Comparison of Unix and Windows shell commands.
Unix-like operating systems are many and varied, but they are basically similar in concept. It is not the purpose of this book to catalogue the complete zoological inventory of the ‘Unix’ world; our aim is to speak primarily of generalities which rise above such distinctions. Nonetheless, we shall occasionally need to distinguish the special features of these operating systems, and at least distinguish them from Windows. This should not detract from the fact that Windows has adopted much from the Unix cultural heritage, even though superficial attempts to hide this (e.g. renaming / with \ in filenames, changing the names of some commands etc.) might obscure the fact.
Windows NT, 2000, XP are multitasking operating systems from Microsoft which allow users to log in to a console or workstation. The consoles may be joined together in a network with common resources shared by an NT domain.
An NT host is either a network server or a personal workstation. The basic Windows distribution contains only a few tools which can be used for network administration. The Resource Kit is an extra package of documentation and unsupported software which nonetheless provides many essential tools. Other tools can be obtained free of charge from the network.
Windows did not have a remote shell login feature like Unix at the outset. One may now obtain a Terminal Server which gives Windows telnet-like functionality.
This adds an important possibility: that of direct remote administration. The
Unix-like OS Windows
/usr %SystemRoot%usually points to C:\WinNT /binor /usr/bin %SystemRoot%\System32
/dev %SystemRoot%\System32\Drivers /etc %SystemRoot%\System32\Config /etc/fstab No equivalent
/etc/group %SystemRoot%\System32\Config\SAM*(binary) /etc/passwd %SystemRoot\%\System32\Config\SAM*(binary) /etc/resolv.conf %SystemRoot%\System32\DNS\*
/tmp C:\Temp
/var/spool %SystemRoot%\System32\Spool
Table 2.2:Comparison of Unix and Windows directories and files.
free Perl Win32 package and related tools provides tools for solving a number of problems with NT from a script viewpoint.
Although we are ignoring many important operating systems by comparing just two main players, a comparison of Unix-like operating systems with NT covers most of the important differences. The latest offerings from the MacIntosh world, for instance, are based on emulation of BSD 4.4 Unix and MacOS on a Mach kernel, with features designed to compete with NT. IBM’s z-series operating
Unix-like OS Windows Standard libraries WIN32 API
Unix libraries Posix compatibility library Symbolic/hard Links Hard links (short cuts)
Processes Processes
Threads Threads
Long filenames Long filenames on NTFS Mount disk on directory Mount drive A: B: etc
endl is LF endl is CR LF
UID (User ID) SID (Subject ID)
groups groups
ACLs (non standard) ACLs
Permission bits (Only in ACLs or with Cygwin)
Shared libraries DLL’s
Environment variables Environment variables Daemons/services/init Service control manager DNS/DHCP/bootp (free) DNS/DHCP (NT server)
X windows X windows
Various window managers Windows GUI
System admin GUI (non-standard) System Admin GUI (Standard)
cfengine cfengine as of 1.5.0
Any client-server model Central server model
rsh limited implementation in server
Free software Some free software
Perl Perl + WIN32 module
Scripts Scripts
Shells DOS Command window
Primitive security Primitive security Dot files for configuration System registry
Pipes with comm1 | comm2 Combinations comm1 | comm2 Configuration by text/ascii files Config by binary database
Table 2.3:Comparison of Unix and Windows software concepts.
system for mainframes has experienced a revival of interest since the GNU/Linux system was ported to run on its virtual engine.
Unix is important, not only for its endurance as the sturdy workhorse of the network, but also for its cultural significance. It has influenced so many other operating systems (including Windows) that further comparisons would be largely redundant. Let us note briefly then, for the record, the basic correspondences between Unix-like operating systems and Windows. Many basic commands are very similar. Tables 2.1, 2.2 and 2.3 give some comparisons between Unix and Windows concepts.
Note: there are differences in nomenclature. What Windows refers to as pipes3 in its internal documentation is not what Unix refers to as pipes in its internal documentation.
A major problem for Windows has been the need for compatibility with DOS, through Windows 9x to NT. Since both DOS and Windows 9x are insecurable systems, this has led to conflicts of interest. Unix vendors have tried to keep step with Microsoft’s impressive user interface work, in spite of the poor public image of Unix (often the result of private dominance wars between different Unix vendors) but the specially designed hardware platforms built by Unix vendors have had a hard time competing with inferior but cheaper technology from the PC world.