In computing, a shared resource, or network share, is a computer resource made available from one host to other hosts on a computer network. It is a device or piece of information on a computer that can be remotely accessed from another computer transparently as if it were a resource in the local machine. Network sharing is made possible by inter-process communication over the network.
Some examples of shareable resources are computer programs, data, storage devices, and printers. E.g. shared file access (also known as disk sharing and folder sharing), shared printer access, shared scanner access, etc. The shared resource is called a shared disk, shared folder or shared document
The term file sharing traditionally means shared file access, especially in the context of operating systems and LAN and Intranet services, for example in Microsoft Windows documentation. Though, as BitTorrent and similar applications became available in the early 2000s, the term file sharing increasingly has become associated with peer-to-peer file sharing over the Internet.
Shared file and printer access require an operating system on the client that supports access to resources on a server, an operating system on the server that supports access to its resources from a client, and an application layer (in the four or five layer TCP/IP reference model) file sharing protocol and transport layer protocol to provide that shared access. Modern operating systems for personal computers include distributed file systems that support file sharing, while hand-held computing devices sometimes require additional software for shared file access.
The most common such file systems and protocols are:
|Primary operating system||Application protocol||Transport protocol|
|Mac OS||SMB, Apple Filing Protocol|
|Unix-like systems||Network File System (NFS), SMB|
|MS-DOS, Windows||SMB, also known as CIFS|
|Novell NetWare (server)
MS-DOS, Windows (client)
The "primary operating system" is the operating system on which the file sharing protocol in question is most commonly used.
On Microsoft Windows, a network share is provided by the Windows network component "File and Printer Sharing for Microsoft Networks", using Microsoft's SMB (Server Message Block) protocol. Other operating systems might also implement that protocol; for example, Samba is an SMB server running on Unix-like operating systems and some other non-MS-DOS/non-Windows operating systems such as OpenVMS. Samba can be used to create network shares which can be accessed, using SMB, from computers running Microsoft Windows. An alternative approach is a shared disk file system, where each computer has access to the "native" filesystem on a shared disk drive.
Shared resource access can also be implemented with Web-based Distributed Authoring and Versioning (WebDAV).
The share can be accessed by client computers through some naming convention, such as UNC (Universal Naming Convention) used on DOS and Windows PC computers. This implies that a network share can be addressed according to the following:
where ServerComputerName is the WINS name, DNS name or IP address of the server computer, and ShareName may be a folder or file name, or its path. The shared folder can also be given a ShareName that is different from the folder local name at the server side. For example, \\server\c$ usually denotes a drive with drive letter C: on a Windows machine.
A shared drive or folder is often mapped at the client PC computer, meaning that it is assigned a drive letter on the local PC computer. For example, the drive letter H: is typically used for the user home directory on a central file server.
A network share can become a security liability when access to the shared files is gained (often by devious means) by those who should not have access to them. Many computer worms have spread through network shares. Network shares would consume extensive communication capacity in non-broadband network access. Because of that, shared printer and file access is normally prohibited in firewalls from computers outside the local area network or enterprise Intranet. However, by means of virtual private networks (VPN), shared resources can securely be made available for certified users outside the local network.
A network share is typically made accessible to other users by marking any folder or file as shared, or by changing the file system permissions or access rights in the properties of the folder. For example, a file or folder may be accessible only to one user (the owner), to system administrators, to a certain group of users to public, i.e. to all logged in users. The exact procedure varies by platform.
In operating system editions for homes and small offices, there may be a special pre-shared folder that is accessible to all users with a user account and password on the local computer. Network access to the pre-shared folder can be turned on. In the English version of the Windows XP Home Edition operating system, the preshared folder is named Shared documents, typically with the path C:\Documents and Settings\All users\Shared documents. In Windows Vista and Windows 7, the pre-shared folder is named Public documents, typically with the path C:\Users\Public\Public documents.
In home and small office networks, a decentralized approach is often used, where every user may make their local folders and printers available to others. This approach is sometimes denoted a Workgroup or peer-to-peer network topology, since the same computer may be used as client as well as server.
In large enterprise networks, a centralized file server or print server, sometimes denoted client–server paradigm, is typically used. A client process on the local user computer takes the initiative to start the communication, while a server process on the file server or print server remote computer passively waits for requests to start a communication session
In very large networks, a Storage Area Network (SAN) approach may be used.
Online storage on a server outside the local network is currently an option, especially for homes and small office networks.
Shared file access should not be confused with file transfer using the file transfer protocol (FTP), or the Bluetooth IRDA OBject EXchange (OBEX) protocol. Shared access involves automatic synchronization of folder information whenever a folder is changed on the server, and may provide server side file searching, while file transfer is a more rudimentary service.
Shared file access is normally considered as a local area network (LAN) service, while FTP is an Internet service.
Shared file access is transparent to the user, as if it was a resource in the local file system, and supports a multi-user environment. This includes concurrency control or locking of a remote file while a user is editing it, and file system permissions.
Shared file access involves but should not be confused with file synchronization and other information synchronization. Internet-based information synchronization may, for example, use the SyncML language. Shared file access is based on server-side pushing of folder information, and is normally used over an "always on" Internet socket. File synchronization allows the user to be offline from time to time and is normally based on an agent software that polls synchronized machines at reconnect, and sometimes repeatedly with a certain time interval, to discover differences. Modern operating systems often include a local cache of remote files, allowing offline access and synchronization when reconnected.