Gold - Unit 1 - Understanding Global Software Communities and their Products

Relevant LINKS

BACK TO OSM UNITS

Handbook home page

Overview

The candidate can show a clear understanding of the principles of free and open source software and compare this with closed systems.  This will also entail an understanding of the licensing principles involved.  There should also be shown a good understanding of some of the more well known open source projects, with some familiarity with the way these projects are managed in terms of distribution and updates.  Candidates can also investigate some f the underlying programming in open source projects and compare these to closed systems; being able to recommend alternatives where appropriate.
 
A work activity will typically be ‘non-routine or unfamiliar’ because the task or context is likely to require some preparation, clarification or research to separate the components and to identify what factors need to be considered. For example, time available, audience needs, accessibility of source, types of content, message and meaning, before an approach can be planned; and the techniques required will involve a number of steps and at times be non-routine or unfamiliar. 
 
Example of context – an investigation and presentation of results comparing 2 or 3 well known proprietary systems and their open source equivalents..

Assessor's guide to interpreting the criteria

General Information
QCF general description for Level 2 qualifications.

  • Achievement at QCF level 2 (EQF Level 3) reflects the ability to select and use relevant knowledge, ideas, skills and procedures to complete well- defined tasks and address straightforward problems. It includes taking responsibility for completing tasks and procedures and exercising autonomy and judgement subject to overall direction or guidance.
  • Use understanding of facts, procedures and ideas to complete well-defined tasks and address straightforward problems. Interpret relevant information and ideas. Be aware of the types of information that are relevant to the area of study or work.

Requirements

  • Standards must be confirmed by a trained Level 2 assessor or higher
  • Assessors must at a minimum record assessment judgements as entries in the online mark book on the INGOTs.org certification site.
  • Routine evidence of work used for judging assessment outcomes in the candidates' records of their day to day work will be available from their e- portfolios and online work. Assessors should ensure that relevant web pages are available to their Account Manager on request by supply of the URL.
  • When the candidate provides evidence of matching all the criteria to the specification subject to the guidance below, the assessor can request the award using the link on the certification site. The Account Manager will request a random sample of evidence from candidates' work that verifies the assessor's judgement.
  • This unit should take an average level 2 learner 40 guided hours of work to complete.
  • Once the candidate has satisfied all the criteria by demonstrating practical competence in realistic contexts they achieve the unit certificate.
  • When the Account Manager is satisfied that the evidence is sufficient to safely make an award, the candidate's success will be confirmed and the unit certificate will be printable from the web site. Open Systems IT Management

Assessment Method

Assessors can score each of the criteria N, L, S or H. N indicates no evidence and it is the default setting. L indicates some capability but some help still required to meet the standard. S indicates that the candidate can match the criterion to its required specification in keeping with the overall level descriptor. H indicates performance that goes beyond the expected in at least some aspects. Candidates are required to achieve at least S on all the criteria to achieve the full unit award.

Expansion of the assessment criteria

1. Understanding global software communities and their products.

1.1 I can describe the principles of software freedom.

Candidates should be able to describe the principles of being able to copy, modify and distribute software.

Evidence: from assessor observations, content of learner portfolios.

Additional information and guidance

The free software foundation describes 4 fundamental freedoms for software.

1. To be able to view the source code.
2. To be able to modify the code.
3. To be able to copy the code.
4. To be able to distribute the code.

There is some ambiguity in the term free because it can mean free as on no charge (gratis) or free as in freedom to do things. Free of charge is a consequence of freedom but there is no technical reason why free software can not be sold. It will probably be difficult to do so since the software is freely copiable. Due to this ambiguity the term Open Source is now more commonly used. The emphasis is that the software source code is open and can be viewed, modified, copied and distributed. In essence open source and free software are the same thing and sometime referred to as FOSS or FLOSS. Free and Open Source Software or Free, Libre, Open Source Software. What makes FOSS FOSS is the license and there are quite a number of different ones.

1.2 I can compare open source and closed source licenses

Candidates should be able to distinguish between genuine free and open source licenses and those that are restricted by proprietary licenses.

Evidence: from assessor observations, documentation in portfolios.

Additional information and guidance
Candidates should understand that there are commercial licenses that try to use the Open Source label for marketing reasons. To be open source the license needs to meet the fundamental criteria of the four freedoms. Failure to meet any of them means the software is not FOSS. A label such as “Commercial Open Source” does not mean that the software is open source even if some of the criteria are met. For example, if viewing the source code is restricted to people paying for the software, it is not open source software even though the source code is viewable by perhaps a large number of people.

In most proprietary licenses, software can be used only by the buyer of the license and often only on one computer. The source code is not available and copying and redistributing the software is prohibited. In some cases this might be relaxed for making backups. The difficulty with these restrictions is that they cause considerable inconvenience to users beyond the cost of the license. Upgrades often cost money so there is an incentive to produce software that will need upgrading especially if there is a monopoly supply. Genuine installation problems can cause problems and there are fewer people to identify bugs. Costs for upgrades mean old versions get used for a long time meaning increased costs and reduced security.

1.3 I can describe the distribution methods for open source software

Candidates should be able to describe the main ways that open source software is distributed.

Evidence: from assessor observations, content of learner portfolios.

Additional information and guidance
Computer programs are written using high level languages that humans can easily understand. Compiler then converts these into executable code. A principle of FOSS is that the source code is distributed with any executable code. The source code is readable by humans whereas the executable code is the suitable form for CPU. It is very difficult to work out what a program does from its executable code and therefore very difficult to design an exact equivalent. For this reason proprietary software companies often guard their source code as they would any secret invention. In contrast FOSS projects freely encourage source code distribution by any method that will help enable others to see and improve or add to the code. This is much more efficient than having to start from the beginning and design a better version of something that is mostly good enough for the tasks. Before the internet, software was distributed on discs and the source code was always provided on the disc with the executable code. With the internet, programs are more securely distributed from software repositories and the source code is then directly available from servers to anyone that wants to use it. The internet has added the ability to make the source code available globally an immediately and for many people to contribute to it from anywhere in the world using version control systems. These ensure that contributions to the code are controlled so that there is coordination of what goes into the final product. Sourceforge is the biggest library of FOSS code and is freely accessible here.

1.4 I can explain differences in open source licenses

Candidates should be able to explain differences between the most common FOSS licenses

Evidence: from assessor observations, schemes of work, content of learner portfolios.

Additional information and guidance
The GPL (Gnu Public License) is the license used for the Linux kernel and most of the supporting applications. It allows anyone to take and use the code in their own products as long as they license their own products the same way. The license is sometimes referred to as viral because and applications using the code have to then use the GPL thus spreading it. The Apache and BSD licenses allow code to be re-licensed in proprietary products. This is why Apple used BSD Unix and not Linux for iOS. It enabled the company to build products on the BSD code without having to contribute them back or share them with others. Some people say this is unethical and some say it is a necessary part of the global software ecosystem. This is the most fundamental difference between FOSS licenses. The condition of the GPL and similar licenses is to contribute back to the community, with Apache and BSD there is freedom to use the code in both FOSS and commercial proprietary products.

Open Office illustrates the difficulty of different licenses. Apache Open Office is licensed using the Apache license. Libre Office is based on the same code base but licensed with the GPL. Libre Office can use Apache Open Office code because the Apache license allows anyone to use its code and re-license it in any way. Libre Office code cannot be used by Apache Open Office because any code adaptations from LibreOffice have to be re-licensed using the GPL.

2. Know Key Software Platforms and Associated Applications

2.1 I can identify large scale open source projects

Candidates should be able to identify the most important open source projects

Evidence: Assessor observations, local testing, portfolios.

Additional information and guidance
The Linux kernel is developed in a project of its own led by Linus Torvalds, its creator. GNU/Linux is a combination of the Linux Kernel and many other projects from the GNU foundation. An entire Linux distribution adds many other applications from yet more projects. Key projects are

The Kernel, Gnome Desktop, KDE Desktop, X Windows, CUPS (Combined Unix Print System), Pulse Audio, GIMP, Inkscape, Audacity, Apache OpenOffice (Apache License), Libre Office (GPL), Firefox.

Key distributions are Debian, Red Hat, Ubuntu, Suse, Mandriva. There are many derivative and specialist projects based on the larger distributions. Ubuntu is derived from Debian and Linux Mint from Ubuntu. Some distributions are designed to be compact and therefore run on old and low specification hardware.

Berkley Standard Distribution Unix is very similar to GNU/Linux but it is a separate code base and licensed differently. It is most notably the basis of IOS, the operating system in Apple products such as the iPad, iPhone and MacBook Air. BSD is an operating system in its own right and operates as a FOSS project.

Android is Google's operating system for mobile phones. It is based on the Linux kernel but it also has proprietary support programs. It is a mixture of FOSS and proprietary applications.

Google's Chrome OS is also based on Linux but geared towards web applications.

Apache web server is the most popular web serving application on the internet and it is licensed with the Apache license.

MySQL is the database behind a very large number of web sites and content management systems.

2.2 I can explain differences between software platforms

Candidates should appreciate that the term software platform has been traditionally associated with an operating system with Windows dominating. Now the web is arguably the dominant platform.

Evidence: Assessor observations, local testing, portfolios.

Additional information and guidance
The term software platform is a little vague and used when discussing operating systems but also web based environments. Now mobile computing has added to an increasing range of platforms. Essentially a software platform is a set of standards that enables users to run applications. In the 1990s Windows dominated the desktop computer space and Symbian mobile phones in the early 2000s. As the internet's importance increased web environments started to be marketed as “platforms” The adherence of most of the web to open standards means interoperability across different web platforms has become relatively straightforward and so the web itself has become a super platform for running applications and “stacks” of applications. E.g. The LAMP stack Linux, Apache, MySQL, PHP. These FOSS applications operate together to provide database management systems that operate through webpages. More recently Stacks that involve newer applications with databases not dependent on SQL and using server side JavaScript are becoming popular. Server side JavaScript allows the same source code environment for writing web page software for client machines web browsers and code for managing the server side of things. The dominant mobile platform is now Android. For a while it was Symbian, briefly Apple iOS and now Android. Android is free and open to multi-vendors and therefore likely to increase its dominance in the mobile space as Windows did in the desktop space and for the same reason. Windows is still dominant on desktop computers but the number of these is diminishing in terms of the overall computer device markets as mobile devices proliferate.

A summary of web platforms is The World Wide Web, free and open supporting collaborative applications over the internet; Windows, proprietary OS, based on proprietary and some open standards but enabling a wide range of proprietary and open source desktop applications to run on desktop computers, laptops and servers and Android, Open Source based operating system for mobile devices. Apple's iOS for mobile through to desktops but proprietary, restricted to Apple as the vendor. Chrome OS, various Linux distros, BSD Unix, Solaris and other minority platforms also persist. While the number of platforms shrank from the 1980s to 1990s with Windows becoming almost totally dominant, open standards have enabled innovation to spring up and the result is an increase in the number of platforms and their combined share of the market. As hardware continues to develop and become less expensive the differences between mobile and desktop platforms is likely to decrease. Windows is moving down into the mobile space and Android/Chrome OS up towards the desktop space. At the time of writing Unix based operating systems seem likely to dominate through GNU/Linux servers, Android and iOS. There has probably never been a better time to learn about Linux based platforms from an employment point of view.

2.3 I can explain the terms platform, cross-platform and application

Candidates should be able to define the terms and discuss examples.

Evidence: From local testing and portfolios

Additional information and guidance
An application is a program or group of programs that support a particular job. Platforms have been described above. Cross platform means that an application can run on more than one platform. In the desktop space this usually means Windows, MacOS and GNU/Linux. For mobile computers iOS and Android. An advantage of writing applications for the Web is that they are then almost certainly cross platform since web browsers in which they run are cross platform themselves. It is also easier with more modern software tools to modify software to run on more than one operating system. This is another reason why Windows is losing its dominance. Windows costs money and puts restrictions on users that are not inherent to Open Source platforms. The Windows monopoly also resulted in a degree of complacency in responding to the new opportunities presented by mobile technologies and the internet. It is now perfectly feasible to run an entire large scale business without Windows which was probably if not impossible, very difficult 20 years ago.

2.4 I can explain the terms distro, cycle, beta, release candidate, repository and library

Candidates should be able to explain these terms together with illustrative examples.

Evidence: From assessor observations and portfolios

Additional information and guidance
A distro is a short way of saying GNU/Linux distribution. These are usually a whole range of packaged software that can be installed and run on a desktop computer or server. Examples are Red Hat, Ubuntu, Suse, and Debian. The distribution can be done in a number of ways but a popular method is to provide the software as an “iso” disk image so that it can be run directly from a DVD or a USB pen drive. This enables the software to be tried and tested on the target hardware without disturbing any other installed software and if everything works, install the software to the machine's local storage. Most distros provide free software applications over the internet and free patches and updates.

