0% found this document useful (0 votes)
55 views5 pages

Advanced Systems Engineering

This module teaches advanced systems programming with Linux kernel internals. Students will learn about kernel modules, device drivers, memory management, and interrupt handling. They will develop these skills through programming assignments and creating a Linux kernel for an embedded target system. Assessment includes a written exam worth 50% and an assignment worth 50% that involves a report and presentation on a specified topic.

Uploaded by

Srinivas Hero
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
55 views5 pages

Advanced Systems Engineering

This module teaches advanced systems programming with Linux kernel internals. Students will learn about kernel modules, device drivers, memory management, and interrupt handling. They will develop these skills through programming assignments and creating a Linux kernel for an embedded target system. Assessment includes a written exam worth 50% and an assignment worth 50% that involves a report and presentation on a specified topic.

Uploaded by

Srinivas Hero
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 5

Module Title Module Code

1.

Module Information Advanced Systems Programming ESD2528

MODULE SUMMARY

Aims and Summary This module facilitates the students to learn system programming with Linux kernel internals and apply it in the development of embedded applications. Students will be introduced to system programs like operating system, compilers and assemblers. They will be taught Linux kernel scheduler, memory management, interrupt handling, kernel module programming, device driver programming, creation of kernel image and porting Linux kernel on embedded target using GNU tool-chain. Students will be trained on Linux kernel programming along with device driver development. Module Size and Credits Module size CATS points ECTS credits Open / restricted Availability on/off campus Total student study hours Number of weeks Department responsible Academic Year Single 10 N/A Restricted On Campus/Off campus 100 5 weeks Full-time or 8 weeks Part-time. Department of Computer Engineering 2012

Entry Requirements (pre-requisites and co-requisites) Normally to be qualified for entry to the Postgraduate Engineering Programme Excluded Combinations None Composition of Module Mark (including weighting of components) Full-time / Part-time : 50% Written Examination and 50 % Assignment Pass Requirements A minimum of 40 % marks in the written examination and a minimum of 40% marks in the assignment are required for a pass and overall 40% marks Special Features 80% attendance in theory and 80% attendance in laboratory are required. It is likely that considerable time will be spent in School facilities outside of normal timetabled class time. Courses for which this module is mandatory M.Sc. [Engg] in Computer Science and Networking M.Sc. [Engg] in Real Time Embedded Systems Courses for which this module is a core option M.Sc. [Engg] in Technology and Engineering Management

Ver: 4

November 2011

MI ESD2528

Page 1 of 5

2.

TEACHING, LEARNING AND ASSESSMENT After undergoing this module, students will be able to: 1. Explain extensibility features of Linux kernel and the concepts used in the field of system software 2. Design and implement required customized extensions for embedded application using Linux kernel 3. Specify and build a cross-compilation environment and port Linux application on to the embedded target

Intended Module Learning Outcomes

