کاوشگر لینوکس

آموزش لینوکس و معرفی نرم افزارهای کاربردی مرجع باز (open source)

کاوشگر لینوکس

آموزش لینوکس و معرفی نرم افزارهای کاربردی مرجع باز (open source)

جنبش لینوکس اروپا را فرا می گیرد









جنبش لینوکس اروپا را فرا می گیرد


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

به همین منظور رابین بلور رئیس موسسه تحقیقاتی Bloor نگاهی تاریخ وار به این
موضوع در سطح اروپا کرده که بد نیست ما نیز آن را مرور کرده تا زوایای بیشتری
از این داستان ضدمایکروسافتی به دستمان بیاید:

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

سپس فرانسویان در سال 2001 آژانسی تاسیس کردند تا همکاری مدیران آن و صاحبان
فناوری اوپن سورس از جمله لینوکس و یونیکس متحقق شود. این آژانس اینک موسوم به
ATICA است که پروژه های لینوکس گرایی سیستم های حکومتی را دنبال می کند. وزیر
فرهنگ فرانسه برونو مانونی به عنوان مشوق اصلی توانست در سال 2002 نیز 300 سرور
دیگر حکومتی را از ان تی به سوی لینوکس بیاورد.

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

ایتالیا : در ژولای 2001 دولت ایتالیا
راهنمای جامع حکومتی برای رفتن به سوی توسعه آی.

تی براساس اوپن سورس را تصویب کرد. یکی از موارد عمده پزشکی الکترونیکی
(e-Health) بود که مورد توجه زیاد قرار گرفت تا براساس آن مراکز بهداشتی و
درمانی و بیمارستان ها تمامی سیستم هایشان به اوپن سورس مجهز شود. در سال 2002
رئیس دپارتمان فناوری و اختراعات ایتالیا واحد مستقلی را برای تحقیق درباره
اوپن سورس ها بخصوص لینوکس ایجاد کرد. و در جولای 2002 یکی از نمایندگان سبزها
در سنای ایتالیا لایحه تجهیز مراکز عمومی کل کشور به اوپن سورس را ارائه کرد تا
برای کاهش هزینه ها لینوکس جایگزین ویندوز شود.

هلند : دولت هلند قسمت IS حکومتی را به
اوپن سورس مجهز می کند. واحد ICTU وزارت کشور با همکاری موسسه Ososs همکاری
بیشتری در این زمینه با هم انجام داده اند و آنها پروژه های خود را روی سایت
Ososs.nl معرفی می کنند تا بعنوان مشوق اصلی دراختیار مراجع حکومتی قرار گیرد و
بسوی اوپن سورس بیایند.

اسپانیا : در آوریل 2002 یک جنبش بزرگ در
غرب اسپانیا در شهر اکتریمادورا مردم را تشویق کرد تا ویندوز را کنار گذاشته و
بسوی لینوکس بیایند و بلافاصله یکصدهزار رایانه از ویندوز به لینوکس سوئیچ
شدند. حکومت برای ادامه این مسیر واحد مستقلی ایجاد کرد تا سیستم های
بیمارستانی و مراکز عمومی به لینوکس مجهز شوند. کپی برداری از نسخه های
نیوزیلندی و پرویی نیز صورت گرفت.

در حال حاضر اکثر سیستم های مخابراتی و ارتباطی به لینوکس مجهز شده اند.

انگلیس : بیشتر مراکز پلیس این کشور به
دلایل امنیتی به سوی لینوکس رفته اند. اما کمترین مشتاق را این کشور در میان
اروپایی ها برای رفتن بسوی اوپن سورس دارد و تقریبا مقر مایکروسافت در اروپا
نیز انگلیس است.

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


روزنامه جام جم :
82/03/30



لینوس توروالدز را بیشتر بشناسیم

