310 likes | 475 Views
The best things in life are free: Unix, Free Software and its Applications. www.neuro.spc.org/uwic. Vaughan Bell vaughan@backspace.org. Outline. Free software and the free software movement. Free software development models. Unix, a multiuser network operating system.
E N D
The best things in life are free: Unix, Free Software and its Applications. www.neuro.spc.org/uwic Vaughan Bell vaughan@backspace.org
Outline • Free software and the free software movement. • Free software development models. • Unix, a multiuser network operating system. • Free unix variants: looking at Linux. • Case study: Building a community wireless network using OpenBSD.
Importance of Free Software • The internet relies on free software for its day-to-day running. • Key infrastructure components like IP routing, DNS, FTP, email and web server software (e.g. Apache) are commonly handled by free software.
Commercial software • With most commercial software, money is exchanged for a user license. • The user license grants permission to use the software in a restricted manner. • Typically, a license allows the software to be used by one person, or on one machine, perhaps for certain tasks only. • Any extra-license use of such software is usually restricted by law.
Free software • The ‘free’ in free software describes the rights of the software user, not the price they might pay. • These rights include: • The freedom to run the program, for any purpose. • The freedom to study how the program works, and adapt it to your needs. • The freedom to redistribute copies so you can help your neighbour. • The freedom to improve the program, and release your improvements to the public, so that the whole community benefits.
Open Source Software • Having the freedom to study, adapt and improve the software means you must be able to read the source code. • Hence, all free software but this definition must be ‘open source’ as the code must be open to inspection. • However, open source software does not necessarily have to be free. • I could allow you to view the code from my program but still forbid you to distribute the program, or distribute changes to it.
Free software movement • The free software movement has arisen not to oppose payment, but to oppose restriction of rights. • Free software advocates argue that software exists in a scarcity free economy. • Its digital nature means that it can be distributed, modified and utilised with no cost to the author. • Therefore, advocates argue that any restrictions on these practices are immoral… • …because they artificially reduce the social value of the software by using the threat of legal penalties to increase financial gain for the author.
Origins of Free Software • Free software is most commonly associated with Richard Stallman and the GNU Project. • Stallman was one of the original MIT AI lab hackers. • A community which grew up around the use of MIT’s research computers. • In which software sharing was expected, to further the use and development of the technology.
Origins of Free Software • Stallman became increasingly concerned about the effect of restrictive software licenses and founded the GNU Project and the Free Software Foundation. • GNU stands for ‘GNU is not Unix’… • …as one of its original aims was to rewrite all of the Unix operating system as free software. • Hence, free software and unix have a long history. • In fact, the most popular unix variants today are free, and are largely based around GNU software.
Free software development In EricRaymond’s classic essay ‘The Cathedral and the Bazaar’ he contrasts development models of commercial and free software.
Cathedral Model • Raymond argues commercial software tends to be developed like the building of cathedrals. • The construction is centrally managed. • Only a chosen core of developers may be involved with the creation of the software. • Users are the recipients of the software, and may get little input into its creation.
Bazaar Model • On the other hand much free software is developed is a chaotic but collaborative fashion, much like a market or bazaar. • The person in charge of the project may involve hundreds, if not thousands of people, in its development. • The source code is available to the public, so anyone can make modifications and fix bugs. • The most useful modifications and fixes are included into the definitive version. • Anyone can join in and contribute.
Free software criticisms • Critics argue that such idealism is unrealistic and raise several objections, mainly: • How will programmers get paid ? • Who will write unpopular or specialist software ? • How can you trust a distribution source ?
Free software projects • Free software now includes all types of computer software. • But one of the most significant contributions was a free version of the unix operating system.
Unix Operating System • Unix was developed at Bell Labs by Dennis Ritchie and Ken Thompson from 1969 onwards.
Unix Design Principles • Multi-user: Originally to allow multiple persons to use a single mainframe computer at once. • Network aware: Use the network efficiently and easily. • Extensible: Anyone could extend the operating system by writing, rewriting or just by combining commands in novel ways. • Portable: To allow the operating system and its software to be ported to different hardware.
Unix Disadvantages • The main disadvantage is the steep learning curve as the command line interface is not intuitive. • There are now many desktop environments that allow windows style interfaces. • And whilst you can do most everyday tasks, you will still need to be able to use the command line for any more involved tasks. • Such as setting up network services. • However, once the learning curve is passed it can make complex tasks quite painless.
Unix Today • As a testament to its utility unix is very much alive today. • Unix variants are available for a variety of platforms, from Playstations to Cray supercomputers. • It’s most common free variants are Linux and BSD flavours such as FreeBSD, OpenBSD, NetBSD. • All of which emphasise different aspects of performance (such as performance, security or portability) but are all essentially from the same stable.
Linux: Unix for the Desktop • Linux is the most well known free unix variant. • It was first created in 1991 by Linus Torvalds, a Finnish computing student who wanted a unix for his own PC.
The Success of Linux • Linux was originally intended as a project to experiment with principles of computer science. • During its development it became clear that the bazaar based construction was extremely stable, flexible and efficient. • A stark contrast to the monolithic Microsoft Windows. • As it gathered more and more users a wider range of applications were developed by its users. • Meaning it attracted users from many fields, diverse from its original audience.
The Success of Linux It is being used as the primary platform to render computer graphics in LOTR.
The Success of Linux • As well as building cost efficient super-computers. • This is a Beowulf Cluster, built by Los Alamos National Labs in the US. • It is made out of 294 ordinary PCs, driven by linux. • And is designed for performing computational astrophysics simulations.
The Success of Linux • In more everyday situation they are typically used on the desktop, for checking email and surfing the net. • Or for local network infrastructure. • They are particularly good at operating internet services on the network level.
Case Study: Arwain • Arwain is a project to provide a free and open community wireless network for Cardiff. • An Arwain ‘node’ is a computer that allows wireless users to connect to the network. • Anyone can set up a node and allow others to connect to their network or to the internet.
Requirements for Arwain • Ideally nodes should be made out of old, reclaimed or disused hardware to keep costs low. • Nodes should provide all the network services to allow people to have a full internet connection (DHCP, DNS, IP routing). • Nodes should be stable, and must be capable of running unattended for months at a time. • Nodes should be secure. A security compromise might effect the users of the node, and the person donating their network connection. • Nodes should be flexible, to allow for network development.
OpenBSD for Arwain • Linux has been used for Arwain nodes. I’ve used OpenBSD for the following reasons. • It’s free. • It’s built for security. • It is extremely stable. • It allows lots of network jiggery pokery.
Westgate Street Node • Runs on a P166 recovered from a skip. • The only cost was the wireless network card (£100 in total). • Allows anyone to connect, regardless of the operating system they are using. • And gives unlimited access to the internet. • It has full firewall capabilities, so my internal network is unreachable from the wireless connection.
Kode Node • Runs on a unused P300. • Allows open access to the internet. • Hosts a web server that delivers PHP driven web sites to users. • Streams realaudio and realvideo content. • Being used to develop a system to allow distribution of audio and video from Barfly and Clwb Ifor Bach to the local community.
Conclusions • Free software is an alternative to mainstream software ownership models. • It has some practical advantages (reliability, transparency, adaptability). • And some moral and social advantages (mainly distribution based on need). • It considers software as a social utility and its correct use a moral question.
Conclusions • Unix is a powerful operating system with many applications from microcomputing to supercomputing. • Free unix variants allow low cost deployment of computing resources. • They tend to be stable, efficient and secure. • And can be extremely powerful tools, once the learning curve has been climbed.