در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش گام به گام لینوکس قسمت 1 : لینوکس چیست ؟

در دهه هفتاد میلادی سیستم عامل یونیکس توسط کنت تامسون، دنیس ریچی، برایان کرنیگان در آزمایشگاه های AT&T Bell Labs معرفی شد. پیش از آن و در سال 1972 میلادی زبان برنامه سازی سی توسط دنیس ریچی و همکارانش توسعه داده شده بود و در سال 1973 یونیکس با زبان سی نوشته و معرفی شد. یونیکس های اولیه بدون واسط گرافیکی بوده و برای اهداف شبکه استفاده می شدند. هر کسی می توانست با پرداخت هزینه ای به کد منبع آن دسترسی داشته و آنرا مطابق با نیاز خود تغییر و توسعه دهد.

از این رو از یونیکس اولیه سیستم عامل هایی مانند BSD که برگرفته از Berkeley Software Distribution است ایجا شدند. BSD هسته ای مانند یونیکس داشت و این یعنی از ساختار سیستم فایل و دستور های مشابه یونیکس اولیه بهره می برد. BSD که به یونیکس برکلی معروف است خود منجر به توسعه سیستم عامل های مشابه ای شد که می توان به FreeBSD اشاره کرد. تفاوت BSD اولیه و مشتق شده آن یعنی FreeBSD در رایگان و آزاد بودن FreeBSD است.

به هر حال یونیکس و ساختار آن به صورت یک معماری برای توسعه سیستم عامل های دیگر شد به طوری که پروفسور تتنبام برای آموزش و نوشتن کتاب خود درباره اصول طراحی سیستم عامل ها سیستم عامل آموزشی و کوچک خود را به نام مینیکس (Minix) را نوشت و کد های آنرا برای تدریس در کتاب خود انتشار داد. Minix یعنی Mini Unix یا یونیکس کوچک و امروزه نسخه سه آن قابل دانلود است.


آموزش گام به گام لینوکس


اما لینوکس از کجا سر در آورد؟ بر خلاف تفکر معمول درباره لینوکس، باید بگویم لینوکس یک سیستم عامل نیست بلکه نام یک هسته آزاد و رایگان (توجه کنید رایگان بودن با آزاد بودن متفاوت است) است که توسط آقای لینوس توروالدز در سال 1991 از کد های مینیکس ایجاد شد. پیشتر از لینوس توروالدز، آقای ریچارد استالمن جنبشی به نام Gnu را به راه انداخته بود که در آن برنامه نویس ها کد ها و برنامه های نوشته خود را به صورت رایگان و آزاد در اختیار همگان قرار می دادند.

اما جای یک هسته برای ایجاد یک سیستم عامل آزاد و رایگان که برای مصارف شخصی و PC ها قابل استفاده باشد، خالی بود که با انتشار هسته 0.1 لینوکس، امکان به وجود آوردن یک سیستم عامل فراهم شد.در واقع سیستم عامل لینوکس را باید گنو لینوکس بخوانیم. نخستین توزیع لینوکسی از تجمیع هسته لینوکس و ابزار های گنو ایجاد شد و قابلیت نصب و استفاده را داشت، slackware بود که هنوز هم توسعه داده می شود. لینوکس خصوصیات یونیکس مانند دستور ها و ساختار سیستم فایل آنرا به ارث برد و از این رو آنرا شبه یونیکس می نامند.

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


از طرفی لینوکس همواره به عنوان یک سیستم عامل امن، قدرتمند برای مصارف شبکه و سرور شناخته شده است که می توان سنگین ترین بار های پردازشی و سرویس ها را تحت آن انجام داد.اما چرا لینوکس را نمی توان دست کم گرفت؟ بدون در نظر گرفتن فضای IT در ایران، به واقع لینوکس یک چارچوب قدرتمند برای توسعه فناوری ها به شمار می رود. تقریبا لینوکس همه جا هست.

