اتصال به سرورهای لینوکسی در ویندوز با PuTTy و Xming

فرض کنید در شرایطی هستید که یک سرور لینوکسی دارید و نیاز دارید تا با ابزارهایی که GUI  دارند یا اصطلاحا X Windows هستند وصل شوید. مثلا من در سرور لینوکسی خودم از ابزار Virtual Machine Manager برای ماشین های مجازی که با KVM ایجاد میکنم استفاده می کنم. خوب من اصلا تمایلی ندارم که مدیریت ماشین های مجازی خودم را از طریق Terminal انجام بدهم و استفاده از ابزار Virt-manager را ترجیح میدهم. اما چطور میتوانم زمانیکه که از PuTTY و از طریق SSH به سرور لینوکسی خودم وصل شده ام از این ابزار استفاده کنم؟

ابزارهای مورد نیاز:

۱- یک سرور لینوکسی

۲- نرم افزار PuTTY

3- نرم افزار Xming

1- ابتدا در نرم افزار PuTTY گرینه X11 Forwarding را فعال کنید.

xming-1

۲- پس از نصب نرم افزار Xming آن را اجرا کنید.

xming-3

۳- حالا به سرور خود SSH بزنید.

xming-2

۴- حالا کافی است تا دستور virt-manager را در ترمینال وارد کنید تا پنجره این نرم افزار به صورت گرافیکی در ویندوز شما نمایش داده شود.

xming-4

xming-5

به طور کلی از نرم افزار Xming در ویندوز برای باز کردن GUI بر روی سیستم های X Windows یا X11  استفاده می شود و درحقیقت یک پیاده سازی از X Windows Systemدر محیط MS Windows می باشد.

به طور دقیق تر با توجه به مدل Client-Server سیستم X Windows این ابزار یک X Windows Server در MS Windows محسوب میشود. مثلا میتوانید به جای مثال بالا عبارت Xclock را در ترمینال وارد کنید تا ساعت سرور لینوکسی شما به صورت گرافیکی و در محیط ویندوز نشان داده شود.

xming-6

یادگیری و پیشرفت در حوزه تکنولوژی با مدل T

یکی از دغدغه های خود من و دوستانی که باهاشون کار میکنم این هست که توانایی تمرکز روی یک مطلب و یادگیری عمقی آن را ندارند و هر روز ه  یک مطلب و یا تکنولوژی جدید با عمق کم یاد میگیریم و رهایش میکنیم.

اما سئوالی که در ذهن ایجاد میشود این است که آیا این روش یادگیری بد است؟

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

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

چارچوب یادگیری T

در این مدل بخشی از یادگیری شما باید کم عمق باشد (مثال همان AngualrJS) که در حقیقت همان قسمت افقی حرف T است و بخشی از یادگیری شما باید عمقی باشد که همان قسمت عمودی حرف T است. به عبارتی شما با دانش عمقی میتوانید ادعا کنید که در یک زمینه متخصص هستید (مثلا #C).در نظر بگیرید که در قسمت عمقی این مدل شما میتوانید باز هم بخش های مختلفی از یادگیری را داشته باشید. مثلا در زمینه Parallel Programming در NET. تخصص  ویژه پیدا کنید.

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

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