فلش‌کارت‌های آموزشی یونیکس را رام کنید: برنامه‌نویسی سیستمی برای ساخت اپلیکیشن‌های قدرتمند

یونیکس را رام کنید: برنامه‌نویسی سیستمی برای ساخت اپلیکیشن‌های قدرتمند یونیکس را رام کنید: برنامه‌نویسی سیستمی برای ساخت اپلیکیشن‌های قدرتمند آیا رویای ساخت اپلیکیشن‌های قدرتمند و پیچیده را در سر داری...

انتخاب پلن

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

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

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

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

عنوان دوره: یونیکس را رام کنید: برنامه‌نویسی سیستمی برای ساخت اپلیکیشن‌های قدرتمند

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

موضوع میانی: توسعه نرم‌افزارهای کاربردی پیشرفته در یونیکس و لینوکس

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

  • 1. مقدمه‌ای بر یونیکس و فلسفه آن
  • 2. برنامه‌نویسی سیستمی چیست؟ تفاوت با برنامه‌نویسی کاربردی
  • 3. فراخوان‌های سیستمی (System Calls): دروازه ورود به هسته
  • 4. مروری بر زبان C برای برنامه‌نویسی سیستمی
  • 5. کامپایل، لینک و دیباگ کردن: GCC و GDB
  • 6. مدیریت پروژه‌ها با Make و Makefile
  • 7. مدیریت خطاها: errno و توابع مرتبط
  • 8. استاندارد POSIX و اهمیت آن در قابلیت حمل کد
  • 9. ساختار یک برنامه ساده یونیکسی
  • 10. فایل‌های هدر استاندارد در برنامه‌نویسی یونیکس
  • 11. فایل‌ها در یونیکس: همه چیز یک فایل است
  • 12. توصیف‌گرهای فایل (File Descriptors)
  • 13. باز کردن و بستن فایل‌ها: open و close
  • 14. خواندن از فایل‌ها: تابع read
  • 15. نوشتن در فایل‌ها: تابع write
  • 16. جابجایی در فایل: lseek
  • 17. ورودی/خروجی اتمیک (Atomic I/O)
  • 18. اشتراک‌گذاری فایل بین فرآیندها
  • 19. تکثیر توصیف‌گرهای فایل: dup و dup2
  • 20. ورودی/خروجی بافر شده در مقابل بدون بافر
  • 21. دریافت اطلاعات فایل: توابع stat، fstat و lstat
  • 22. ساختار struct stat و تفسیر فیلدهای آن
  • 23. انواع فایل در یونیکس (عادی، دایرکتوری، لینک، ...)
  • 24. مالکیت و مجوزهای دسترسی فایل
  • 25. تغییر مجوزها و مالکیت: chmod، fchmod، chown، fchown
  • 26. لینک‌های سخت (Hard Links) و لینک‌های نمادین (Symbolic Links)
  • 27. کار با دایرکتوری‌ها: opendir، readdir، closedir
  • 28. ایجاد و حذف فایل‌ها و دایرکتوری‌ها: mkdir، rmdir، remove
  • 29. مفهوم فرآیند (Process) در یونیکس
  • 30. شناسه فرآیند (PID) و شناسه فرآیند والد (PPID)
  • 31. ایجاد یک فرآیند جدید با fork
  • 32. روابط والد-فرزندی و فرآیندهای یتیم (Orphan)
  • 33. فرآیندهای زامبی (Zombie) و جلوگیری از آنها
  • 34. انتظار برای خاتمه فرآیند فرزند: wait و waitpid
  • 35. جایگزینی تصویر فرآیند: خانواده توابع exec
  • 36. خاتمه یک فرآیند: exit و _exit
  • 37. متغیرهای محیطی و توابع getenv و setenv
  • 38. چیدمان حافظه یک فرآیند در یونیکس
  • 39. شناسه‌های کاربر و گروه (UID, GID)
  • 40. محدودیت‌های منابع و getrlimit/setrlimit
  • 41. گروه‌های فرآیند و Session ها
  • 42. مفاهیم اولیه کنترل وظیفه (Job Control)
  • 43. اجرای یک دستور شل با تابع system
  • 44. سیگنال‌ها: مکانیزم وقفه‌های نرم‌افزاری
  • 45. مفاهیم سیگنال: ارسال، دریافت و رسیدگی
  • 46. لیست سیگنال‌های استاندارد و کاربرد آنها
  • 47. رسیدگی به سیگنال‌ها با تابع signal
  • 48. رسیدگی پیشرفته به سیگنال‌ها با sigaction
  • 49. ارسال سیگنال به فرآیندها: kill و raise
  • 50. مسدود کردن سیگنال‌ها: Signal Mask و sigprocmask
  • 51. مجموعه سیگنال‌های در انتظار (Pending Signals)
  • 52. توابع امن در برابر سیگنال (Async-Signal-Safe Functions)
  • 53. استفاده از alarm و sleep
  • 54. مقدمه‌ای بر ارتباطات بین فرآیندی (IPC)
  • 55. لوله‌های بی‌نام (Pipes): ارتباط یک‌طرفه بین والد و فرزند
  • 56. ایجاد و استفاده از pipe
  • 57. استفاده از pipe برای تغییر مسیر ورودی/خروجی استاندارد
  • 58. توابع popen و pclose
  • 59. لوله‌های نام‌دار (FIFOs): ارتباط بین فرآیندهای نامرتبط
  • 60. ایجاد و کار با FIFO ها
  • 61. مقدمه‌ای بر IPC System V
  • 62. صف‌های پیام (Message Queues): مفاهیم اولیه
  • 63. توابع صف پیام: msgget، msgsnd، msgrcv، msgctl
  • 64. سمافورها (Semaphores): مفاهیم و کاربردها
  • 65. سمافورهای دودویی (Binary) و شمارشی (Counting)
  • 66. توابع سمافور: semget، semop، semctl
  • 67. حل مسئله تولیدکننده-مصرف‌کننده با سمافور
  • 68. حافظه اشتراکی (Shared Memory): سریع‌ترین روش IPC
  • 69. توابع حافظه اشتراکی: shmget، shmat، shmdt، shmctl
  • 70. همگام‌سازی دسترسی به حافظه اشتراکی
  • 71. مقایسه IPC System V و POSIX IPC
  • 72. مقدمه‌ای بر برنامه‌نویسی شبکه و سوکت‌ها
  • 73. پروتکل‌های TCP/IP: مروری سریع
  • 74. آدرس‌دهی در اینترنت: IPv4 و IPv6
  • 75. ترتیب بایت (Byte Order) و توابع تبدیل
  • 76. API سوکت‌های برکلی (Berkeley Sockets)
  • 77. ایجاد سوکت با تابع socket
  • 78. برنامه‌نویسی سرور TCP: bind، listen، accept
  • 79. برنامه‌نویسی کلاینت TCP: connect
  • 80. ارسال و دریافت داده با send و recv
  • 81. بستن اتصال سوکت: close و shutdown
  • 82. برنامه‌نویسی با سوکت‌های UDP
  • 83. تبدیل نام دامنه به آدرس IP: getaddrinfo
  • 84. مدیریت چندین کلاینت: I/O Multiplexing
  • 85. استفاده از select و poll
  • 86. مدل پیشرفته‌تر I/O: epoll در لینوکس
  • 87. مقدمه‌ای بر برنامه‌نویسی چندنخی (Multithreading) با Pthreads
  • 88. ایجاد و پیوستن به نخ‌ها (Threads)
  • 89. خاتمه دادن به نخ‌ها
  • 90. همگام‌سازی نخ‌ها: Mutexes
  • 91. همگام‌سازی نخ‌ها: Condition Variables
  • 92. همگام‌سازی نخ‌ها: Reader-Writer Locks
  • 93. فرآیندهای دیمن (Daemon): نوشتن سرویس‌های پس‌زمینه
  • 94. قوانین و مراحل ایجاد یک دیمن
  • 95. ثبت وقایع (Logging) با Syslog
  • 96. ورودی/خروجی ترمینال و کنترل آن
  • 97. کتابخانه‌های اشتراکی (Shared Libraries) و پیوند پویا
  • 98. ساخت و استفاده از کتابخانه‌های استاتیک و دینامیک
  • 99. زمان و تاریخ در یونیکس
  • 100. پروژه نهایی: ساخت یک وب سرور ساده از ابتدا
