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

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

انتخاب پلن

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

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

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

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

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

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

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

📋 سرفصل‌های دوره (100 موضوع)

  • 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
برنامه‌نویسی سیستمی در UNIX: کاوش در معماری x86 و تعامل با سخت‌افزار | دروازه‌ای به دنیای سیستم عامل

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

معرفی دوره

آیا همیشه آرزو داشتید به اعماق سیستم عامل‌ها نفوذ کنید و نحوه تعامل نرم‌افزار با سخت‌افزار را در سطح پایین درک کنید؟ آیا به دنبال مهارتی هستید که شما را از یک برنامه‌نویس معمولی به یک متخصص سیستم تبدیل کند؟

دوره "برنامه‌نویسی سیستمی در UNIX: کاوش در معماری x86 و تعامل با سخت‌افزار" دقیقاً برای همین منظور طراحی شده است. این دوره با الهام از کتاب ارزشمند "UNIX programming on the 80286/80386" شما را در یک سفر هیجان‌انگیز به دنیای برنامه‌نویسی سیستمی در محیط UNIX همراهی می‌کند. ما به شما نشان خواهیم داد چگونه با استفاده از ابزارهای قدرتمند UNIX و درک عمیق از معماری x86، برنامه‌هایی بنویسید که مستقیماً با سخت‌افزار تعامل داشته باشند.

درباره دوره

این دوره یک راهنمای جامع برای برنامه‌نویسی سیستمی در محیط UNIX است. بر خلاف بسیاری از دوره‌های موجود که تنها به سطوح بالای برنامه‌نویسی می‌پردازند، ما در این دوره عمیقاً به مباحثی مانند مدیریت حافظه، پردازش سیگنال‌ها، درایورهای دستگاه و ارتباطات بین فرآیندی خواهیم پرداخت. دانش ارائه شده در این دوره، با اصول و مبانی موجود در کتاب "UNIX programming on the 80286/80386" همخوانی دارد و به شما کمک می‌کند تا درک عمیق‌تری از نحوه عملکرد سیستم عامل‌ها و سخت‌افزار به دست آورید. با گذراندن این دوره، شما قادر خواهید بود برنامه‌هایی با کارایی بالا بنویسید که به طور مستقیم با سخت‌افزار تعامل دارند و از تمام ظرفیت‌های سیستم عامل UNIX بهره می‌برند.

موضوعات کلیدی

  • آشنایی با معماری x86 و اجزای اصلی آن
  • نحوه کامپایل و دیباگ کردن برنامه‌ها در محیط UNIX
  • برنامه‌نویسی سیستم‌عامل با استفاده از فراخوان‌های سیستمی (System Calls)
  • مدیریت حافظه و تخصیص حافظه دینامیک
  • پردازش سیگنال‌ها و مدیریت خطاها
  • ارتباطات بین فرآیندی (Inter-Process Communication - IPC)
  • نوشتن درایورهای دستگاه ساده
  • کار با فایل‌ها و دایرکتوری‌ها در سطح پایین
  • بهینه‌سازی کد برای کارایی بالا
  • امنیت در برنامه‌نویسی سیستمی

مخاطبان دوره

این دوره برای افراد زیر مناسب است:

  • دانشجویان رشته‌های کامپیوتر و مهندسی نرم‌افزار
  • برنامه‌نویسانی که می‌خواهند دانش خود را در زمینه برنامه‌نویسی سیستم‌عامل ارتقا دهند
  • متخصصان امنیت سایبری که به دنبال درک عمیق‌تری از نحوه عملکرد سیستم عامل‌ها هستند
  • توسعه‌دهندگان سیستم‌عامل و کرنل
  • هر کسی که به برنامه‌نویسی سطح پایین و تعامل با سخت‌افزار علاقه‌مند است

چرا این دوره را بگذرانیم؟

گذراندن این دوره مزایای بی‌شماری برای شما به ارمغان خواهد آورد:

  • افزایش دانش فنی: شما درک عمیق‌تری از نحوه عملکرد سیستم عامل‌ها و سخت‌افزار به دست خواهید آورد.
  • بهبود مهارت‌های برنامه‌نویسی: شما یاد خواهید گرفت چگونه برنامه‌هایی با کارایی بالا بنویسید که مستقیماً با سخت‌افزار تعامل دارند.
  • فرصت‌های شغلی بهتر: دانش برنامه‌نویسی سیستمی یک مهارت بسیار ارزشمند در بازار کار است و می‌تواند به شما کمک کند تا فرصت‌های شغلی بهتری را به دست آورید.
  • حل مشکلات پیچیده: شما قادر خواهید بود مشکلات پیچیده سیستم را تحلیل و حل کنید.
  • آمادگی برای توسعه سیستم‌عامل: این دوره یک گام عالی برای کسانی است که به توسعه سیستم‌عامل و کرنل علاقه‌مند هستند.
  • یادگیری بر اساس یک کتاب مرجع: مفاهیم این دوره بر اساس اصول و مبانی کتاب معتبر "UNIX programming on the 80286/80386" تدوین شده است، که اطمینان حاصل می‌کند شما یک پایه قوی در این زمینه خواهید داشت.

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

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

  • بخش اول: مقدمه و آشنایی با UNIX
    • تاریخچه و تکامل UNIX
    • مفاهیم پایه سیستم عامل
    • معرفی محیط خط فرمان (Shell)
    • ابزارهای خط فرمان ضروری
    • نصب و پیکربندی یک محیط UNIX
  • بخش دوم: معماری x86
    • مقدمه‌ای بر معماری x86
    • ثبات‌ها و رجیسترهای CPU
    • مدیریت حافظه در x86
    • حالت‌های اجرایی (Real Mode, Protected Mode)
    • وقفه ها و مدیریت وقفه ها
  • بخش سوم: برنامه‌نویسی C در UNIX
    • یادآوری مفاهیم C (اشاره‌گرها، ساختارها، توابع)
    • کامپایل و دیباگ کردن برنامه‌های C در UNIX
    • استفاده از GCC و GDB
    • ساخت فایل‌های اجرایی
    • بهینه‌سازی کد C
  • بخش چهارم: فراخوان‌های سیستمی (System Calls)
    • مفهوم فراخوان‌های سیستمی
    • فراخوان‌های سیستمی مربوط به فایل‌ها (open, read, write, close)
    • فراخوان‌های سیستمی مربوط به فرآیندها (fork, exec, wait)
    • فراخوان‌های سیستمی مربوط به مدیریت حافظه (malloc, free, mmap)
    • پردازش سیگنال‌ها (signal, kill)
  • بخش پنجم: مدیریت حافظه
    • مدیریت حافظه استاتیک و دینامیک
    • تخصیص حافظه با malloc و free
    • آشنایی با حافظه اشتراکی (Shared Memory)
    • تکنیک‌های مدیریت حافظه پیشرفته
    • جلوگیری از نشت حافظه (Memory Leak)
  • بخش ششم: ارتباطات بین فرآیندی (IPC)
    • لوله‌ها (Pipes)
    • صف‌های پیام (Message Queues)
    • حافظه اشتراکی (Shared Memory)
    • سوکت‌ها (Sockets)
    • سمافورها (Semaphores)
  • بخش هفتم: نخ‌ها (Threads)
    • مفهوم نخ‌ها و مزایای استفاده از آنها
    • ایجاد و مدیریت نخ‌ها با pthreads
    • همگام‌سازی نخ‌ها (Mutexes, Condition Variables)
    • مشکلات همزمانی و راه حل‌ها
  • بخش هشتم: درایورهای دستگاه
    • مقدمه‌ای بر درایورهای دستگاه
    • ساختار یک درایور دستگاه ساده
    • ارتباط با سخت‌افزار از طریق درایور
    • نوشتن یک درایور دستگاه کاراکتری
  • بخش نهم: امنیت در برنامه‌نویسی سیستمی
    • حملات رایج در برنامه‌نویسی سیستمی
    • جلوگیری از سرریز بافر (Buffer Overflow)
    • اعتبارسنجی ورودی‌ها
    • اصول حداقل امتیاز (Principle of Least Privilege)
  • بخش دهم: بهینه‌سازی و عیب‌یابی
    • ابزارهای پروفایلینگ
    • بهینه‌سازی کد C برای کارایی بالا
    • عیب‌یابی برنامه‌های سیستمی
    • تکنیک‌های دیباگ پیشرفته
  • ... و 90 سرفصل دیگر با جزئیات کامل
همین حالا در دوره ثبت‌نام کنید و به یک متخصص سیستم تبدیل شوید!
EXPRESS24 AUDIO EXPERIENCE
یادگیری را بشنوید؛ زندگی کنید
کتاب‌های صوتی و پادکست‌های آموزشی، راهی دلنشین برای کشف ایده‌های تازه، گسترش دانش و استفاده بهتر از لحظه‌های روزمره هستند.
دانش، الهام و تجربه؛ این بار با صدای زندگی
برای آموختن، همیشه لازم نیست بخوانید
گاهی بهترین فرصت یادگیری زمانی است که در مسیر رفت‌وآمد هستید، قدم می‌زنید، استراحت می‌کنید یا کارهای روزمره‌تان را انجام می‌دهید. محتوای صوتی کمک می‌کند از این لحظه‌ها برای شنیدن، اندیشیدن و آشنایی با موضوعات تازه بهره ببرید.
◷
یادگیری در دل روزمرگی
از زمان رفت‌وآمد، پیاده‌روی یا استراحت برای شنیدن محتوای مفید استفاده کنید؛ بدون آنکه همیشه به کتاب چاپی یا صفحه نمایش نیاز داشته باشید.
◎
تجربه‌ای شنیداری و دلنشین
با روایت صوتی، توضیحات گفتاری و فضای شنیداری هر محتوا همراه شوید و متناسب با سلیقه خود، شیوه تازه‌ای برای دریافت مطالب تجربه کنید.
✦
گسترش دانش و دیدگاه
با موضوعات متنوع آشنا شوید، ایده‌های تازه کشف کنید و فرصت بیشتری برای یادگیری مستمر و پرورش کنجکاوی خود بسازید.
♫
همراه با سبک زندگی شما
محتوای صوتی را متناسب با برنامه روزانه خود انتخاب کنید و در زمان مناسب، شنیدن را به بخشی از عادت‌های شخصی‌تان تبدیل کنید.
کتاب صوتی یا پادکست؟
کتاب صوتی
راهی برای همراه شدن با محتوای یک کتاب از طریق شنیدن. بسته به اثر، می‌توانید داستان‌ها، آموزش‌ها، مفاهیم تخصصی یا مطالب کاربردی را در قالب روایت و بیان صوتی دنبال کنید.
مناسب برای شنیدن و مرور محتوای کتاب‌ها
پادکست آموزشی
فرصتی برای دنبال کردن موضوعات مشخص در قالب گفت‌وگو، روایت، توضیح آموزشی یا مجموعه‌ای از قسمت‌های صوتی؛ مناسب برای کشف ایده‌ها و آشنایی با دیدگاه‌های گوناگون.
مناسب برای یادگیری موضوعی و شنیدن دیدگاه‌های تازه
هر جا که هستید، شنیدن را آغاز کنید
با دستگاه مناسب خود، محتوای صوتی را به آسانی دنبال کنید.
▯
گوشی هوشمند
اندروید و آیفون
▣
تبلت
برای شنیدن و دنبال کردن محتوا
▤
رایانه و لپ‌تاپ
با پخش‌کننده صوتی سازگار
♫
هدفون و بلندگو
برای شنیدن متناسب با محیط
چطور از تجربه شنیدن بیشتر بهره ببریم؟
✦ زمان مناسبی برای شنیدن انتخاب کنید؛ زمانی که بتوانید با آرامش به محتوا توجه داشته باشید.
✦ برای مطالب آموزشی، نکته‌های مهم را یادداشت کنید یا پس از پایان شنیدن، آن‌ها را مرور کنید.
✦ اگر محتوا طولانی است، آن را در چند نوبت دنبال کنید تا فرصت بیشتری برای درک و مرور داشته باشید.
✦ هنگام رانندگی یا انجام کارهای نیازمند تمرکز، ایمنی را در اولویت قرار دهید و از شیوه شنیدنی استفاده کنید که حواس شما را مختل نکند.
هر شنیدن، فرصتی برای کشف است
با کتاب‌های صوتی و پادکست‌های آموزشی، دنیای تازه‌ای از ایده‌ها، روایت‌ها و آموختنی‌ها را به لحظه‌های خود اضافه کنید.
کشف محصولات بیشتر در اکسپرس ۲۴
express24.ir
امکانات پخش، ادامه شنیدن و دسترسی آفلاین به نوع فایل، دستگاه و نرم‌افزار مورد استفاده بستگی دارد.
AUDIO PREVIEW
قبل از انتخاب، گوش کنید!
بخشی از سبک محتوای محصولات صوتی ما را بشنوید و با فضای آن آشنا شوید.
♫
نمونه صوتی از سبک محصولات صوتی ما
پیش‌نمایش کوتاهی از سبک پادکست های صوتی محصولات ما
پخش آنلاین
برای تجربه بهتر، می‌توانید از هدفون استفاده کنید.
تگ‌ها: 80286 80386 C Programming embedded systems kernel Linux low-level programming System Programming UNIX internals Unix Programming x86 Architecture برنامه‌نویسی سیستم برنامه‌نویسی سیستمی سخت‌افزار سیستم عامل

نظرات

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

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