ČeskyEnglish

Popis předmětu - AE4M35OSP

Přehled studia | Přehled oborů | Všechny skupiny předmětů | Všechny předměty | Seznam rolí | Vysvětlivky               Návod
AE4M35OSP Open-source programming Rozsah výuky:2+2c
Garanti:  Role:PO,V Zakončení:Z,ZK
Vyučující: 
Zodpovědná katedra:13135 Kreditů:6 Semestr:L

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: AE4M35OSP

Osnovy 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

Osnovy 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

Literatura:

[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

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/

Poznámka:

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

Webová stránka:

http://support.dce.felk.cvut.cz/osp/

Předmět je zahrnut do těchto studijních plánů:

Plán Obor Role Dop. semestr
MEKME4 Sítě elektronických komunikací V 2
MEKME5 Komunikační systémy V 2
MEKME3 Elektronika V 2
MEKME2 Multimediální technika V 2
MEKME1 Bezdrátové komunikace V 2
MEOI5NEW Softwarové inženýrství PO 2
MEOI2 Počítačové inženýrství PO 2
MEOI5 Softwarové inženýrství PO 2
MEEEM3 Elektroenergetika V 2
MEEEM4 Ekonomika a řízení energetiky V 2
MEEEM5 Ekonomika a řízení elektrotechniky V 2
MEEEM1 Technologické systémy V 2
MEEEM2 Elektrické stroje, přístroje a pohony V 2
MEKYR4 Letecké a kosmické systémy V 2
MEKYR1 Robotika V 2
MEKYR2 Senzory a přístrojová technika V 2
MEKYR3 Systémy a řízení V 2


Stránka vytvořena 25.7.2017 17:54:30, semestry: L/2016-7, Z,L/2017-8, Z/2018-9, připomínky k informační náplni zasílejte správci studijních plánů Návrh a realizace: I. Halaška (K336), J. Novák (K336)
Za obsah odpovídá: doc. Ing. Ivan Jelínek, CSc.