یونیکس را رام کنید: برنامه‌نویسی سیستمی برای ساخت اپلیکیشن‌های قدرتمند

یونیکس را رام کنید: برنامه‌نویسی سیستمی برای ساخت اپلیکیشن‌های قدرتمند

آیا رویای ساخت اپلیکیشن‌های قدرتمند و پیچیده را در سر دارید که مستقیماً با قلب سیستم عامل کار می‌کنند؟ آیا می‌خواهید از تمام پتانسیل یونیکس و لینوکس بهره ببرید؟ دوره "یونیکس را رام کنید" دقیقاً برای شما طراحی شده است.

با الهام از کتاب ارزشمند "UNIX applications programming"، این دوره آموزشی به شما یک سفر هیجان‌انگیز به دنیای برنامه‌نویسی سیستمی ارائه می‌دهد. دیگر نیازی نیست صرفاً یک کاربر باشید، بلکه می‌توانید خالق باشید و اپلیکیشن‌هایی بسازید که عملکرد سیستم را بهینه می‌کنند، وظایف پیچیده را خودکار می‌کنند و امکانات جدیدی را به دنیای یونیکس و لینوکس اضافه می‌کنند.

درباره دوره

دوره "یونیکس را رام کنید" یک دوره جامع و عملی است که به شما اصول و تکنیک‌های برنامه‌نویسی سیستمی در محیط‌های یونیکس و لینوکس را آموزش می‌دهد. این دوره با استفاده از زبان C و APIهای قدرتمند سیستم عامل، شما را قادر می‌سازد تا نرم‌افزارهای کاربردی پیشرفته‌ای را توسعه دهید که مستقیماً با کرنل سیستم عامل تعامل دارند.

