FTP clientA FTP client uses the FTP protocol to connect to an FTP server to transfer files.
Basic FTP clients come with many operating systems, including Windows, DOS, Linux and Unix. However, many enhanced clients are available typically as shareware/freeware for Windows and as free software for Unix-like systems. Many modern web browsers have built-in FTP clients as well (though an FTP client will work better for private FTP servers than a browser).
Some operating systems including newer versions of Windows, Mac OS X or Linux (e.g. with FUSE) can mount FTP servers as virtual drives directly within the operating system, which may be easier or more convenient for some users than using a specialized client.
Desktop environments such as KDE or GNOME integrate FTP through KIO or GNOME VFS.
Some FTP clients can connect to two servers and FXP data between them. Many clients also supports SSL connections between the client and the server.
See also
- List of FTP clients
- Comparison of FTP clients
- File Transfer Protocol
Category:Internet
-
FTP:See file transfer protocol (disambiguation) and FTP (disambiguation) for alternative meanings.
FTP or File Transfer Protocol is a commonly used protocol for exchanging
files over any network that supports the TCP/IP protocol (such as the Internet or an intranet).
There are two computers involved in an FTP transfer. The first computer is an
FTP server. This computer listens on the network for connection requests from
other computers. Another computer (called the client) can make a connection to the
FTP server by using FTP client software. Once connected, the client can do a number
of file manipulation operations such as uploading files to the server, download files
from the server, rename or delete files on the server and so on.
Any software company or individual programmer is able to create FTP server or
client software because the protocol is an open standard. Virtually every computer platform
supports the FTP protocol. This allows any computer connected to a TCP/IP based network
to manipulate files on another computer on that network regardless of
which operating systems
are involved (if the computers permit FTP access).
There are many existing FTP client and server programs, and many of these are free.
Overview
FTP is commonly run on two ports, 20 and 21,
and runs exclusively over TCP.
The FTP Server listens on Port 21 for incoming connection from FTP clients. A connection
on this port forms the control stream, on which commands are passed to the FTP server.
For the actual file transfer to take place, a different connection is required.
Depending on the transfer mode, the client (active mode) or the server (passive
mode) can listen for the incoming data connection. Before file transfer begins,
the client and server also negotiate the port of the data connection. In case of
active connections, (where the server connects to the client to transfer data)
the server binds on Port 20 before connecting to the client. For passive connections,
there is no such restriction.
While data is being transferred via the data stream, the control stream sits
idle. This can cause problems with large data transfers through firewalls
which time out sessions after lengthy periods of idleness. While the file may well
be successfully transferred, the control session can be disconnected by the firewall,
causing an error to be generated.
How to connect to an FTP server
The first thing you will need in order to connect to an FTP server is an FTP client program
(See List of FTP clients). Many operating systems like Windows and Linux ship with
a command line ftp program. For this demonstration we will use the FTP client that ships
with Windows but there are many GUI based FTP clients that may be easier to use. The Linux
and Windows ftp clients are so similar that this example can be applied to both programs.
To run the Windows FTP client you will need to be in a command window (also called a "dos box"). To do this, click
on the Start button and then click Run. In the textbox type "cmd" without the quotes. If that
doesn't work type "commmand". You should now be in a dos box. Type "ftp". You should now see this:
ftp>
This is the FTP prompt. After the ftp prompt type "open ftp.freebsd.org"
This connects you to the server called ftp.freebsd.org. This server happens to
allow anonymous FTP connections which means our user name is "ftp" and our password
is our email address or it can be blank. If the server didn't support anonymous access
you would need your own user name and password which is provided by the server's
administrator. After entering your user name and password you will be logged in. Typing
the word "help" will show you the list of commands that are available. To see what directory
you are on the server type "pwd" for "present working directory". To see a list of the files and directories
that are in the present working directory type "ls". You should see something like this:
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
pub
226 Directory send OK.
ftp: 5 bytes received in 0.00Seconds 5000.00Kbytes/sec.
ftp>
This indicates there is a pub directory. To go into the "pub" directory type
"cd pub". Now that you are in the "pub" directory you can go into the FreeBSD
by typing "cd FreeBSD". Now type "ls" again. This will produce a list of directories
and files in the FreeBSD directory. One of the files is the README.TXT file. To
download that file to your hard drive put the ftp client in ASCII mode by typing
"ascii" and then type "get README.TXT". On Unix-like ftp server like this one
file names are case sensitive so be sure to capitalize the README.TXT.
Most anonymous FTP server account provide read-only access meaning we can only
download files from these computers. On servers where we have write access we could
upload a file to the server from our local hard drive by typing "put myFileIWantToUpload.ext".
Now you can close the client by typing "quit". To get more help with this client type "ftp /?"
at the command line. On a Unix-like system you could type "man ftp" at the command line.
Below is a graphical printout of the above FTP session after it has been completed.
A graphical example of the above how-to
Objectives of FTP
The objectives of FTP, as outlined by its RFC, are:
# To promote sharing of files (computer programs and/or data).
# To encourage indirect or implicit use of remote computers.
# To shield a user from variations in file storage systems among different hosts.
# To transfer data reliably and efficiently.
Other uses of FTP
FTP is normally used by human being who want to access file systems on other computers.
It's also common for computer programs to use FTP to send to and obtain file from other
computers usually in a routine, automated fashion. For example, a computer at a supplier might
store data about its warehouses' current inventory in a database. The supplier
may need to keep other partner companies aware of its current inventory. A solution to this may
be for the supplier to write a program that dumps the inventory data from its database into a text file,
XML file, or EDI file and then use FTP to
send the file to its business partner's FTP server over the Internet
or some other type of WAN. Since FTP doesn't use encryption companies may eventually optimize this
arrangement to use SFTP.
Disadvantages
# Passwords and file contents are sent in clear text, which can be intercepted by eavesdroppers.
# Multiple TCP/IP connections are used, one for the control connection, and one for each download, upload, or directory listing. Firewall software needs additional logic to account for these connections.
# It is hard to filter active mode FTP traffic on the client side by using a firewall, since the client must open an arbitrary port in order to receive the connection. This problem is largely resolved by using passive mode FTP.
# It is possible to abuse the protocol's built-in proxy features to tell a server to send data to an arbitrary port of a third computer.
# FTP is an extremely high latency protocol due to the number of commands needed to initiate a transfer.
Security problems
FTP is an inherently insecure method of transferring files because there is no way for FTP software to transfer data in an encrypted fashion and still conform to the protocol's specifications. What this means is that under most network configurations, user names, passwords, FTP commands and transferred files can be "sniffed" or viewed by someone else on the same network using a protocol analyzer (or "sniffer").
(Most Internet protocols like HTTP, SMTP and telnet have similar problems.)
The common solution to this problem is to use SFTP (SSH File Transfer Protocol) which is based on SSH.
FTP return codes
When an FTP client sends requests to an FTP server the server is obliged to respond
with predifined 3 digit numeric codes. For example, requesting a list of contents
in the directory (ls) will cause the server to send to the client a 200-PORT command
successful and a 150-opening ASCII mode data connection for /bin/ls. Below is a list
of all the response codes defined for FTP.
Anonymous FTP
Many sites that run FTP servers enable so-called "anonymous ftp". Under
this arrangement, users do not need an account on the server.
By default, the account name for the anonymous access is 'anonymous' or 'ftp'. This account
does not need a password. Although users are commonly asked to send their email
addresses as their passwords for authentication, usually there is trivial or no verification,
depending on the FTP server and its configuration.
Data format
While transfering data over the network, two modes can be used
# ASCII mode
# Binary mode
The two types differ from the way they send the data. When a file is sent using
an ASCII-type transfer, the individual letters, numbers and characters are sent.
The receiving machine saves these in a text file in the appropriate format (for
example, a Unix machine saves it in a Unix format, a Macintosh saves it in a Mac
format). Hence if an ASCII transfer is used it can be assumed plain text is
sent, which is stored by the receiving computer in its own format.
Sending a file in binary mode is different. The sending machine sends each file
bit for bit and as such the recipient stores the bitstream as it receives it.
By default, most FTP clients use ASCII mode. Some clients, nevertheless are more
clever and try to determine the required transfer-mode by inspecting the file's contents.
FTP and web browsers
Most recent web browsers and file managers can connect to FTP servers.
This allows manipulation of remote files over FTP through an interface similar to that
used for local files. This is done via an FTP URL, which takes the form
ftp://<ftpserveraddress> (e.g., [ftp://ftp.gimp.org/]).
A password can optionally be given in the URL, e.g.:
ftp://<login>:<password>@<ftpserveraddress>.
Most web-browsers require the use of passive mode FTP, which not all FTP servers are capable of handling.
References
The protocol is standardized in RFC 0959 by the IETF as:
- RFC 0959 File Transfer Protocol (FTP). J. Postel, J. Reynolds. Oct-1985. This obsoleted the preceding RFC 765 and earlier FTP RFCs back to the original RFC 114.
- See also RFC 1579 Firewall-Friendly FTP.
See also
- Archie search engine
- FTP server
- FTP client
FTP-like protocols
- FTPFS
- FTPS, FTP run over SSL
- Secure FTP, FTP run over SSH
- Simple File Transfer Protocol (SFTP), the historic protocol RFC 913
- SSH file transfer protocol (SFTP), a protocol running over SSH
- Trivial File Transfer Protocol (TFTP)
Software
- Comparison of FTP clients
- List of FTP clients
- List of FTP servers
External links
- [http://www.ftpplanet.com/ftpresources/basics.htm New users guide] Useful introduction.
- RFC 959 — File Transfer Protocol (FTP). J. Postel, J. Reynolds. Oct-1985., also [http://www.rfcsearch.org/rfcview/RFC/959.html RFC0959 in html format]
- RFC 1579 — Firewall-Friendly FTP
- RFC 2228 — FTP Security Extensions
- [http://www.ncftp.com/libncftp/doc/ftp_overview.html An Overview of the File Transfer Protocol] — explains how the FTP works at the protocol level
- [http://pintday.org/whitepapers/ftp-review.shtml FTP Reviewed] — a review of the protocol notably from a security standpoint
- [http://www.nsftools.com/tips/RawFTP.htm Raw FTP command list]
- [http://www.ftpplanet.com/ftpresources/ftp_codes.htm FTP Sever return codes and their explaination]
- [http://slacksite.com/other/ftp.html Active vs. Passive FTP explained and illustrated]
- [http://dmoz.org/Computers/Internet/Protocols/FTP/ Dmoz directory about FTP]
- [http://cyberduck.ch/ Cyberduck] — a freely distributable GPL licensed FTP/SFTP client for Mac OS X.
- [http://www.pegsol.com/whitehorn/downloads.htm#ftp Whitehorn FTP] a free FTP server for Windows.
- [http://filezilla.sourceforge.net/ Filezilla] — a freely distributable GPL licensed FTP client for Windows.
- [http://www.sbbi.net/site/jafs/ JAFS] — enterprise class Open Source Java FTP server
- [http://www.ncftp.com/ncftpd/doc/misc/ftp_and_firewalls.html The FTP and Your Firewall] — details FTP's problems with firewalls and how to deal with them
- [http://www.eventhelix.com/RealtimeMantra/Networking/FTP.pdf FTP Sequence Diagram] (in PDF format)
Category:Internet protocols
Category:Internet standards
Category:File transfer protocols
ko:FTP
ja:File Transfer Protocol
FTP serverThe term FTP server can mean one of two things:
# a computer responsible for serving any kind of files, via the File Transfer Protocol to FTP clients which can also be web browsers;
# a software program that implements the FTP protocol and is working as a daemon serving any kind of files.
Connections to FTP servers are made using FTP clients or certain web browsers that function as FTP clients.
Some FTP servers also supports SSL connections.
See also
- List of FTP servers
- Comparison of FTP servers
Category:World Wide Web
Category:Network-related software
Category:Servers
Microsoft Windows
Microsoft Windows refers to a series of operating environments and operating systems created by Microsoft for use on personal computers and servers.
Background
Microsoft first introducted an operating environment named Windows in 1985, as an add-on to MS-DOS. This was in response to Apple Computer's then-new computer system, the Apple Macintosh, which used a graphical user interface (GUI). Microsoft Windows eventually came to dominate the world personal computer market with market analysts like IDC estimating that Windows has around 90% of the client operating system market. [http://www.linuxworld.com.au/index.php/id;940707233;fp;2;fpid;1] All recent versions of Windows are fully-fledged operating systems. Windows is proprietary closed source software: Microsoft Corporation owns the software's copyright and controls its distribution.
Windows was developed for IBM PC-compatible computers (these were based on Intel x86 architecture), and today, almost all versions of Windows are made for this hardware-platform (although Windows NT was written as a cross-platform system for Intel and MIPS processors, and later appeared on the PowerPC and DEC Alpha architectures). The popularity of Windows made Intel CPUs more popular and vice versa. In fact, the term Wintel became used to describe PC-compatible computers running a version of Windows.
Microsoft Windows versions
The term Windows is used as a collective term for several generations of operating system products which can be classified into the following categories:
; 16-bit operating environments : The early versions of Windows were just graphical user interfaces or desktops, mostly because they used the underlying MS-DOS for file system services and all operating processes. Soon, 16-bit Windows versions would have their own executable file format and provide their own device drivers (graphics, printer, mouse, keyboard and sound). Unlike DOS, the Windows environment allowed all users to execute multiple graphical applications at the same time (cooperative multitasking). Finally, they implemented a software segment-based virtual memory scheme which allowed the GUI to run applications larger than available memory: code segments and resources are swapped in and thrown away when useless or memory becomes scarce and data segments move in memory when a given application has relinquished processor control. Examples include Windows 1.0 (1985) and Windows 2.0 (1987) and its close relative Windows/286.
; Hybrid 16/32-bit operating environments : Windows/386 introduced a 32-bit protected mode kernel and virtual machine monitor. For the duration of a Windows session, it provided a device virtualization for the disk controller, video card, keyboard, mouse, timer and interrupt controller. The user-visible consequence was that it became possible to preemptively multitask multiple MS-DOS environments in separate windows (graphical applications required switching the window to full screen mode). Windows applications were still multi-tasked cooperatively inside a real-mode environment. Windows 3.0 (1990) and Windows 3.1 (1992) perfected the design, notably thanks to virtual memory and loadable virtual device drivers (VxDs) which allowed them to share arbitrary devices between multitasked DOS windows. Most important, Windows applications could now run in 16-bit protected mode (when Windows was running in Standard or 386 Enhanced Mode), which gave them access to several megabytes of memory and removed the obligation to participate in the software virtual memory scheme. They still ran inside the same address space, where the segmented memory provided a degree of protection, and multi-tasked cooperatively. For Windows 3.0 Microsoft also rewrote critical operations from C into assembly, making this release faster and less memory-hungry than its predecessors.
; Hybrid 16/32-bit operating system : With the introduction of 32-Bit File Access in Windows for Workgroups 3.11, Windows could finally stop relying on DOS for file management. Leveraging this, Windows 95 introduced Long File Names, reducing the 8.3 DOS to the role of a boot loader. MS-DOS was now bundled with Windows; this notably made it (partially) aware of long file names when its utilities were run from within Windows, but angered the competition. The most important novelty was the possibility of running 32-bit multi-threaded preemptively multitasked graphical programs. There were three releases of Windows 95 (the first in 1995, then subsequent bug-fix versions in 1996 and 1997, only released to OEMs, which added extra features such as FAT32 support). Microsoft's next OS was Windows 98; there were two versions of this (the first in 1998 and the second, named "Windows 98 Second Edition", in 1999). In 2000, Microsoft released Windows Me (Me standing for Millennium Edition), which used the same core as Windows 98 but adopted the visual appearance of Windows 2000, as well as a new feature called System Restore, allowing the user to set the computer's settings back to an earlier date. It was not a very well received implementation, and many user problems occurred. ME was considered a stopgap to the day both product lines would be seamlessly merged. Microsoft left little time for Windows Me to become popular before announcing their next version of Windows which would be called XP.
; 32-bit operating systems : Originally designed and marketed for higher-reliability business use with no DOS heritage. The first release was Windows NT 3.1 (1993, numbered "3.1" to match the Windows version and to one-up OS/2 2.1, IBM's flagship OS codeveloped by Microsoft and Windows NT's main competitor at the time), which was followed by NT 3.5 (1994), NT 3.51 (1995), and NT 4.0 (1996); the latter implemented the Windows 95 user interface. Microsoft then moved to combine their consumer and business operating systems. Their first attempt, Windows 2000, failed to meet their goals, and was released as a business system. The home consumer edition of Windows 2000, codenamed "Windows Neptune", ceased development and Microsoft released Windows Me in its place. Eventually "Neptune" was merged into their new project, Whistler, which later became Windows XP. Since then, a new business system, Windows Server 2003, has expanded the top end of the range, and the forthcoming Windows Vista will complete it. Windows CE, Microsoft's offering in the mobile and embedded markets, is also a true 32-bit operating system.
; 64-bit operating systems : The newest category, are designed for AMD's AMD64 CPU architecture, Intel's Intel Architecture 64-bit, and EM64T. The 64-bit Windows family comprises Windows XP Itanium edition, Professional x64 Edition, and Windows Server 2003; Windows XP Professional and Server 2003 x64 editions were released on April 25, 2005. Itanium editions already came out in 2002. Early indications are that Windows Vista, the projected successor to Windows XP, will be released in both 32-bit and 64-bit versions.
See also: List of Microsoft Windows versions.
Microsoft Windows history
The first independent version of Microsoft Windows, version 1.0, released in 1985, lacked a degree of functionality and achieved little popularity. Windows 1.0 did not provide a complete operating system; rather, it extended MS-DOS. Microsoft Windows version 2.0 was released in 1987 and was slightly more popular than its predecessor.
Microsoft Windows version 3.0, released in 1990, was the first version to achieve broad commercial success. It featured improvements to the user interface and to multitasking capabilities. In 1995, Microsoft released Windows 95, which made further changes to the user interface.
In 2001, Microsoft released Windows XP, a version that used the kernel from Microsoft Windows NT. With Windows XP, Microsoft merged the consumer-oriented Windows 3.1 line with the more commercially-oriented Windows NT line of products.
Interface
kernel
The most obvious feature of the more recent Windows versions (since Windows 95 and NT 4.0) besides the window, is the desktop, which holds various icons, or graphical objects that the user can double-click to open. Windows has produced a significant change in the way people interact with computers; it is possible to perform most common tasks, some quite complex, with very little computer knowledge.
Another quite significant feature of Windows since Windows 95 is the Start Button and Start Menu, which gives users access to installed programs and many of the other features of the operating system. It is attached to the taskbar (blue in the picture on the right).
Windows XP introduced a new visual style dubbed "Luna", which updated the classic Windows style (a plain grey box look) with a more graphical appearance. The new style features bold colors and a larger titlebar and start button, which some people have labelled immature or childish. Users can still elect to use the old Windows 9x/2000 visual style.
There is a view that modern operating systems need to cater to the vastly increased user base with a lower average computer skill level and the increased power and complexity of modern computer systems. However, some users accuse the Windows interface of isolating the user from too much of the inner workings of the computer, making it more difficult to control, configure and troubleshoot some system features.
Windows also comes with features to help the disabled through its accessibility options. Under Windows XP, these features include the Narrator, Magnifier and contrast display mode. However, these are not suitable for everyone. Other customized builds of other operating systems may provide the needed features.
Popularity
Microsoft Windows is installed on the majority of personal computers. A July 2005 poll of Network Computing magazine readers found that 87% of their organisations used Microsoft's desktop operating systems. [http://www.networkcomputing.com/showitem.jhtml?articleID=165701950&pgno=8#2] It achieved enormous market penetration due to the domination of MS-DOS in the early days of PC compatible computers (IBM-PC clones). It is also the primary platform for Microsoft Office and many computer games.
Microsoft's operating system has also benefited from not being tied to the success of one hardware manufacturer, and from Microsoft's willingness to license the operating system to manufacturers. For example, this is in contrast with Apple Computer, which does not license Mac OS X to other manufacturers, as well as Sun, which did not license Solaris before it was made free and open-source.
In the past, companies who wanted to be in the computer business had to create their own operating system (such as the Amiga) or choose another OS; even an exclusive license with one vendor was significantly cheaper than developing and supporting a new operating system and software base.
Due to Microsoft's exclusive licensing agreements with many computer vendors, Windows today comes pre-installed on most computers as a bundled OEM version, making it the default or only choice for much of the market. Most consumers do not delete Windows and install another operating system.
For some consumers, Windows is the only valid option as their computing environment or is mandated by their workplace; additionally, the unfamiliarity with most other operating systems limits the desire to switch to other operating systems. Further, a growing part of the computer market lacks the technical knowledge needed to install an operating system.
Finally, the large software base of programs available for the Windows family of operating systems has become the single largest self-perpetuating reason for the popularity of Windows. In recent years, many companies have started up with the sole intention of releasing Windows software; the fact that there is already a large customer base in place is reason enough for such companies to only spend resources on Windows software development. In turn, the fact that many companies are supporting Windows exclusively is reason for many customers to choose Windows.
Security
OEM
Security has been a major weakness of Windows for many years. Due to the widespread usage of Windows on desktops, many crackers (also known as Black Hat hackers) have targeted Windows rather than the lesser used operating systems such as Linux, Unix, Mac OS X, and FreeBSD. Additionally most modern operating systems were designed for security in a multi-user and/or networked environment and have a relatively small number of security issues. Windows was originally designed for ease-of-use on a single-user PC without a network connection, and did not have security features built in from the outset. Combined with occasionally flawed code (such as buffer overflows), Windows is a continous target of worms and virus writers. In June 2005, Bruce Schneier's Counterpane Internet Security reported that it had seen over 1,000 new viruses and worms in the previous six months.
Microsoft publicly admitted their ongoing security problems shortly after the turn of the century and now claims to regard security as their number one priority. As a result, Service Pack 2 for Windows XP greatly increases the security. Microsoft releases security patches through its Windows Update service approximately once a month, although critical updates are made available at shorter intervals. In Windows 2000 and Windows XP, updates can be automatically downloaded and installed if the user selects to do so.
A study conducted by Kevin Mitnick and marketing communications firm, Avantgarde, found that an unprotected and unpatched Windows XP system lasted only 4 minutes on the Internet before it was compromised. [http://www.avantgarde.com/ttln113004.html] The AOL/National Cyber Security Alliance Online Safety Study of October 2004 determined that 80% of Windows users were infected by at least one spyware/adware product. [http://www.staysafeonline.info/pdf/safety_study_v04.pdf] Much documentation is available describing how to increase the security of Microsoft Windows products. Typical suggestions include deploying Microsoft Windows behind a hardware or software firewall, running anti-virus and anti-spyware software, and installing patches as they become available through Windows Update.
Windows emulation software
Emulation allows the use of some Windows applications without using Microsoft Windows. These include:
- WINE – an almost complete free software / open source software implementation of the Windows API, allowing one to run some Windows applications on x86 Unix-based platforms, including Linux.
- Cedega (formerly known as WineX) – TransGaming Technologies' proprietary fork of WINE, which is designed specifically for running games written for Microsoft Windows under Linux.
- ReactOS – open source operating system, aimed to be compatible with Windows NT apps and drivers.
- Freedows and Alliance OS – a very ambitious project, and a subsequent spinoff, that tried to clone Windows but withered away.
- Project David – ambitious and controversial project to fully emulate Windows programs to run on other OSs.
- CrossOver Office – another WINE spin-off that allows Windows programs to run on other OSs.
- Captive NTFS – a software "wrapper" for fuller, more-compatible open-source implementations of the Windows NTFS file system.
- ndiswrapper – a driver wrapper designed to let Linux/IA32 use Windows drivers for wireless networking hardware.
- E/OS – a virtual machine emulation system that strives for making it possible to run any program designed for any operating system without the need to actually install any other operating system.
See also
- Architecture of Windows 2000
- Blue Screen of Death
- Comparison of operating systems
- Hardware
- Hardware abstraction layer
- KMixer
- VGASAVE
- Windows Driver Model
- WinHEC
- History of Microsoft Windows
- List of operating systems
- Microsoft Anti-Virus for Windows
- Microsoft Visual Studio
- Volume Shadow Copy Service
- Windows Blackcomb – next generation server platform
- Windows Explorer
- Windows Genuine Advantage
- Windows Media
- Windows vs. Linux
External links
Official
- [http://www.microsoft.com/windows/default.mspx Microsoft's Official Windows Website]
- [http://www.windows.com Official Promotional Website (Windows.com)]
- [http://www.microsoft.com/windows/WinHistoryProGraphic.mspx Windows history time line from Microsoft]
Tips and documentation
- [http://www.pcnineoneone.com/howto/multiboot1.html How to run multiple versions of Windows on one PC]
- [http://www.tech-recipes.com/windows.html Tech-Recipes Windows Guide] - Listing of almost 500 Windows Tutorials
- [http://wiki.havenite.net/index.php?title=The_Windows_Documentation_Project The Windows Documentation Project (wiki)]
- [http://www.aeroxp.net "AeroXperience"] – Windows Vista Information and Customization
- [http://www.dwheeler.com/essays/securing-windows.html Securing Microsoft Windows (for Home and Small Business Users)]
- [http://wiki.dehumanizer.com/index.php/Windows_tips Windows tips] (security, stability, etc.) (wiki)
- [http://www.sarc.com/ Symantec Anti-Virus Research Center] – excellent informational security resource, and Symantec are makers of Norton Anti-Virus (3rd party software sold separately)
- [http://www.dotwhat.net/ dotwhat? - File Extension Listing] – a huge listing of file extensions and the programs that use them
- [http://www.bredel.homepage.t-online.de/Windows/Windows-English/windows-english.html Windows] – tips and tricks for Windows 98, ME, NT, 2000 and XP
- [http://markhobley.yi.org/windows/supportscript/index.html Windows Support Script]
- [http://markhobley.yi.org:8000/WinHome The Windows Wiki]
Reviews and evaluation
- [http://www.winsupersite.com/default.asp Paul Thurrott's SuperSite for Windows] – an exhaustive evaluation of Microsoft's products and technologies
- [http://www.avantgarde.com/xxxxttln.pdf "Time to Live on the Network"] – a security study by Kevin Mitnick and AvantGarde (PDF)
- [http://www.actsofvolition.com/archives/2001/december/windowsxprough Windows XP: rough around the edges] – an UI review of Windows XP
- [http://www.frankmahler.de/mshame/ Frank Mahler's Interface Hall Of Shame]
- [http://www.staysafeonline.info/pdf/safety_study_v04.pdf AOL/National Cyber Security Alliance Online Safety Study (October 2004)] (PDF)
- [http://www.pixelcentric.net/x-shame/ Interface Hall of Shame] – an analysis of user interfaces with a focus on Windows
Other
- [http://www.levenez.com/windows/ Windows history] – a Windows history time line graph by Éric Lévénez
- [http://www.aci.com.pl/mwichary/guidebook/interfaces/windows GUIdebook: Windows Gallery] – a website dedicated to preserving and showcasing graphical user interfaces
- [http://www.download.com/ Download.com] – application programs for download, for Windows operating systems
- [http://www.pcmag.com/article2/0,1895,1868435,00.asp Windows 20th Birthday]
Category:Operating systems
Category:Windowing systems
Category:Microsoft Windows
zh-min-nan:Microsoft Windows
ko:마이크로소프트 윈도우즈
ms:Microsoft Windows
ja:Microsoft Windows
simple:Microsoft Windows
th:ไมโครซอฟท์วินโดวส์
Linux
:See Linux kernel for the kernel itself. See Linux (washing powder) for the Swiss brand of detergent. See 9885 Linux for the asteroid.
asteroid frequently featured sitting, is the official Linux mascot.]]
mascot
Linux is a computer operating system and its kernel. It is one of the most prominent examples of free software and of open-source development: unlike proprietary operating systems such as Windows and Mac OS, all of its underlying source code is available to the public and anyone can freely use, modify, and redistribute it.
In the narrowest sense, the term Linux refers to the Linux kernel, but it is commonly used to describe entire Unix-like operating systems (also known as GNU/Linux) that are based on the Linux kernel combined with libraries and tools from the GNU Project and other sources. Most broadly, a Linux distribution bundles large quantities of application software with the core system, and provides more user-friendly installation and upgrades.
Initially, Linux was primarily developed and used by individual enthusiasts. Since then, Linux has gained the support of major corporations such as IBM,Sun Microsystems, Hewlett-Packard, and Novell for use in servers and is gaining popularity in the desktop market. Proponents and analysts attribute this success to its vendor independence, low cost, security, and reliability.
Linux was originally developed for Intel 386 microprocessors and now supports all popular computer architectures (and several obscure ones). It is deployed in applications ranging from embedded systems (such as mobile phones and personal video recorders) to personal computers to supercomputers.
History
supercomputer project for a free operating-system.]]
In 1983, Richard Stallman founded the GNU project, which today provides an essential part of most Linux systems (see also GNU/Linux, below). The goal of GNU was to develop a complete Unix-like operating system composed entirely of free software. By the beginning of the 1990s, GNU had produced or collected nearly all of the necessary components of this system—libraries, compilers, text editors, a Unix-like shell, and other software—except for the lowest level, the kernel. The GNU project began developing their own kernel, the Hurd, in 1990 (after an abandoned attempt called Trix). According to Thomas Bushnell, the initial Hurd architect, their early plan was to adapt the BSD 4.4-Lite kernel and, in hindsight, "It is now perfectly obvious to me that this would have succeeded splendidly and the world would be a very different place today" [http://www.groklaw.net/article.php?story=20050727225542530]. However, due to a lack of cooperation from the Berkeley programmers, Stallman decided instead to use the Mach microkernel, which subsequently proved unexpectedly difficult, and the Hurd's development proceeded slowly.
Mach microkernel
Meanwhile, in 1991, another kernel—eventually dubbed "Linux"—was begun as a hobby by Finnish university student Linus Torvalds while attending the University of Helsinki. Torvalds originally used Minix, a simplified Unix-like system written by Andrew Tanenbaum for teaching operating system design. However, Tanenbaum did not permit others to extend his operating system, leading Torvalds to develop a replacement for Minix. Linux started out as a terminal emulator written in IA-32 assembler and C, which was compiled into binary form and booted from a floppy disk so that it would run outside of any operating system. The terminal emulator was running two threads: one for sending and one for receiving characters from the serial port. When Linus needed to read and write files to disk, this task-switching terminal emulator was extended with an entire filesystem handler. After that, it gradually evolved into an entire operating system kernel intended as a foundation for POSIX-compliant systems. The first version of the Linux kernel (0.01) was released to the Internet on September 17, 1991, with the second version following shortly thereafter in October [http://groups.google.com/groups?selm=1991Oct5.054106.4647%40klaava.Helsinki.FI]. Since then, thousands of developers from around the world have participated in the project. Eric S. Raymond's essay The Cathedral and the Bazaar discusses the development model of the Linux kernel and similar software.
By the 0.01 release, Linus had implemented enough POSIX system calls to make Linux run the GNU Bash shell; after this bootstrapping procedure, development accelerated rapidly. A computer running Minix was originally necessary in order to configure, compile, and install Linux. Initial versions of Linux also required an operating system to be present in order to boot from a hard disk, but soon there were independent bootloaders, the most well known being lilo. The Linux system quickly surpassed Minix in functionality; Torvalds and other early Linux kernel developers adapted their kernel to work with the GNU components and user-space programs to create a complete, fully functional, free operating system.
Today, Torvalds continues to direct the development of the kernel, while other subsystems such as the GNU components are developed separately. The task of producing an integrated system, which combines all of these basic components along with graphical interfaces (such as GNOME or KDE, which in turn are based on the X Window System) and application software, is now performed by Linux distribution vendors / organizations.
Tux the penguin is the logo and mascot of Linux (although there are other, less common representations; see OS-tan), based on an image created by Larry Ewing in 1996.
The name "Linux" was coined, not by Torvalds, but by Ari Lemmke. Lemmke was working for the Helsinki University of Technology (HUT), located in Espoo near Helsinki, as an administrator of ftp.funet.fi, an FTP server which belongs to the Finnish University and Research Network (FUNET), which has numerous organizations as its members, amongst them the HUT and the University of Helsinki. He was the one to invent the name Linux for the directory from which Torvalds' project was first available for download [http://liw.iki.fi/liw/texts/linux-anecdotes.html]. (The name Linux was derived from Linus' Minix.) The name was later trademarked (see below).
Licensing
The Linux kernel, along with most of the GNU components, is licensed under the GNU General Public License (GPL). The GPL requires that all source code modifications and derived works also be licensed under the GPL, and is sometimes referred to as a "share and share-alike" (or copyleft) license. In 1997, Linus Torvalds stated, "Making Linux GPL'd was definitely the best thing I ever did." [http://kde.sw.com.sg/food/linus.html] Other subsystems use other licenses, although all of them share the property of being free/open-source; for example, several libraries use the LGPL (a more-permissive variant of the GPL), and the X Window System uses the permissive (non-copyleft) MIT License.
The Linux trademark ([http://assignments.uspto.gov/assignments/q?db=tm&qt=rno&reel=&frame=&sno=&rno=1916230 U.S. Reg No: 1916230]) is owned by Linus Torvalds, registered for "Computer operating system software to facilitate computer use and operation." The licensing of the trademark is now handled by the Linux Mark Institute (LMI). LMI has also sought to enforce the Linux trademark in countries other than the US. In September 2005, Intellectual Property Australia, the trademark regulator in Australia, rejected an application to trademark Linux.
Pronunciation
Linux is commonly pronounced either to rhyme with minix , or to rhyme with my nicks . The first pronunciation is considered more correct, while the second has become popular for sounding more natural in English. Other variations are also possible, but less frequently heard.
In 1992, Torvalds explained
[http://groups.google.com/groups?selm=1992Apr23.123216.22024%40klaava.Helsinki.FI&output=gplain] (IPA pronunciations added to quote in braces):
:"'li' is pronounced with a short [ee] sound: compare prInt, mInImal etc. 'nux' is also short, non-diphthong, like in pUt . It's partly due to minix: linux was just my working name for the thing, and as I wrote it to replace minix on my system, the result is what it is... linus' minix became linux."
An [http://www.jx90.com/linux.html audio file] of Torvalds saying "Hello, this is Linus Torvalds, and I pronounce Linux as /linəks/" also exists [http://www.paul.sladen.org/pronunciation/]. Note that in English, "Linux" and "Minix" are usually pronounced with a short /I/ sound that is different from Torvalds's Finland-Swedish pronunciation of these words.
See also List of words of disputed pronunciation for a discussion of the various ways "Linux" is pronounced.
Linux and GNU/Linux
Because the GNU libraries and programs, an essential part of nearly all Linux distributions, stem from a long-standing free operating system project that predates the Linux kernel, Richard Stallman and the Free Software Foundation ask that the combined system (regardless of distribution) be referred to as GNU/Linux or a Linux-based GNU system. Torvalds, the creator of the Linux kernel, has said that he finds calling Linux in general GNU/Linux "just ridiculous." Still, some distributions do use this name — notably Debian GNU/Linux — while most people simply refer to the system as Linux. The distinction between Torvalds' kernel and entire Linux-based systems that contain the kernel is a perennial source of confusion, and the naming remains controversial.
Litigation
In March 2003, the SCO Group (SCO) filed a lawsuit against IBM claiming that IBM had contributed some portions of SCO's copyrighted code to the Linux kernel in violation of IBM's license to use Unix. Additionally, SCO sent letters to a number of companies warning that their use of Linux without a license from SCO may be actionable, and claimed in the press that they would be suing individual Linux users. This controversy has involved lawsuits by SCO against Novell, DaimlerChrysler (partially dismissed in July, 2004), and AutoZone, and by Red Hat and others against SCO.
To date, no proof of SCO's claims of copied code in Linux has been provided and SCO's claims have varied widely. A few of Novell's press releases seem to demonstrate serious problems with SCO's claims:
- [http://www.novell.com/news/press/archive/2003/06/pr03036.html 2003-May-15] Novell Statement on SCO Contract Amendment (good news for Linux users)
- [http://www.novell.com/news/press/archive/2003/05/pr03033.html 2003-May-28] Novell Challenges SCO Position, Reiterates Support for Linux
- [http://www.novell.com/news/press/pressroom/news_brief/archive/2003/05/pr03022.html 2003-May-30] Novell statement re: SCO press conference allegations
- [http://www.novell.com/news/press/archive/2003/06/pr03036.html 2003-Jun-06] Novell Statement on SCO Contract Amendment
- [http://www.novell.com/news/press/pressroom/news_brief/archive/2003/11/pr03042.html 2003-Nov-18] Novell Statement on SCO claims regarding a non-compete clause in Novell-SCO contracts
The most comprehensive coverage of this suit is given by Groklaw.
Distributions
Linux is predominantly used as part of a Linux distribution (commonly called a 'distro'). These are compiled by individuals, loose-knit teams, and various professional organizations. They include additional system software and application programs, as well as certain processes to install these systems on a computer. Distributions are created for many different purposes, including localization, architecture support, real-time applications, and embedded systems, and many deliberately include only free software. Over 450 distributions are available [http://lwn.net/Distributions/].
A typical general-purpose distribution includes the Linux kernel, some GNU libraries and tools, command-line shells, and thousands of application software packages, from office suites and the graphical X Window System to compilers, text editors, and scientific tools. A variety of Linux distribution screenshots can be viewed [http://shots.osdir.com/ here].
Development efforts
[http://www.dwheeler.com/sloc/redhat71-v1/redhat71sloc.html More Than a Gigabuck: Estimating GNU/Linux's Size], a study of Red Hat Linux 7.1, found that this particular distribution contained 30 million source lines of code (SLOC). The Linux kernel contained 2.4 million lines of code, or 8% of the total. Using the Constructive Cost Model (COCOMO), the study estimated that this distribution required about eight thousand person-years of development time. Had all this software been developed by conventional proprietary means, it would have cost 1.08 billion dollars (year 2000 dollars) to develop in the United States. Slightly over half of the code in that distribution was licensed under the GPL.
In a later study, Counting potatoes: the size of Debian 2.2, the same analysis was performed for Debian GNU/Linux version 2.2. This distribution contained over fifty-five million source lines of code, and the study estimated that it would have cost 1.9 billion dollars (year 2000 dollars) to develop by conventional proprietary means.
The source code for the Linux kernel used to be maintained using the software application called BitKeeper but there was a dispute with its openness so now it is maintained via Git, the new directory content manager created by Linus Torvalds himself.
Applications
Git
In the past, a user needed significant knowledge of computers in order to install and configure Linux. Because of this, and because of being attracted by access to the internals of the system, Linux users have traditionally tended to be more technologically oriented than users of Microsoft Windows and Mac OS, sometimes revelling in the tag of "hacker" or "geek".
This stereotype has been dispelled in recent years by the increased user-friendliness and broad adoption of many Linux distributions. Linux has made considerable gains in server and special-purpose markets, such as image rendering and Web services, and is now making inroads into the high volume desktop market.
geek
Linux is the cornerstone of the so-called LAMP server-software combination (Linux, Apache, MySQL, Perl/PHP/Python) that has achieved widespread popularity among Web developers, making it one of the most common platforms on the Web. A prominent example of this software combination in use is MediaWiki — the software primarily written for Wikipedia.
The multi-billion dollar video game industry will see widespread Linux use with the 2006 launch of the Sony PlayStation 3 video game console which will run Linux out of the box. Sony has previously released a PS2 Linux kit for their PlayStation 2 video game console.
Linux is also often used in embedded systems. Its low cost makes it particularly useful in set-top boxes and for devices such as the Simputer, a computer aimed mainly at low-income populations in developing nations. In mobile phones, Linux has become a common alternative to the Symbian OS software. In handheld devices, it is an alternative to the Windows CE and Palm OS operating systems. The popular TiVo PVR also uses a customized version of Linux. A large number of network firewalls and routers, including several from Linksys, use Linux internally, taking advantage of its advanced firewalling and routing capabilities. It is also expanding into telecommunications equipment through efforts such as Carrier Grade Linux.
Linux is increasingly common as an operating system for supercomputers, most recently on 64-bit AMD Opterons in the Cray XD1. As of June 2005, the 3 fastest supercomputers in the world (as recorded by the Top500) run Linux.
Linux is rapidly gaining popularity as a desktop operating system. In desktop environments like GNOME and KDE, Linux may be used with a user interface that is similar to that of Mac OS, Microsoft Windows, other desktop environments, and its traditional Unix-like command line interface. Graphical Linux software exists for almost any area and in some areas there is a greater quality and quantity of software available than for proprietary operating systems.
Usability and market share
Once viewed as an operating system only computer geeks could use, Linux distributions have become user-friendly, with many graphical interfaces and applications.
Its market share of desktops is rapidly growing. According to market research company IDC, in 2002, 25% of servers and 2.8% of desktop computers were already running Linux. However, argued advantages of Linux, such as lower cost, fewer security vulnerabilities [http://www.theregister.co.uk/security/security_report_windows_vs_linux/] , and lack of vendor lock-in, have spurred a growing number of high-profile cases of mass adoption of Linux by corporations and governments. The Linux market is among the fastest growing and is projected to exceed $35.7 billion by 2008 [http://www.techweb.com/wire/showArticle.jhtml?articleID=55800522].
Linux and other free software projects have been frequently criticized for not going far enough in terms of ensuring usability, and Linux was once considered more difficult to use than Windows or the Macintosh, although this has changed. Applications running within graphical desktop environments such as GNOME and KDE in Linux are very similar to those running on other operating systems. While some applications cannot be run, there usually exists a replacement that will, sometimes of better quality. A growing number of proprietary software vendors are supporting Linux, and open source development for Linux is also steadily increasing. Additionally, proprietary software for other operating systems may be run through compatibility layers, such as Wine. The area of hardware and services configuration is where user experience is most varied. GUI configuration tools and control panels are available for many system settings and services, but editing of plain-text configuration files is often required. On the command shell, many usability hangups from early Unix days generally remain, such as the difficulty in finding some commands, and the inability to undo many operations such as file deletion. Many older programs with text user interfaces (TUI) have wild inconsistencies between them, but they maintain loyal followings.
It used to also be easier to find local technical support for Windows or Mac OS than for Linux in some places. It is worth noting that an operating system's usability is subjective and dependent on the background knowledge and needs of its users. For example, Gentoo Linux, a source-based distribution, is time-consuming to install, but can be more usable for advanced users than stereotypical beginner-friendly distributions, such as Mandriva or Ubuntu.
Users might have to switch application software, and there may be fewer options, as in the case of computer games. Equivalents of some specific programs may not be available. However, general applications like spreadsheets, word processors, and browsers are available for Linux in profusion.
Most distributions of Linux have two or more means of software installation, and more office and end-user applications now come with an automated installation program. Because of reluctance to change and the fact that many computers still come with Microsoft Windows pre-installed, there has been a slow initial adoption of new desktop operating systems. Linux is past that stage now, with numerous manufacturers installing Linux and many organizations having five or more years experience with Linux - since installation evolved to graphical user interfaces - or Unix, which has been around for decades. Linux is rapidly gaining popularity as a desktop operating system as it is increasingly used in schools and workplaces and more people are becoming familiar with it.
Support for certain new and obscure hardware remains an issue. Though some vendors provide device drivers, many device drivers must be developed by volunteers after the release of the product. Often, this development requires reverse engineering of some sort, as certain manufacturers remain secretive and refuse to provide the hardware or firmware specifications for their products. Deliberately non-portable hardware drivers like Winmodems and Winprinters have been a general problem.
There have been conflicting studies of Linux's usability and cost in the past. Microsoft-sponsored studies such as those by IDC and Gartner have argued that Linux had a higher total cost of ownership (TCO) than Windows. However, Relevantive, the renowned Berlin-based organization specializing in providing consultation to companies on the usability of software and Web services, concluded that the usability of Linux for a set of desktop-related tasks is "equal to Windows XP." Since then, there have been numerous independent studies that show that a modern Linux desktop using Gnome or KDE is on par with or superior to Microsoft Windows.
Linux distributions have been criticized for unpredictable development schedules, thus making enterprise users less comfortable with Linux than they might be with other systems (Marcinkowski, 2003). However, some observers claim that the intervals between Linux distribution releases are no worse, and often better, than the project management "schedule slipping" that occurs with other operating systems and with software systems in general.
The large number of choices of Linux distributions can also confuse users and software vendors.
The paper [http://www.dwheeler.com/oss_fs_why.html Why Open Source Software / Free Software (OSS/FS)? Look at the Numbers!] identifies many quantitative studies of open source software, on topics including market share and reliability, with many studies specifically examining Linux.
Installation
In the past, difficulty of installation was a barrier to wide adoption of Linux-based systems, but the process has been made easy in recent years. Many distributions are at least as easy to install as a comparable version of Windows. It is unnecessary to file license numbers and enter them during installation. Also, personal computers that come with Linux distributions already installed are readily available from numerous vendors, including large mainstream vendors like Hewlett-Packard and Dell.
The most common method of installing Linux, supported by all major distributions, is by booting from a CD that contains the installation program and installable software. Such a CD can be burned from a downloaded ISO image, purchased alone for a low price, or can be obtained as part of a box set that may also include manuals and additional commercial software.
Some distributions, such as Debian, can be installed from a small set of floppy disks. After a basic system is installed, more software can be added by downloading it from the Internet or using CDs.
Other distributions, such as Knoppix, can be run directly from a "live CD" running entirely in RAM, rather than installing it to the hard drive. With this, one boots from the CD and can use Linux without making any modification to the contents of the hard drive. Similarly, some minimal distributions, such as tomsrtbt, can be run directly from as little as 1 floppy disk without needing to change the hard drive contents.
Still another mode of installation of Linux is to install on a powerful computer to use as a server and to use ordinary less powerful machines (perhaps without hard drives, and having less memory and slower CPUs) as clients over the network. Clients can boot over the network from the server and display results and pass information to the server where all the applications run. A Linux Terminal Server is a single machine to which many clients can connect this way, so one obtains the benefit of installing Linux on many machines for the cost of installing on one. The clients can be ordinary PCs with the addition of the network bootloader on a drive or network interface controller. Variations on this mode include using local drives and computing power to run applications. The cost savings achieved by using thin clients can be invested in greater computing power or storage on the server.
Many distributions also support booting over a network, so an installation on a properly configured machine can be done remotely.
Anaconda, one of the more popular installers, is used by Red Hat Linux, Fedora Core and other distributions to simplify the installation process. It is famous for its ability to automatically partition a hard drive using the Disk Druid utility.
Installation on an existing platform
Many distribution companies now are sparing no effort to provide users with advanced, easy and specific installations. Some beginners (especially those familiar with Microsoft Windows and Mac OS) may still feel that making the shift can be hard but many solutions have been created to solve this problem.
Some let the user install Linux on top of their current system. Consider WinLinux, for example. After downloading the installer (more than 100MB), the user can install Linux just like any other Windows application. The software provides all the needed features; it is a real Linux distribution. The difference is that it is not necessary for the user to leave Windows, since Linux is installed to the Windows hard-disk partition. A Linux boot loader will boot the Linux system when the PC is restarted and the user chooses to boot Linux. Similar approaches include coLinux.
Technology of virtual machines (such as Virtual PC or VMware) also enables Linux to be run inside another OS such as Microsoft Windows. The virtual machine software will simulate an isolated environment onto which the Linux system is installed. After everything is done, the virtual machine can be booted just as if it were an independent computer.
Demonstration
The difficulty in quickly demonstrating Linux on the computer of a potential new user remains still an obstacle, slowing its adoption as a personal computing platform. So-called "live CDs" that simply boot from CD and automatically load the necessary drivers for the user's respective system promise to change that. Linux User Groups or LUGS, still provide the primary face-to-face forum for demonstration of Linux. Commercial exhibitions provide Linux demonstrations to potential new users, especially corporate buyers. Many commercial distributions are hard to install, but with work, allow someone to re-use an old machine to see what the Linux desktop is like. The approach by Knoppix, which runs Linux directly from a CD without disturbing the PC's hard drive, is probably the most successful demonstration tool to date. MEPIS also runs from CD like Knoppix and they both can also be installed onto a PC like any other Linux distribution. Ubuntu also has a separate "Live" version of their distribution which runs from CD. The fastest approach is probably that of Workspot, which uses VNC to provide a free Linux desktop demo online.
Configuration
Configuration of most system wide settings are stored in a single directory called /etc, while user-specific settings are stored in hidden files in the user's home directory. A few programs use a configuration database instead of files.
There are a number of ways to change these settings. The easiest way to do this is by using tools provided by distributions such as Debian's debconf, Mandriva's Control Center, or SUSE's YaST. Others, like Linuxconf, Gnome System Tools, and Webmin, are not distribution-specific. There are also many command line utilities for configuring programs. Since nearly all settings are stored in ordinary text files they can be configured by any text editor.
Running Windows applications
There are several ways to run applications written for Microsoft Windows on Linux, with varying levels of success. The popular Wine software, along with the commercial derivatives Crossover Office and Transgaming's Cedega create an application compatibility layer by reimplementing the Windows API inside of Linux. Many Windows programs run on Linux at approximately the same speed using these programs, and in some cases run faster. Since these programs are written without use of any Microsoft code, they do not require a Windows license. Although compatibility is improving, in many cases week-by-week, applications that make use of non-standard programming practices can experience problems.
A similar alternative to running Windows applications inside Linux is to use the proprietary Win4Lin software, which converts Microsoft's version of the Windows API to run inside Linux rather than reimplementing it from scratch. Since a legal copy of the Microsoft implementation of the Windows API is needed, use of Win4Lin requires a copy of Windows.
A third alternative for running Windows applications within Linux is to use a virtual machine program and run the desired application along with the entire virtual Windows operating system. VMware is a proprietary hardware virtualisation program that can run Windows in this way with near-perfect functionality, however this approach can carry a considerable speed and performance penalty. Full CPU emulators (such as QEMU or the slower counterpart Bochs) can be used, though to run a Windows program these emulators will also require a copy of Windows. Aside from the performance difficulties, virtual machine approaches to running Windows applications cannot integrate Windows programs into the Linux desktop, as they must instead run inside the virtual Windows desktop.
A fourth alternative is to run the applications on a Windows machine but use remote access software such as VNC to view it on the Linux desktop. This is a good solution where applications are unable to be migrated, or an item of hardware such as a dongle, custom decoder card, or some USB devices will only run under Windows. At its simplest one or more people needing occasional access to Windows applications can share remote access to a single Windows PC for that purpose using VNC. In a corporate setting essentially the same can be done using a Citrix server, rdesktop to access a Microsoft Terminal Services server, or with NX technology.
Programming on Linux
A number of compilers are available for Linux.
The GNU Compiler Collection (GCC) comes with the vast majority of distributions. GCC supports C, C++ and Java among other languages.
There are also a number of IDEs available for Linux. Some of the most popular are Anjuta, KDevelop, NetBeans IDE, Glade (actually a user interface designer), Eclipse, the famous Emacs and Vim.
Support
Technical support is provided by commercial suppliers and by other Linux users, usually in online forums, newsgroups and mailing lists. GNU/Linux users are often organised in so called Linux User Groups or abbreviated LUG.
The business model of commercial suppliers is generally dependent on charging for support, especially for business users. Companies, which offer a special business version of their distribution, add special support packages and special tools to administrate higher numbers of installations or do administrative tasks more easily.
References
- Glyn Moody: Rebel Code: Linux and the Open Source Revolution, Perseus Publishing, ISBN 0-713-99520-3
- Gedda. R. (2004). Linux breaks desktop barrier in 2004: Torvalds. Retrieved January 16, 2004 from [http://www.linuxworld.com.au/index.php?id=568003838&fp=16&fpid=0]
- Mackenzie, K. (2004). Linux Torvalds Q&A. Retrieved January 19, 2004 from [http://australianit.news.com.au/articles/0,7204,8407881%5E15841%5E%5Enbv%5E,00.html]
- [http://www.dwheeler.com/sloc More Than a Gigabuck: Estimating GNU/Linux's Size] by David A. Wheeler
- [http://people.debian.org/~jgb/debian-counting Counting potatoes: the size of Debian 2.2] by Jesús M. González-Barahona et al.
- [http://www.dwheeler.com/oss_fs_why.html Why Open Source Software / Free Software (OSS/FS)? Look at the Numbers!] by David A. Wheeler
See also
General
- Access control list
- List of Linux distributions
- Comparison of Linux distributions
- IPodLinux
- Shell account
- LiveCD
- PS2 Linux
- Vmlinux
- Linux consolidation
Lists
- List of file systems
- List of Unix programs
- List of Linux books
Magazines
- Linux Journal
- Linux Magazine
- Linux Format
Videos
-
External links
General
- [http://www.linux.org/ Linux.org] — contains comprehensive information and resources about Linux.
- [http://counter.li.org/ The Linux Counter] — estimates Linux usage around the world
- [http://www.tldp.org/ The Linux Documentation Project]
- [http://tldp.org/HOWTO/HOWTO-INDEX/categories.html Categorized List of HOWTOs]
Distribution related
- [http://eedok.voidofmind.com/linux/chooser.html Distro Quiz] — a test that recommends a distribution based on the answers.
- [http://www.linux.org/dist/ Linux Online] — distributions and FTP Sites (sortable by categories)
- [http://distrowatch.com/ DistroWatch.com] — distribution information & announcements.
- [http://www.linuxiso.org/ Linux ISO] — comprehensive but rather outdated site which has ISO download links for several distributions.
Criticism of Linux
- [http://www.microsoft.com/windowsserversystem/facts/default.mspx Microsoft: Get the Facts] — Microsoft site that compares Windows Server software and Linux and comes up with the conclusion that Microsoft software has a lower TCO then Linux.
-
Category:Unix
Category:Computing platforms
Category:Free software operating systems
Category:Operating systems
als:Linux
ja:Linux
ko:리눅스
ms:Linux
simple:Linux
th:ลินุกซ์
zh-min-nan:Linux
Unix
Unix or UNIX is a computer operating system originally developed in the 1960s and 1970s by a group of AT&T Bell Labs employees including Ken Thompson, Dennis Ritchie, and Douglas McIlroy. Today's Unix systems are split into various branches, developed over time by AT&T, several other commercial vendors, as well as several non-profit organizations.
Unix was designed to be portable, multi-tasking and multi-user. The Unix systems are characterized by various concepts: plain text files, command line interpreter, hierarchical file system, treating devices and certain types of inter-process communication as files, etc. In software engineering, Unix is mainly noted for its use of the C programming language and for the Unix philosophy.
The present owner of the UNIX trademark is The Open Group, while the present claimants on the rights to the UNIX source code are The SCO Group and Novell. Only systems fully compliant with and certified to the Single UNIX Specification qualify as "UNIX" (others are called "UNIX system-like" or Unix-like).
During the late 1970s and early 1980s, Unix's influence in academic circles led to massive adoption (particularly of the BSD variant, originating from the University of California, Berkeley) of Unix by commercial startups, the most notable of which is Sun Microsystems.
Sun Microsystems
History
1960s and 1970s
In the 1960s, the Massachusetts Institute of Technology, AT&T Bell Labs, and General Electric worked on an experimental operating system called Multics (Multiplexed Information and Computing Service), which was designed to run on the GE-645 mainframe computer. The aim was the creation of an interactive operating system with many novel capabilities, including enhanced security. The project did develop production releases, but initially these releases turned out to have poor performance.
AT&T Bell Labs pulled out and deployed its resources elsewhere. One of the developers on the Bell Labs team, Ken Thompson, continued to develop for the GE-645 mainframe, and wrote a game for that computer called Space Travel. However, he found that the game was slow on the GE machine and was costly, apparently costing $75 per go in scarce computing time.
Thompson thus re-wrote the game in DEC PDP-7 Assembly language with help from Dennis Ritchie. This experience, combined with his work on the Multics project, led Thompson to start a new operating system for the DEC PDP-7. Thompson and Ritchie led a team of developers, including Rudd Canaday, at Bell Labs developing a file system as well as the new multi-tasking operating system itself. They included a command interpreter and some small utility programs as well. This project was called Unics, short for Uniplexed Information and Computing System, and could support two simultaneous users. The name has been attributed to Brian Kernighan, and was a hack on Multics. Following bad puns of Unics (homophone of eunuchs) being a castrated Multics, the name was later changed to Unix, and thus a legacy was born. The name is also a criticism of the overly general and bloated Multics system - Unix would do one thing, and do it well.
Up until this point there had been no financial support from Bell Labs, when the Computer Science Research Group wanted to use Unix on a much larger machine than the PDP-7. Thompson and Ritchie managed to trade the promise of adding text processing capabilities to Unix for a PDP-11/20 machine, and this itself led to some financial support from Bell. For the first time in 1970, the Unix Operating System was officially named and ran on the PDP-11/20. It added a text formatting program called roff and a text editor. All three were written in PDP-11/20 assembly language. This initial "text processing system", made up of Unix, roff, and the editor, was used by Bell Labs for text processing of patent applications at Bell. Runoff soon evolved into troff, the first electronic publishing program with a full typesetting capability. The UNIX Programmer's Manual was published on November 3, 1971.
In 1973, the decision was made to re-write Unix in the C programming language. The change meant that Unix could later easily be modified to work on other machines (thus becoming portable), and other variations could be created by other developers. The code was now more concise and compact, leading to an acceleration in the development of Unix. AT&T made Unix available to universities and commercial firms, as well as the United States government under licenses. The licenses included all source code except for the machine-dependent kernel, which was written in PDP-11 assembly code. However, bootleg copies of the annotated Unix machine-dependent kernel circulated widely in the late 1970's in the form of a much-copied book by John Lions of the University of New South Wales in Australia (the Lions' Commentary on UNIX 6th Edition, with Source Code), which led to considerable adoption of Unix as an educational operating system.
Development expanded, with Versions 4, 5 and 6 being released by 1975. These versions added pipes, leading to the development of a more modular code-base, increasing development speed still further. V5 and especially V6 led to a plethora of different Unix versions both inside and outside Bell Labs, including PWB/UNIX, IS/1 (the first commercial Unix), and the University of Wollongong's port to the Interdata 7/32 (the first non-PDP Unix).
In 1978, UNIX/32V, for the VAX, was released. By this time, over 600 machines were running Unix in some form. Version 7 Unix, the last version of Research Unix to be released widely, was released in 1979. Versions 8, 9 and 10 were developed through the 1980s but were only ever released to a few universities, though they did generate papers describing the new work. This research led to the development of Plan 9, a new portable distributed system.
1980s
AT&T now developed UNIX System III, based on Version 7, as a commercial version and sold the product directly, the first version launching in 1982. However its subsidiary, Western Electric, continued to sell older Unix versions, based on the UNIX System (Versions 1 to 7). To end the confusion between all the differing versions, AT&T combined various versions developed at other universities and companies into UNIX System V Release 1. This introduced features such as the vi editor and curses from the Berkeley Software Distribution of Unix developed at the University of California, Berkeley (UCB). This also included support for the DEC VAX machine.
The new commercial Unix releases however no longer included the source code and so UCB continued to develop BSD Unix as an alternative to UNIX System III and V, originally on the PDP-11 architecture (the BSD 2.x releases, ending with 2.10). Perhaps the most important aspect of the BSD development effort was the addition of TCP/IP network code to the mainstream Unix kernel. The BSD effort produced eight significant releases that contained network code: 4.1c, 4.2, 4.3, 4.3-Tahoe ("Tahoe" being the nickname of the CCI Power 6/32 architecture that was the first non-DEC port of the BSD kernel), 4.3-Reno (to match the "Tahoe" naming, and that the release was something of a gamble), Net2, 4.4, and 4.4-lite. The network code found in these releases is the ancestor of almost all TCP/IP network code in use today, including code that was later released in AT&T System V UNIX and Microsoft Windows. The accompanying Berkeley Sockets API is a de facto standard for networking APIs and has been copied on many platforms.
Other companies began to offer commercial versions of the UNIX System for their own mini-computers and workstations. Most of these new Unix flavors were developed from the System V base under a license from AT&T. Others chose BSD instead. One of the leading developers of BSD, Bill Joy, went on to co-found Sun Microsystems in 1982 and create SunOS (now Solaris) for their workstation computers. In 1980, Microsoft announced its first Unix for 16-bit microcomputers called Xenix, which the Santa Cruz Operation (SCO) ported to the Intel 8086 processor in 1983, and eventually branched Xenix into SCO UNIX in 1989.
In 1984, an industry group called X/Open was formed, with the aim of forming compatible open systems, that is, standardize the UNIX systems.
AT&T added various features into UNIX System V, such as file locking, system administration, job control (modelled on ITS), streams, the Remote File System and TLI. AT&T cooperated with Sun Microsystems and between 1987 and 1989 merged Xenix, BSD, SunOS, and System V into System V Release 4 (SVR4), independently of X/Open. This new release consolidated all the previous features into one package, and threatened the end of competing versions. It also greatly increased licensing fees.
1990s
In 1990, the Open Software Foundation released OSF/1, their standard Unix implementation, and it was more closely based on BSD than on SVR4. The Foundation was started in 1988 and was funded by several Unix-related companies that wished to counteract the collaboration of AT&T and Sun on SVR4. Subsequently, AT&T and another group of licensees formed the group "UNIX International" in order to counteract OSF. This escalation of conflict between competing vendors gave rise to the syntagma "Unix wars".
In 1991, a group of BSD developers (Donn Seeley, Mike Karels, Bill Jolitz, and Trent Hein) left the University of California to found Berkeley Software Design, Inc (BSDI). BSDI was the first company to produce a fully-functional commercial version of BSD Unix for the inexpensive and ubiquitous Intel platform, which started a wave of interest in the use of inexpensive hardware for production computing. Shortly after it was founded, Bill Jolitz left BSDI to pursue distribution of 386BSD, commonly identified as the free software ancestor of FreeBSD, OpenBSD, and NetBSD.
By 1993 most of the commercial vendors of Unix had changed their commercial variants of Unix to be based upon SVR4, and many BSD features were added on top. In 1994, OSF stopped the development of OSF/1, as the only vendor using it was DEC, who branded it Digital UNIX.
Shortly after UNIX System V Release 4 was produced, AT&T sold all its rights to UNIX to Novell. Dennis Ritchie, one of the creators of Unix, likened this to the Biblical story of Esau selling his birthright for some lentils [http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&threadm=7379%40ucsbcsl.ucsb.edu&rnum=1&prev=/groups%3Fq%3Ddennis%2Britchie%2Blentil%2Bbirthright%26hl%3Den%26lr%3D%26ie%3DUTF-8%26selm%3D7379%2540ucsbcsl.ucsb.edu%26rnum%3D1]. Novell developed its own version, UnixWare, merging its Netware with UNIX System V Release 4. Novell tried to use this to battle against Windows NT, but their core markets suffered considerably.
In 1994, Novell decided to split the bundle of UNIX-related assets and sell parts of them. The UNIX trademark and the certification rights were sold to the X/Open Consortium. In 1996, X/Open merged with OSF, creating the Open Group. Various standards by the Open Group now define what is and what is not a "UNIX" operating system, notably the post-1998 Single UNIX Specification.
In 1995, the business of administration and support of the existing UNIX licenses plus rights to further develop the SystemV code base were transferred to the Santa Cruz Operation. Whether Novell also sold the copyrights is currently the subject of litigation (see below).
2000s
In 2000, the Santa Cruz Operation sold its entire UNIX business and assets to Caldera Systems, which later on changed its name to The SCO Group. This new player then started a huge legal campaign against various users and vendors of Linux. The SCO Group has offered various legal theories over the course of several cases. Some of these allege that Linux contains copyrighted Unix code now owned by The SCO Group. Others allege trade-secret violations by IBM, or contract violations by former Santa Cruz customers who since converted to Linux. The most far-reaching theory is that development work that IBM did for AIX is considered a derivative work and therefore also owned by SCO. If this is upheld it would affect all Unix licensees.
Under a program called SCOsource, the SCO Group is now offering licenses to all companies and individuals wishing to use operating systems with code based on UNIX System V Release 4 (and their own release, UNIX System V, Release 5).
However, Novell disputed the SCO group's claim to hold copyright on the UNIX source base. According to Novell, SCO (and hence the SCO group) are effectively franchise operators for Novell, which also retained the core copyrights, veto rights over future licensing activities of SCO, and 95% of the licensing revenue. The SCO Group disagreed with this, and the dispute had resulted in the SCO v. Novell lawsuit.
In 2005, Sun Microsystems also released an open source version of Solaris, called OpenSolaris. The OpenSolaris codebase is intended to take advantage of outside contributions to provide the next versions of Solaris; in addition, it has spawned at least one non-Sun distribution in the form of Jörg Schilling's SchilliX.
The dot-com crash has led to significant consolidation of Unix users as well. Of the many commercial flavors of Unix that were born in the 1980s, only Hewlett-Packard's HP-UX, IBM's AIX, NeXT's NEXTSTEP (later OPENSTEP, now Mac OS X) and Sun's Solaris operating systems are still doing relatively well in the market; players such as Digital Equipment Corporation, Data General, and the original Santa Cruz Operation (now known as Tarantella) have been bought out or gone out of business. The rise of Linux and the open-source BSD implementations as a dominating force in the Unix space has also dealt a damaging blow to commercial Unix development, as some companies opt for open source over closed.
Standards
Beginning in the late 1980s, an open operating system standardization effort known as POSIX provided a common baseline for all operating systems; IEEE based POSIX around the structure of the Unix system. At around the same time a separate but very similar standard, the Single UNIX Specification, was also produced by the Open Group. Starting in 1998 these two standards bodies began work on merging the two standards, and the latest revisions of both are in fact identical.
In an effort towards compatibility, several Unix system vendors agreed on SVR4's ELF format as standard for binary and object code files. The common format allows substantial binary compatibility among Unix systems operating on the same CPU architecture.
The directory layout of some systems, particularly on Linux, is defined by the Filesystem Hierarchy Standard. This type of standard however is controversial among many, and even within the Linux community adoption is far from universal.
List of Unixes
This is a list of Unixes (sing. Unix). Each version of the UNIX Time-Sharing System evolved from the version before, with version one evolving from the prototypal Unics. Not all variants and descendants are displayed.
- Unics (⇢ |