سیستم عامل اندرویدی شما، سیستم عامل ios سیسکو یا سیستم عامل RouterOS میکروتیک، در ابر رایانه ها، در سرور ها، در وسایل و ابزار های هوشمند، در توسعه روباتیک، در بحث امینت و تست نفوذ و غیره. به هیچ عنوان نمی شود لینوکس (یا بهتر بگویم هسته ای به نام لینوکس) را از رده خارج کرد و می توان با یک سیاست درست از آن کسب در آمد داشت.امروزه با توسعه بستر فناوری اطلاعات دو سیستم عامل ویندوز و لینوکس در کنار یکدیگر بوده و نمی توان یکی را برتر از دیگری دانست.

با معرفی برنامه ای به نام سامبا، لینوکس و ویندوز در کنار یکدیگر قرار گرفته اند. سامبا با مهندسی معکوس پروتکل SMB را در سیستم عامل های شبه یونیکسی مانند لینوکس فراهم کرده به طوری که می توان یک توزیع لینوکسی را عضوی از دامین اکتیو دایرکتوری ویندوز کرد. یا فایل ها و پرینتر ها را میان لینوکس و ویندوز به اشتراک گذاشت. در ادامه چندین اصطلاح را در زمینه لینوکس معرفی می کنم.


کاربران در لینوکس

من کاربران در لینوکس را به سه دسته : کاربر root یا مدیر لینوکس، کاربران معمولی و کاربران سیستمی دسته بندی می کنم. root کل سیستم را در اختیار دارد و بر تمامی کاربران و فایل ها و اشیا آنها دسترسی و تسلط دارد. از طرفی کاربر معمولی به طور پیشفرض سطح پایینی از دسترسی ها و آنهم محدود به اشیا تحت مالکیتش را دارد. لینوکس یک سیستم عامل چند کاربره است و لازم است با مکانیزم هایی از تاثیر گذاری نامطلوب کاربری بر روی کاربر دیگر جلوگیری و محافظت شود.

سومین گونه کاربران سیستمی هستند. این کاربران توسط یک شخص (مانند من و شما یا یک کارمند در سازمان) استفاده نمی شوند بلکه توسط سرویس ها (فرایند ها) استفاده می شوند. در واقع یک فرایند برای کار بر روی سیستم عامل مانند باز کردن یک فایل و نوشتن در آن تحت نام کاربری خود به آن فایل دسترسی دارد. در ادامه بشیتر آشنا می شویم.هر کاربر دارای یک شناسه یا User ID خاص خودش است که در کل سیستم عامل به صورت منحصر به فرد است.

سیستم عامل نام کاربری amirnami را نمی شناسد، بلکه شناسه آن (به طور مثال 500) را می شناسد. همچنین هر کار عضو گروهی است. این اجبار است و در برخی توزیع ها با ایجاد شدن یک کاربر (و به طبع شناسه آن) یک گروه همنام با نام کاربری ایجاد شده و کاربر عضو آن می گردد. گروه ها نیز مانند کاربران دارای شناسه هستند که Group ID یا GID نامیده می شوند.


شل، Shell یا پوسته در لینوکس

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

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

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


فرایند ها در لینوکس

من فریاند ها را به دو دسته فرایند های معمولی و پس زمینه تقسیم می کنم.فرایند پس زمینه یا Background Process در هنگام را اندازی سیستم و توسط یک فرایند اولیه به نام init ایجاد و مدیریت می شوند. یعنی اولین فرایندی که توسط هسته لینوکس ایجاد می شود init نام داشته و به دنبال آن init دیگر فریاند ها را که فرایند های پس زمینه نام دارد را ایجاد می کند. هر فرایند دارای یک شناسه یا Process ID یا PID است.

فرایند init دارای شناسه 1 و بقیه به دنبال آن.در لینوکس و دیگر سیستم عامل های شبه یونیکس فرایند های پس زمینه یک سرویس خاص مانند ssh, dns, dhcp, printer, file sharing و غیره را کنترل می کنند و آنها را daemon یا شبح می نامند. در انتهای نام فرایند یک d می آید و از اینجا می توان فهمید که این فرایند یک فرایند پس زمینه یا daemon است. مانند فرایند sshd که سرویس ssh را کنترل می کند.هر فرایند دارای یک مالک است و مالک کسی است که فرایند را ایجاد کرده است. به طور مثال مالک فرایند init کاربر root است و یا مالک فرایند دیگری که توسط کاربر amirnami ایجاد شده است.


ساختار سیستم فایل در لینوکس

سیستم فایل ها از یک ساختار درختی استفاده می کنند. در کامپیوتر ریشه درخت در پایین است. ساختار سیستم فایل ویندوز چند درختی است. یعنی یک درخت با ریشه ای به نام C و دیگری به نام D و الی آخر. اما ساختار سیستم فایل در سیستم عامل های شبه یونیکس به صورت تک درختی است. نام ریشه درخت root است که با علامت // نشان داده می شود و از این رو می بایست در پیمایش دایرکتوری ها در خط فرمان مسیر پیمایش را با نماد // آغاز نمود.

در لینوکس همه چیز فایل است. شاید کمی مبهم باشد. اما در لینوکس و دیگر سیستم عامل های شبه یونیکس بودن یا نوشتن پسوند فایل مانند txt یا mp3 مهم نیست. حتی فایل های پیکربندی سخت افزار در لینوکس فایل هستند. به هر حال شما به عنوان کاربر یا مدیر لینوکس با فایل سرو کار دارید و به همین منظور برای پیکربندی سیستم عامل یا سرویس های تحت آن همیشه باید فایل هایی را ویرایش کنید.

فایل های اصلی مربوط به پیکربندی سیستم عامل و سرویس ها در زیر دایرکتوری etc/ قرار دارندو به صورت متنی (اسکی) هستند. لازم است که حتما با یک ویرایشگر متنی مانند vim. nano و غیره آشنا باشید و فکر محیط های شیک گرافیکی را بیرون بی اندازید. در مطالب بعدی نگاهی جزیی تر به درون لینوکس و ساختار و چیدمانآن می ندازم.


نویسنده : امیر احمدی نامی
منبع : انجمن تخصصی فناوری اطلاعات ایران
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد
#انواع_Shell_در_لینوکس #آموزش_نصب_لینوکس #آموزش_گام_به_گام_نصب_لینوکس #آموزش_گام_به_گام_لینوکس #فایل_سیستم_در_لینوکس #linux_چیست #لینوکس_چیست #آموزش_مقدماتی_لینوکس #آموزش_لینوکس
عنوان
1 آموزش گام به گام لینوکس قسمت 1 : لینوکس چیست ؟ رایگان
2 آموزش گام به گام لینوکس قسمت 2 : آموزش نصب لینوکس رایگان
3 آموزش گام به گام لینوکس قسمت 3 : دستورها چگونه اجرا می شوند؟ رایگان
4 آموزش گام به گام لینوکس قسمت 4 : لینوکس را از کجا شروع کنیم؟ رایگان
زمان و قیمت کل 0″ 0
2 نظر
شاهو اله کرمی

مرسی دوست عزیز از مطلبت

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

اما یه مطلب به نظرم اومد در مورد Sir Dennis Ritchie ( دنیس ریچی ) که مخترع زبان قوی C و همکار ساخت هسته لینوکس بود ، شایدم به بحث ربطی نداشته باشه ، اما جالبه همزمان با مرگ استیو جابز ( بیزنس من شرکت اپل ) دنیس ریچی هم فوت شد اما نکته ای که برای ما برنامه نویس ها تاسف برانگیزه اینه که با مرگ استیو جابز همه ی دنیا به غم فرو رفت ولی شاید کمتر کسی از مرگ دنیس ریچی آگاه شد و از همه مهمتر این که سیستم عامل IOS بر پایه لینوکس و کارهای دنیس ریچی پیاده سازی شده!!!!

امیر احمدی نامی

درود

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

در کل امثال آقای ریچی یا ریچارد استالمن واقعا به کاری که می کنن علاقه دارن و هدفی جز تحقیق و ارائه ایده جدید ندارند.

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....