در این دوره، ما فراتر از مفاهیم تئوری می‌رویم و با انجام پروژه‌های عملی و مثال‌های واقعی، شما را با چالش‌های واقعی برنامه‌نویسی سیستمی آشنا می‌کنیم. دانش و مهارت‌هایی که در این دوره کسب می‌کنید، به شما کمک می‌کند تا به یک برنامه‌نویس سیستمی حرفه‌ای تبدیل شوید و در زمینه‌های مختلفی مانند توسعه سیستم عامل، ساخت درایورهای سخت‌افزاری، طراحی شبکه‌های کامپیوتری و امنیت سیستم فعالیت کنید.

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

  • مقدمه‌ای بر سیستم عامل یونیکس و لینوکس
  • آشنایی با ابزارهای توسعه در یونیکس/لینوکس (کامپایلرها، دیباگرها، سازندگان ساخت)
  • برنامه‌نویسی با زبان C و ساختارهای داده پیشرفته
  • فراخوانی‌های سیستمی (System Calls) و APIهای یونیکس
  • مدیریت فرآیندها و نخ‌ها (Processes and Threads)
  • ارتباط بین فرآیندی (Inter-Process Communication - IPC)
  • ورودی/خروجی فایل‌ها و دستگاه‌ها (File I/O and Device Drivers)
  • شبکه‌سازی با استفاده از سوکت‌ها (Socket Programming)
  • سیگنال‌ها و تایمرها (Signals and Timers)
  • مدیریت حافظه (Memory Management)
  • عیب‌یابی و بهینه‌سازی کد (Debugging and Optimization)
  • امنیت در برنامه‌نویسی سیستمی (Security in System Programming)
  • پروژه‌های عملی و توسعه نرم‌افزارهای کاربردی

مخاطبان دوره

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

  • دانشجویان رشته‌های کامپیوتر و فناوری اطلاعات
  • برنامه‌نویسان C و C++ که می‌خواهند مهارت‌های خود را در برنامه‌نویسی سیستمی ارتقا دهند
  • متخصصان IT که به دنبال درک عمیق‌تری از سیستم عامل یونیکس/لینوکس هستند
  • افرادی که علاقه‌مند به توسعه نرم‌افزارهای سیستمی، درایورهای سخت‌افزاری و سیستم عامل هستند
  • کسانی که می‌خواهند در زمینه‌های امنیت سیستم و شبکه‌های کامپیوتری فعالیت کنند

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

