کامپیوتر و IT و اینترنتعلوم مهندسی

شروع برنامه نویسی در لینوکس

صفحه 1:
كروه كاربران لينوكس زنجان شروع برنامه نويسى در لينوكس Linux Programming مهدی مقدم

صفحه 2:
ار ای اه رس ی ی را رن کارهایتان استفاده می‌کنید و یا شاید تنها از مزایا یک 567۷6۲ مبتنی ‎Glee nation‏ ی شما كار کی دار و شاب هم شما هاار رو كتجكارى ‎Meee See mse ee‏ ا ‎Dae‏ | فعلی لینوکس و یا نوشتن برنامه‌ای جدید برای لینوکس داشته باشید.

صفحه 3:
خوب در هر صورت, شاید شما دلایل کافی برای یادگرفتن برنامه بویا لا را ایا را ار با ‎FAC Hen ee ln Cally alien ABN then‏ ‎fae ee Nes cel miele egy‏ [۳ tbia mere

صفحه 4:
لینوکس بهشت برنامه نویسان - ات ای سا ای بر یا وسات فان كستريش ياقت: آنها دود به مسائل و مشكلات برنامه نويسى اشنا ‎ey een‏ ا 00 گسترش یابد و تصحیح و اشکالزدایی (ودا060) آن نیز آسانتر باشد.

صفحه 5:
لینوکس يا فرصت شغلی ؟! 5 ا 0 111101111111111 در كشور به نظر مىرسد فرصتهاى شغلى بيشترى براى برنامه نويسان لینعکس به وجود آید. البته أكر به فرصت‌های شغلی در کشورهای دیگر ‎rere Ua‏ 111111111111110 خودتان جوابتان را پیدا می‌کنید.

صفحه 6:
ترس ا ا ل ا 1 ا ا ال 0 غلبه بر ترس از برنامه نويسى در لينوكس و Rove ren res

صفحه 7:
جرا در لينوكس ا ا ال مگه ویندوز چشه؟ را را ‎eles‏ ار متعضبانه بگویید چرا باید چنین باشد؟ شابد هفت دلیل زیر شما را قانع کند دليل يكم: لينوكس براي برنامهنويسي قانونهاي مخصوص به خود را دارد: از جمله اينكه برنامه نبايد براي همه كاربران همه جيز را فراهم سازد. به ‎Ev ees ve-eate) ie Ceeoerregiey | eareecegeenrice v1 7 ve SEEN |enirol prt‏ ‎Perea ROP Ces pee PS RE SURT DEES Cas pec Pe Cent we‏ ابزارهاي متعدد و متفركزي را.ذر اختبار برنامةنويسان قرآر مىدهد نا نيازهاق فني خود را برطرف کنند.

صفحه 8:
وليل دوم: مدل مديريت بردازشكر لینوکس پیشرفته است, بی‌نحوی که ‎DC rc eer rear oni KS erie apy ۳‏ ۱۳۳ ی ازجا مي‌گوييم گه ‎a oe‏ ها تبادل ‎NOR HE‏ و نقاضاى انكام قسمتي از عملياتي ‎CaS Tal ean eased tnt ec‏ دليل سوم: ‎sang ale ani oS Reyne‏ بل باه هگ ا ا ‎Boe‏ عارش انجام دهد و براي نامدهاي ديكو ای ( ناس « | ‎oy ۱۱5۲ 2‏ ۳ ال 10ت ‎sans pers NNUER ES ST‏ دلیل چهارم: در لینوکس مدل امنیت خاصي برقرار است که در آن همه تن ارات کون ات وه امه 01 كه آز بيشترين أختيارات 50 ‎rN Core‏ 0 1 اداشكه باشد. ابي مدل |منيتي ردقي برنامهنويسي 0 ا 0 أشاره كرد كه جون با توجة به 1 ان ات ی و اه 0

صفحه 9:
رن ۳۳۹9 بنجم: اک جه شما 00 ‎Tae‏ به لاه ‎Sue U perp pert ica)‏ عا 5250 به صورت چندرشته‌اي کا ‎Se Ry kent‏ ختصاص منایع ‎2 Clie ‏تا رس ی ‎eon nee Renan Pree se Pear ‏وهای هی‎ ‏مس واه مان‎ Tate 5 ‏برنامه تويسا‎ el ‎wail, aidly Garo aw pid Pn ‏دلیل هفتم‎ Gann anor Sie ee Perret iS) ‏مي‌دهد تا‎ 9 Hea ۳۳۳۹ Pen ‏خود را با حداقل مقدار 4 ‎a‏ اشتراك كذارند. 160 , 5 ‎Se‏ ی فاد دروسیستم ها یوکس 1 ‎verre ‎5 ‏مج‎ 2 ۱

