دسته بندی | کامپیوتر و IT |
فرمت فایل | doc |
حجم فایل | 84 کیلو بایت |
تعداد صفحات فایل | 22 |
تاریخچه لینوکس
آغاز داستان
در سال 1991 در حالی که جنگ سرد رو به پایان میرفت و صلح در افقها هویدا میشد، در دنیای کامپیوتر، آینده بسیار روشنی دیده میشد. با وجود قدرت سخت افزارهای جدید، محدودیت های کامپیوترها رو به پایان میرفت. ولی هنوز چیزی کم بود...
و این چیزی نبود جز فقدانی عمیق در حیطه سیستم های عامل.
داس، امپراطوری کامپیوترهای شخصی را در دست داشت. سیستم عامل بی استخوانی که با قیمت 50000 دلار از یک هکر سیاتلی توسط بیل گیتز (Bill Gates) خریداری شده بود و با یک استراتژی تجاری هوشمند، به تمام گوشه های جهان رخنه کرده بود. کاربران PC انتخاب دیگری نداشتند. کامپیوترهای اپل مکینتاش بهتر بودند. ولی قیمتهای نجومی، آنها را از دسترس اکثر افراد خارج می ساخت.
خیمه گاه دیگر دنیای کامپیوترها، دنیای یونیکس بود. ولی یونیکس به خودی خود بسیار گرانقیمت بود. آنقدر گرانقیمت که کاربران کامپیوترهای شخصی جرات نزدیک شدن به آنرا نداشتند. کد منبع یونیکس که توسط آزمایشگاههای بل بین دانشگاهها توزیع شده بود، محتاطانه محافظت میشد تا برای عموم فاش نشود. برای حل شدن این مسئله، هیچیک از تولید کنندگان نرم افزار راه حلی ارائه ندادند.
بنظر میرسید این راه حل به صورت سیستم عامل MINIX ارائه شد. این سیستم عامل، که از ابتدا توسط اندرو اس. تاننباوم (Andrew S. Tanenbaum) پروفسور هلندی، نوشته شده بود به منظور تدریس عملیات داخلی یک سیستم عامل واقعی بود. این سیستم عامل برای اجرا روی پردازنده های 8086 اینتل طراحی شده بود و بزودی بازار را اشباع کرد.
بعنوان یک سیستم عامل، MINIX خیلی خوب نبود. ولی مزیت اصلی آن، در دسترس بودن کد منبع آن بود. هرکس که کتاب سیستم عامل تاننباوم را تهیه میکرد، به 12000 خط کد نوشته شده به زبان C و اسمبلی نیز دسترسی پیدا میکرد. برای نخستین بار، یک برنامه نویس یا هکر مشتاق میتوانست کد منبع سیستم عامل را مطالعه کند. چیزی که سازندگان نرم افزارها آنرا محدود کرده بودند. یک نویسنده بسیار خوب، یعنی تاننباوم، باعث فعالیت مغزهای متفکر علوم کامپیوتری در زمینه بحث و گفتگو برای ایجاد سیستم عامل شد. دانشجویان کامپیوتر در سرتاسر دنیا با خواندن کتاب و کدهای منبع، سیستمی را که در کامپیوترشان در حال اجرا بود، درک کردند.
و یکی از آنها لینوس توروالدز (Linus Torvalds) نام داشت.
کودک جدید در افق
در سال 1991، لینوس بندیکت توروالدز (Linus Benedict Torvalds) دانشجوی سال دوم علوم کامپیوتر دانشگاه هلسینکی فنلاند و یک هکر خود آموخته بود. این فنلاندی 21 ساله، عاشق وصله پینه کردن محدودیت هایی بود که سیستم را تحت فشار قرار میدادند. ولی مهمترین چیزی که وجود نداشت یک سیستم عامل بود که بتواند نیازهای حرفه ای ها را براورده نماید. MINIX خوب بود ولی فقط یک سیستم عامل مخصوص دانش آموزان بود و بیشتر به عنوان یک ابزار آموزشی بود تا ابزاری قدرتمند برای بکار گیری در امور جدی.
در این زمان برنامه نویسان سرتاسر دنیا توسط پروژه گنو (GNU) که توسط ریچارد استالمن (Richard Stallman) آغاز شده بود، تحریک شده بودند. هدف این پروزه ایجاد حرکتی برای فراهم نمودن نرم افزارهای رایگان و در عین حال با کیفیت بود. استالمن خط مشی خود را از آزمایشگاه معروف هوش مصنوعی دانشگاه MIT با ایجاد برنامه ویرایشگر emacs در اواسط و اواخر دهه 70 آغاز نمود. تا اوایل دهه 80، بیشتر برنامه نویسان نخبه آزمایشگاههای هوش مصنوعی MIT جذب شرکتهای نرم افزاری تجاری شده بودند و با آنها قرارداد های حفظ اسرار امضا شده بود. ولی استالمن دیدگاه متفاوتی داشت. وی عقیده داشت برخلاف سایر تولیدات، نرم افزار باید از محدودیت های کپی و ایجاد تغییرات در آن آزاد باشد تا بتوان روز به روز نرم افزارهای بهتر و کارآمد تری تولید نمود.
با اعلامیه معروف خود در سال 1983، پروژه GNU را آغاز کرد. وی حرکتی را آغاز کرد تا با فلسفه خودش به تولید و ارائه نرم افزار بپردازد. نام GNU مخفف GNU is Not Unix است. ولی برای رسیدن به رویای خود برای ایجاد یک سیستم عامل رایگان، وی ابتدا نیاز داشت تا ابزارهای لازم برای این کار را ایجاد نماید. بنابراین در سال 1984 وی شروع به نوشتن و ایجاد کامپایلر زبان C گنو موسوم به GCC نمود. ابزاری مبهوت کننده برای برنامه نویسان مستقل. وی با جادوگری افسانه ای خود به تنهایی ابزاری را ایجاد نمود که برتر از تمام ابزارهایی که تمام گروههای برنامه نویسان تجاری ایجاد کرده بودند قرار گرفت. GCC یکی از کارآمد ترین و قویترین کامپایلرهایی است که تا کنون ایجاد شده اند.
تا سال 1991 پروزه GNU تعداد زیادی ابزار ایجاد کرده بود ولی هنوز سیستم عامل رایگانی وجود نداشت. حتی MINIX هم لایسنس شده بود. کار بر روی هسته سیستم عامل گنو موسوم به HURD ادامه داشت ولی به نظر نمی رسید که تا چند سال آینده قابل استفاده باشد.
این زمان برای توروالدز بیش از حد طولانی بود...
در 25 آگوست 1991، این نامه تاریخی به گروه خبری MINIX از طرف توروالدز ارسال شد:
از : لینوس بندیکت توروالدز
به: گروه خبری MINIX
موضوع: بیشتر چه چیزی را میخواهید در MINIX ببینید؟
خلاصه: نظرخواهی کوچک در مورد سیستم عامل جدید من
با سلام به تمام استفاده کنندگان از MINIX
من در حال تهیه یک سیستم عامل رایگان فقط به عنوان سرگرمی و نه به بزرگی و حرفه ای GNU برای دستگاههای 386 و 486 هستم. این کار از آوریل شروع شده و درحال آماده شدن است. من مایلم تا نظرات کاربران را در مورد چیزهایی که در MINIX دوست دارند یا ندارند، جمع آوری کنم. زیرا سیستم عامل من حدودا شبیه آن است. مانند ساختار سیستم فایل مشابه و چیزهای دیگر... من اکنون bash نسخه 1.08 و GCC نسخه 1.40 را به آن منتقل کرده ام و به نظر میرسد که کار میکند. من در عرض چند ماه چیزی آزمایشی درست کرده ام و مایلم بدانم که کاربران بیشتر به چه قابلیتهایی نیاز دارند؟ من از هر پیشنهادی استقبال میکنم. ولی قول نمی دهم همه آنها را اجرا کنم. لینوس
همانطور که در این نامه پیداست، خود توروالدز هم باور نمی کرد که مخلوقش آنقدر بزرگ شود که چنین تحولی در دنیا ایجاد کند. لینوکس نسخه 0.01 در اواسط سپتامبر 1991 منتشر شد و روی اینترنت قرار گرفت. شور و اشتیاقی فراوان حول مخلوق توروالدز شکل گرفت. کدها دانلود شده، آزمایش شدند و پس از بهینه سازی به توروالدز بازگردانده شدند. لینوکس نسخه 0.02 در پنجم اکتبر به همراه اعلامیه معروف توروالدز آماده شد:
از : لینوس بندیکت توروالدز
به: گروه خبری MINIX
موضوع: کدهای منبع رایگان هسته مشابه MINIX
آیا شما از روزهای زیبای MINIX 1.1 محروم شده اید؟ هنگامی که مردها مرد بودند و راه اندازهای دستگاه خود را خودشان مینوشتند؟ آیا شما فاقد یک پروزه زیبا هستید و می میرید تا سیستم عاملی داشته باشید تا بتوانید آنرا مطابق با نیازهای خود در آورید؟ اگر اینگونه است، این نامه برای شما نوشته شده است.
همانطور که ماه پیش گفتم من در حال کار بر بروی یک سیستم عامل رایگان مشابه MINIX برای کامپیوترهای 386 هستم. این سیستم عامل اکنون بجایی رسیده است که قابل استفاده است و مایل هستم که کدهای منبع را در سطح گسترده تر پخش نمایم. این نسخه 0.02 است ولی من موفق شده ام که نرم افزارهای Bash، GCC، GNU-Make، GNU-sed، Compress و غیره را تحت آن اجرا کنم. کدهای منبع این پروژه را میتوانید از آدرس nic.funet.fi با آدرس 128.214.6.100 در دایرکتوری pub/OS/Linux پیدا کنید. این دایرکتوری همچنین دارای چند فایل README و تعدادی باینری قابل اجرا تحت لینوکس است. تمام کدهای منبع ارائه شده است زیرا هیچ یک از کدهای MINIX در آن استفاده نشده است. سیستم را میتوانید همانطور که هست کامپایل و استفاده کنید. کدهای منبع باینری ها را هم میتوانید در مسیر pub/GNU پیدا کنید.
دسته بندی | کامپیوتر و IT |
فرمت فایل | doc |
حجم فایل | 1040 کیلو بایت |
تعداد صفحات فایل | 24 |
تاریخچه فتوشاپ
سالها پیش در پاییز سال 1987, Thomas knoll، دانشجوی دکترای رشته ) (Computer Visionدر حال کار روی برنامهای بود که بتواند تصاویر طیف خاکستری کامپیوتری را روی مانیتورهای سیاهوسفید نقشهبیتی به نمایش درآورد. این برنامه به نوعی سرگرمی دوره دانشجویی نول محسوب میشد که فارغ از درسهای دوره دکتری، در خانه خود و روی کامپیوتر مک پلاس خانگیاش روی آن کار میکرد. این کد برنامه به هیچ وجه مربوط به رساله پایاننامه نول نمیشد و خود او نیز در اوایل کار هرگز فکر نمیکرد که این برنامه ساده او قرار است روزی به بزرگترین نرمافزار ویرایش تصویر تبدیل شود.
این برنامه نظر John، برادر نول را جلب کرد. جان در آن زمان در شرکت بزرگ (Industrial Light and Magic ILM)در مارین کانتری کالیفرنیا مشغول به کار بود. ILM مرکز جلوههای ویژه تصویری در شرکت عظیم لوکاس فیلم بود که در آن زمان بزرگترین و معتبرترین شرکت فیلمسازی به شمار میرفت. با تهیه فیلم جنگهای ستارهای، لوکاس فیلم ثابت کرده بود که جلوههای تصویری کارآمد میتوانند با ترکیب شخصیتهای خیالی و داستانی دور از ذهن، به یک پدیده در دنیای سینما تبدیل شوند.
در پی موفقیت عظیم آن فیلم، همه در پی یافتن راهحلهای دیجیتالی برای چنین مقاصدی بودند و به همین علت جان نیز به محض اطلاع از پروژه برادرش، از او خواست که از برنامهاش برای تولید تصاویر دیجیتالی استفاده کند. این برنامه ساده Display نام داشت و نمایش تصاویر دیجیتالی توسط این برنامه نتیجه خوبی را به دنبال داشت که نقطه سرآغاز کار این دو برادر شد. خود جان چنین تعریف میکند:
"من نمیدونستم چطور میشه از Display استفاده کرد. وقتی برای اولین بار یک عکس سیاه و سفید رو با اون باز کردم، از جان پرسیدم آیا میتونه کد برنامه رو جوری تغییر بده که تصاویر رو با فرمتهای دیگه هم ذخیره کنه؟! اگهDisplay میتونست چنین کاری کنه اونوقت من میتونستم با اون از عکس برنامههای دیگه خروجی بگیرم. من چندتا عکس رو که از کامپیوترهای لایت اند مجیک آورده بودم، توی Display باز کردم. اما روی کامپیوتر من خیلی تیره نمایش داده شدند. بنابراین دوباره از توماس پرسیدم: میتونی کاری کنی که این عکسها کمی روشنتر بشن یا مثلا مقدار شفافیت اونها رو تغییر بدی؟"
همین سوال ساده سرآغاز کار بر روی نرمافزاری شد که امروزه آن را با نام فتوشاپ میشناسیم.
جان توسط پدرش که در دانشگاه میشیگان سمت استادی داشت، ترتیب سفارش یک کامپیوتر Macintosh II را که اولین مدل رنگی محسوب میشد داد. به محض خریداری این کامپیوتر، نول دوباره شروع به کار روی برنامه کرد، به نوعی که بتواند روی مانیتورهای رنگی نیز کار کند. آن دو به مدت چند ماه به طور مداوم روی این پروژه کار کردند تا بتوانند قابلیتهای نمایشی آن را افزایش دهند. در همان زمان به اصرار جان، توماس کدهای مخصوص خواندن و ذخیرهکردن فرمتهای مختلف رنگدانهها را به برنامهاش اضافه کرد که همان کدها سالها بعد تبدیل به فیلترها plug-inتصویرهای نقشه بیتی شدند.
توماس پس از مدتی کار روی برنامهاش موفق به ساخت ابزار منحصر به فرد محدوده انتخاب (Selection Tools) شد که بدون اینکه لبههای زمخت و ناهموار ایجاد کند، قابلیت جدا کردن مناطق رنگی را داشت. او همچنین توانست قابلیتهای فوقالعادهای مثل Levelها را برای تنظیم تنالیته تصویر، Hue and Saturation را برای تنظیمات رنگی و نیز قابلیتهای رنگآمیزی را برای تغییر رنگ مناطق مورد نظر در تصاویر نقشه بیتی فراهم کند.
در تابستان 1988 بود که جان بالاخره به این نتیجه رسید که کاربرد برنامه ساخته شده به حدی از انتظار رسیده است که بتوان از آن به عنوان یک محصول تجاری استفاده کرد. توماس از این فکر جان شگفت زده شد:" جداً فکر میکنی بتونیم این برنامه رو به کسی بفروشیم؟ من که فکرش رو نمیکنم. " جان با خوشبینی برادرش را متقاعد کرد که این کار اصلا دور از ذهن نیست و به او قول داد که سعیاش را میکند تا از برنامه ساخته شده، یک نرمافزار تجاری بسازد.
جان راست میگفت. فروش چنین برنامهای به همین سادگیها نبود و کار بسیار زیادتری لازم داشت تا به چنین نتیجهای برسد. اما جان دست بردار نبود.
در همان زمان بود که جان در نشریه MacWeek آگهی تبلیغ نرمافزار ویرایشگری را دید که PhotoMac نام داشت. دیدن آن آگهی باعث شد که جان بیشتر در فکر فروش نرمافزار خودشان بیفتد. به همین علت برای تحقیق پیرامون نرمافزار جدید راهی همایش SIGGRAPH شد. نتیجه همایش برای او رضایتبخش بود. طوری که خود او میگوید"ما هیچ نگرانیای از آن نرمافزار نداشتیم. برنامه ما قابلیتهای بزرگی داشت که PhotoMac فاقد آنها بود" و درحقیقت تعجب کرده بود که برنامهای با چنین قابلیتهای سطح پایینی میتواند فروخته شود! توماس بارها و بارها نام برنامه خودشان را تغییر داد و هر بار که نام جدیدی برای آن برمیگزید چیز دیگری نظرش را جلب میکرد و باعث میشد دوباره آن را تغییر دهد. دقیقا مشخص نیست نام فتوشاپ از کجا گرفته شد.
به نظر میرسد این نام را یکی از افراد مورد اعتماد او به وی پیشنهاد داد و در حقیقت این نام آخرین نامی بود که برگزیده شد و روی نرمافزار مورد نظر باقی ماند.
پس از نامگذاری نرمافزار، جان شروع کرد به گشتن به دنبال شرکتی که روی فتوشاپ سرمایهگذاری کند. اولین شرکتی که با آنها وارد مذاکره شدSuperMacبود که اختلافات مالی موجب جلوگیری از رسیدن به توافق نهایی بین آنها شد. Aldus در حال کار روی یک پروژه خانگی بود و Adobe نیز علیرغم علاقهمندیای که به همکاری نشان داد اما روند کار آنها به سرعتی نبود که بتوانند به راحتی وارد مذاکره شوند. در آن زمانی که جان در دره سیلیکون به دنبال شرکتی برای همکاری میگشت، توماس نیز بهطور تمام وقت در حال کار روی فتوشاپ بود تا بتواند امکانات و قابلیتهای بیشتری را به آن اضافه کند. در این زمان جان نیز برای اینکه بتواند امکان استفاده از نرمافزار را برای عموم سادهتر کند، یک راهنمای ساده برای آن تهیه کرد که میتوانست نحوه کار با نرمافزار را به خوبی تشریح کند.
زحمات این دو بالاخره نتیجه داد و توانستند با شرکت Barneyscan وارد مذاکره شوند. این شرکت در آن زمان سازنده اسکنرهای نقشهبیتی بود و قصد داشت با خرید فتوشاپ و استفاده از آن در جهت بالابردن کارایی اسکنرهای خود، فروش سختافزارهای خود را افزایش دهد. اقدامات اولیه انجام شد و اولین نسخه نرمافزار به عنوان یک برنامه الحاقی برای اسکنرها به بازار آمد. از نسخه فتوشاپ چیزی در حدود دویست کپی به فروش رفت که هرچند قابل ملاحظه نبود، اما بههرحال اولین فروش تجاری برنامه خانگی برادران نول به شمار میرفت.
در همین زمان جان، نرمافزار خودش را به مهندسان شرکت اپل نشان داد.
دسته بندی | برنامه نویسی |
فرمت فایل | doc |
حجم فایل | 50 کیلو بایت |
تعداد صفحات فایل | 30 |
توضیحات مختصری در مورد زبانهای برنامه نویسی
DELPHI -1
C++ -2
C# -3
BASIC -4
FORTRAN -5
VISUAL BASIC -6
DELPHI -1
دِلفی (Delphi) یا به تعبیری ویژوآل پاسکال – یک زبان برنامهنویسی است و بستری برای توسعهٔ نرمافزار که شرکت بورلند آن را تولید کرده است. این زبان، در بدو انتشار خود در سال ۱۹۹۵، به عنوان یکی از نخستین ابزارهایی مطرح شد که از توسعهٔ نرمافزار بر مبنای متدولوژی RAD((Rapid Application Developmentپشتیبانی میکردند؛ یعنی تولید و توسعهٔ سریع برنامههای کاربردی این نرم افزار بر مبنای پاسکال شیگرا بوده و از این زبان مشتق شده است. البته بورلند نسخهای از دلفی و سیپلاسپلاسبیلدر را برای لینوکس به نام کایلیکس (Kylix) ارائه کرد که مورد استقبال توسعه دهندگان نرمافزارهای لینوکس قرار نگرفت. نرمافزارهای دلفی در ابتدا به صورت مستقیم از کتابخانههای ویندوز و کتابخانهٔ مخصوص خود به نام VCL استفاده میکرد، اما پس از نسخه ۶ دلفی، امکانات استفاده از داتنت هم به آن اضافه شد. در حال حاضر میتوان دلفی را یکی از رایجترین زبانهای ممکن در ایران دانست.زبانِ دلفی که پیشتر بنام پاسکال شیءگرا (Object-Pascal) خوانده میشد و برای طراحی نرمافزاهای تحت ویندوز به کار میرفت، امروزه چنان توسعه یافته است که برای تولید نرمافزارهای تحت سیستمعاملِ لینوکس و داتنت نیز به کار میآید. بیشترین کاربرد دلفی در طراحی برنامههای رومیزی و پایگاه دادهها است، اما به عنوان یک ابزارِ «چند- منظوره»، برای طراحی انواع گوناگونی از پروژههای نرمافزاری نیز مورد استفاده قرار میگیرد.
دلفی 2006
شرکت بورلند در سال ۲۰۰۶ نرمافزار جدید خود را با ویژگیهای جدید به بازار ارائه کرد. این برنامه جدید امکان برنامه نویسی با دلفی و سی پلاس پلاس و همچنین سیشارپ را بطور همزمان ارائه میدهد. بدین ترتیب برنامه نویسانی که با ابزارهای مختلفی کار میکنند براحتی میتوانند در این محیط جدید برنامه نویسی کنند. ویژگی مهم این نگارش نسبت به نگارش ۲۰۰۵ بحث مدیریت حافظه است. در نگارش ۲۰۰۵ ضعفهائی در این زمینه وجود داشت که در این نسخه حل شده است. شرکت بورلند افتخار دارد که به عنوان اولین شرکت تولید کننده IDE زبانهای برنامه نویسی مانند دلفی و سی شارپ بیلدر و جی بیلدر(مخصوص زبان جاوا) و .... از تکنولوژی دات نت در محصولات خود استفاده کرده است.
دلفی 2007
در اواخر سال 2006 شرکت بورلند یک شرکت تابع با نام CodeGear را تاسیس کرد تا این شرکت بتواند تمام انرژی خود را صرف محیط های برنامهنویسی مشهور خود یعنی دلفی و ++C بیلدر و... کند. بن اسمیت نام اولین مدیر CodeGear بود. شرکت بورلند نیز فعالیتهای خود را در زمینه Application Lifecycle Management ادامه میدهد. اولین محصول این شرکت، CodeGear Delphi 2007 هست که بسیاری از نقائص موجود در دلفی 2006 از جمله سرعت پائین آن در این محصول برطرف شده است و بعد از دلفی 7 میتوان از آن به عنوان محصولی مطمئن و قابل استفاده نام برد، هر چند که دلفی 2006 هم محصولی کارامد هست. از دیگر محصولات CodeGear میتوان به Delphi 2007 For PHP اشاره کرد که تحول شگرفی در رابطه با استفاده از تکنولوژی Ajax در دلفی است.
C++ -2
زبان برنامهنویسی ++C (تلفظ می شود: سی پلاس پلاس) یک زبان برنامهنویسی کامپیوتری عمومی با قابلیتهای سطح بالا و سطح پایین میباشد. این زبان دارای قابلیتهای کنترل نوع ایستا، نوشتار آزاد، چندمدلی، معمولا زبان ترجمه شده با پشتیبانی از برنامهنویسی ساختیافته، برنامهنویسی شیگرا، برنامه نویسی جنریک است.
زبان ++c یک زبان سطح میانی در نظر گرفته میشود. این زبان دارای قابلیت زبانهای سطح بالا و پایین بصورت همزمان است.
زبان ++C توسط بییارنه استراستروپ دانمارکی در سال ۱۹۷۹ در آزمایشگاه های بل (Bell Labs) و بر مبنای زبان C ساخته شد و آن را "C با کلاس" نامگزاری نمودند. در سال ۱۹۸۳ به ++c تغییر نام داد. توسعه با اضافه نمودن کلاسها و ویژگیهای دیگری مانند توابع مجازی، سربارگزاری عملگرها، وراثت چندگانه، قالب توابع، و پردازش استثنا انجام شد. این زبان برنامهنویسی در سال ۱۹۹۸ تحت نام ISO/IEC 14882:1998 استاندارد شد. نسخه فعلی استاندارد این زبان ISO/IEC 14882:2003 است. نسخه جدیدی از استاندارد (که به صورت غیررسمی C++0x نامیده میشود) در دست تهیه است.
تاریخچه زبان
استراستروپ کار بر روی زبان «c با کلاس» را در سال ۱۹۷۹ آغاز کرد.ایده ساخت این زبان جدید در زمان کار بر روی تز دکترای خود به ذهن استراستروپ خطور نمود. او متوجه شد که سیمولا دارای ویژگیهای مناسب برای ساخت برنامههای بسیار بزرگ است اما برای استفاده عملی بسیار کند است اما BCPL با وجود سرعت بسیار زیاد برای ساخت برنامههای بزرگ بسیار سطح پایین است. زمانی که استراستروپ کار خود را در آزمایشگاه های بل (Bell Labs) آغاز نمود با مشکل تحلیل هسته unix با توجه به محاسبات توزیع شده روبرو شده بود. با یادآوری تجربیات خود در دوران دکترا، او زبان C را با استفاده از ویژگیهای سیمولا گسترش داد. C به این دلیل انتخاب شد که C یک زبان عمومی، سریع، قابل حمل، و بصورت گسترده در حال استفاده بود. علاوه بر C و سیمولا زبانهای دیگری مانند ALGOL 68، ADA، CLU، ML نیز بر ساختار این زبان جدید اثر گذاشت. در ابتداویژگیهای کلاس، کلاسهای مشتق شده، کنترل نوع قوی، توابع درون خطی، و آرگومان پیشفرض از طریق Cfront به C اضافه شد. اولین نسخه تجاری در سال ۱۹۸۵ ارائه شد.در سال ۱۹۸۳ نام زبان از «C با کلاس» به ++C تغییر یافت. ویژگیهای دیگر شامل توابع مجازی، سربارگزاری عملگر و نام تابع، ارجاعات، ثوابت، کنترل حافظه توسط کاربر بصورت آزاد، کنترل نوع بهتر، و توضیحات یک خطی به صورت BCPL با استفاده از «//» نیز به آن اضافه شد. در سال ۱۹۸۵ اولین نسخه زبان برنامهنویسی ++C انتشار یافت و مرجع مهمی برای این زبان فراهم شد در حالی که هیچ استاندارد رسمی وجود نداشت. در سال ۱۹۸۹ ویرایش 2.0 از زبان ++C ارائه شد. ویژگیهای جدیدی مانند ارثبری چندگانه، کلاسهای انتزاعی، اعضای ایستای توایع، اعضای ثابت تابع، و اعضای حفاظت شده به آن اضافه شد. در سال ۱۹۹۰ «راهنمای مرجع ++C » منتشر شد. این کار بنیان استانداردهای بعدی شد. آخرین ویژگیهای اضافه شده شامل موارد زیر بودند: قالب توابع، استثناها، فضاهای نام، تبدیلات جدید، و یک نوع داده منطقی.در حین تکامل ++C کتابخانه استاندارد نیز بوجود آمد. اولین نسخه کتاب استاندارد شامل کتابخانه جریانات I/O بود که جایگزین printf و scanf شد. در ادامه مهمترین ویژگی اضافه شده Standard Template Library بوده است.
استاندارد زبان
بعد از سالها کار کمیته مشترک ANSI–ISO در سال ۱۹۹۸ ++C را استاندارد نمودند (ISO/IEC 14882:1998). به مدت چند سال پس از انتشار استاندارد این کمیته گزارشات معایب را مورد بررسی قرار داده نسخه اصلاح شده استاندارد ++C منتشر شد. در سال ۲۰۰۵ گزارشی فنی بنام «گزارش فنی کتابخانه ۱» (که معمولا بصورت اختصار TR1 خوانده میشود) انتشار یافت. با وجود این که گزارش بخشی رسمی از استاندارد نیست ولی بخشهایی را به آن اضافه نموده که انتظار میرود در نسخههای بعدی استاندارد در نظر گرفته شود. پشتیبانی از این گزارش در حال افزایش بین تمام کامپایلرهای فعلی است.در حالی که ++C به هیچ موسسهای وابسته نیست این مستندات بصورت آزادانه در دسترس نیستند.
دسته بندی | کامپیوتر و IT |
فرمت فایل | doc |
حجم فایل | 4053 کیلو بایت |
تعداد صفحات فایل | 56 |
مقدمه ای بر رباتیک
-1مقدمه
اتوماسیون در بخشهای مختلف صنعت و کارهای تولیدی در چند دهه اخیر ظهور پیدا کرده است و روز به روز نیز در حال توسعه می باشد. بیش از چند دهه از ظهور کارخانجات کاملاً مکانیزه که در آنها تمامی پروسه ها اتوماتیک بوده و نیروی انسانی در آن نقش اجرائی ندارد، نمی گذرد. اما در چند ساله اخیر شاهد بوجود آمدن کارخانجات مکانیزه ای بوده ایم که طراحی، ساخت و نحوه کار آنها واقعاً حیرت انگیز است. ایده و دانش کنترل اتوماتیک و استفاده از سیستمهای مکانیزه در کارخانجات به جنگ جهانی دوم می رسد. ما تحولات عظیم و چشمگیر آن در سالهای اخیر بوقوع پیوسته است.
رباتها جدیدترین مرحله تلاش انسان جهت صنایع اتوماتیک به شمار می روند. رباتها آن دسته از ماشینهای ساخت بشر هستند که لزوماً حرکتهایی شبیه انسان ندارند ولی توان تصمیم گیری و ایجاد و کنترل فعالیتهای از پیش تعیین شده را دارند.
شکل 1 : نمونه ای از استفاده از ربات در صنعت
2- تعریف ربات
دو تعریف موجود در رابطه با کلمه ربات از قرار زیر می باشند[9] :
1- تعریفــی که توسطConcise Oxford Dic. صورت گرفتــه است؛ ماشینی مکانیکی با ظاهر یک انسان که باهوش و مطیع بوده ولی فاقد شخصیت است. این تعریف چندان دقیق نیست، زیرا تمام رباتهای موجود دارای ظاهری انسانی نبوده و تمایل به چنین امری نیز وجود ندارد.
2- تعریفی که توسط مؤسسه ربات آمریکا صورت گرفته است؛ وسیله ای با دقت عمل زیاد که قابل برنامه ریزی مجدد بوده و توانایی انجام چند کار را دارد و برای حمل مواد، قطعات، ابزارها یا سیستم های تخصصی طراحی شده و دارای حرکات مختلف برنامه ریزی شده است و هدف از ساخت آن انجام وظایف گوناگون می باشد.
3- دسته بندی رباتها
رباتها در سطوح مختلف دو خاصیت مشخص را دارا می باشند :
1- تنوع در عملکرد
2- قابلیت تطبیق خودکار با محیط
به منظور دسته بندی رباتها لازم است که قادر به تعریف و تشخیص انواع مختلف آنــــــها باشیم. سه
دسته بندی مختلف در مورد رباتها وجود دارد. دسته بندی اتحادیــــــه رباتهای ژاپنی، دسته بندی
مؤسسه رباتیک آمریکا و دسته بندی اتحادیه فرانسوی رباتهای صنعتی.[9]
1-3-دسته بندی اتحادیه رباتهای ژاپنی
انجمن رباتهای صنعتی ژاپن، رباتها را به شش گروه زیر تقسیم می کند :
1- یک دست مکانیکی که توسط اپراتور کار می کند : وسیله ای است که دارای درجات آزادی متعدد بوده و توسط عامل انسانی کار می کند.
2- ربات با ترکیبات ثابت : این دسته رباتها با ترکیبات ثابت طراحی می شوند. در این حالت یک دست مکانیکی کارهای مکانیکی را با قدمهای متوالی تعریف شده انجام می دهد و به سادگی ترتیب کارها قابل تغییر نیست.
3- ربات با ترکیبات متغیر : یک دست مکانیکی که کارهای تکراری را با قدمهای متوالی و با ترتیب تعریف شده، انجام می دهد و این ترتیب به سادگی قابل تغییر است.
4- ربات قابل آموزش : اپراتور در ابتدای امر به صورت دستی با هدایت یا کنترل ربات کاری را که باید انجام شود، انجام می دهد و ربات مراحل انجام وظیفه را در حافظه ضبط می کند. هر وقت که لازم باشد، می توان اطلاعات ضبط شده را از ربات درخواست نمود و ربات وظیفه درخواست شده را بصورت خودکار انجام می دهد.
5- ربات با کنترل عددی : اپراتور وظیفه ربات را توسط یک برنامه کامپیوتری به او تفهیم می نماید و نیازی به هدایت دستی ربات نیست. درواقع ربات با کنترل عددی، رباتی است که با برنامه کامپیوتری کار می کند.
6- ربات باهوش : این ربات درک از محیط و استعداد انجام کار با توجه به تغییر در شرایط و محدوده عمل کار را دارد.
2-3- دسته بندی مؤسسه رباتیک آمریکا
انستیتوی رباتیک آمریکا تنها موارد 3 و 4 و 5 و 6 را به عنوان ربات پذیرفته است.
3-3- دسته بندی اتحادیه فرانسوی رباتهای صنعتی
مؤسسه ربات صنعتی فرانسوی، رباتها را به شکل زیر تقسیم کرده است :
نوع A : دستگاهی که توسط دست یا از راه دور کنترل می شود (مورد 1 طبقه بندی قبل).
نوع B : وسیلة حمل کننده خودکار با یک سیکل محاسبه شده از قبل (موارد 2 و 3 طبقه بندی قبل).
نوع C : دستگاهی قابل برنامه ریزی و با توانایی خود کنترل (موارد 4 و 5 طبقه بندی قبل).
نوع D : دستگاهی که قادر است اطلاعات معینی از محیط را بدست بیاورد و به عنوان ربات باهوش معروف است (مورد 6 طبقه بندی قبل).
4- اجزاء اصلی یک ربات
مهندسی ربات، مهندسیهای نرم افزار، سخت افزار، برق و مکانیک را در خدمت خود گرفته است. بعضی مواقع این علوم به حد کافی پیچیده می باشند. همچنانکه در شکل 2-2 مشاهده می شود هر ربات دارای 5 مؤلفه به شرح ذیل می باشد [9]و[15]:
1-4- بازوی مکانیکی ماهر(Mechanical Manipulator)
بازوی مکانیکی شامل چندین واصل است که با مفصلها به هم وصل می شوند. این واصلها در جهات مختلف در فضای کاری قادر به حرکت می باشند. حرکت یک مفصل بخصوص باعث حرکت یک یا چند واصل می شود. عامل تحریک مفصل می تواند مستقیماً یا از طریق بعضی انتقالات مکانیکی بر واصل بعدی متصل شود. به واصل نهایی بازوی مکانیکی وسیله کاری ربات وصل شده است که به آن عامل نهایی می گویند. هر یک از مفصلهای ربات یک محور مفصل دارند که واصل حول آن می چرخد. هر محور مفصل یک درجه آزادی(D.O.F.) تعریف می کند. بیشتر رباتها دارای 6 درجه آزادی می باشند به عبارت دیگر دارای 6 مفصل، بمنظور حرکت در 6 جهت. اولین سه مفصل ربات به عنوان محورهای اصلی شناخته می شوند. بطورکلی صرفنظر از جزئیات، محورهایی که برای محاسبه موقعیت
شکل 2 : مؤلفه های یک ربات
و استقرار مچ استفاده می شونــد، محورهای اصلی ربات هستند. محورهای مفصلهای باقیمانده جهت قرار گرفتن دست ربات را مشخص می کنند، ولذا محورهای فرعی نامیده می شوند.
دو نوع مفصل اصلی به صورت گسترده در صنعت رباتها بکار گرفته می شود. مفصل دورانی که نمایش دهنده حرکت چرخشی حول یک محور است و مفصل انتقالی یا لغزشی که نمایش دهنده حرکت خطی در طول یک محور است، (جدول 1).
Description Notation Type
Rotary motion about an axis R Revolute
Linear motion along an axis P Prismatic
جدول 1 : انواع مفصل ربات
2-4- سنسورها
برای کنترل صحیح بازوی مکانیکی بایستی وضعیت هر مفصل شناخته شده باشد. منظور از وضعیت، موقعیت مفصل، سرعت و شتاب می باشد. بنابراین در مفصلها بایستی سنسورهایی جهت دید مفصلها و وصلها جهت تعیین موقعیت، گشتاور، سرعت، شتاب، و ... نصب شود، تا وضعیت مفصلها به کنترلر ابلاغ شود. خواندن اطلاعات سنسور، یا در اتمام حرکت یا در حین حرکت انجام می گیرد و با ارسال اطلاعات آنی سنسورها به کنترلر، کنترل صحیح و واقعی سیستم مکانیکی انجام می شود. این اطلاعات سنسوری، دیجیتال یا آنالوگ و یا ترکیبی می باشند.
3-4- کنترلر
بخشی است که به بازوی مکانیکی، هوش انجام کار را می دهد. کنترلر معمولاً از بخشهای ذیل تشکیل می شود :
1- واحدی که اجازه می دهد ربات از طریق سنسورها با محیط بیرون ارتباط داشته باشد.
2- حافظه جهت ذخیره داده هایی که مختصات را تعریف می کنند تا بازو با توجه به این مختصات حرکت کند (برنامه).
3- واحدی که داده ذخیره شده در حافظه را تغییر می دهد و سپس داده را برای ارتباط دادن با مؤلفه های دیگر کنترل بکار می برد.
4- حرکت مؤلفه هــای بخصوصی در نقاط معینــی مقدار دهی اولیه شده و در نقطه بخصوص
دیگری پایان می یابند.
5- واحــد محاسباتی که محاسبــات لازم برای کنترلـر را انجام می دهد. به عبارت دیگر، برای
انجام صحیح اعمال بایست یک سری محاسبات جهت مشخص کردن مسیر، سرعت و موقعیت بازوی مکانیکی انجام شود.
6- واسطی جهت بدست آوردن داده ها (مختصات هر مفصل، اطلاعاتی از سیستم بینایی و ...) و واسطی جهت اعمال سیگنالهای کنترل به محرک مفصلها.
7- واسطی جهت انتقال اطلاعات کنترلر به واحد تبدیل توان، به طوری که محرک های مفصلها باعث بشوند که مفصلها به صورت مطلوب حرکت کنند.
8- واسط به تجهیزات دیگر، بطوری که کنترلر ربات با واحدهای خارجی یا ابزارهای کنترل دیگر، ارتباط داشته باشد.
9- وسایل و تجهیزات لازم جهت آموزش ربات.
کنترلرهای رباتها کلاً به 5 دسته تقسیم بندی می شوند :
1- کنترل با قدم ساده(Simple Step Sequencer)
2- سیستم منطقی پنوماتیکی(Pneumatic Logic System)
3- کنترلر با قدمهای الکترونیکی (Electronic Sequencer)
4- میکرو کامپیوتر (Micro Computer)
5- مینی کامپیوتر (Mini Computer)
سه کنترلر اول در رباتهای کم هزینه به کار برده می شوند. بیشتر کنترلرهای امروزی براساس میکروکامپیوترهای معمولی می باشند و سیستم کنترل براساس مینی کامپیوتر زیاد رایج نمی باشد، چرا که نسبت به میکروکامپیوترها هزینه بالاتری دارند.
4-4- واحد تبدیل توان
این واحد سیگنالهای کنترلر را گرفته و به یک سیگنال در سطح توان محرک ها و موتورها، جهت حرکت، تبدیــل می کند. این واحــد شامل تقویت کننده هـای توان الکترونیکی برای رباتهای الکتریکی و شیرهای کنترلی و راه اندازهای هیدرولیکی برای رباتهای هیدرولیکی می باشد.
دسته بندی | کامپیوتر و IT |
فرمت فایل | doc |
حجم فایل | 130 کیلو بایت |
تعداد صفحات فایل | 16 |
سیستم عامل
سیستم عامل چیست ؟
سیستم عامل مهمترین برنامه ای است که بر روی یک کامپیوتر اجراء می گردد و امکانات لازم به منظور اجرای هر نوع برنامه دیگر را فراهم می نماید .
سیستم عامل
سیستم عامل (به انگلیسی: Operating System) با حروف اختصاری OS اساسی ترین برنامه سیستمی است که مدیریت کلیه منابع سیستم را به عهده گرفته و زمینه ای را فراهم می سازد که برنامه های کاربردی می توانند بر روی آن نوشته شوند .
پالم (سیستم عامل)
سیستم عامل Palmسیتم عامل palm یک سیستم عامل است که بوسیله palmsource,inc برای دستیار (دستیار دیجیتال شخصی)pda .
تاریخچه برنامه های روی سیستم عامل palm به صورت آیکن نمایش داده میشوند ،سیستم عامل palm توسط jeff Howkins برای استفاده در pdaها بوسیله us roboticsنسخه 1.0 تهیه شده بود برای pilot اصلی 1000,5000 ونسخه 2.0 برای palm pilot شخصی و پیشرفته . با وارد شدن palm III نسخه 3.0 از سیستم عامل با بالا بردن با اومردن درجه و با رهاکردن نسخه های 3.1و3.3و3.5و اضافه کردن پشتیبانی برای رنگ و چندین پورت افزایشی و پردازشگرهای جدید و قابلیتهای زیاددیگر.
دلایل ایجاد سیستم عامل
یک سیستم کامپیوتری پیشرفته از یک یا چند پردازنده ، مقداری حافظه اصلی ، دیسک ها ، چاپگر ها ، صفحه کلید ، صفحه نمایش ، واسط های شبکه ای و دیگر دستگاه های ورودی و خروجی تشکیل شده است . این اجزا در کنار یکدیگر یک سیستم پیچیده را به وجود آورده اند . نوشتن برنامه هایی که تمامی این عناصر را مدیریت کرده و از آنها به طور صحیح ، بهینه و کارآمد استفاده نماید ، کار بسیار مشکلی است . اگر هر برنامه نویس مجبور باشد با مفاهیمی نظیر نحوه کار دستگاه های ورودی خروجی گوناگون آشنا باشد ، بسیاری از برنامه ها هرگز نوشته نخواهد شد . به همین دلیل ، از سالها قبل به وضوح مشخص بود که باید روش هایی یافت که برنامه نویسان را از پیچیدگی های سخت افزار دور نگه دارد . تلاش های گسترده ، منجر به ایجاد یک لایه نرم افزاری روی سخت افزار شد که همه اجزای سیستم را کنترل نموده و کار برنامه نویسان را راحت تر کند . به این لایه نرم افزاری سیستم عامل می گویند.
وظایف سیستم عامل
سیستم عامل دو کار عمده انجام میدهد :
در نگرش پایین به بالا ، منابع منطقی ( مانند فایل ها ) و منابع فیزیکی ( مانند دستگاه های سخت افزاری ) رایانه را مدیریت و کنترل میکند .
در نگرش بالا به پایین ، وظیفه سیستم عامل این است که یک ماشین توسعه یافته ( Extended Machine ) یا ماشین مجازی ( Virtual Machine ) را به کاربران ارائه کند تا آنها بتوانند آسان تر برنامه نویسی نمایند و درگیر پیچیدگی های سخت افزاری رایانه نشوند .