در این درس میخوانید
اگر برای اجرای یک پروژهٔ وب به شما گفتهاند «روی سرور لینوکس نصب کن»، طبیعی است بپرسید لینوکس دقیقاً چیست. پاسخ کوتاه این است که با یک خانوادهٔ سیستمعامل روبهرو هستیم، نه یک زبان برنامهنویسی یا یک نوع سایت. در این درس نخست، از نقش سیستمعامل شروع میکنیم تا هنگام دیدن واژههایی مثل Ubuntu، Kernel و Terminal سردرگم نشوید. برای خواندن این مطلب، خرید سرور یا تجربهٔ قبلی لازم نیست.
سیستمعامل چه کاری انجام میدهد؟
برنامهها برای استفاده از پردازنده، حافظه، فایل و شبکه به یک لایهٔ مدیریت نیاز دارند. سیستمعامل این منابع را سازمان میدهد و راهی فراهم میکند که چند برنامه کنار هم اجرا شوند. مثلاً وقتی مرورگر باز است و همزمان فایل دانلود میکنید، سیستمعامل زمان پردازنده، حافظه و نوشتن روی دیسک را مدیریت میکند. Windows، macOS و سیستمهای مبتنی بر Linux نمونههایی از خانوادههای متفاوتاند؛ HTML یا JavaScript خودِ سیستمعامل نیستند.
Linux دقیقاً هسته است یا سیستمعامل؟
در معنای دقیق فنی، Linux نام هسته یا Kernel است؛ بخش مرکزی که با منابع و سختافزار در ارتباط است. در گفتوگوی روزمره، «لینوکس» اغلب برای یک سیستم کاملِ مبتنی بر این هسته به کار میرود. سیستم کامل علاوه بر هسته، ابزارهای پایه، کتابخانهها، مدیریت بسته و برنامههای دیگر دارد. این تفاوت شبیه تفاوت یک جزء اصلی با مجموعهٔ آمادهٔ استفاده است؛ دانستن آن کمک میکند اسمهای مختلف را درست دستهبندی کنید.
توزیع یا Distribution چیست؟
یک توزیع، مجموعهای هماهنگ از هسته و نرمافزارهاست که با روش نصب، مخزن بسته، چرخهٔ انتشار و سیاست نگهداری عرضه میشود. Ubuntu، Debian و Fedora نمونهاند. بنابراین سؤال «Ubuntu یا Linux؟» مانند مقایسهٔ یک نمونه با خانوادهٔ آن است؛ Ubuntu یک توزیع مبتنی بر Linux است. دستورها و مسیرهای پایه در بسیاری از توزیعها شبیهاند، اما ابزار نصب بسته و بعضی تنظیمات فرق میکنند؛ نباید هر دستور اینترنتی را برای همهٔ توزیعها یکسان فرض کرد.
آیا لینوکس فقط یک صفحهٔ سیاه است؟
خیر. لینوکس میتواند محیط گرافیکی با پنجره و ماوس داشته باشد و میتواند بدون محیط رومیزی روی سرور اجرا شود. Terminal پنجره یا رابطی برای واردکردن متن است و Shell برنامهای است که فرمانها را تفسیر میکند. این دو با خود سیستمعامل یکسان نیستند. روی سرور، فرمان متنی معمولاً راهی کمهزینه و قابل تکرار برای مدیریت است؛ نبود دسکتاپ به معنای ناقصبودن سیستم نیست.
یک مثال نزدیک به پروژهٔ دانشجویی
- سختافزار یا ماشین مجازی: منابع CPU، RAM، دیسک و شبکه را فراهم میکند.
- توزیع Linux مانند Ubuntu: محیط اجرای برنامهها و مدیریت منابع را فراهم میکند.
- Node.js یا Nginx: برنامههایی هستند که روی سیستمعامل اجرا میشوند.
- کد پروژه و فایل HTML: داده و منطق برنامهٔ شما هستند.
- PuTTY یا Bitvise روی ویندوز: ابزار اتصال به سرورند و خود لینوکس یا سرور نیستند.
وقتی یک سایت بالا نمیآید، ممکن است مشکل در هر یک از این لایهها باشد. روشنبودن ماشین، درستبودن سیستمعامل، فعالبودن سرویس و صحیحبودن کد چهار بررسی متفاوتاند. از همین ابتدا عادت کنید نام دقیق لایه را بگویید: «سرویس وب اجرا نمیشود» از «لینوکس خراب است» اطلاعات بیشتری برای حل مسئله میدهد.
چطور محیط فعلی را بشناسیم؟
اگر به یک محیط Linux آزمایشی دسترسی دارید، فرمانهای زیر اطلاعات پایه را نشان میدهند و تنظیم سیستم را عوض نمیکنند. uname نام و نسخهٔ هسته را نشان میدهد و os-release مشخصات توزیع را معرفی میکند. خروجی دقیق روی دستگاه شما متفاوت است؛ لازم نیست شمارهٔ نسخهٔ یک نمونه را عیناً ببینید. اگر هنوز محیطی ندارید، این بخش را بخوانید و در درس محیط تمرین برگردید.
uname -s
uname -r
cat /etc/os-release
whoamiمتنبازبودن چه معنایی برای یادگیری دارد؟
بخش مهمی از اکوسیستم Linux با مجوزهای متنباز توسعه مییابد؛ کد قابل بررسی است و جامعه یا شرکتها در نگهداری مشارکت میکنند. این ویژگی به معنای بینیازی از نگهداری، امنبودن خودکار یا رایگانبودن همهٔ خدمات نیست. سرور ابری، پشتیبانی و بعضی نرمافزارها ممکن است هزینه داشته باشند. امنیت به بهروزرسانی، مجوزها، تنظیمات و روش استفاده نیز وابسته است؛ صرف انتخاب نام یک سیستمعامل کافی نیست.
تمرین مفهومی و پاسخ
سه عبارت «Ubuntu»، «Nginx» و «PuTTY» را در دستهٔ درست قرار دهید. پاسخ: Ubuntu توزیع سیستمعامل، Nginx برنامهٔ سرویسدهندهٔ وب و PuTTY نرمافزار کلاینت برای اتصال است. سپس توضیح دهید چرا یک سرور بدون مانیتور هم میتواند سایت را اجرا کند: برنامهٔ سرویسدهنده به منابع و شبکه نیاز دارد، نه الزاماً یک دسکتاپ باز. آمادهٔ درس بعد هستید وقتی این لایهها را با واژههای خودتان توضیح دهید.
منابع انگلیسی
- Red Hat — What is Linux?
- https://www.redhat.com/en/topics/linux/what-is-linux
- Debian — About Debian
- https://www.debian.org/intro/about
- Ubuntu — Welcome to the terminal
- https://ubuntu.com/server/docs/tutorial/welcome-to-the-terminal/
این متن فارسی با ساختار و مثالهای مستقل برای دانشجوی تازهکار تدوین شده است. در درس بعد، سرور مجازی و تفاوت آن با هاست اشتراکی و ماشین فیزیکی را میخوانیم.
پیشنیاز و محیط اجرای مثالها
درس 1 از ۱۰ در مسیر مقدماتی لینوکس و مفاهیم سرور. این مطلب مفهومی و مناسب شروع است. فرمانهای نمونه فقط در محیط آزمایشی معرفیشده اجرا شوند؛ نتیجهٔ واقعی به محیط شما وابسته است.
پیشرفت روی همین مرورگر ذخیره میشود.