کدنگار

وبلاگ شخصی-آموزشی علی رشیدی

کدنگار

وبلاگ شخصی-آموزشی علی رشیدی

طبقه بندی موضوعی
پیوندهای روزانه
پیوندها

۱۰ مطلب در خرداد ۱۳۹۵ ثبت شده است

یه برنامه ی ساده نوشته شده با ++C برای اینکه مباحث اساسی شی گرایی رو بهتر بفهمید. هر گونه سوالی در زمینه ی کامپایل و عیب یابی داشتید در بخش نظرات اعلام کنید.


دانلود سورس برنامه


دانلود فایل اجرایی برای لینوکس (فایل های uit باید در کنار فایل اجرایی باشند)


دانلود فایل اجرایی ویندوز (فایل های uit باید در کنار فایل اجرایی باشند)

  • علی رشیدی

در این قسمت برخی از عملیات مهم مربوط به فایل و پوشه را به شما یاد خواهم داد.

  • علی رشیدی

حالا که با ساختار دستورات آشنا شده اید، خوب است که یاد بگیرید در مواقع لزوم چگونه در مورد یک دستور کمک بگیرید و دستور مناسب را پیدا کنید.

  • علی رشیدی

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

  • علی رشیدی

ورود به سیستم و خروج از آن (Login and Logout)


یک کامپیوتر ممکن است یک یا چند کاربر داشته باشد، که مواردی از قبیل تنظیمات، برنامه‌های پیشفرض، … برای آن‌ها متفاوت است. بنابراین هر بار که رایانه را روشن میکنید، کامپیوتر باید بداند که شما که هستید (کدام کاربر هستید) یا بهتر بگویم، باید به سیستم وارد شوید (Login کنید)
سپس شما میتوانید به کار با رایانه بپردازید. پس برای کار با رایانه نیاز به یک نام کاربری (Username) و رمز عبور (Password) دارید. فردی که سیستم شما را راه اندازی کرده (یا خود شما) احتمالاً شما را به عنوان یک کاربر ثبت کرده و یک نام کاربری(مثلا ali_rnt) و رمز عبور(مثلا ascvdfg) به شما داده است.

  • علی رشیدی

توزیع های مهم لینوکس، تفاوت میان توزیع‌ها

توزیع‌های مهم لینوکس

اگر شخصی بگوید که روی رایانه اش «لینوکس» اجرا میکند، معمولاً منظورش این نیست که کرنل را به تنهایی اجرا میکند، بلکه منظورش این است که یک محیط نرم افزاری بر پایه لینوکس را اجرا میکند که به آن یک توزیع گنو/لینوکس میگویند، که معمولاً شامل پوسته (bash)، ابزار های خط فرمان که معمولاً مربوط به پروژه GNU‌هستند، سرور گرافیک X.Org و یک محیط دسکتاپ مانند KDE و Gnome، و چندین نرم‌افزار ضروری مانند مرورگر وب، ابزار های آفیس و … میباشد.

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

نخستین توزیع های لینوکس در اوایل ۱۹۹۲ تولید شدند، که البته همه ی آن‌ها متوقف و فراموش شده اند. قدیمی ترین توزیعی که همچنان نیز فعال است، Slackware میباشد که در جولای ۱۹۹۳ برای نخستین بار منتشر شد.

برای اطلاعات بیشتر در مورد توزیع‌های لینوکسی میتوانید به وبسایت Distrowatch.com مراجعه کنید.

رد هت (Red Hat)

