کتاب برنامه‌نویسی سیستمی در UNIX: کاوش در معماری x86 و تعامل با سخت‌افزار با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB

برنامه‌نویسی سیستمی در UNIX: کاوش در معماری x86 و تعامل با سخت‌افزار | دروازه‌ای به دنیای سیستم عامل برنامه‌نویسی سیستمی در UNIX: کاوش در معماری x86 و تعامل با سخت‌افزار معرفی دوره آیا همیشه آرزو داشت...

انتخاب پلن

انتخاب پلن برای ادامه خرید الزامی است.

پرداخت اقساطی
در صورت خرید اقساطی هر قسط: 62,488 تومان
۴ قسط ماهانه. بدون سود، چک و ضامن.
پرداخت اقساطی با دیجی‌پی پرداخت اقساطی با ترب‌پی

🎓 دوره آموزشی جامع

📚 اطلاعات دوره

عنوان دوره: دوره برنامه‌نویسی سیستمی در UNIX: کاوش در معماری x86 و تعامل با سخت‌افزار

موضوع کلی: برنامه‌نویسی سیستم

موضوع میانی: برنامه‌نویسی سیستمی در UNIX

📋 سرفصل‌های دوره

  • 1. مقدمه‌ای بر برنامه‌نویسی سیستمی و تاریخچه UNIX
  • 2. معماری کامپیوتر و نقش سیستم‌عامل
  • 3. مروری بر خانواده پردازنده‌های x86: از 8086 تا 80386
  • 4. مفاهیم استاندارد POSIX و سازگاری در UNIX
  • 5. محیط برنامه‌نویسی در UNIX: کامپایلر، لینکر و کتابخانه‌ها
  • 6. ابزارهای ضروری: make, ar, ld
  • 7. اولین برنامه سیستمی: فراخوانی‌های سیستمی در مقابل توابع کتابخانه‌ای
  • 8. مدیریت خطاها: errno، perror و strerror
  • 9. مقدمه‌ای بر معماری 80286: حالت واقعی و حالت محافظت‌شده
  • 10. کاوش در حالت محافظت‌شده (Protected Mode) در 80286/80386
  • 11. مفاهیم سگمنت‌بندی حافظه: سگمنت‌ها، سلکتورها و دیسکریپتورها
  • 12. جداول توصیف‌گر عمومی و محلی (GDT & LDT)
  • 13. سطوح دسترسی و حلقه‌های محافظت (Privilege Levels)
  • 14. مکانیسم فراخوانی و گیت‌ها (Call Gates)
  • 15. معماری 80386: حالت ۳۲ بیتی و بهبودها
  • 16. صفحه‌بندی (Paging) در 80386: جداول صفحه و دایرکتوری‌ها
  • 17. حافظه مجازی: ترکیب سگمنت‌بندی و صفحه‌بندی
  • 18. واحد مدیریت حافظه (MMU) و بافر ترجمه آدرس (TLB)
  • 19. وقفه‌ها و استثناها: جدول توصیف‌گر وقفه (IDT)
  • 20. کنترلر وقفه قابل برنامه‌ریزی (PIC)
  • 21. تعامل با سخت‌افزار: پورت‌های ورودی/خروجی (I/O Ports)
  • 22. دسترسی مستقیم به حافظه (DMA)
  • 23. ساختار هسته UNIX: فضای کاربر و فضای هسته
  • 24. مکانیسم فراخوانی سیستمی: تله‌ها (Traps) و انتقال به حالت هسته
  • 25. فایل‌ها و توصیف‌گرهای فایل (File Descriptors)
  • 26. فراخوانی‌های سیستمی بنیادین: open, creat, close
  • 27. خواندن و نوشتن فایل‌ها: read و write
  • 28. جابجایی در فایل‌ها: lseek و تعیین موقعیت فایل
  • 29. ارتباط بین توصیف‌گرهای فایل و جدول فایل سیستم
  • 30. عملیات اتمیک و شرایط رقابتی (Race Conditions) در کار با فایل
  • 31. تکثیر توصیف‌گرهای فایل: dup و dup2
  • 32. کنترل توصیف‌گرهای فایل با fcntl
  • 33. ورودی/خروجی‌های خاص منظوره: ioctl
  • 34. مفهوم فرآیند (Process) در UNIX
  • 35. شناساگرهای فرآیند: PID, PPID, UID, GID
  • 36. چیدمان حافظه یک فرآیند: Text, Data, BSS, Stack, Heap
  • 37. ایجاد فرآیندهای جدید: فراخوانی سیستمی fork
  • 38. اجرای برنامه‌های جدید: خانواده توابع exec
  • 39. خاتمه فرآیندها: exit و _exit
  • 40. انتظار برای خاتمه فرآیند فرزند: wait و waitpid
  • 41. فرآیندهای زامبی (Zombie) و فرآیندهای یتیم (Orphan)
  • 42. مفهوم فایل سیستم در UNIX
  • 43. ساختار inode و ارتباط آن با فایل‌ها
  • 44. اطلاعات فایل و متاداده: خانواده توابع stat
  • 45. انواع فایل در UNIX: عادی، دایرکتوری، لینک، FIFO، سوکت
  • 46. مالکیت و مجوزهای دسترسی فایل (Permissions)
  • 47. تغییر مجوزها و مالکیت: chmod, chown, chgrp
  • 48. لینک‌های سخت (Hard Links) با link
  • 49. لینک‌های نرم یا سیمبولیک (Symbolic Links) با symlink
  • 50. حذف فایل‌ها و لینک‌ها: unlink و remove
  • 51. کار با دایرکتوری‌ها: mkdir و rmdir
  • 52. خواندن محتویات دایرکتوری: opendir, readdir, closedir
  • 53. مسیر جاری و تغییر آن: getcwd و chdir
  • 54. سیگنال‌ها: مفاهیم و رویدادهای ناهمگام
  • 55. ارسال سیگنال‌ها: kill و raise
  • 56. مدیریت سیگنال‌ها: تابع signal و مشکلات آن
  • 57. مدیریت پیشرفته سیگنال‌ها با sigaction
  • 58. مجموعه‌های سیگنال و مسدود کردن سیگنال‌ها: sigprocmask
  • 59. سیگنال‌های در انتظار: sigpending
  • 60. توابع امن در برابر سیگنال (Re-entrant Functions)
  • 61. ارتباط بین فرآیندی (IPC): مقدمه
  • 62. پایپ‌های بدون نام (Unnamed Pipes) با تابع pipe
  • 63. پایپ‌های نام‌دار (Named Pipes) یا FIFO
  • 64. مقدمه‌ای بر IPC در System V
  • 65. صف‌های پیام (Message Queues) در System V
  • 66. سمافورها (Semaphores) در System V: مفاهیم و کاربردها
  • 67. عملیات بر روی سمافورها: semop
  • 68. حافظه اشتراکی (Shared Memory) در System V
  • 69. اتصال و جداسازی حافظه اشتراکی: shmat و shmdt
  • 70. مدیریت حافظه در فضای کاربر: تخصیص حافظه پویا
  • 71. توابع malloc, calloc, realloc, free
  • 72. فراخوانی‌های سیستمی sbrk و brk
  • 73. نگاشت حافظه با mmap و munmap
  • 74. فرآیندهای دیمن (Daemon Processes)
  • 75. قوانین ایجاد یک فرآیند دیمن
  • 76. جلسه‌ها (Sessions) و گروه‌های فرآیند (Process Groups)
  • 77. ترمینال کنترلی (Controlling Terminal)
  • 78. کتابخانه استاندارد ورودی/خروجی (stdio.h)
  • 79. بافرینگ در کتابخانه استاندارد: کامل، خطی و بدون بافر
  • 80. کار با تاریخ و زمان در سطح سیستم
  • 81. محدودیت‌های منابع فرآیند: getrlimit و setrlimit
  • 82. زمان‌بندی فرآیندها و اولویت‌ها: nice
  • 83. مقدمه‌ای بر برنامه‌نویسی سوکت و شبکه
  • 84. مدل‌های ورودی/خروجی: مسدودکننده، غیرمسدودکننده و ناهمگام
  • 85. ورودی/خروجی غیرمسدودکننده (Non-blocking I/O)
  • 86. مالتی‌پلکسینگ ورودی/خروجی: فراخوانی سیستمی select
  • 87. مالتی‌پلکسینگ ورودی/خروجی: فراخوانی سیستمی poll
  • 88. مقدمه‌ای بر راه‌اندازهای دستگاه (Device Drivers)
  • 89. دستگاه‌های کاراکتری در مقابل دستگاه‌های بلوکی
  • 90. فایل‌های ویژه دستگاه در /dev
  • 91. روند بوت سیستم: از BIOS/UEFI تا هسته
  • 92. بوت لودر و بارگذاری هسته
  • 93. فرآیند init و سطوح اجرایی (Runlevels)
  • 94. کتابخانه‌های اشتراکی (Shared Libraries) و پیوند پویا
  • 95. اشکال‌زدایی (Debugging) با gdb
  • 96. ردیابی فراخوانی‌های سیستمی با strace
  • 97. تحلیل عملکرد برنامه (Profiling) با gprof
  • 98. پروژه عملی: پیاده‌سازی یک شل (Shell) ساده
  • 99. نتیجه‌گیری و نگاهی به سیستم‌های مدرن مبتنی بر UNIX
تگ‌ها: 80286 80386 C Programming embedded systems kernel Linux low-level programming System Programming UNIX internals Unix Programming x86 Architecture برنامه‌نویسی سیستم برنامه‌نویسی سیستمی سخت‌افزار سیستم عامل

نظرات

هنوز نظری ثبت نشده است.

وارد شوید تا نظر ثبت کنید.