گذراندن دوره "یونیکس را رام کنید" مزایای زیادی برای شما خواهد داشت:

  • یادگیری عمیق‌تر: درک عمیق‌تری از نحوه عملکرد سیستم عامل یونیکس/لینوکس به دست می‌آورید.
  • افزایش مهارت: مهارت‌های برنامه‌نویسی C و C++ خود را در زمینه برنامه‌نویسی سیستمی بهبود می‌بخشید.
  • فرصت‌های شغلی: فرصت‌های شغلی جدیدی در زمینه توسعه سیستم عامل، درایورهای سخت‌افزاری و امنیت سیستم برای شما فراهم می‌شود.
  • حل مسائل پیچیده: توانایی حل مسائل پیچیده و بهینه‌سازی عملکرد سیستم را کسب می‌کنید.
  • ساخت اپلیکیشن‌های قدرتمند: می‌توانید اپلیکیشن‌های قدرتمند و کارآمدی را برای محیط‌های یونیکس/لینوکس توسعه دهید.
  • بهره‌گیری از کتاب مرجع: با الهام از کتاب معتبر UNIX applications programming، یک پایه قوی برای یادگیری و توسعه در این زمینه خواهید داشت.
  • آمادگی برای پروژه‌های بزرگ: برای کار بر روی پروژه‌های بزرگ و پیچیده در مقیاس سازمانی آماده می‌شوید.
  • شبکه‌سازی با متخصصان: با سایر علاقه‌مندان و متخصصان در این زمینه ارتباط برقرار می‌کنید.
  • به‌روزرسانی دانش: دانش خود را در مورد آخرین تکنولوژی‌ها و روش‌های برنامه‌نویسی سیستمی به‌روز نگه می‌دارید.
  • افزایش اعتماد به نفس: اعتماد به نفس شما در حل مسائل فنی و توسعه نرم‌افزارهای پیچیده افزایش می‌یابد.

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

دوره "یونیکس را رام کنید" شامل 100 سرفصل جامع است که تمام جنبه‌های برنامه‌نویسی سیستمی در یونیکس و لینوکس را پوشش می‌دهد. (برای دیدن لیست کامل 100 سرفصل لطفا به وبسایت ما مراجعه کنید. اینجا به تعدادی از سرفصل‌های اصلی اشاره شده است):

  • مقدمه‌ای بر معماری سیستم عامل
  • نصب و پیکربندی محیط توسعه
  • کامپایل و دیباگ کردن برنامه‌های C
  • متغیرها و انواع داده در C
  • عملگرها و عبارات
  • ساختارهای کنترلی (if, else, switch, for, while)
  • توابع و فراخوانی توابع
  • اشاره‌گرها و آرایه‌ها
  • ساختارها و اتحادها
  • مدیریت حافظه پویا
  • فایل‌های سرآیند و پیش‌پردازنده
  • مقدمه‌ای بر فراخوانی‌های سیستمی
  • باز کردن و بستن فایل‌ها (open, close)
  • خواندن و نوشتن فایل‌ها (read, write)
  • کنترل موقعیت فایل (lseek)
  • مدیریت دایرکتوری‌ها (mkdir, rmdir, chdir)
  • دستکاری لینک‌های نمادین (symlink, readlink)
  • بررسی اطلاعات فایل (stat, fstat)
  • مدیریت دسترسی به فایل (chmod, chown)
  • مقدمه‌ای بر فرآیندها
  • ایجاد فرآیندها (fork)
  • اجرای برنامه‌ها (exec)
  • انتظار برای پایان فرآیند (wait)
  • سیگنال‌ها و مدیریت سیگنال‌ها (signal, kill)
  • گروه‌های فرآیندی و Sessions
  • زمان‌بندی فرآیندها
  • اولویت فرآیندها
  • مقدمه‌ای بر نخ‌ها
  • ایجاد و مدیریت نخ‌ها (pthread_create, pthread_join)
  • همگام‌سازی نخ‌ها (mutexes, condition variables)
  • مقدمه‌ای بر IPC
  • پایپ‌ها (pipes)
  • صف‌های پیام (message queues)
  • حافظه اشتراکی (shared memory)
  • سوکت‌ها و برنامه‌نویسی شبکه