ردهت در ۱۹۹۳ توسط ACC Corporation پایه گذاری شد. در ۱۹۹۵، باب یانگ، بنیان گذار شرکت، سهام Marc Ewing را که در ۱۹۹۴ توزیعی به نام Red hat Linux را منتشر کرده بود خریداری کرد، و نام شرکت را به Red Hat Software تغییر داد. در ۱۹۹۹ ردهت عمومی شد و و هم‌اکنون میتوان از آن به عنوان یکی از بزرگترین شرکت هایی که بر پایه لینوکس و نرم‌افزار آزاد میباشد یاد کرد. ردهت تا ۲۰۰۴ به انتشار Red Hat Linux ادامه داد و پس از آن، شروع به انتشار Red Hat Enterprise Linux یا همان (RHEL) کرد.این توزیع پولی است( اما اپن سورس) و بیشتر در سرور ها و مراکز اطلاعاتی استفاده میشود.

فدورا

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

درست است که ردهت تحت لایسنس FOSS که بسیار شبیه به GPL است ارائه میشود، اما میتوان یک سیستم را توزیعی که بر پایه ردهت است اداره کرد، مانند CentOS و scientificLinux که کاملاً بر پایه ردهت هستند اما تمامی برند های ردهت را از خود حذف کرده اند. یعنی میتوانید همان توزیع ردهت را دقیقاً داشته باشید، اما بدون بهره مندی از پشتیبانی رسمی رد هت. البته جا دارد بگویم که توزیع‌های لینوکسی از انجمن‌های اینترنتی قوی برخوردارند که میتوانید سوالاتتان را آنجا مطرح کنید.

دبیان

این توزیع با همکاری داوطلبانی از سراسر دنیا تولید می‌شود (برخلاف توزیع ردهت که توسط کمپانی حمایت میشود). در ۱۶ آگوست ۱۹۹۳ توسط یان مورداک منتشر شد و نام آن ترکیبی از نام خود او و دوست دخترش دبرا بود. روی این پروژه تا کنون بیش از ۱۰۰۰ داوطلب کار کرده اند. در هر زمان حداقل سه نسخه از این توزیع موجود است:

پکیج های جدید و تصحیح شده در شاخه ی unstable (ناپایدار) قرار دارند. هر پکیجی که پس از مدتی در آن خطایی مشاهده نشود، در شاخه ی testing قرار میگیرد و به طور کامل بررسی می‌شود و سرانجام به شاخه ی stable کپی میشود. بنابراین فاصله ی زمانی میان دو نسخه ی stable خیلی طولانی است، گرچه برخی آنرا یک مزیت میدانند. این پروژه آزادی‌های زیادی را برای توسعه دهندگان به همراه دارد که آنرا برای پایه ی یک توزیع بسیار مناسب میکند.

اوبونتو

یکی از معروفترین توزیع‌ها بر پایه ی دبیان است که توسط کمپانی بریتانیایی کانونیکال منتشر میشود. هدف آن ارائه ی توزیعی مدرن، پر قابلیت و آسان است که کار با آن برای همه راحت باشد. اوبونتو بر اساس شاخه ی unstable دبیان منتشر می‌شود و اکثر پکیج های دبیان را استفاده میکند، گرچه پکیج های دبیان و اوبونتو از لحاظ ساختاری کاملاً همسان نیستند. اوبونتو در یک چرخه شش ماهه نسخه های جدیدش را منتشر میکند، و هر دوسال یکبار یک نسخه ی LTS (Lont-term support) را منتشر میکند که تا پنج سال پشتیبانی میشود.

دیگر توزیع‌ها

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

تفاوت‌ها و شباهت‌های توزیع‌ها

با وجود اینکه توزیع‌های زیادی از لینوکس وجود دارند، اما تقریباً تمامی آن‌ها برای کار های روزمره به هم شبیه اند. برای مثال، اکثر آن‌ها از bash به عنوان خط فرمان استفاده میکنند. همچنین برخی استاندارد ها نیز از رشد بیرویه تعداد توزیع‌های لینوکسی جلوگیری میکنند. مانند FHS (Filesystem Hierarchy standard) یا LSB (Linux Standard Base) که ویژگی‌هایی مانند ساختار درختی فایل در لینوکس را شامل می‌شوند و به توسعه دهندگان کمک میکنند تا برنامه هایشان را برای بسیاری از توزیع‌های لینوکس تولید کنند، بدون آنکه نیاز باشد به تفاوت‌ها در سیستم فایل و غیره توجهی داشته باشند.

