تقرير عن The Linux Programming Interface. كتاب جديد يتكلم عن البرمجة في بيئة Linux و Unix بإستخدام لغة C بشكل مفصل جداً وبأسلوب بسيط مع كثير من الأمثلة. لا أبالغ إن قلت أن هذا أفضل كتاب وجدته في هذا المجال فالكاتب Michael Kerrisk هو نفسه المسؤول عن Linux man pages بذل جهد خرافي في كتاب يزيد عن 1500 صفحة!

The linux programming interface

 

بعدما بدأت بتعلم لغة C والإنتهاء من الأساسيات إخترت لينوكس طبعاً ليكون البيئة التي سأكتب بها برامجي وفي هذه المرحلة كان علي إختيار كتاب موجه للبرمجة في نظام لينوكس وبيئة يونكس بشكل عام لكي أستفيد من مكتبات النظام نفسه وأستخدم System calls و Linux API لأتمكن من كتابة أدوات فعالة بلغة C عوضاً عن إعادة إختراع كل شيء من الصفر. بدأت البحث عن كتاب واضح وشامل يغطي الأمور التي أحتاجها ولكي أستخدمه كمرجع أيضاً كوني لم أتعمق كثيراً بلغة سي بعد. أثناء بحثي تذكرت أن No Starch Press أرسلوا لي إيميل من فترة يحتوي على آخر الكتب التي قاموا بنشرها من ضمنهم كتاب يتكلم عن البرمجة في بيئة لينوكس وبعد الإطلاع على فهرس الكتاب, الأمثلة المنشورة, معلومات المؤلف والمراجعات الإيجابية الكثيرة التي كتبها مهندسين من أكبر الشركات من ضمنهم Google, Novell وحتى مؤلفي كتب سابقين وباحثين بالجامعة لم أتردد من طلبه فحتى تاريخ كتابة هذا الخبر هذا أحدث كتاب يتكلم عن البرمجة بلغة C في بيئة لينوكس ومتوافق مع كيرنل 2.6.35 ومكتبة glibc 2.12 نشر في شهر أكتوبر 2010. بمعنى آخر هذا ما كنت أبحث عنه تماماً.

أول ما وصلني الكتاب بدأت القراءة أكثر فيه والتدقيق بأسلوب الشرح لأن هذه النقطة مهمة جداً بالنسبة لي خصوصاً للغة برمجة مثل سي!, الجميل أنه لم يتطلب أي خبرة في برمجة الأنظمة فكل ما تحتاجه هو فهم بسيط لنظام لينوكس وسطر الأوامر ومعرفة بأساسيات لغة سي (هذا الكتاب ليس مناسب للأشخاص الذين لا يعلمون شيء عن لغة C بعد) مع العلم أن الكتاب سيبدء مع القارء بالتكلم عن تاريخ UNIX و GNU/Linux ولغة C ثم في الفصل الثاني والثالث عن بعض المبادء والأساسيات في لينوكس وبرمجة الأنظمة ثم سيبدء مباشرة بطرق التعامل مع الملفات, العمليات, الذاكرة, المجموعات والمستخدمين, threads ويتابع مع جميع الأمور التي قد تحتاجها عن البرمجة في بيئة لينوكس وصولاً لأهم قسم بالنسبة لي وهو برمجة الشبكات والتعامل مع الـ sockets.

 

The linux programming interface - iSecur1ty

 

محتوى الكتاب:

Chapter 1: History and Standards
Chapter 2: Fundamental Concepts
Chapter 3: System Programming Concepts
Chapter 4: File I/O: The Universal I/O Model
Chapter 5: File I/O: Further Details
Chapter 6: Processes
Chapter 7: Memory Allocation
Chapter 8: Users and Groups
Chapter 9: Process Credentials
Chapter 10: Time
Chapter 11: System Limits and Options
Chapter 12: System and Process Information
Chapter 13: File I/O Buffering
Chapter 14: File Systems
Chapter 15: File Attributes
Chapter 16: Extended Attributes
Chapter 17: Access Control Lists
Chapter 18: Directories and Links
Chapter 19: Monitoring File Events
Chapter 20: Signals: Fundamental Concepts
Chapter 21: Signals: Signal Handlers
Chapter 22: Signals: Advanced Features
Chapter 23: Timers and Sleeping
Chapter 24: Process Creation
Chapter 25: Process Termination
Chapter 26: Monitoring Child Processes
Chapter 27: Program Execution
Chapter 28: Process Creation and Program Execution in More Detail
Chapter 29: Threads: Introduction
Chapter 30: Threads: Thread Synchronization
Chapter 31: Threads: Thread Safety and Per-Thread Storage
Chapter 32: Threads: Thread Cancellation
Chapter 33: Threads: Further Details
Chapter 34: Process Groups, Sessions, and Job Control
Chapter 35: Process Priorities and Scheduling
Chapter 36: Process Resources
Chapter 37: Daemons
Chapter 38: Writing Secure Privileged Programs
Chapter 39: Capabilities
Chapter 40: Login Accounting
Chapter 41: Fundamentals of Shared Libraries
Chapter 42: Advanced Features of Shared Libraries
Chapter 43: Interprocess Communication Overview
Chapter 44: Pipes and FIFOs
Chapter 45: Introduction to System V IPC
Chapter 46: System V Message Queues
Chapter 47: System V Semaphores
Chapter 48: System V Shared Memory
Chapter 49: Memory Mappings
Chapter 50: Virtual Memory Operations
Chapter 51: Introduction to POSIX IPC
Chapter 52: POSIX Message Queues
Chapter 53: POSIX Semaphores
Chapter 54: POSIX Shared Memory
Chapter 55: File Locking
Chapter 56: Sockets: Introduction
Chapter 57: Sockets: UNIX Domain
Chapter 58: Sockets: Fundamentals of TCP/IP Networks
Chapter 59: Sockets: Internet Domains
Chapter 60: Sockets: Server Design
Chapter 61: Sockets: Advanced Topics
Chapter 62: Terminals
Chapter 63: Alternative I/O Models
Chapter 64: Pseudoterminals

Appendix A: Tracing System Calls
Appendix B: Parsing Command-Line Options
Appendix C: Casting the NULL Pointer
Appendix D: Kernel Configuration
Appendix E: Further Sources of Information
Appendix F: Solutions to Selected Exercises

أو يمكن الإطلاع على المحتوى بشكل مفصل من هنا.

إذا كنت مهتم بالبرمجة بلغة C في بيئة لينوكس أو يونكس وتريد تعلّم الأساليب الصحيحة والآمنة لكتابة البرامج أنصحك بهذا الكتاب مع العلم أن سعره ليس رخيص $99.95 لكن بصراحة مقابل المعلومات الموجودة فيه أجده يستحق هذا السعر فالكتاب يعتبر الأحدث حالياً وهو مرجع كامل يحتوي على جميع المعلومات التي أحتاجها بشكل منسّق مما سيوفّر علي ساعات من البحث في الانترنت والتجربة وهذا يعني أني سأتمكن من البرمجة بشكل أسهل وأسرع.

موقع الكتاب: The Linux Programming Interface

صفحة شراء الكتاب: No Starch Press

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn