Linux Kernel
Advantages
* Change parameters easily.
* Dynamic module(driver) loading.
* Change parameters such as IRQ/DMA when booting .(i.e for HW conflicts and you want to test different configuration)
* Both hard and soft link.
* You can name files/directory whatever you own want and Linux doesn't care.
* Rebooting is only for hardware upgrades.
* Linux is "unlimited" in how many drives you can connect.
* Linux allows you to connect drives where you need to.
* Can access any hardware directly through the device nodes, which is great for trouble shooting.
* Has drivers for more kinds of hardware (e.g. ISDN, CD writer).
* Many things that require a reboot in NT, do not in Linux.
* A large number of drivers are available as loadable modules. You load them when needed and they do not take up as much resources.
* As root (administrator)you can do what you need to. You have complete control over the system
* Linux will run on 386, 486, Pentium PPro etc.
* Can disable a driver without having it be removed from your system. (i.e the files are not deleted from the filesystem)
* Can change kernel parameters to suite your needs.
* Can change the priority of processes as needed.
* Multiple copies of the kernel kept on your system. Even if you do mess up, you can use a previous version to boot and recover.
* Can boot from a floppy to recover a screwy kernel if necessary.
* Linux dynamic libraries have version numbers in their names to make it easy to keep older copies for backward compatibility.
* Support for serial consoles
* Wide range of boot options, which you can either pre-configure or set at boot-time.
* Run-levels allow you to create different configurations to start up the services you need.
Disadvantages
* When you do need to add a driver the relink of the kernel takes a fairly long time as it must recompile as well as relink the kernel. You could compile what you needed and then relink by hand, but the requires more experience than the average user has. (However, use modules as you can then update drivers without having to reboot.)
NT
Advantages
* Adding a driver is fairly quick.
* Can compress entire filesystems or single directories
Disadvantages
* Only a few parameters changeable by tools some changeable in registry. (If you can find the right entry)
* No dynamic loading or drives. Must reboot every time!1
* Cannot change the hardware parameters while booting. You can modify the boot.ini but you have to boot first, modify it and then reboot.
* Only soft links, which are not even supported by some Microsoft applications such as Internet Information Server.
* Changes file/dir names on it's own (it knows better). I named a directory OLD, NT changed it to: Old. 2
* Reboot for everything: add driver, change IP address, change host name
* NT is limited to 23 additional drive letters (A,B,C are already taken). 3
* The concept of device nodes, does not exist in NT. You are blocked from doing anything other than what Microsoft thinks is best.4 Although there may be a device driver in the system for a particular piece of hardware, under NT you cannot access it without some specialized software.
* When connecting network drives, you can only connect them as drive letters, not on arbitrary directories. (This is changed with the Active Directory, but only Windows 2000 can use them.)
* Has drivers for more specific models of hardware.
* When you add a driver, change an IP address, etc, you are told that you need to reboot before the changes take effect and asked if you want to reboot now. Click the wrong button and there is no way to stop it.
* As the administrator you just think you can do anything. Often the system will not allow you to do things you need to.
* Kernel Parameters: NT has only a few settings for "performance". 5
* Cannot change the priority of processes as needed.
* There is only one copy of "the kernel", if it (i.e. the registry) gets screwed up so you cannot boot, you have to reinstall.
* Cannot boot from a floppy to recover. You musthave a copy of the most recent registry and cannot restore from tape.
* Have no choice as to which DLLs to keep during an upgrade. (Unless you do it by hand.)
* No support for serial console. (It's the GUI or nothing!)
* Extremely limited number of boot options. Almost no control over how the system boots.
* No run-levels. Must manually stop and start services.
* Very poor memory management.6
NT is designed as a file and print server. Despite the fact that certain applications (particularly databases) run "on behalf" of a user, it is not a multi-user system. Helen Custer even says this in her Microsoft Press book Inside Windows NT.
If you have 10 people running an application on 10 Windows PC, there are 10 copies of it in memory (one per PC). If a similar application is running on a Linux machine and users are accessing via X, there will only one copy in memory. The UNIX memory management will keep track of the text segment/region so that it is shared among all the users. This means less total memory for the system. In addition, non-NT machines must load the entire program into memory (not counting DLLs), whereas Linux just brings in what is needed. This means the total memory requirements for the system is even less.
Linux will run on more than five times as many platforms as NT. If you want a particular configuration, you can get it. Real-time is also possible. Even if you have a 286, you can run Linux.
Compatibility
Linux
* Can access DOS/Windows/NT filesystems
* Compatibility with any version of UNIX
* X is an open standard
* Many Windows programs run under UNIX (via dosemu, wine)1
* Scripts written on Linux will run almost always unchanged on another version and vis-versa
* Backups are compatible between different distributions of Linux and versions of UNIX, as well as other Systems (except NT).
NT
* Access to any UNIX filesystems is extremely limited (except via NFS)2
* NT GUI is closed, propriatary
* No UNIX programs run under NT (This does not count ones that you port.)2
* Batch scripts written on NT are not necessarily compatible with those on Win95, WFW or DOS
* NTBACKUP only works on NT and often the tapes cannot be moved from one machine to another, especially if they are different manufacturers.
The NT Challenge
Administering a Windows NT system is a "challenge" at best. So much is hidden from the administrator and often you need to dig through cryptic registry entries. However, as
g@revolutionist.com said to me: "It is expected of NT support folks to do much of their work in the registry." Which means NT administrators are "expected" to waste much of their time hunting for things that are easily accomplished in Linux.
Admittedly I do not know everything about Windows NT. However, it is required for my job and I am frequently confronted with the limitations of NT. To be fair, this might simply be because the functionality I need is hidden somewhere and I have never run across it. Therefore; I have come up with the challenge page to challenge anyone to give me an easy solution to these problems.
The problems:
* Tool to change the priority of process/task when it is started (i.e. not through task manager).
* Restrict a user from logging in more than once.
* Boot from a floppy and restore an NT system without having to install a temporary copy of the OS first.
* Multiple configurations which define different services to start. Select which of these configurations to run at boot time.
* Determine who has a specific file open without having to search by hand in the server manager.
Network and Communication
Linux
Advantages
* Automounter does not exist under NT. (Automatically mount filesystems when a directory is accessed.)1
* Using telnet & NFS together can install a new OS on the system and the next time the system is booted, it has the new system. /usr/src could be NFS mounted to a machine with the most current version of the kernel when you relink (via telnet) you get the new OS on the local system.
* NFS to mount all of the directories, so that there is a single location for all of the shared files. For example, all of /usr. By having just the programs in /bin and /sbin that are needed to boot, these too could be NFS mounted.
* Using NFS, you can even have complete NFS root filesystem. Therefore, your hard disk can be very small, maybe even just enough to swap on. Although drives under a few hundred MB are no longer available new, you can buy an older machine. Linux can run well on less RAM than NT. You could even boot from a floppy.
* Change host or domain name on a running system.UNIX
* Can provide shared resources for Windows machines.
* Choice of FREE mail readers
Disadvantages
* Few applications to access files on remote machines (without using NFS). (rcp, rcmd, rsh)
NT
Advantages
* Being able to access a file with Universal Naming Converntion names is nice (i.e \\server\share\path).
Disadvantages
* Files on network drives are often stored under the UNC name, which means they are no longer accessible if moved to a different server.
* No remote installation.
* Difficult (impossible?) to have system files on a remote drive.
* Must have the physical space locally to boot plus space for the swap file.
* Have to pay extra for Exchange client