همین حالا ثبت‌نام کنید و قدم در راه تبدیل شدن به یک برنامه‌نویس سیستمی حرفه‌ای بگذارید! ظرفیت محدود است!

SMART LEARNING PLATFORM
از مطالعه تا یادگیری ماندگار
فراتر از یک مجموعه فلش‌کارت؛ تجربه‌ای تعاملی برای یادگیری، تمرین، مرور هوشمند و مشاهده مسیر پیشرفت شما، همراه با امکان دریافت گواهی پایان دوره در دوره‌های واجد شرایط.
مرور فاصله‌دار آمار یادگیری گواهی دوزبانه
یادگیری را به یک مسیر قابل پیگیری تبدیل کنید
با ورود به سامانه آموزشی، محتوای دوره را به‌صورت مرحله‌ای دنبال کنید، فلش‌کارت‌ها را مرور کنید، دانش خود را با پرسش‌ها و آزمون‌ها بسنجید و روند پیشرفتتان را در طول مسیر ببینید.
⟳
مرور فاصله‌دار هوشمند
با مرور زمان‌دار، کارت‌های تازه و کارت‌های سررسیدشده را بر اساس برنامه مرور دنبال کنید. ارزیابی پاسخ‌ها به زمان‌بندی مرورهای بعدی کمک می‌کند تا تمرین متناسب‌تری داشته باشید.
◉
مشاهده مسیر پیشرفت
میزان مشاهده فلش‌کارت‌ها، فعالیت‌های مرور، عملکرد آزمون‌ها و آمار یادگیری را بررسی کنید و تصویر روشن‌تری از مسیر آموزشی خود داشته باشید.
▤
یادگیری مرحله‌به‌مرحله
فصل‌ها و بخش‌های آموزشی را به ترتیب دنبال کنید، مطالب دیده‌نشده را پیدا کنید و بدون سردرگمی به ادامه مسیر برگردید.
✓
تمرین و سنجش آموخته‌ها
با نکته‌های آموزشی، پرسش و پاسخ، کوییزها و آزمون‌های پایان فصل، دانسته‌های خود را تمرین کنید و بخش‌هایی را که به توجه بیشتری نیاز دارند بشناسید.
SMART REVIEW
هر بار، مرور هدفمندتر
لازم نیست هر روز از ابتدا درباره اینکه چه چیزی را مرور کنید تصمیم بگیرید. سامانه، صف مرور روزانه را بر اساس کارت‌های تازه و موعد مرور کارت‌ها آماده می‌کند. شما پاسخ را ارزیابی می‌کنید و برنامه مرور با توجه به آن تنظیم می‌شود.
دوباره
برای کارت‌هایی که به تمرین زودتر نیاز دارند.
سخت
برای پاسخ‌هایی که با دشواری به یاد آمده‌اند.
خوب
برای پاسخ‌هایی که به‌درستی به یاد آورده‌اید.
آسان
برای کارت‌هایی که پاسخ آن‌ها را به‌آسانی می‌دانید.
برنامه مرور بر اساس ارزیابی شما تنظیم می‌شود؛ مرور منظم می‌تواند به تثبیت آموخته‌ها کمک کند، اما به‌تنهایی تضمین‌کننده تسلط کامل نیست.
محتوا را به شیوه‌های مختلف تمرین کنید
ساختار دوره‌ها متناسب با موضوع آموزشی طراحی شده است و ممکن است انواع مختلفی از محتوا را در بر بگیرد.
نکته‌های ساده
برای مرور سریع مفاهیم اصلی و نکات کلیدی.
نکته‌های رسمی
برای تمرین تعاریف، اصطلاحات و بیان دقیق علمی.
کوییز
برای سنجش درک مطلب و بررسی گزینه صحیح.
پرسش و پاسخ
برای تمرین یادآوری و سنجش میزان تسلط بر مطالب.
محتوای هر دوره بر اساس ساختار و امکانات فعال همان دوره ارائه می‌شود.
LEARN ANYWHERE
همراه شما روی مرورگر
برای استفاده از نسخه تحت وب، کافی است با حساب کاربری خود وارد سامانه شوید. بدون نیاز به نصب یک برنامه اختصاصی، می‌توانید از مرورگر سازگار روی گوشی، تبلت یا رایانه به دوره‌های در دسترس خود مراجعه کنید.
گوشی هوشمند
برای مطالعه در زمان‌های کوتاه
تبلت و لپ‌تاپ
برای مطالعه و مرور راحت‌تر
حساب کاربری شخصی
برای دسترسی به دوره‌های مجاز شما
COURSE COMPLETION CERTIFICATE
گواهی پایان دوره؛ ثبت دستاورد شما
در دوره‌هایی که امکان دریافت گواهی برای آن‌ها فعال است، می‌توانید پس از تکمیل شرایط آموزشی، درخواست گواهی پایان دوره ثبت کنید.
شرایط درخواست گواهی
✓ داشتن دسترسی دارای قابلیت گواهی برای دوره مربوطه.
✓ تکمیل اطلاعات لازم در پروفایل، شامل کد ملی معتبر، عکس پرسنلی و نام و نام خانوادگی انگلیسی.
✓ مشاهده تمام فلش‌کارت‌های فعال دوره.
✓ قبولی در آزمون‌های پایان فصل، در صورت وجود آزمون برای فصل‌ها.
فارسی و انگلیسی
پس از تأیید و انتشار، نسخه‌های فارسی و انگلیسی گواهی در دسترس قرار می‌گیرند.
استعلام آنلاین
گواهی منتشرشده دارای QR Code و لینک اختصاصی برای بررسی آنلاین اعتبار آن است.
دانلود و چاپ
پس از انتشار گواهی، امکان دریافت نسخه PDF فارسی و انگلیسی و چاپ آن فراهم است.
توجه: ثبت درخواست به معنای صدور قطعی نیست. درخواست گواهی پس از بررسی و تأیید ادمین منتشر می‌شود. این گواهی، گواهی پایان دوره آموزشی است و به‌خودی‌خود معادل مدرک دانشگاهی یا مدرک رسمی مورد تأیید نهادهای دولتی نیست.
یادگیری را شروع کنید؛ پیشرفت را دنبال کنید
با تمرین منظم، مرور هدفمند و پیگیری مسیر آموزشی خود، قدم‌به‌قدم دانش و مهارت‌هایتان را گسترش دهید.
هر کارت، یک قدم به جلو
امکانات محتوایی، مرور و گواهی بر اساس سطح دسترسی و تنظیمات هر دوره متفاوت است.
نگاهی به محیط سامانه

