

Almost every organization that uses a server has some kind of centralized file repository. Both Windows 2000 and Linux can be put to use as a file server, although the two present different technologies for doing so. Any special features Windows offers, Linux can also emulate to a high degree, and in some cases Linux actually has a slightly broader range of support.

One main difference is the file systems used by both operating systems. Windows 2000 can use three types of file systems natively–FAT, FAT32, and NTFS 5.0. While versions of FAT (such as FAT-12 and FAT16) date back to original MS-DOS operating system, FAT32 was brought to the public consciousness courtesy of the Windows 95 OSR/2 release. FAT-16’s limitations made it best suited for smaller disk partitions. Today those files systems pretty much history, but FAT-32 is the predominant Windows desktop file system in use today. FAT32 is not as robust as NTFS for server use due to lack of key features such as journaling or the ability to set user-by-user permissions on files and directories.

NTFS 5.0 is the most recent version of the 64-bit file system introduced in NT Service Pack 4. The identifiers and pointers in the file system use 64 bits, so that the file system can point to 264 sectors. Aside from being a robust, journaling file system, it has a number of other features newly implemented with Windows 2000. NTFS 5 can support a single volume size up to 16 billion (!) gigabytes in size, and supports long file names (up to 248 characters). New to NTFS 5 is the ability to set user quotas without third-party applications–and while the quotas can be set on a user-by-user basis, it is only possible to set it on a disk-by-disk basis, not a folder-by-folder basis. NTFS 5 also has an encryption system, although it runs as a privileged system service and is not actually an NTFS feature per se. One fair advantage FAT32 has over NTFS, however, is speed: files copied to or from a FAT32 partition generally move faster since NTFS has to spend more time marking extended attributes such as ownership. In Windows 2000, the user can now chain together multiple NTFS partitions and have them regarded as a single contiguous partition. This feature, called Dynamic Disk, has a major drawback, in that you cannot revert to a prior configuration once you’ve chained partitions together.

Nfts screenshot

Speaking of ownership, in addition to being able to control permissions to files and directories, NTFS permits users to be organized into groups, and a user can belong to more than one group at a time. Through this system, it’s possible to explicitly or implicitly grant and revoke a wide variety of rights to everything from whether or not a user can print to a given printer in a given time frame to how long a given user can idle on a remote link without being disconnected.

Linux’s standard file system is named ex2fs, and can support single volumes up to four terabytes in size and filenames up to 255 characters in length. ex2fs has long had many of the features that NTFS 5 now has–user-based quotas, for instance, have been present in Linux without the use of any third-party software since its inception. Control over who can access what resource is handled through Linux ACLs, or access control lists, which are derived from UNIX and work in a similar fashion. Since devices in Linux are represented as file system objects, setting permissions on them is accomplished no differently than permissions for regular files.

New to Linux 2.4 as of this writing is xfs, a 64-bit filesystem used on SGI‘s IRIX machines. XFS has many cool features, like nine exabyte maximum volume size. While it does require its own toolset for checking and fixing disks, all of that is included free in SGI’s package. One major consideration with XFS is the size of the module when compiled into the kernel: it can make the 2.4 kernel version of Linux as much as one-fifth larger. Those who want to run as tight a Linux ship as possible may want to think twice before using it.

Another major difference between the two are the network protocols used. Microsoft uses a network protocol called SMB, or Server Message Block. Support for SMB, named Samba, exists in Linux, letting you set up a Linux workstation in a Microsoft peer-to-peer network. Linux itself shares files through a UNIX standard called NFS (network file system). NFS clients or servers for Windows machines are generally not available freely, making it easier for Linux machines to interoperate with Windows machines than vice versa.

Microsoft Windows-based machines these days typically use TCP/IP as the standard networking protocol, although many Windows 95 and NT machines used NetBEUI for local routing (as it’s somewhat faster than TCP/IP). NetBEUI has fallen out of favor with Windows 2000, but many home hackers still prefer to install it by hand and use it. Linux can use TCP/IP, but the one NetBEUI stack that was written appears to have vanished without a trace. Regarding Novell Netware interoperatibility, Microsoft ships with basic support for NetWare connectivity out of the box. In Linux, a kernel-level module named NCPFS allows you to mount Novell filesystems, access files, receive messages, and print to Novell print queues.

Windows machines can be organized one of two ways–either in a peer-to-peer sharing arrangement called a workgroup, where each system must explicitly grant permissions to every other system, or through a directory-based domain system. Domains are more difficult to set up, of course, and require at least one Windows 2000 (or Windows NT) server machine. Key features of NTFS 5.0 are also utilized by Microsoft’s newer Active Directory service to provide even more features and control over resources in the network. See our story “The War of the Directory Services” for more details.

Linux machines can be organized peer-to-peer, with SMB filesystems, FTP shares or NFS shares. Interestingly, many Linux users find the Microsoft-developed SMB to be the easiest way to do peer-to-peer sharing, since it also affords interoperability with Windows machines.

fileshare screenshot

Finally, both operating systems allow a degree of interoperability regarding locally mounted filesystems. There are third-party drivers for Windows that let you mount an ex2fs partition. Similarly, there are Linux drivers to mount FAT partitions as well as NTFS, although NTFS partitions can only be mounted in a read-only fashion.