Indicative Content Class Room Lectures 1. System Programming - Compiler structure, Linker, Assembler and Cross development environment for Linux based targets 2. Linux Kernel Image Creations - Linux booting, Linux initialization process, U-boot, Linux BSP, Linux support packages and Installation of GNU tool-chain for embedded target 3. Linux Kernel Extensibility Features - Compiling and loading the kernel module, Difference between kernel module and application, Kernel symbol table, Kernel module parameter and Shared libraries 4. Linux File System - Virtual file system, Superblock structure, Inode block structure, '/proc' and 'ext2' file systems and Creating proc entry 5. Linux Process Management - Kernel tasklist, Scheduler, Ringbuffer application, Runqueue, waitqueue and Idle & busy states 6. Linux Memory Management - Nodes, Zones, Pages, Paging in Linux, Linux memory model, User space allocation, Kernel space allocation, Process address space and Virtual memory 7. Concurrent Programming - Race condition, Solutions to race condition, Mutex semaphore and Nanosleep usage 8. Exception and Interrupt Handling - IDT and GDT in Intel PC, Proc entry for IDT information, Advanced PIC, MP floating pointer and configuration table, Tasklet mechanism and System-calls 9. Kernel Timing Issues - Jiffies and Container of macro 10. Debugging Techniques - Printk, Proc and Trace 11. Device Drivers - Character drivers, Major and minor number, Allocation/deallocation of device number, Allocating memory and I/O ports, Fundamental driver operations, Character device registration, Advanced character driver operations and Case study: UART/USB/ TTY/ PCI device driver 12. Linux Porting on Embedded Platform - Kernel configuration and Kernel building Laboratory Practice 1. Making U-boot image for target (ARM 9) board 2. Cross development environment creation for embedded target 3. Building and compiling Linux kernel module 4. Creating proc entry in Linux for CMOS device data for normal user using dynamic module concept 5. Process management in Linux 6. Memory management in Linux 7. Race condition and concurrent programming 8. Interrupt handling in Linux 9. Kernel timers 10. Writing device driver in Linux for CMOS device on PC 11. UART/USB/TTY/PCI device driver development 12. Linux porting on the embedded target

Ver: 4

November 2011

MI ESD2528

Page 2 of 5

Teaching and Learning Methods 1. Theoretical Knowledge a. Face to face lectures 30 hours 2. 3. Laboratory Practice (Skills) 30 hours Application Orientation and Problem Solving a. Reading b. Research c. Written Examination d. Assignment Solving and Documentation 40 hours

Method of Assessment Part-A Written Examination [50% Weightage] 1. 2. 3. Part B Assignment [50% Weightage] Students are required to submit a word processed assignment report. Viva/Presentation on a specified topic............................................... (10%) Student performance on classroom tests............................................. (10%) Written examination............................................................................ (30%)

Assessment Learning Outcomes Part A Part B 1 X X 2 X X 3 X X

Both written examination scripts and assignment reports will be double marked. Re-assessment A minimum of 40 % marks in the written examination and a minimum of 40% marks in the assignment are required for a pass in the module. A student failing in any one of the components or both is considered as FAIL in the module. A failed student is required to retake the module at the next opportunity. A maximum of 3 attempts including the original are allowed. Date of Last Amendment November -2011

Ver: 4

November 2011

MI ESD2528

Page 3 of 5

3.

MODULE RESOURCES

Essential Reading 1. Module Notes

Recommended Reading Books 1. Rubini A, and Corbet J. (2005) Linux Device Drivers, 3rd edition, O'Reilly Media. 2. Mitchell M, and Samuel A. (2001) Advanced Linux Programming, New Riders Publishing. 3. Bovet D. P, and Cesati M. (2005) Understanding the Linux Kernel, 3rd edition, O'Reilly Media. 4. Silberschatz A, Galvin P. B, and Gagne G. (2004) Operating System concepts, 7th edition, John Wiley and Sons. Journals 1. ACM Transactions on Computer Systems 2. IEEE Transactions on Parallel and Distributed Systems 3. IEEE Transactions on Computers Magazines 1. 2. Linux For You IEEE Distributed Systems online 1. http://www.linuxjournal.com/ (accessed on 18th January 2012) 2. http://www.linuxfordevices.com/ (accessed on 18th January 2012) Laboratory Hardware: PCs, ARM board Software: Linux, GNU tool-chain Software Manual: Linux manual pages

Internet Sites

4.

MODULE ORGANISATION

Module Leader Name Room Telephone number E-mail Date and Time of Examination As per time table Subject Quality and Approval Information Subject Quality Group / Subject Board Subject Assessment Board Shortened title Date of approval by MARP Computer Engineering Postgraduate Engineering and Management Programmes ASP November 2011 Jishmi Jos Choondal B402-08 +91-80-49065555-2321 jishmi@msrsas.org

Ver: 4

November 2011

MI ESD2528

Page 4 of 5

Ver: 4

November 2011

MI ESD2528

Page 5 of 5

You might also like