اما تفاوت‌هایی نیز هست، که مهم ترینشان مدیریت بسته ها (Package management) میباشد. عملیاتی مانند حذف و نصب پکیج ها، که بسته به قالب بندی (فرمت) پکیج به طور متفاوتی انجام میگیرد. برای مثال توزیع دبیان از پکیج های deb و مدیر بسته ی dpkg استفاده میکند و ردهت از پکیج های rpm و مدیر بسته ای به همین نام استفاده میکند. هیچ یک از این مدیر بسته ها از دیگری قویتر نیستند، اما علت اصلی تفاوت توزیع‌های پایه، و توزیع‌های مشتق آنها، همین تفاوت در مدیر بسته هاست. برای مثال، SUSE و فدورا که از ردهت مشتق شده‌اند از rpm و اوبونتو و مینت که از دبیان مشتق شده‌اند از dpkg استفاده میکنند.


قسمت چهارم

  • علی رشیدی

۲.تاریخچه ای کوتاه از لینوکس، نرم افزار آزاد، نرم افزار های ازاد معروف

تاریخچه ای کوتاه از لینوکس

لینوکس توسط لینوس تروالدز به وجود آمد، در واقع او به دنبال ساخت هسته یک سیستم عامل نبود، بلکه براس سرگرمی داشت یک شبیه ساز ترمینال که مستقل از سیستم عامل اجرا میشد مینوشت، تا بتواند به سیستم یونیکس دانشگاه دسترسی پیدا کند. این برنامه رشد پیدا کرد و بالاخره به لینوکس تبدیل شد. بسیاری از دانشجویان و بیکاران و گیک ها به توسعه آن کمک کردند. نسخه ۰.۹۹ با مجوز GPL (کمی جلوتر خواهید خواند) منتشر شد (دسامبر ۱۹۹۲) و تقریبا یک سیستم عامل کامل ولی ساده بود. در سال ۱۹۹۶ نسخه ۲.۰ لینوکس با پشتیبانی از پردازنده های چندهسته ای منتشر شد و میتوانست ماژول های کرنل را هنگامی که در حال کار بود بارگذاری کند.
یکی دیگر از ویژگی های نسخه ی ۲.۰، معرفی Tux بود، پنگوئنی که نماد لینوکس بود.
توسعه پروژه لینوکس همچنان ادامه دارد و هم اکنون که این متن را مینویسم آخرین نسخه آن ۴.۴.۴ میباشد.

آزاد یا متن باز؟

در گذشته و همین الان برنامه های رایانه ای به وسیله ی کپی رایت محافظت میشوند. به این معنی که شما نمیتوانید این گونه برنامه هارا بدون اجازه ی صاحبش کپی کنید. تا اینکه ریچارد ام. استالمن که یک پژوهشگر در MIT بود تصمیم گرفت که به جای این شیوه، شیوه ی جدیدی در ارائه نرم افزار و مجوز آن به وجود آورد که بر روی اشتراک گذاری و پیشرفت نرم افزار تمرکز داشت. این پروژه GNU نام گرفت . استالمن پدر برنامه آزاد نام گرفت و برای یک برنامه ی ازاد در توافقنامه ی GNU چهار شرط اصلی تعریف کرد:

۰: آزادی در اجرای برنامه به هر منظوری
۱: آزادی در مطالعه ی یک برنامه و شیوه کارکرد آن و تغییر آن برای انجام کارهای دلخواه خود
۲: آزادی در انتشار مجدد یک کپی از نرم افزار
۳: آزادی در تغییر و پیشبرد یک برنامه، و انتشار این پیشرفت ها (و به طور کلی نسخه دستخوش تغییر شده) به عموم، بنابراین تمام جامعه از آن سود میبرد.

