کتاب برنامهنویسی سیستمی در UNIX: کاوش در معماری x86 و تعامل با سختافزار با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
برنامهنویسی سیستمی در UNIX: کاوش در معماری x86 و تعامل با سختافزار | دروازهای به دنیای سیستم عامل برنامهنویسی سیستمی در UNIX: کاوش در معماری x86 و تعامل با سختافزار معرفی دوره آیا همیشه آرزو داشت...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره برنامهنویسی سیستمی در 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
برنامهنویسی سیستم
برنامهنویسی سیستمی
سختافزار
سیستم عامل
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.