صفحه 10:
0501 0 00 ‏ا‎ erat el sy een Cc parle, Php Ajax Asp prel 2 python Gambas ‏و غیره‎ برای هر کدام از اينها هم محیط های مختلفی عرضه شده یرای نسخه های مختلف هم محدودیت نداریم (چون هسته در لینوکس ثابته)

صفحه 11:
ا 61 باشید یا 8۷2 با ‎On ey‏ ل 00-0 207 ° 9 I Penis Pea a Sead mee Lge ‏واه به9‎ veneer tee eae ‏تاد .درل‎ fee ‎ane‏ ۳9 اسکلل ‎oes‏ ری ناش ها جاک ایس ‎ce soe Aen‏ ايد ۳ لفزار ویرل؛ مئ 0 007 515 مخت ‎pac eer‏ 0 داد تا مکش بل ‎Seen en ee‏ ‎pee‏ ی 1 ما یک برنمه ‎pa‏ 7 شبختی در همان نرم ‎an eee‏ همه کاره‌ای ‎All feat 0‏ فا مد ‎meh renee‏ 7 ‎

صفحه 12:
perm feed (7 9۳ ‏را چیزی شبیه‎ > MS oe eee ۳0 ‎eerie‏ هه تشه | ی 2201111100 برنامه نوبسی اوپن‌سورس آشنا شویم: ‏«اکلیپس»

صفحه 13:
۰9 Eclipse به ساده ترين زبان ممكن, اكلييس. معادل رايكان و ۱ 7 ener eCre rr) ويزكيهاى يى 105 ى حرفه أى را دارد و افزون برآن ‎pres‏ 0 ‎Leegerery 6] Penis‏ ل 00 1 همه برنامه نویسان اوپن سورس از سراسر دنیا باهم می نویسند.

صفحه 14:
حالا مواد لازم س داريم پس می ریم سراغ اشپزی

