آموزش برنامه نویسی سیستم لینوکس - برنامه نویسان/رویکرد عملی

Linux System Programming - A programmers/Practical Approach

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: فایل‌ها، حافظه و مدیریت فرآیند، فورک، سیگنال‌ها، رشته‌ها، IPC - لوله‌ها، FIFO، صف پیام، سمافورها، حافظه مشترک از اصول اولیه تا برنامه‌نویسی سیستم‌های لینوکس پیشرفته، با استفاده از دموهای برنامه‌نویسی 'C'. عملیات فایل، تماس‌های سیستم، توابع کتابخانه، کامپایل کد با استفاده از GNU-GCC، تماس‌های مسدود و غیرمسدود، عملیات اتمی، وضعیت مسابقه، حالت کاربر و حالت هسته، مدیریت فرآیند - ایجاد فرآیند، پایان، فراخوانی سیستم Fork()، فرزند- فرآیند والد، آرگومان خط فرمان فرآیند، چیدمان حافظه سیگنال‌های فرآیند - کنترل‌کننده‌های سیگنال، ارسال سیگنال به پردازش، کنترل‌کننده‌های پیش‌فرض سیگنال. Posix Threads - ایجاد رشته، پایان موضوع، شناسه موضوع، موضوعات قابل اتصال و جدا شدنی. همگام سازی موضوع - Mutex، متغیرهای شرط، ارتباطات بین فرآیندی (IPC) - لوله‌ها، FIFO، صف پیام Posix، سمافور Posix، مدیریت حافظه مشترک Posix - مدیریت حافظه مجازی فرآیند، بخش‌های حافظه (کد، داده، پشته، پشته‌ها) پیش باید درک اولیه زبان C داشته باشد

توجه: این دوره توسط IT working Professional و نه توسط یک مربی حرفه ای برگزار می شود.


س. تخصص این دوره چیست؟

A. این دوره صرفاً یک دوره آموزشی در مورد "یادگیری برنامه نویسی با استفاده از لینوکس" است، این دوره "C" را آموزش نمی دهد. از آنجایی که این دوره توسط متخصصان فعال در صنعت برگزار می شود، این دوره سعی می کند شکاف بین دانشگاهیان و صنعت را پوشش دهد، همچنین آخرین بخش Bonus - Students Q A شامل سوالات جمعی دانشجویان و راه حل آن برای آنها می باشد. این یک بخش است که به طور منظم به روز می شود.


س. دانش قبلی مورد نیاز برای این دوره چیست؟

A. این دوره از مبانی برنامه نویسی لینوکس تا پیشرفته را آموزش می دهد، بنابراین هیچ دانش قبلی در مورد لینوکس فرض نمی شود، اما باید برای یادگیری فناوری لینوکس پر انرژی باشد.


س. این دوره برای چه کسانی است؟

A. این دوره از مبتدیان (دانشجویان) تا حرفه ای های متوسط ​​طراحی شده است که می خواهند لینوکس را بیاموزند و از پلتفرم منبع باز برای کمک به ایجاد حرفه خود در زمینه طراحی و توسعه سیستم های لینوکس استفاده کنند.


س. نتیجه این دوره چه خواهد بود؟

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


س. البته مطالب چیست؟

در این دوره شما برنامه نویسی سیستم لینوکس زیر را یاد خواهید گرفت. و تاکید بیشتری روی بخش برنامه نویسی داده شده است.

1. مقدمه ای بر سیستم های لینوکس.

a. معماری لینوکس.

ب. نوشتن برنامه "Hello World"، کامپایل با استفاده از GCC و اجرای آن.

2. فراخوانی سیستم و فراخوانی تابع کتابخانه استاندارد چیست

3. حالت هسته و کاربر در لینوکس

4. عملیات فایل

open()، close()، read()، write()، lseek()

تماس‌های مسدود و غیرمسدود.

عملیات اتمی، شرایط مسابقه.

5. مدیریت حافظه و حافظه مجازی

بخش پشته، بخش کد، بخش پشته، بخش داده،

مدیریت حافظه مجازی.

توابع مربوط به تخصیص حافظه - Malloc()، calloc()، Realloc()، متغیرهای خودکار، متغیرهای استاتیک.

6. مدیریت فرآیند

ایجاد فرآیند، خاتمه فرآیند، انتظار()، شناسه فرآیند، فراخوانی سیستم ()fork، خانواده فراخوانی سیستم Exec()، مدیریت فرآیند والدین،

آرگومانهای خط فرمان Process.

7. سیگنال ها

signal()، کنترل‌کننده‌های سیگنال، ارسال سیگنال برای پردازش، نادیده گرفتن و اقدامات سیگنال پیش‌فرض.

8. موضوعات پوزیکس

ایجاد رشته، پایان رشته، شناسه رشته، رشته‌های قابل اتصال و جداشدنی.

9. همگام سازی موضوع

Mutex، متغیرهای شرط، Thread safe.

10. Posix - ارتباطات بین فرآیند.

Pipes، FIFO، Posix message Queue، Posix Semaphores، Posix Shared Memory.


توجه - توزیع اوبونتو (لینوکس) برای همه نسخه‌های نمایشی در این دوره استفاده می‌شود.


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

مقدمه ای بر لینوکس Introduction to Linux

  • مطالب دوره Course Contents

  • مقدمه ای بر برنامه نویسی و هسته سیستم لینوکس Introduction to Linux system Programming and Kernel

  • نتیجه این دوره Outcome of This Course

مفاهیم برنامه نویسی سیستم System Programming Concepts

  • حالت کاربر و حالت هسته User mode and Kernel mode

  • توابع کتابخانه Library Functions

  • بخش A: تماس های سیستمی Part A: System Calls

  • بخش B: تماس های سیستمی Part B: System Calls

  • تماس های سیستمی system calls

  • فضای کاربر و هسته user and kernel space

  • عملکرد کتابخانه library function

  • امتیاز اعدام execution privilege

عملیات فایل File Operations

  • مفاهیم اولیه فایل Preliminary concepts of File

  • فایل open() - باز کردن یک فایل File open() - opening a file

  • فایل read() - خواندن یک فایل File read() - Reading a file

  • نوشتن فایل () - نوشتن در یک فایل File write() - writing to a file

  • فایل lseek() و close() فراخوانی سیستم File lseek() and close() system call

  • عملیات فایل File operations

  • تکلیف () Lseek Lseek() assignment

  • عملیات فایل File operations

  • نکات Tips

ورودی/خروجی پیشرفته Advanced I/O

  • شرایط مسابقه Race Condition

  • اتمی بودن Atomicity

  • مفهوم Pre-Emptive و Non Pre-Emptive Pre-Emptive and Non Pre-Emptive concept

  • بخش A: جدول توصیفگر فایل و جدول فایل باز Part A: File descriptor Table and Open file table

  • قسمت B: جدول توصیفگر فایل و جدول فایل باز Part B: File descriptor Table and Open file table

  • تشریح کننده فایل تکراری - فراخوانی سیستم dup(). Duplicating File descriptor - dup() system call

  • شرایط مسابقه Race condition

  • پیشگیرانه Pre-Emptive

  • جدول توصیف کننده فایل File descriptor table

  • جدول فایل را باز کنید Open file table

  • جدول فایل را باز کنید Open file table

  • جدول را گره می زنم I node table

  • از سناریوی موردی استفاده کنید Use Case Scenario

مقدمه ای بر فرآیند Introduction to Process

  • مقدمه ای بر فرآیند Introduction to Process

  • شناسه فرآیند و شناسه فرآیند والد Process ID and parent process ID

  • ایالات فرآیند Process States

  • چیدمان حافظه فرآیند - قسمت A Process Memory Layout - Part A

  • چیدمان حافظه فرآیند - قسمت B Process Memory Layout - Part B

  • نکات Tips

حافظه مجازی فرآیند Virtual Memory of Process

  • تصویر بزرگ The Big Picture

  • مدیریت حافظه مجازی و جدول صفحه Virtual Memory Management and Page Table

  • خط فرمان آرگومان های فرآیند Command Line Arguments of Process

  • محیط فرآیند Environment of Process

  • خلاصه Summary

  • آزمون فرآیند Process Quiz

تخصیص حافظه Memory Allocation

  • تخصیص حافظه - قسمت A Memory Allocation - Part A

  • تخصیص حافظه - قسمت B Memory Allocation - Part B

  • برنامه های مثال تخصیص حافظه Memory Allocation Example Programs

  • خلاصه Summary

برنامه نویسی فرآیند Process Programming

  • ایجاد فرآیند - fork() و برنامه مثال Process creation - fork() and Example program

مانیتور فرآیند Process Monitor

  • wait()، waitpid() و Process Termination wait(), waitpid() and Process Termination

  • یتیم، زامبی و فرآیند خواب Orphan, Zombie and sleeping Process

برنامه نویسی فرآیند پیشرفته Advanced Process Programming

  • اجرای برنامه جدید - exec() Executing new program - exec()

  • نمونه هایی از توابع exec Examples of exec functions

  • مثال execv() Example of execv()

  • مثال execve() Example of execve()

  • Exec() و Fork() Exec() and Fork()

  • جدول فرآیند و توصیف کننده فایل بین والدین و فرزند Process Table and file descriptor between Parent and Child

سیگنال ها Signals

  • سیگنال ها در لینوکس Signals in Linux

  • برنامه نویسی با سیگنال ها - قسمت A Programming with Signals - Part A

  • برنامه نویسی با سیگنال ها - قسمت B Programming with Signals - Part B

  • برنامه نویسی با استفاده از سیگنال های SIGUSR programming using SIGUSR signals

موضوعات Threads

  • تصویر بزرگ The Big Picture

  • ایجاد و پایان تاپیک Thread creation and termination

  • پیوستن به نخ Pthread join

  • () pthread_cancel و جدا کردن یک موضوع pthread_cancel() and Detaching a Thread

  • برنامه های نمونه Example programs

  • Threads vs Process Threads vs Process

همگام سازی نخ Thread synchronisation

  • همگام سازی با استفاده از Mutex Synchronisation using Mutex

  • متغیرهای شرط Condition Variables

IPC - مقدمه IPC - Introduction

  • مروری کوتاه بر IPC A brief overview of IPC

PIPES و FIFO - ارتباطات بین فرآیند PIPES and FIFO - Inter Process Communication

  • لوله - IPC PIPE - IPC

  • FIFO - IPC FIFO - IPC

POSIX - صف پیام POSIX - Message Queue

  • عملیات صف پیام Message Queue operations

POSIX - سمافور POSIX - Semaphore

  • عملیات سمافور - به نام سمافور Semaphore Operations - Named Semaphore

  • سمافور بدون نام Un Named Semaphore

POSIX - حافظه مشترک POSIX - shared memory

  • مفاهیم حافظه مشترک Shared Memory Concepts

  • عملیات حافظه مشترک Shared Memory Operations

یادداشت پایانی Closing Note

  • یادداشت پایانی و مراجع خواندن بیشتر Closing Note and Further Reading References

پاداش - پرسش و پاسخ دانش آموزان Bonus - Students Q & A

  • پرسش و پاسخ مرتبط با موضوع Thread related Q & A

  • پرسش و پاسخ مرتبط با فایل File Related Q & A

  • پرسش و پاسخ مربوط به فرآیند Process related Q & A

  • پرسش و پاسخ مرتبط با سیگنال ها Signals Related Q & A

نمایش نظرات

نظری ارسال نشده است.

آموزش برنامه نویسی سیستم لینوکس - برنامه نویسان/رویکرد عملی
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
10.5 hours
69
Udemy (یودمی) udemy-small
15 بهمن 1401 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
2,518
4.2 از 5
دارد
دارد
دارد
Mohan P

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Mohan P Mohan P

رهبری فنی برای توسعه سیستم های جاسازی شده

Udemy (یودمی)

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

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