Distros are usually released at regular intervals known as release cycles. One of the characteristics of FOSS is to release software often so that interested parties can test new code and new features. When new features are thought to be reasonably stable but still need testing a beta release is made. This is an early view so that more expert users can test the software and feedback on any bugs or issues. There is specialist open source software such as bugzilla to support this. Once there are no “show stoppers” the software goes to release candidate stage and then finally release and the cycle starts again.

A repository is a secure place for storing the software usually accessible securely over the internet. A library is a set of functions and routines that can be used by several different applications. In Linux they normally have lib in the title, in Windows they have the extension .dll or dynamic linked library. Libraries make writing software quicker because common routines can simply come from the library. The downside is that if a library is missing or out of date the software using it might not run. This is called a dependency because the application depends on the library in order to be able to run. Software packaging is designed to resolve any dependencies and again the internet helps a lot by providing the possibility to search for any missing library and automatically install it. Open Source licensing makes this easier because there are fewer restrictions on installation and distribution.

2.5 I can describe computer development languages and supporting tools

Candidates should be able to describe common development languages and tools including frameworks for development,

Evidence: Assessor observations and portfolios.

Additional information and guidance
Unix is highly associated with the C programming language and Linux and many of it's applications have been developed using C++. Traditionally text editors have been used for developing source code and the two classic examples for Linux are emacs and vi but other text editors such as gedit are now popular. Languages need compilers to turn the source code into executable code. These files of code are referred to on Unix systems as binary files or with the letters bin. A directory called bin is used to store binary files. Tools to manage the process of submitting code to a development project are called versioning systems. A very popular one is GIT and another Subversion. They allow patches to be submitted to the project and tested before being finally committed to the final version.

Other languages that are popular with developers include Java, PHP, Python, and Perl. Linux includes shell scripts that allow automation of common management processes directly from a terminal. This means that a systems administrator can use a text editor to write scripts to automate commonly needed processes and save the scripts as text files and then execute them when needed. The operating system shell interprets the instructions and converts them to binary code for the processor.

2.6 I can identify open source applications that are equivalent to closed source products in the work place

The candidate should know a range of the most common Open Source productivity tools and their closed source popular equivalents.

Evidence: Internal testing, portfolios

Additional information and guidance
We are using equivalent to here to mean nearest to rather than identical features. Equivalent in the sense of intended to perform the same tasks. The Open Source equivalent of Microsoft Office is Apache Open Office and the GPL version Libre Office. Koffice is another office suite maintained and developed in the KDE community. For graphics editing there is GIMP (Gnu Image Management Project) which is equivalent to Photoshop and similar closed source raster editing programs. Inkscape is an editor for scalable vector graphics (.svg) files and performs the tasks needed by graphic designers similar to Corel Draw, Freehand and Adobe Illustrator, Audacity is a multi-track audio editor. Firefox is an open source web browser similar to Google Chrome and Internet Explorer. Most of the main open source productivity tools are cross platform and can be run on Linux or Windows. There are an increasing number of web applications that run in web browsers and even though these are not open source, they are free to use and can be run from Linux using either Google Chromium which is an open source version of the popular Chrome browser, Chrome itself (proprietary but free to install the binary code and use it), Firefox and several others. Linux also has an application called wine that enables many single platform Windows applications to be run.

2.7 I can identify embedded systems and describe their function

The candidate should be familiar with embedded systems where the software is dedicated to a narrow set of tasks as opposed to the general purpose use of mobile and desktop computers.

Evidence: Assessors observations, portfolios

Additional information and guidance
Typical examples are airline entertainment systems, car engine management systems, code in firmware in devices such as printers, CNC machines, televisions, and other household goods. Open source software is attractive for many embedded uses because the source code is available to be modified to fit the particular purpose without having to start from a blank sheet and if many millions of devices need to be manufactured containing the embedded code there is no license fee to pay. This can save substantial sums of money.

Moderation/verification

The assessor should keep a record of assessment judgements made for each candidate and make notes of any significant issues for any candidate. They must be prepared to enter into dialog with their Account Manager and provide their assessment records to the Account Manager through the on-line mark book. They should be prepared to provide evidence as a basis for their judgements through reference to candidate e-portfolios and through signed witness statements associated with the criteria matching marks in the on-line markbook. Before authorizing certification, the Account Manager must be satisfied that the assessors judgements are sound.