Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2017/2018

Open-source programming

Předmět není vypsán Nerozvrhuje se
Kód Zakončení Kredity Rozsah Jazyk výuky
AE4M35OSP Z,ZK 6 2+2c
Předmět je náhradou za:
Open-Source programování (A4M35OSP)
Přednášející:
Cvičící:
Předmět zajišťuje:
katedra řídicí techniky
Anotace:

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.

Výsledek studentské ankety předmětu je zde: http://www.fel.cvut.cz/anketa/aktualni/courses/AE4M35OSP

Požadavky:

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.

Stránky předmětu: https://moodle.dce.fel.cvut.cz/

Osnova přednášek:

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

(GPL, LGPL, ...) and operating systems and projects based on

its philosophy

2. Development tools (binutils, compiler, debugger, autotools), libraries

(glibc, newlib, ...) and the ways to use them

3. Linux distributions: overview, package manages, preparation of .rpm and .deb

packages. Cooperation in the open-source community: patch exchange,

version control systems.

4. Basic operating system kernel description (processes, address spaces, etc).

5. Device drivers I (character devices, interrupt servicing)

6. Memory management, cache memory consistency maintenance for across

architectures, OS level abstractions.

7. Device drivers II (DMA transfers, block devices)

8. User-space environment structure (basic libraries, filesystem base,

etc.), User graphics environments and libraries: QT, GTK+

9. Embedded Linux: cross-compilation, bootloaders, busybox, usual drivers

used in embedded systems.

10. Multi-thread applications and synchronization mechanisms (NPTL, Futex, etc.)

11. The target areas for described systems, industrial control (robotics,

programable automates - PowerPC, ColdFire ), mobile personal devices

(cell phones, PDA, game-consoles - ARM, SH)

12. Communications, busses and technologies (ETHERNET, CAN, Profibus)

13. OS Linux support for safety sensitive and real-time applications

- nanokernels, virtualisation, Linux real-time extensions,

and other alternative solutions for RT systems - microkernels,

real-time executives

14. Future trends and development

Osnova cvičení:

1. Introduction to used HW and SW

(used architecture depends on kits availability at given time

- x86, ColdFire, PowerPC or ARM)

2. Presentation of kernel build process and minimal filesystem preparation,

explanation of ways to use this base for students work

3. Task to exercise preparation and building of minimal character device

driver

4. Extension of the driver with interrupt processing and input/output

pin connection

5. Finalization of the complete device driver conforming full

PCI or platform device device model

6. reserve for previous tasks finalization

7-11. Individual work on some more complex tasks,

i.e. control of CANopen equipped motion controllers over CAN bus,

development of application using graphics libraries suitable for small devices,

preparation of device drivers for some other peripherals, etc..

12-13. Presentation of individual results to other attendants of the seminaries

14. Assessment

Cíle studia:
Studijní materiály:

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

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

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

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

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

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

Poznámka:

Rozsah výuky v kombinované formě studia: 14p+6chttp://bilakniha.cvut.cz/en/predmet12539404.html

Další informace:
http://support.dce.felk.cvut.cz/osp/
Pro tento předmět se rozvrh nepřipravuje
Předmět je součástí následujících studijních plánů:
Platnost dat k 21. 6. 2018
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet12824104.html