Open-source programming

The course is not on the list Without time-table
Code Completion Credits Range Language
A4M35OSP Z,ZK 6 2P+2C Czech
The requirement for course A4M35OSP can be fulfilled by substitution with the course AE4M35OSP.
The requirement for course A4M35OSP can be fulfilled by substitution with the course B4M36ESW.
It is not possible to register for the course A4M35OSP if the student is concurrently registered for or has previously completed the course B4M36ESW (mutually exclusive courses).
Garant předmětu:
Department of Control Engineering

The subject provides insight into world of open-source projects and techniques proved to be usesfull for larger applications and operating systems development. Reasons leading to the founding of GNU project is discussed and possible andwantages of this approach for cooperation even for commercial subjects is shown. Usual tools used for development, debugging and source code control and functional testing are described. Description of POSIX type operating system structure and introduction to the driver development, user-space libraries and user graphics environments comes next. The last topic is introduction how to use earlier described techniques and support for embedded applications development and real-time control.


The intermediate knowledge of C language and at least basic experience with multi-threaded programming for POSIX systems. Basic knowledge of hardware and software structure of computer systems and logic circuits is required.

Syllabus of lectures:

1. Introductory words for subject; Open-source software, project GNU,

license and operating systems and projects based on

its philosophy

2. GNU project - foundation of basic development tools and their use

3. Overview of major Open-source projects (even as guide for choice of semester work)

4. Founding of independent project and participation in existing project

5. Tools infrastructure (version control, bug tracking, communication, wiki)

6. Commercial model; Social and decision making concept

7. Inter-developers communication

8. Version releasing, packaging and continual development

9. Volunteers, evolution and branching

10. Licenses, copyrights and patents

11. Target platforms, portability and open-source hardware

12. Linux kernel - foundation, development, structure and drivers

13. Future trends and development

Syllabus of tutorials:

Introduction to GNU/Linux system environment and overview of development tools:

Implementation of simple application in „C“ language using automake

or alternative methods for program assembly.

Work with large project and its history:

Good candidate is Linux kernel.

Examination an learning from history (git), development trees, configuration and building

Own work to implement simple character device.

Individual work:

The student select work on it own or some existing project. The project

should have structure of project using conventional programming

languages (C, C++, Java, Mono) and should follow portability rules (POSIX)

or should be targetted to some open source operating system/components development.

Work on project/patches, interaction with project community, consultations with exercises leader.

Project result presentation and evaluation and rating of the work success, incorporation into mainline projects and the student ability to cooperate

and communicate with other team members.

Study Objective:
Study materials:

[1] Fogel K.: How To Run A Successful Free Software Project - Producing Open Source Software,

CreateSpace, 2009, ISBN-13: 978-1441437716

[2] The Linux Documentation Project http://tldp.org/

[3] GNU Operating System http://www.gnu.org/

[4] Embedded Linux kernel and driver development, http://free-electrons.com.

[5] Love R.: Linux Kernel Development (2nd Edition), Novell Press, 2005.

[6] Corbet J., Rubini A., Kroah-Hartman G.: Linux Device Drivers (3rd Edition),

O'Reilly Media, Inc., 2005, ISBN-10: 0596005903, ISBN-13: 978-0596005900

Further information:
No time-table has been prepared for this course
The course is a part of the following study plans:
Data valid to 2024-07-15
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/en/predmet12539404.html