قطعا برای اینکه یک برنامه ازادی های شماره ۱ و ۳ را به کاربران بدهد باید سورس (متن برنامه) خود را نیز منتشر کند.
اما یک برنامه چگونه میتواند یک برنامه ی ازاد تلقی شود؟ اینکار به وسیله ی مجوز (License) صورت میگیرد، یک سند رسمی که هنگام خرید، دانلود، ... یک برنامه به همراه آن ارائه میشود. برای برنامه های آزاد مجوز های زیادی قابل استفاده میباشند که معروف ترین آنها GPL (General Public License) میباشد. مجوزی که لینوکس تحت آن منتشر میشود. بنابر مجوز GPL، برنامه باید به شکل سورس کد در دسترس قرار بگیرد، میتواند مورد تغییر قرار گیرد و دوباره منتشر شود اما به شرطی که دوباره با مجوز GPL منتشر شود (یعنی نمیتونید برنامه ای رو با مجوز GPL بگیرید و تغییر بدید، اما با مجوز دیگه ای منتشر کنید) ، همچنین بنابر این مجوز میتوان برنامه را به صورت اجرایی هم منتشر کرد (یا فروخت) اما متن برنامه نیز باید به شیوه ای در اختیار قرار گیرد.

برنامه های آزاد معروف

برنامه های آفیس
از این دسته برنامه ها میتوان به OpenOffice,org، libreOffice اشاره کرد.

گرافیک و چند رسانه ای

Gimp ، Inkscape, Imge Magik برای ویرایش تصویر

Audacity برای ضبط و میکس صدا

Cinelerra وOpenShot برای ویرایش فیلم

Blender برای مدلینگ و انیمیشن

سرویس اینترنت

بدون لینوکس، دنیای وب غیر قابل تصور است. صدها هزار سرور گوگل با لینوکس کار میکنند و و بسیاری از سرویس های محتوا. از جمله برنامه های ازاد اینترنت میتوان به آپاچی و MySQL اشاره کرد.


قسمت سوم

  • علی رشیدی

۱.معرفی لینوکس و توزیع های لینوکسی

لینوکس توسط دانشجوی فنلاندی، لینوس تروالدز در اوایل دهه ی ۹۰ میلادی ساخته شد. لینوکس بر اساس یونیکس ساخته شد، یونیکس، سیستم عاملی ساخته شده در دهه ۷۰ بود که برای استفاده در رایانه های کوچک طراحی شده بود. لینوکس از ایده ها، استاندارد ها و طراحی یونیکس بهره میبرد اما کد آن کاملا مستقل از یونیکس است.
  • علی رشیدی

درود

تصمیم گرفتم که آموزش Linux Essentials که مقدمه ای برای مدرک LPIC است را شروع کنم.
این آموزش ها فقط برای مدرک LPIC نیست و همه افرادی که دوست دارند لینوکس را یاد بگیرند میتوانند از این آموزش ها استفاده کنند. دقت کنید که سطح آموزش، مبتدی میباشد.

تمامی حقوق این آموزش ( که در واقع برگرفته شده از کتاب Linux Essentials - The LPI introducery programme میباشد) متعلق به انجمن P30World و وبلاگ شخصی من میباشد.


قسمت اول

  • علی رشیدی

درود!

۱۰
خرداد

به وبلاگ شخصی من خوش آمدید!

یادداشت ها و نوشته های شخصی، آموزش ها و ... خودم رو اینجا میذارم. پیدا کردنشون هم آسونه، دسته بندی موضوعی رو نگاه کنید!

کپی با ذکر منبع بلامانع است.

این وبلاگ از جای دیگری کپی نمیکند.

اوقات خوشی را برایتان آرزومندم.

.:*علی رشیدی*:.

  • علی رشیدی