صفحه 15:
در لینوکس دو نوع برنامه وجود دارد ۵016 ۴6۱۷۲۵ و 5 0 0 nee acre tearer TESTS Sal as Ree ee ۳ ‏رز ا ا ا‎ [ل نیت ال ان ست تی رت وا ۱ ی حالا در ضمن کار با لنوکس مت همونجورى د ‎NE! 7‏ ی ال ی وا سره خی بدا ند ‎۷ Pera arene ee eae rer ee Ton ‏کر ات در ور که در ‎al Suis pen‏ ‎2

صفحه 16:
شروع کد نویسی : حالا احتیاج به یک ادیتور متن کد: ‎Gedit *‏ ۹-۱2 ۷۱۳ ۴ Nano * Emacs *

صفحه 17:
gcc = GNU C compiler gcc - -version # gcc test.c -o test# gcc -wall test.c -o test# 30 gcc -S test.c -o test.s# gcc -E test.c -o test#

گروه کاربران لینوکس زنجان شروع برنامه نویسی در لینوکس ‏Linux Programming مهدی مقدم لینوکس شاید شما از لینوکس به عنوان سیستم عاملی ( )OSپرقابلیت برای کارهایتان استفاده می‌کنید و یا شاید تنها از مزایا یک Serverمبتنی بر لینوکس در شبکه خودتان استفاده می‌کنید .شاید لینوک7س برای شما کاربرد کمی دارد و یا شاید هم شما تنها از روی کنجکاوی لینوکس را نصب کردید .و باز شاید هم عالقه به توسعه پروژه‌های فع7لی لینوکس و یا نوشتن برنامه‌ای جدید برای لینوکس داشته باشید. خوب در هر صورت ،شاید شما دالیل کافی برای یادگرفتن برنامه نویسی با لینوکس داشته باشد. بنا به دالیل زیادی عده‌ای از کاربران و برنامه نویسان در دیگر سیستم عامل‌ها ،این تصور را دارند برنامه نویسی برای لینوکس وحشتناک و بسیار دشوار می‌باشد و یا اینکه زبان‌ها در لینوکس محدود به Cو +C +هستند و یا اینکه لینوکس فاقد محیط‌های توسعه مجتمع برنامه نویسی ) )IDEمناسب است! لینوکس بهشت برنامه نویسان برخالف اینگون7ه عقای7د ،لینوک7س توس7ط هکره7ا و برنام7ه نویسان گس7ترش یاف7ت ،آنه7ا خود ب7ه مس7ائل و مشکالت برنام7ه نویس7ی آشنا بودند و به این ترتیب آنها سیستمی را تولید کردند که آسانتر و ساده‌تر گسترش یابد و تصحیح و اشکالزدایی ( )Debugآن نیز آسانتر باشد. لینوکس یا فرصت شغلی ؟! ‏ همانطور ک7ه می‌دانی7د ،در کشور خودمان مدت7ی اس7ت ک7ه پروژه‌های7ی در زمینه لینوک7س و کاربرد آ7ن آغاز شده ،ک7ه فرص7ت‌ها شغل7ی برای بعض7ی از برنامه نویس7ان لینوک7س فراه7م شده ،البت7ه در آینده نزدی7ک ب7ا توس7عه کاربرد لینوکس در کشور ب7ه نظ7ر می‌رس7د فرص7ت‌های شغل7ی بیشتری برای برنام7ه نویسان لینوک7س ب7ه وجود آید .البت7ه اگ7ر ب7ه فرص7ت‌های شغل7ی در کشورهای دیگر عالقمن7د هس7تید ،تنه7ا در چن7د ت7ا از س7ایت‌های متناس7ب کاریاب7ی جس7تجو کنید، خودتان جوابتان را پیدا می‌کنید. ترس اما اولین کاری که باید برای شروع انجام بدید، غلبه بر ترس از برنامه نویسی در لینوکس و خود لینوکس است. چرا در لینوکس برنامه نویسی کنیم؟ مگه ویندوز چشه؟ ‏ ممكن است خيلي از شما طرفدار سيستم‌عامل‌هايي مانند ويندوز باشيد و متعصبانه بگوييد چرا بايد چنين باشد؟ شايد هفت دليل زير شما را قانع كند. ‏ دليل يكم :لينوكس براي برنامه‌نويسي قانون‌هاي مخصوص به خود را دارد: از جمله اين‌كه برنامه نبايد براي همه كاربران همه چيز را فراهم سازد .به عنوان مثال ،در محيط برنامه‌نويسي متني نيازي نيست كه آن محيط بتواند ايميل هم بفرستد و تمام تمركز كاري روي هدف اصلي برنامه است .همچنين ابزارهاي متعدد و متمركزي را در اختيار برنامه‌نويسان قرار مي‌دهد تا نيازهاي فني خود را برطرف كنند. دليل دوم :مدل مديريت پردازشگر لينوكس پيشرفته است ،به نحوي كه اگر پروسه‌اي داراي مجوزهاي الزم باشد مي‌تواند پروسه‌هاي ديگري را ايجاد كند كه ما به آن‌ها پروسه‌هاي بچه يا Child processمي‌گوييم كه مي‌توانند با آن‌ها تبادل اطالعات كنند و تقاضاي انجام قسمتي از عملياتي كه به آن‌ها واگذار شده است را از آن‌ها داشته باشند. دليل سوم :خيلي كم پيش مي‌آيد كه لينوكس مانند ويندوز يك‌باره هنگ كند و با صفحه آبي مرگ روبه‌رو شويم .زيرا سيستم‌عامل براي kernelخود CPU ،و RAMخاص اختصاص مي‌دهد تا كارهاي جاريش را انجام دهد و براي برنامه‌هاي ديگر مانند مرورگر يا برنامه‌هاي كاربردي از User Spaceاستفاده مي‌كند و نمي‌تواند به طور مستقيم به Kernel Spaceدسترسي داشته باشد( .اما) دليل چهارم :در لينوكس مدل امنيت خاصي برقرار است كه در آن همه د كاربر كاربران تعريف شده براي سيستم با هم برابر نيستند (مانن ‌ Rootكه از بيشترين اختيارات برخوردار است) و هر كاربر معمولي بايد دسترسي استفاده از امكاني را داشته باشد .اين مدل امنيتي روي برنامه‌نويسي تأثيرات مثبتي خواهد گذاشت .مثال‌ ً مي‌توان به اين نكته اشاره كرد كه چون با توجه به مدل امنيتي لينوكس تهيه شده پس سيستمي هم كه توليد خواهد شد به يقين امنيت خوبي خواهد داشت. دليل پنجم :اگر چه شما در لينوكس فكر مي‌كنيد صاحب CPUهستيد ،اما اين‌طور نيست؛ شما به طور مجازي به CPU احاطه داريد CPU .در سيستم‌عامل لينوكس به صور7ت چندرشته‌اي كار مي‌كند و روي پردازشگر در زمينه اختصاص منابع و محاسبه براي هر Taskمديريت خاصي وجود دارد. دليل ششم :لينوكس به صورت پيش‌فرض به گونه‌اي طراحي شده كه چند كاربر بتوانند همزمان با هم كار كنند و برنامه‌هايي كه در محيط‌هاي لينوكسي نوشته و استفاده مي شوند بايد با دقت طراحي شوند .برنامه‌نويسان نبايد فكر كنند كه مي‌توانند به منابع دسترسي محض داشته باشند. دليل هفتم :مهم‌ترين دليلي كه مي‌توان ذكر كرد اين است كه در سيستم‌عامل لينوكس مكانيزم ( IPCسرنام Interprocess )Communicationبه برنامه‌ها امكان مي‌دهد تا اطالعات و منابع خود را با حداقل مقدار Overheadبه اشتراك گذارند IPC .به سه حالت مي‌تواند در سيستم‌هاي لينوكس كارايي داشته باشد: -1پيغام‌ها ‏Semaphores -2 -3استفاده از حافظه مشترك به چه زبان های می شود در لینوکس برنامه نوشت؟ ‏ لیست تمام زبان های تحت لینوکس بیشتر از اونیه که فکر می کنید نمی شه اینجا بنویسم : ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏C ++C ‏Php ‏Ajax ‏Asp ‏prel ‏java ‏python ‏Gambas و غیره برای هر کدام از اینها هم محیط های مختلفی عرضه شده برای نسخه های مختلف هم محدودیت نداریم (چون هسته در لینوکس ثابته) چیست ؟ ‏IDE تفاوتی نمی کند که PHPکار باشید یا Javaباز C++ ،یا Paytonیا .VBبدون یک IDEکار شما از ریشه لنگ است. IDE م7خففواژ7گان Integrated Development Environmentا7س7تک77ه م7عنای7شم7یش77ود « :م7حیط ت777وس7عه ی77کپار7چ7ه».درآ7نروز7هایآ7غاز7ی7نت777ار7ی7خ 7ن ل77ینکک77رد7نو ا7ش7کا7ل 7ن ا7س7مبلک77رد ، 7تن ک77ام7پای7لک77رد ، 7سی ک77ار ن77وش ، ب777رنام7ه ن77وی ، زدا7ی7یب777رنام7ه ها ج7دا گ77ان7ه و7با ا7بزار7هایج7دا از ه7م ا7ن7جام م7یش77د .ب777رنام7ه ن77وی7س ب777اید ک77د م7نبع 7ب777رنام7ه ب777ا ی77کن77رم ا7فزار و7یرا7س7تار ک77ه م7یت777وا7ن7ستف77ای7لا7س7کی م7حضب777سازد م7ین77وش7تو س77پسآ7نرا ب777ه خ7ورد ک77ام7پای7لر م7یداد .ک77ام7پا7لیر ی77ک ف77ای7لا7س7مبلیب777ه او ت777حوی7لم7یداد و او س77پسا7ی7نف77ای7لرا ب777ه خ7رد ا7س7مبلر م7ی داد ت777ا ی77کف77ای7لآ7ب7جکتدر7یاف7تک77ند ت777ا در پ777ایانا7ی7نف77ای7لآ7ب7جکترا ب777ا ک77مک ل77ینکر ،ب777ه ی77کف77ای7لا7جرا7ی7یت777بدی7لک77ند. اما یک برنامه نویس C ++ویندوز هیچیک از این ابزارها را نمی بیند و آنها را نمی شناسد .ک7لید این خوشبختی در همان نرم‌افزار غول پیکر و همه کاره‌ای است که آنرا با نام«ویژوال سی»‌می شناسیم .البته حاال دیگر فقط محدود به سی نیست و نامش «ویژوال استادیو» است. آیا چیزی شبیه ویژوال استادیو (یا حتی بهتر از آن) برای لینوکس یا به صورت رایگان هست؟ پاسخ مثبت است و در حقیقت میخواهیم با یکی از شاهکارهای برنامه نویسی اوپن‌سورس آشنا شویم: «اکلیپس» چیست ؟ ‏Eclipse به ساده ترین زبان ممکن ،اکلیپس 7معادل رایگان و اوپن‌سورس ویژوال استادیو است .اکلیپس 7تمام ویژگیهای یک IDEی حرفه ای را دارد و افزون برآن چیزهای دیگری هم دارد که در بسیاری از محصوالت دیگر یافت نمی شود .اکلیپس 7کامال با جاوا نوشته شده و بنابراین به سیستم‌عامل وابستگی ندا رد .اکلیپس 7را همه برنامه نویسان اوپن سورس از سراسر دنیا باهم می نویسند. حاال مواد الزم رو داریم پس می ریم سراغ آشپزی در لینوکس دو نوع برنامه وجود دارد Execute ableو ‏script اولی به صورت مستقیم د7ر سیستم اجرا شده اما اسکریپت ها برای اجرا نیاز به یک مترجم یا مفسر دارند و لذا از طریق یک برنامه دیگه اجرا می شوند (نه به صورت مستقیم) اولی نمونه فایل های exe.د7ر ویندوز هست و اسکریپت ها مثل bat , .cmd. همونجوری که تا حاال در ضمن کار با لینوکس متوجه شدید بر خالف ویندوز قایل های اجرایی د7ر لینوکس احتیاج به نام خاص و یا پسوند خاصی ندارند و البته همونجوری که میدونید در لینوکس آد7رس ها با /از هم جدا میشن در صورتی که در ویندوز آدرس دهی با \ انجام میشه شروع کد نویسی : ‏ ‏ ‏ ‏ ‏ ‏ حاال احتیاج به یک ادیتور متن کد: ‏Gedit ‏Kate ‏Vim ‏Nano ‏Emacs gcc = GNU C compiler gcc - -version # gcc test.c -o test# gcc -wall test.c -o test# test/.# gcc -S test.c -o test.s# gcc -E test.c -o test#

51,000 تومان