Open-source programming
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
AE4M35OSP | Z,ZK | 6 | 2P+2C | anglicky |
- Vztahy:
- Předmět AE4M35OSP může při kontrole studijních plánů nahradit předmět A4M35OSP
- Garant předmětu:
- 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ů: