لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش برنامه نویسی سیستم های لینوکس
Linux Systems Programming
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:
خانواده سیستم عامل های لینوکس یکی از محبوب ترین پلتفرم ها برای استقرار برنامه های کاربردی مدرن است. این دوره به شما یاد می دهد که چگونه با سیستم عامل های لینوکس به زبان برنامه نویسی C تعامل داشته باشید. چه در حال نوشتن یک الگوریتم معاملاتی با تأخیر بسیار کم برای یک شرکت تجاری با فرکانس بالا باشید، چه درایورهای دستگاه برای یک سیستم تعبیه شده یا هر چیز دیگری، نرم افزار مدرن. برنامه ها اغلب بر روی سیستم عامل لینوکس توسعه می یابند. در این دوره، برنامه نویسی سیستم های لینوکس، یاد خواهید گرفت که چگونه با جنبه های مختلف سیستم عامل لینوکس در هنگام توسعه نرم افزار به زبان برنامه نویسی C تعامل داشته باشید. ابتدا نحوه ایجاد، خواندن و نوشتن فایلها و دایرکتوریها را با روشهای مختلف کشف خواهید کرد. در مرحله بعد، نحوه تعامل با ورودی ها و خروجی های نرم افزار لینوکس، مانند آرگومان های خط فرمان، متغیرهای محیطی، لوله ها و سیگنال ها را کشف خواهید کرد. در نهایت، نحوه کنترل دسترسی به فایل ها و دایرکتوری ها از طریق مجوزها و حساب های کاربری را خواهید آموخت. پس از اتمام این دوره، مهارت ها و دانش برنامه نویسی سیستم های لینوکس با زبان برنامه نویسی C را خواهید داشت تا با اطمینان برنامه های مبتنی بر C را در سیستم عامل های لینوکس توسعه دهید و علاوه بر درک کامل تر از نحوه سیستم عامل لینوکس کارکرد.
سرفصل ها و درس ها
بررسی اجمالی دوره
Course Overview
بررسی اجمالی دوره
Course Overview
دسترسی به فایل ها
Accessing Files
بررسی اجمالی ماژول و محیط
Module and Environment Overview
POSIX، glibc، و شما
POSIX, glibc, and You
I/O سطح پایین با تماس های سیستمی
Low-level I/O with System Calls
نسخه ی نمایشی: کپی فایل با I/O سطح پایین
Demo: File Copy with Low-level I/O
دسترسی تصادفی به فایل با ورودی/خروجی سطح پایین
Random File Access with Low-level I/O
I/O پیشرفته سطح پایین با جمع آوری سریع پراکندگی
Advanced Low-level I/O with Fast Scatter-gather
ورودی/خروجی سطح پایین پیشرفته با ورودی/خروجی دارای نقشه حافظه
Advanced Low-level I/O with Memory-mapped I/O
فایل I/O با Streams
File I/O with Streams
نسخه ی نمایشی: کپی فایل با جریان ورودی/خروجی
Demo: File Copy with Stream I/O
نسخه ی نمایشی: مقایسه سرعت ورودی/خروجی سطح پایین و جریان
Demo: Comparing Speeds of Low-level and Stream I/O
خلاصه ماژول
Module Summary
مدیریت فایل ها و دایرکتوری ها
Managing Files and Directories
نمای کلی ماژول
Module Overview
فایل ها، دایرکتوری ها و جدول inode
Files, Directories, and the inode Table
متادیتا فایل لینوکس
Linux File Metadata
نسخه ی نمایشی: فراداده فایل را با آمار دریافت کنید
Demo: Get File Metadata with stat
انواع فایل لینوکس و مجوزها
Linux File Types and Permissions
پیوندهای سخت و پیوندهای نمادین
Hard Links and Symbolic Links
فهرست راهنمای لینوکس
Linux Directories
نسخه ی نمایشی: عبور از یک فهرست
Demo: Traversing a Directory
رویدادهای سیستم فایل با inotify
File System Events with inotify
نسخه ی نمایشی: با استفاده از API inotify
Demo: Using the inotify API
خلاصه ماژول
Module Summary
خط فرمان، محیط زیست و زمان
The Command Line, the Environment, and Time
نمای کلی ماژول
Module Overview
آرگومان های خط فرمان با argc و argv
Command Line Arguments with argc and argv
استفاده از getopt برای گزینه های خط فرمان
Using getopt for Command Line Options
نسخه ی نمایشی: استفاده از getopt برای تجزیه گزینه های خط فرمان
Demo: Using getopt to Parse Command Line Options
کار با محیط زیست
Working with the Environment
شروع با زمان
Getting Started with Time
نمایش زمان قالب بندی شده توسط کاربر با قالب های strftime
Display User Formatted Time with strftime Templates
ترکیب مناطق زمانی و مکانها
Incorporating Time Zones and Locales
اندازه گیری زمان فرآیند
Measuring Process Time
خلاصه ماژول
Module Summary
فرآیندها و لوله ها
Processes and Pipes
نمای کلی ماژول
Module Overview
فرآیند چیست؟
What Is a Process?
وضعیت خروج از برنامه
Program Exit Statuses
ایجاد فرآیندها با fork()
Creating Processes with fork()
اجرای برنامه ها با خانواده Exec
Executing Programs with the Exec Family
چرخه حیات یک فرآیند
The Lifecycle of a Process
نسخه ی نمایشی: ایجاد یک پوسته با fork()، خانواده Exec و waitpid()
Demo: Creating a Shell with fork(), the Exec Family, and waitpid()
لوله چیست؟
What Is a Pipe?
نسخه ی نمایشی: ارتباط بین فرآیندی اولیه با لوله ها
Demo: Basic Inter-process Communication with Pipes
به نام لوله
Named Pipes
خلاصه ماژول
Module Summary
کنترل دسترسی، هویت و مجوزها
Controlling Access, Identity, and Permissions
نمای کلی ماژول
Module Overview
مبانی کاربر و گروه
User and Group Fundamentals
پرس و جو و فهرست کردن کاربران و گروه ها
Querying and Listing Users and Groups
هویت واقعی و موثر فرآیند
Real and Effective Process Identity
اصول مجوز فایل
File Permission Fundamentals
نسخه ی نمایشی: ایجاد و تغییر مجوزهای فایل
Demo: Creating and Modifying File Permissions
تفاوت های ظریف و توابع مالکیت فایل
File Ownership Nuances and Functions
نسخه ی نمایشی: تخصیص و اصلاح مالکیت فایل
Demo: Assigning and Modifying File Ownership
خلاصه ماژول
Module Summary
تسلط بر سیگنال ها
Mastering Signals
نمای کلی ماژول
Module Overview
مبانی سیگنال
Signal Fundamentals
نسخه ی نمایشی: انواع سیگنال رایج
Demo: Common Signal Types
مدیریت سیگنال ها با سیگنال ()
Handling Signals with signal()
کنترل بهتر سیگنال با sigaction()
Better Signal Handling with sigaction()
نسخه ی نمایشی: سیگنال را نادیده بگیرید
Demo: Ignore Signal
نسخه ی نمایشی: Gracefully on Signal را خاتمه دهید
Demo: Terminate Gracefully on Signal
کریستوفر هارت یک مهندس مشاور فنی برای سیسکو است که متخصص در راه حل های شبکه های سازمانی و مراکز داده است. کریستوفر به طور مداوم مهارتهای توسعه نرمافزار پایتون خود را تقویت میکند و از ذهنیتهای اولیه اتوماسیون و اصول DevOps دفاع میکند. کریستوفر از تولید مستندات فنی و آموزش، انتشار بیش از دوازده مقاله برای سیسکو و سخنرانی در Cisco Live 2021 لذت می برد. کریستوفر دارای مدرک لیسانس علوم در فناوری صنعتی از دانشگاه کارولینای شرقی است.
نمایش نظرات