کتاب توسعهٔ برنامههای لینوکس با مثال: APIهای بنیادی) منبعی کاربردی برای برنامهنویسانی است که میخواهند با استفاده از مثالهای واقعی، نحوهٔ کار با رابطهای برنامهنویسی اصلی لینوکس را یاد بگیرند. کتاب Linux Application Development by Example بهجای تمرکز صرف بر تئوری، مفاهیم مهمی مانند مدیریت فرایندها، فایلها، حافظه، سیگنالها و ارتباط بین فرایندها را با کدهای عملی توضیح میدهد و به خواننده کمک میکند درک عمیقتری از تعامل برنامهها با هستهٔ سیستمعامل لینوکس پیدا کند.
در ادامه مقدمهای از کتاب Linux Application Development by Example را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Linux Application Development by Example:
یکی از بهترین راهها برای یادگیری برنامهنویسی، خواندن برنامههایی است که بهخوبی نوشته شدهاند. کتاب Linux Application Development by Example رابطهای برنامهنویسی بنیادی سیستم لینوکس—آنهایی که هستهٔ هر برنامهٔ جدی را تشکیل میدهند—را با ارائهٔ کدهایی از برنامههای واقعی و عملی که هر روز از آنها استفاده میکنید آموزش میدهد.
با بررسی برنامههای ملموس، نهتنها میتوانید نحوهٔ استفاده از APIهای لینوکس را ببینید، بلکه با مسائل دنیای واقعیای که در نوشتن نرمافزار به وجود میآیند نیز آشنا میشوید؛ مسائلی مانند کارایی، قابلحملبودن و پایداری.
اگرچه عنوان کتاب Linux Application Development by Example است، اما تمام مطالب آن—مگر در مواردی که بهصراحت ذکر شده—برای دیگر سیستمهای مشتقشده از یونیکس نیز کاربرد دارد. بهطور خاص، تمرکز ما بر سیستمهای GNU/Linux است. بهطور کلی، از «لینوکس» برای اشاره به هستهٔ لینوکس و از «GNU/Linux» برای اشاره به کل سیستم (هسته، کتابخانهها و ابزارها) استفاده میکنیم.
همچنین، گاهی «لینوکس» را بهطور کلی برای اشاره به لینوکس، GNU/Linux و یونیکس به کار میبریم؛ اگر موضوعی مختص یکی از این سیستمها باشد، آن را بهصراحت بیان میکنیم.
مخاطبان کتاب Linux Application Development by Example
کتاب Linux Application Development by Example برای افرادی نوشته شده است که با برنامهنویسی آشنا هستند و حداقل در سطح کتاب «زبان برنامهنویسی C» نوشتهٔ کرنیگان و ریچی، با زبان C آشنایی دارند. (برنامهنویسان Java، Python و Go که قصد مطالعهٔ کتاب Linux Application Development by Example را دارند، باید مفاهیم اشارهگرها در C را درک کنند، زیرا کدهای C بهشدت از آنها استفاده میکنند.) مثالها هم از نسخهٔ استاندارد C سال ۱۹۹۹ و هم از C قدیمی استفاده میکنند.
اگرچه استانداردهای جدیدتری برای C وجود دارد، اما ما به قابلیتهای آنها نیازی نداریم. بهطور خاص، شما باید با تمام عملگرهای C، ساختارهای کنترلی، تعریف و استفاده از متغیرها و اشارهگرها، توابع مدیریت رشتهها، استفاده از تابع exit() و مجموعهٔ توابع <stdio.h> برای ورودی/خروجی فایلها آشنا باشید.
همچنین باید مفاهیم ورودی استاندارد، خروجی استاندارد و خطای استاندارد را بشناسید و بدانید که تمام برنامههای C آرایهای از رشتهها را بهعنوان گزینهها و آرگومانهای خط فرمان دریافت میکنند. آشنایی با ابزارهای پایهٔ خط فرمان مانند cd، cp، date، ln، ls، man (و info در صورت وجود)، rmdir و rm، استفاده از گزینههای کوتاه و بلند، متغیرهای محیطی و تغییر مسیر I/O شامل pipeها نیز ضروری است.
ما فرض میکنیم که میخواهید برنامههایی بنویسید که نهتنها روی GNU/Linux، بلکه روی طیف گستردهای از سیستمهای شبهیونیکس کار کنند. به همین دلیل، در کتاب Linux Application Development by Example مشخص کردهایم که هر رابط در چه سیستمهایی در دسترس است (مثلاً فقط GLIBC یا مطابق POSIX) و نکات مربوط به قابلحملبودن بخش جداییناپذیر متن هستند.
ممکن است برنامهنویسیای که در کتاب Linux Application Development by Example آموزش داده میشود از آنچه به آن عادت دارید سطح پایینتری داشته باشد؛ این کاملاً طبیعی است. فراخوانیهای سیستمی بلوکهای سازندهٔ اصلی عملیات سطح بالاتر هستند و ذاتاً سطح پاییناند. همین موضوع استفادهٔ ما از زبان C را توجیه میکند: این APIها برای استفاده در C طراحی شدهاند و اتصال آنها به زبانهای سطح بالاتر مانند C++، Java، Python یا Go ناگزیر ماهیتی سطح پایین دارد و اغلب به زبان C نوشته میشود. «سطح پایین» به معنای «بد» نیست؛ فقط به معنای «چالشبرانگیزتر» است.
آنچه از کتاب Linux Application Development by Example خواهید آموخت:
مبانی شاید قدیمی شوند، اما معمولاً اشتباه نمیشوند.
— گرنت تیلور
کتاب Linux Application Development by Example بر APIهای پایهای تمرکز دارد که هستهٔ برنامهنویسی لینوکس را تشکیل میدهند؛ یعنی دانستههای اساسی برای نوشتن نرمافزاری که از APIهای GNU/Linux و POSIX بهخوبی استفاده میکند، از جمله:
-
آرگومانها، گزینهها و محیط
-
مدیریت حافظه
-
ورودی/خروجی فایل
-
فرادادهٔ فایلها
-
فرایندها و سیگنالها
-
ارتباط بین فرایندها
-
کاربران و گروهها
-
محدودیتهای منابع
-
پشتیبانی برنامهنویسی (مرتبسازی، پردازش آرگومانها و …)
-
شبکهسازی پایه
-
بینالمللیسازی
-
اشکالزدایی
عمداً فهرست موضوعات را کوتاه نگه داشتهایم. معتقدیم تلاش برای یادگیری «همهچیز» از یک کتاب، ترسناک است. بیشتر خوانندگان کتابهای کوچکتر و متمرکزتر را ترجیح میدهند و بهترین کتابهای یونیکس نیز همینگونه نوشته شدهاند.
هرچند کتاب Linux Application Development by Example دقیقاً کوچک نیست، اما کتابهای POSIXای دیدهایم که بهراحتی دو برابر این حجم دارند. همچنین تلاش کردهایم از ارائهٔ اطلاعات بیش از حد خودداری کنیم و دقیقاً همان چیزی را ارائه دهیم که برای انجام کارتان نیاز دارید؛ نه کمتر و نه بیشتر.
APIهایی که پوشش میدهیم شامل هم فراخوانیهای سیستمی و هم توابع کتابخانهای هستند. در سطح C، هر دو بهصورت فراخوانی سادهٔ تابع دیده میشوند. فراخوانی سیستمی درخواست مستقیمی برای خدمات سیستمعامل است، مانند خواندن یا نوشتن فایل یا ایجاد یک فرایند. در مقابل، تابع کتابخانهای در سطح کاربر اجرا میشود و ممکن است هرگز درخواستی از سیستمعامل نداشته باشد. فراخوانیهای سیستمی در بخش ۲ و توابع کتابخانهای در بخش ۳ راهنمای آنلاین (man) مستند شدهاند.
هدف ما آموزش APIهای لینوکس از طریق مثال است؛ بهویژه با استفاده از کدهای اصلی یونیکس و ابزارهای GNU، هرجا که ممکن باشد. با این حال، مثالهای کاملاً مستقل کمتر از انتظار ما بودند، بنابراین تعداد زیادی برنامهٔ نمایشی کوچک نیز نوشتهایم. ما بر اصول برنامهنویسی—بهخصوص جنبههایی از برنامهنویسی GNU مانند «نبود محدودیتهای دلبخواهی»—تأکید داریم؛ اصولی که ابزارهای GNU را به برنامههایی استثنایی تبدیل کردهاند.
انتخاب برنامههای روزمره برای مطالعه کاملاً هدفمند است. اگر مدتی از GNU/Linux استفاده کرده باشید، میدانید برنامههایی مانند ls و cp چه میکنند؛ بنابراین میتوان مستقیماً به نحوهٔ کار آنها پرداخت، بدون صرف زمان زیاد برای توضیح کارکردشان.
خلاصهٔ فصلهای کتاب Linux Application Development by Example:
رانندگی فرایندی کلی است که شامل انجام همزمان چندین کار میشود. برنامهنویسی لینوکس نیز مشابه است و نیازمند درک همزمان جنبههایی مانند I/O فایل، فرادادهٔ فایل، دایرکتوریها و مدیریت زمان است.
بخش اول کتاب Linux Application Development by Example این مفاهیم را معرفی میکند تا بتوان اولین برنامهٔ مهم، یعنی ls نسخهٔ V7، را بررسی کرد. سپس بحث فایلها و کاربران با بررسی سلسلهمراتب فایلها و سیستمفایلها تکمیل میشود.
فصل ۱: مقدمه
فصل ۲: آرگومانها، گزینهها و محیط
فصل ۳: مدیریت حافظه در سطح کاربر
فصل ۴: فایلها و I/O فایل
فصل ۵: دایرکتوریها و فرادادهٔ فایل
فصل ۶: رابطهای عمومی کتابخانه — بخش اول
فصل ۷: کنار هم گذاشتن همهچیز: ls
فصل ۸: سیستمفایلها و پیمایش دایرکتوریها
فصلهای ۹ تا ۱۶: مدیریت فرایند، سیگنالها، مجوزها، محدودیت منابع، شبکه، بینالمللیسازی و رابطهای پیشرفته
فصل ۱۷: اشکالزدایی
فصل ۱۸: پروژهٔ نهایی
سرفصلهای کتاب Linux Application Development by Example:
- Preface
- Part I: Files and Users
-
Chapter 1. Introduction
-
Chapter 2. Arguments, Options, and the Environment
-
Chapter 3. User-Level Memory Management
-
Chapter 4. Files and File I/O
-
Chapter 5. Directories and File Metadata
-
Chapter 6. General Library Interfaces—Part 1
-
Chapter 7. Putting It All Together: ls
-
Chapter 8. Filesystems and Directory Walks
-
- Part II: Processes, Networking, and Internationalization
-
Chapter 9. Process Management and Pipes
-
Chapter 10. Signals
-
Chapter 11. Permissions and User and Group ID Numbers
-
Chapter 12. Resource Limits
-
Chapter 13. General Library Interfaces—Part 2
-
Chapter 14. Sockets and Basic Networking
-
Chapter 15. Internationalization and Localization
-
Chapter 16. Extended Interfaces
-
- Part III: Debugging and Final Project
-
Chapter 17. Debugging
-
Chapter 18. A Project That Ties Everything Together
-
- Part IV: Appendices
-
Appendix A. Teach Yourself Programming in Ten Years
-
Appendix B. Caldera Ancient UNIX License
-
Appendix C. GNU General Public License
-
Appendix D. License for the One True Awk
-
Appendix E. License for 4.4 BSD Code
-
- Index
جهت دانلود کتاب Linux Application Development by Example میتوانید پس از پرداخت، دریافت کنید.

دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.