یادگیری هوشمند، قدم‌به‌قدم

با محیط سامانه آموزشی آشنا شوید و نمونه‌هایی از فضای یادگیری، فلش‌کارت‌ها و ابزارهای مرور و تمرین را مشاهده کنید.

تصویر نمونه اول از سامانه آموزشی و فلش‌کارت‌ها
محیط سامانه آموزشی
برای مشاهده تصویر در اندازه بزرگ‌تر کلیک کنید
تصویر نمونه دوم از سامانه آموزشی و فلش‌کارت‌ها
یادگیری و مرور مطالب
برای مشاهده تصویر در اندازه بزرگ‌تر کلیک کنید
تصویر نمونه سوم از سامانه آموزشی و فلش‌کارت‌ها
تجربه مطالعه تعاملی
برای مشاهده تصویر در اندازه بزرگ‌تر کلیک کنید
تصویر نمونه چهارم از سامانه آموزشی و فلش‌کارت‌ها
امکانات بیشتر سامانه
برای مشاهده تصویر در اندازه بزرگ‌تر کلیک کنید

یادگیری فراتر از مطالعه معمولی
با فلش‌کارت‌های آموزشی، مرور هدفمند و تمرین مستمر، مطالب را فعالانه یاد بگیرید و مسیر پیشرفت خود را دنبال کنید.

تگ‌ها: Advanced Unix C for systems C Programming Interprocess communication Linux Development Programing Shell programming Software Development system calls UNIX applications programming Unix Programming Unix tools برنامه نویسی سیستمی لینوکس یونیکس

نظرات

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

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