Master in Linux Programming

Category:
  • Linux System Architecture
    • The Unix philosophy in a nutshell
    • Architecture preliminaries
    • Linux architecture layers
    • Linux—a monolithic OS
    • Kernel execution contexts
  • Virtual Memory
    • Virtual Memory
    • Technical requirements
    • Virtual memory
    • Process memory layout
    • Summary
  • Resource limits
    • Granularity of resource limits
    • Hard and soft limits
    • Summary
  • Dynamic Memory Allocation
    • Dynamic Memory Allocation
    • The glibc malloc(3) API family
    • Beyond the basics
    • Summary
    • Linux Memory Issues
    • Common memory issues
    • Summary
  • Debugging Tools for Memory Issues
    • Debugging Tools for Memory Issues
    • Tool types
    • Some key points
    • Summary
  • Process Credentials
    • The traditional Unix permissions model
    • Summary
  • Process Capabilities
    • The modern POSIX capabilities model
    • Miscellaneous
    • Summary
  • Process Execution
    • Technical requirements
    • Process execution
    • Summary
  • Process Creation
    • Process Creation
  • Signaling – Part I
    • Why signals?
    • Available signals
    • Handling signals
    • Summary
  • Signaling – Part II
    • Gracefully handling process crashes
    • Signaling – caveats and gotchas
    • Real-time signals
    • Sending signals
    • Alternative signal-handling techniques
    • Summary
  • Timers
    • Older interfaces
    • The newer POSIX (interval) timer mechanism
    • A quick mention
    • Summary
  • Multithreading with Pthreads Part I – Essentials
    • Multithreading concepts
    • Thread management – the essential pthread APIs
    • Summary
  • Multithreading with Pthreads Part II – Synchronization
    • The racing problem
    • Locking concepts
    • Using the pthread APIs for synchronization
    • Summary
  • Multithreading with Pthreads Part III
    • Thread safety
    • Thread cancelation and cleanup
    • Threads and signaling
    • Threads vs. processes – look again
    • Pthreads – a few random tips and FAQs
    • Summary
  • CPU Scheduling on Linux
    • The Linux OS and the POSIX scheduling model
    • Exploiting Linux’s soft real-time capabilities
    • RTL – Linux as an RTOS
    • Summary
  • Advanced File I/O
    • I/O performance recommendations
    • Summary
  • Live Project: Build your own Shell program

Every session / topic would be followed by programming tips viz:

  1. Common Programming Errors: Students learning a language – especially in their first programming course – tend to make certain kinds of errors frequently. Focusing on these Common Programming Errors helps students avoid making the same errors.
  2. Good Programming Practices: Good Programming Practices are tips for writing clear programs. These techniques help student produce programs that are more readable, self-documenting and easier to maintain.
  3. Performance Tips: In our experience, teaching students to write clear and understandable programs is the most important goal for a first programming course. But students want to write the programs that run the fastest, use of least memory, require smallest number of keystrokes,. Students really care about performance. They want to know what they can do to “turbo charge” their programs. So we highlight opportunities for improving program performance-making programs run faster or minimizing the amount of memory that they occupy.
  4. Portability Tips: Software development is a complex and expensive activity. Organizations that develop software must often produce versions customized to a variety of computers and operating systems. So there is a strong emphasis today on portability, i.e., on producing software that will run on a variety of computer systems with few, if any, changes. Achieving portability requires careful and cautious design. There are many pitfalls.
  5. Software Engineering Observations: The Software Engineering Observations highlight techniques, architectural issues and design issues, etc. that affect the architecture and construction of software systems, especially large-scale systems.
  6. Self-Review Exercises and Answers: This gives the student a chance to build confidence with the material and prepare to attempt the regular exercises

Reviews

There are no reviews yet.

Be the first to review “Master in Linux Programming”

Your email address will not be published. Required fields are marked *