open source software an introduction. the creation of software l as you know, programmers create the...
TRANSCRIPT
The Creation of SoftwareThe Creation of Software
As you know, programmers create the software that we use
What you may not understand is HOW software is created
Machine LanguageMachine Language
Computer programs (software) are basically sets of instructions that the computer follows
Computers don’t take instructions in English (or anything close to it!) Instead, they follow instructions which are written
in BINARY Basically, instructions are given by specifying them
BY NUMBER
Known as Machine Language You can’t understand it, but the machine can!
Programming LanguagesProgramming Languages
Programmers don’t typically work in machine language Too hard to understand, work productively
Rather, they use high-level Programming Languages to create their programs These are sets of instructions which are much
closer to the language that WE use Easier to understand, to use Examples: C, C++, Java, Perl, Python, (Visual) Basic, etc.
Compiling and Source CodeCompiling and Source Code
Because computers only understand ML, the original program (in the high-level language) must be CONVERTED to ML The conversion is known as ‘Compiling’ We often call the resulting ML code an
‘Executable’ file The original program, as written by
the programmer in the high-level language, is known as Source Code It’s the ‘Source’ of the program
Source Code- Key pointsSource Code- Key points
Source Code Understood by humans Can’t be executed by computer Can be translated into machine language
Executable (machine language) Can be executed Can’t be understood easily Can’t be translated into source code
If You Have the Source Code, You If You Have the Source Code, You can:can:
Understand how the software works internally Use this knowledge to develop other software
Make changes Bug fixes Customize
Make sure there are no bugs, security flaws, etc.
Improve on the software
So, why don’t software companies (usually) give you source code?
Open Source SoftwareOpen Source Software
Current movement had (has) a philosophical basis:
Software should be FREE Not just free as in ‘free beer’
No cost Free as in ‘free speech’
Access to ideas, knowledge Freedom of expression The more heads that you have working on a
problem, the better the result When knowledge is restricted to a small few, society
is hurt When knowledge is shared freely, everyone benefits
Open Source SoftwareOpen Source Software
Open Source Software is FREE Variety of license agreements Best known is the GPL
It can be distributed for free Although a company can charge for it, they can’t
prevent you from distributing it for free You must have access to the source code!
GrowthGrowth
OSS has grown dramatically recently Availability of software Quality of software ADOPTION of software
Answers…Answers…
Many sources Programmers devoting personal time
Outside working hours Companies developing OSS as a tool in the
other services they offer Companies developing software internally,
then releasing it free of charge Contributions by public institutions,
educational institutions Investment by various parties funding
development
Answers…Answers…
In many cases, YES! Much OSS is very useful, well developed
OpenOffice Mozilla Linux
In some areas, it is dominant! Apache web server MySQL for web database use BIND DNS server
AnswersAnswers
Sick of unreasonable licensing terms Getting worse!
Don’t want to be locked into one company’s system OSS typically relies on open standards
Ability to customize software Can inspect code to ensure that it is
secure Significant cost savings
QuestionsQuestions
Are there companies making money using Open Source Software?
If so, what is the business model for these companies? What do they make/do? How do they make money? Are these viable business models?
How are they doing?
QuestionsQuestions
What are the implications of Open Source Software for ‘closed source’ companies?
How can ‘closed source’ companies fight the threat?
As a Network Administrator…As a Network Administrator…
Why might you want to use OSS?
Why might you be hesitant?
Why stick with ‘Closed Source’?Why stick with ‘Closed Source’?
Belief that corporate developed software is better
Need for support Concerns about learning curve is change made
Some OSS software not nearly as easy to use There may not be an OSS package available to
do a particular task Or, may not be as strong as the closed source
option