بیائید برای ایجاد تنوع در مطالب لینوکس، کمی در مورد لینوس توروالدز صحبت کنیم .و بهتر است بحث را بصورت پرسش و پاسخ پیش ببریم .
پرسش: لینوس توروالدز کیست؟
پاسخ: او نویسنده هسته سیستم عامل لینوکس است.
پرسش: تلفظ درست کلمه Linus چیست؟
پاسخ: اگر به زبان سوئدی (زبان مادری او) صحبت می‌کنید، به صورت /lee'nus/ یا لینوس تلفظ می‌شود. در صورتی‌که دوست دارید و کارت صدا هم دارید، می‌توانید تلفظ آن را در آدرس http://www.tuxedo.org/~esr/faqs/linus/swedish.au بشنوید. اما اگر به زبان انگلیسی حرف می‌زنید، می‌توانید آن را به دو صورت /lie'nus/ یا /li'nus/ تلفظ کنید. باز هم می‌توانید از طریق آدرس http://www.tuxedo.org/~esr/faqs/linus/english.au صدای لینوس توروالدز را که نام خود را به شکل انگلیسی بیان می‌کند، بشنوید.
پرسش: لینوس اهل کجاست؟
پاسخ: فنلاند (http://www.finland.fi/finfo/english/default.html). او در هلسینکی پایتخت فنلاند و بزرگ‌ترین شهر آن کشور http://www.hel.fi/english بزرگ شده است. او هسته لینوکس را زمانی که در دانشگاه هلسینکی (http://www.helsinki.fi/english) دانشجو بود نوشت.
پرسش: تاریخ تولد او چه زمانی است؟
پاسخ: 28 دسامبر 1969
پرسش: اگر لینوس فنلاندی است، پس چرا زبان مادری او سوئدی است؟
پاسخ: فنلاند دارای یک اقلیت بزرگ (حدود 6 درصد) از سوئدی‌زبان‌ها است. آنها خود را finlandssvensk می‌نامند و خود را فنلاندی می‌دانند چون اجداد بسیاری از آنها چندین قرن در فنلاند زندگی کرده‌اند. سوئدی یکی از دو زبان رسمی فنلاند است.
پرسش: نام میانی (middle name) لینوس چیست؟
پاسخ: خیلی از افراد فکر می‌کنند که نام میانی او God است! تعداد کمی هم اعتقاد دارند که نام میانی او باید Eric باشد. ولی در واقع نام میانی او Benedict است ولی خود او زیاد از آن استفاده نمی‌کند.
پرسش: لینوس در کجا زندگی می‌کند؟
پاسخ: او در حال حاضر ساکن سانتاکلارا در ایالت کالیفرنیا است. مهاجرت او از هلسینکی به ایالات متحده در سال 1997 صورت گرفت.
پرسش: آیا لینوس دارایhomepage است؟
پاسخ: بله. او یک homepage در آدرس http://www.cs.helsinki.fi/~torvalds دارد. در این صفحه می‌توانید تصویر کارتونی یک پنگوئن را به همراه تصاویر جالبی از دختر زیبای او مشاهده کنید. نام دختر او، پاتریشیا میراندا توروالدز است.
پرسش: لینوس از چه ویرایشگری (editor) استفاده می‌کند و ایمیل‌های خود را با چه برنامه‌ای می‌خواند؟
پاسخ: لینوس نه از Emacs استفاده می‌کند و نه از vi. ویرایشگر مورد علاقه او MicroEmacs است. همچنین برای خواندن ایمیل نیز از برنامه Pine استفاده می‌کند.
پرسش: آدرس ایمیل لینوس چیست؟
پاسخ: می‌توانید با او از طریق آدرس torvalds@transmeta.com در ارتباط باشید.
توجه: از آنجا که لینوس همانی هست که است، ایمیل‌های زیادی به او می‌رسد که باید به همه آنها رسیدگی کند. بنابراین با ایمیل‌های بی‌هدف وقت او را تلف نکنید. مسلما لینوس آنقدر مودب هست که در صورت سوءاستفاده از آدرس ایمیل او، شما را آزرده نکند ولی شاید حدود صدهزار نفر وجود دارند که در صورت انجام این کار از دست شما عصبانی شوند!
پرسش: زمانی که لینوس در حال کاوش در هسته لینوکس نیست، چه کار می‌کند؟
پاسخ: او در شرکت Transmeta (http://www.transmeta.com) کار می‌کند. گاهی هم با دخترانش پاتریشیا میراندا و دانیلا بازی می‌کند. گاهی هم به تیراندازی با تپانچه می‌پردازد و یا از رانندگی با اتومبیل BMW Z3 خود لذت می‌برد.
پرسش: لینوس در یک شرکت غیرلینوکسی کار می‌کند؟!!!
پاسخ: بله! شایعه‌ای وجود دارد مبنی بر اینکه او قصد کار در شرکت( RedHat (http://www.redhat.com را داشته است، ولی او نمی‌خواهد به هیچ‌یک از عرضه‌کنندگان لینوکس علاقه نشان دهد. لینوس حتی حاضر نشد که به تایید یا تکذیب این شایعه بپردازد. او در محل کار از RedHat و در خانه از SuSE استفاده می‌کند.
نقل از سایت ccwmagazine:


مروری بر زبان‌های برنامه ‌نویسی محیط لینوکس

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

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

تعداد زیادی زبان و کتابخانه برنامه‌نویسی در لینوکس وجود دارد. در نتیجه در اینجا تنها به بررسی آنهایی خواهیم پرداخت که طبق آمار و ارقام از سایرین پراستفاده‌تر هستند. منبع مورد استفاده برای این مطلب، کاری است که در LDP (پروژه مستندسازی لینوکس یا Linux Documentation Project) انجام شده است که نشان‌دهنده اعتبار آن در نزد متولیان لینوکس است.

زبان‌هایی که در اینجا مورد بررسی قرار خواهند گرفت عبارتند از:

# زبان‌های C، Perl، و Lisp به عنوان زبان‌هایی که از روزهای اول پیدایش لینوکس در آن قرار گرفته بودند
# زبان‌های Python، PHP، Java و C++ به عنوان زبان‌هایی که نسبت به گروه اول جدیدتر هستند

معیارهای مقایسه

در بخش مقایسه، خصوصیات زیر برای هریک از زبان‌ها بیان خواهد شد.

نام زبان

عنوانی که عموما زبان مورد بررسی به وسیله آن شناخته می‌شود.

مبتدی

معیاری است که نشان می‌دهد کار با زبان مورد بررسی چقدر برای افرادی که دارای تجربه کمی در زمینه برنامه‌نویسی هستند راحت است. زبان‌هایی که این معیار برای آنها «بله» تعیین شده باشد را می‌توان مناسب حال برنامه‌نویسان مبتدی دانست.

کارایی

نشان می‌دهد که برنامه‌هایی که با این زبان نوشته شده باشند، در هنگام استفاده چقدر سریع خواهند بود. البته کارایی بیشتر به الگوریتم‌های مورد استفاده در برنامه بستگی دارد تا به زبان برنامه‌نویسی. ولی یک قانون نانوشته می‌گوید که C، C++ و Fortran معمولا برنامه‌هایی با کارایی بالاتر تولید می‌کنند. به طور مثال می‌توان به یک آزمایش اتکا کرد که البته خیلی هم علمی نیست. در این آزمایش یک برنامه مرتب‌سازی اعداد با یک الگوریتم ثابت در زبان‌های مورد مقایسه پیاده‌سازی می‌شود و سرعت اجرای آنها با یکدیگر مقایسه می‌شود و مبنای تعیین کارایی زبان برنامه‌نویسی قرار می‌گیرد.

OOP: برنامه‌نویسی شیءگرا در مقابل سایر روش‌های برنامه‌نویسی

برنامه‌نویسی شیءگرا یا Object Oriented Programming (OOP) یکی از مهم‌ترین روش‌های برنامه‌نویسی است که روز به روز بر محبوبیت آن افزوده می‌شود. در این روش، ساختار داده‌ها و الگوریتم‌ها در واحدهایی که معمولا به نام کلاس (Class) شناخته می‌شوند، قرار می‌گیرند. OOP معمولا با روش برنامه‌نویسی رویه‌ای (procedural) که در آن داده‌ها و الگوریتم‌ها از یکدیگر جدا هستند مورد مقایسه قرار می‌گیرد. البته امکان برنامه‌نویسی شیءگرا را نمی‌توان کاملا وابسته به زبان برنامه‌نویسی دانست. مثلا با وجود این که زبان C یک زبان شیءگرا محسوب نمی‌شود می‌توان در آن برنامه‌های شیءگرا نوشت و به همین ترتیب در زبان‌هایی که مشخصه اصلی آنها شیءگرایی است می‌توان برنامه‌های رویه‌ای تولید کرد.

در اینجا زبان‌هایی که مشخصه OOP برای آنها ذکر شده است، قابلیت‌های خاصی را برای تسهیل برنامه‌نویسی شیءگرا ارائه می‌کنند. زبان‌های تابعی (functional) نظیر Lisp گونه متفاوتی از زبانها هستند. برنامه‌نویسی شیءگرا را می‌توان شاخه‌ای از برنامه‌نویسی تابعی دانست. برنامه‌نویسی منطقی (logical) که به نام برنامه‌نویسی تعریفی (declarative) نیز شناخته می‌شود و زبان prolog شاخص‌ترین نمونه آن است، گونه کاملا متفاوتی از برنامه‌نویسی است که شباهت زیادی با سایر روش‌ها ندارد.

RAD: تولید سریع برنامه‌ها (Rapid Application Development)

این معیار بیشتر از آن که به زبان مورد استفاده بستگی داشته باشد، وابسته به ابزارهایی است که در تولید برنامه مورد استفاده قرار می‌گیرند. RAD در اثر استفاده مجدد از کدهای پیش‌نوشته (code reuse) نیز بسیار افزایش می‌یابد.

مثال‌ها

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

توضیحات

اطلاعات بیشتری در مورد زبان مورد بحث در این بخش ارائه خواهد شد.

مقایسه زبان‌ها

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

زبان Perl

مبتدی: بله
OOP: بله
مثال‌ها: نبشته‌نویسی (scripting)، ابزاری برای مدیران سیستم، برنامه‌نویسی وب
توضیحات: ابزاری قدرتمند برای کار با متن و رشته‌های حرفی (string)

زبان Python

مبتدی: بله
OOP: بله
مثال‌ها: نبشته‌نویسی، برنامه‌نویسی وب


زبان TCL

مبتدی: بله
OOP: خیر
مثال‌ها: نبشته‌نویسی، ابزاری برای مدیران سیستم، برنامه‌های کاربردی

زبان PHP

مبتدی: بله
OOP: بله
مثال‌ها: برنامه‌نویسی وب
توضیحات: استفاده زیادی در کاربردهای پایگاه‌داده در وب دارد

زبان Java

مبتدی: بله
OOP: بله
مثال‌ها: برنامه‌های چندمحیطی (cross-platform)، برنامه‌نویسی وب
توضیحات: به مرور به حوزه‌های جدیدی مانند تجارت الکترونیک و بسیاری کاربردهای دیگر وارد می‌شود.

زبان Lisp

مبتدی: بله
OOP: این زبان تابعی است
مثال‌ها: برنامه‌نویسی هوش مصنوعی
توضیحات: نسخه‌های متعددی از آن وجود دارد مانند Elisp، Clisp، و Scheme

زبان Fortran

مبتدی: خیر
OOP: خیر
مثال‌ها: کاربردهای محاسباتی و علمی

زبان C

مبتدی: خیر
OOP: خیر
مثال‌ها: برنامه‌نویسی سیستم، برنامه‌های کاربردی

زبان C++

مبتدی: خیر
OOP: بله
مثال‌ها: برنامه‌های کاربردی

Shell Programming

Shellها محیط برنامه‌نویسی بسیار مهمی در لینوکس محسوب می‌شوند. اگر شما می‌خواهید یک کاربر حرفه‌ای لینوکس باشید، حتما باید با این نوع برنامه‌نویسی نیز آشنا باشید. شباهت‌هایی بین برنامه‌نویسی Shell و سایر زبان‌های نبشته‌نویسی (scripting) وجود دارد. در واقع اغلب از هردوی آنها برای رسیدن به اهداف مشابهی استفاده می‌شود. از پرکاربردترین Shellهای محیط لینوکس می‌توان bash، tcsh، csh، ksh، و zsh را نام برد. در شماره‌های آینده بیشتر در مورد Shell Programming خواهیم گفت.

برخی زبان‌های دیگر

علاوه بر زبان‌هایی که در اینجا مورد بررسی قرار گرفتند، زبان‌های دیگری نیز در لینوکس وجود دارند که تنها به نام بردن آنها اکتفا می‌کنیم. در صورت علاقه، منابع بسیار زیادی در مورد این زبان‌ها چه در خود محیط لینوکس (با استفاده از دستور man) و چه روی اینترنت می‌توان یافت. این زبان‌ها عبارتند از: AWK، SED، Smalltalk، Eiffel، Ada، Prolog، assembler، Objective C، Logo، و Pascal (با استفاده از مبدل p2c). همچنین http://www.tunes.org/Review/Languages.html اطلاعات بیشتری را در مورد زبان‌های برنامه‌نویسی ارائه می‌کند.