چرتکه
کامپفا
رایانه و حافظه و سیستم عامل و وب و ویروس و اینترنت
چرتکهچرتکه که یک کمک رسان اولیه برای محاسبات ریاضی بود تنها خصوصیت آن این بود که به حافظه افراد برای انجام محاسبات کمک میکرد . یک چرتکه اندازه ماهر میتواند عملیات جمع و تفریق را با سرعتی برابر با دست جمع و تفریق میکند انجام دهد. قدیمیترین چرتکهای که باقی ماندهاست مربوط به ۳۰۰ سال قبل از میلاد است که به وسیله یک امپراطوری در جنوب غرب آسیا استفاده میشده .
چرتکههای مدرن از حلقههایی درست شدهاند که روی میلهها میلغزند در یک چرتکه خیلی پیشرفته ۵ حلقه پایینی در هر میله نشانگر ۵ انگشت دست است و ۲ حلقه بالایی نشانگر ۲ دست است .
خط کش محاسبه
پیش از ۱۶۱۷ یک اسکاتلندی به نام جان نپر٬ لگاریتم را اختراع کرد. که این اختراع با عنوان تکنولوژی باعث شده که غرب، مورد توجه مردم دنیا قرار گیرد. این عنصر جادویی لگاریتم هر عملوند بود که عموماً از یک فهرست کنده کاری شده گرفته شده بود. اما نپر به آن یک اختیار دیگر اضافه کرد چیزی که ارزشهای لگاریتم که بر روی عاجها کنده کاری شده بودند امروزه استخوانهای پنر نامیده میشوند.
اختراع نپر مخترعان را مستقیماً به سوی اختراع خط کش محاسبه راهنمایی کرد که اولین بار در سال ۱۶۲۳ در انگلستان ساخته شد و تا دهه ۱۹۶۰ به وسیله مهندسین اخترشناسی برای برنامه فرود آپولو و انسانها به روی ماه استفاده شد.
ماشین محاسبه
لئوناردو داوینچی (۱۵۱۹-۱۴۵۷) طرحی از ماشین محاسبه چرخ دنده دار کشید که ظاهراً هیچ گاه آن را نساخت. اولین ماشین محاسبه چرخ دنده دار که واقعاً ساخته شد احتمالاً در ساعت محاسبه گر بود که به نام مخترعش ویلیام چیکارد نام گرفت. این وسیله تبلیغ زیادی به همراه نداشت چرا که چیکارد خیلی زود پس از آن در اثر طاعون درگذشت.
دستگاه پاسکالین
در سال ۱۶۴۲ بیلز پاسکال در سن ۱۹ سالگی پاسکالین را به عنوان یک کمک رسان برای پدرش که یک جمع اورنده مالیات بود اختراع کرد.
پاسکال ۵۰ عدد از این دستگاههای چرخدندهای را ساخت ماشین حسابی تک کاره که فقط میتواست جمع کند. ولی به خاطر قیمت زیاد ان واینکه این دستگاه واقعاً دقیق نبود ( چون در ان زمان ساخت چرخ دندهها با دقت لازم مقدور نبود ) نتوانست خیلی به فروش برسد. سپس تا جایی ترقی کرد که در حال حاضر دانشبرد ماشینها دیجیتال شدند بخش کیلومتر شمار و سرعت سنج ماشینهای امروزی از دستگاهی بسیار شبیه به پاسکالین استفاده میکنند. پاسکال یک بچه نابغه بود او در سن ۱۲ سالگی در حال انجام ازمایش مدل موقعیتهای ۳ ثانیهای اقلیدس در کف اشپزخانه دیده شده بود .
پاسکال ادامه داد و اختراعهای زیاد دیگری مانند اختراع قطریه احتمال و منگنه آبی و سرنج را انجام داد. عکس زیر نشان دهنده یک ورزن ۸ رقمی از پاسکالین ودو صحنه از ورزن ۶ رقمی پاسکالین است.
محاسبه گر پله دزد
تنها چند سال پس از پاسکال گات فراید ویلهم لیبنیز ( همکار نیوتون ) ساختن ماشین حساب چهار کاره ( جمع و تفریق وضرب و تقسیم ) را مدیریت کرد . که محاسبه گر پلهای نامیده شد . چون این دستگاه بجای چرخ دنده از طبلهای شیار دار دارای ۱۰ شیار که به ترتیب در پیرامون این طبلها چیده شده بودنداستفاده میکرد . همچنین این محاسبه گرپلهای از سیستم عدد ده دهی ( هر طبل ۱۰ شیار داشت ) استفاده کرد.
لیبنیز اولین کسی بود که از استفاده از سیستم باینری اعداد طرف داری کرد. که پایه واساس بهره برداری از کامپیوترهای مدرن است .لیبنیز به عنوان یکی از بزرگترین فیلسوفها شناخته شد ولی او در تنهایی و فقر از دنیا رفت .
کارتهای منگنه
در سال ۱۸۰۱ جوزف ماری جکوارد فرانسوی یک دستگاه بافندگی قوی را اختراع کرد که توانست بافندگیاش ( و تزئین روی پارچه روی یک الگو به طور اتوماتیک ) را بنیان گذاری کند. این دستگاه از روی کارتهای چوبی منگنهای که در یک ردیف طولانی به وسیله یک طناب به هم کمک میکردند میخواند.
نسلهای این کارتهای منگنهای از قبل از این نیز استفاده میشدهاند.تکنولوزی جکوارد یک عطیه و نعمت راستین برای کارخانه داران بود اما خیلی از کار کنان کارخانهها را بیکار میکرد و جمعیت انبوه مردم عصبانی کار خانههای جکوارد را بر شکست کرد وحتی یک نفر هم به او حمله کرد.
تاریخ پر از مثالهایی از آشوبهای کارگران به دنبال ابداع یک تکنولوزی است . ولی بیشتر مطالعات این را نشان میدهد که در همه جا تکنولوزی در حقیقت تعداد شغلها را افزایش دادهاست .
ماشین محاسبه گر بخاری
در سال ۱۸۲۲ یک ریاضی دان انگلیسی چالز پاپیج ماشین محاسبه گر بخاری را پیشنهاد کرد . این ماشین به اندازه یک اتاق بود که ان را موتور متفاوت نامید.این ماشین قادر به محاسبه فهرستهایی از اعداد بود مانند جداول لگاریتمی .او سر مایه و بودجه دولتی را برای این پروزه به خاطر اهمیت جداول عددی در کشتی رانی در اقیانوس که به وسیله ان تجارت ابی ونیز نیروی دریایی نظامیشان را ترقی میدادند جذب کرد .دولت انگلیس برنامه ریزی کرده بود که بزرگترین امپراطوری جهان شود اما در آن زمان دولت انگلستان در حال چاپ یک سری ۷ جلدی جداول کشتیرانی به همراه یک جلد کتاب تصحیحات بود که نشان میداد این سری کتاب بالغ بر ۱۰۰۰ اشتباه عددی داشت .این ارزو میرفت که ماشین بابیج بتواند اشتباهات به این گونه را رفع کند .اما ساخت دستگاه «ماشین متفاوت بابیج» ثابت کرد بسیار سخت است . واین پروزه به زودی تبدیل به گرانترین پروزهٔ بودجهای دولت تا آن زمان در تاریخ انگلستان شد .ده سال بعد کامل کردن این دستگاه غیر ممکن شد.
موتور تحلیلی
بابیج دلسرد نبود و با وجود این سراغ فکر بعدیش رفت . چیزیکه او آن را موتور تحلیلی نامید . این وسیله به اندازه یک خانه بزرگ بود و به اندازهٔ ۶ اسب بخار قدرت داشت . که چون این دستگاه به خاطر تکنولوزی کارتهای منگنهٔ جکوارد قابل برنامه ریزی بود هدف کلی تری داشت .
اما این بابیج بود که پرش خردمندادهٔ مهمی را مربوط به کارتهای منگنه کرده بود . در دستگاه بافندگی جکوارد بودن یا نبودن هر سوراخ در کارت به یک نخ اجازه میداد که بگذرد ویا اینکه متوقف شود.بابیج فهمید که الگوی حفرهها میتواند برای نشان دادن یک ایده انتزاعی استفاده شود . بابیج فهمید که نیازی ندارد که یک مسئله به خودی خود به طور فیزیکی از سوراخها عبور کند. ازاین گذشته بابیج دریافت که کارتهای منگنه میتوانند به عنوان دستگاه ذخیره به کار روند و اعداد محاسبه شده را برای محاسبات بعدی نگه دارند. بابیج به خاطر ربط این دستگاه به دستگاه جکوارد نام دو قسمت مهم از دستگاهش را میل واستور گذاشت. چون هر دو کلمه در صنعت بافندگی استفاده میشد.
استور جایی بود که اعداد نگه داری میشدند و میل جایی بود که آنها به منظور رسیدن به نتایج تازه ترکیب میشوند.
در کامپیوترهای مدرن استور واحد حافظه نامیده میشود وبه میل واحدپردازش مرکزی میگویند .موتور تحلیلی دارای کلید تابعی بود که کامپیوترها را از ماشینهای حساب متمایز میکرد . ( جملهٔ شرطی ) یک جملهٔ شرطی اجازه میداد که برنامه نتایج مختلفی را در یک زمان واحد به دست آورد . بر اساس جملهٔ شرطی مسیر بر نامه مشخص میشد .
هلدریت دسک
موفقیت بعدی در آمریکا رخ داد .دولت آمریکا مجبور بود هر ۱۰ سال یک بار اماری از تمامی ارای شهروندان آمریکایی برای تعیین نمایندگان مجلس بگیرد . واین کار بسیار به طول میانجامید برای همین مجلس جایزهای برای مخترعی که بتواند برای انتخابات سال ۱۸۹۰ دستگاهی اختراع کند قرار داد . که این فرد کسی نبود جز هرمن هلدریت کسی که به طور موفقیت امیزی کارتهای منگنهای جکوارد را برای شمارش آرا به کار گرفت .
اختراع او به عنوان هلریت دسک شناخته شد که شامل یک کارت خوان بود که سوراخهای داخل کارت را درک میکرد . ویک دنده دستگاهی را که میتوانست بخواند میچرخواند ویک شمارش گر نتایج را نشان میداد .تکنیک هلدریت موفق بود و انتخابات خیلی زود تر از سالهای قبل انجام گرفت .
IBM
هلدریت یک شرکت بنا کرد که بعد از مدتی به یک شرکت تجاری بینالمللی تبدیل شد که امروزه ما ان را به نام ای بی ام میشناسیم.
ای بی ام به سرعت رشد کرد و کارتهای منگنه همه جا را فرا گرفتند. امروزه کارتهای منگنه اطلاعات مشخصی از قبیل نام شما وادرس شما و به عنوان مثال مصرف گاز شما را ذخیره میکنند وسپس از این طریق قبض شما محاسبه و برایتان فرستاده خواهد شد.البته امروزه هکرهایی هستند که با هک کردن این کارتها مبالغ مصرفی خود را کاهش میدهند.
ماشین شمارشگر هلدریت اولین ماشینی بود که بر روی جلد مجلهای تا به ان زمان به چاپ رسیده بود . آی بی ام ماشین حسابهایش را برای فروش به شرکتهای تجاری همراه با حساب داری مالی و حسابداری اموال پیشرفت داد. یک خصوصیت در قالب دو ویزگی حسابداری مالی وحسابداری اموالی . اما ارتش آمریکا به یک حسابگر بهینه برای انجام محاسبات علمی نیاز داشت . در جنگ جهانی دوم آمریکا ناوهای جنگی ای داشت که به سختی فشنگها و گلولههایی به وزن برابر با یک ماشین کوچک را تا ۲۵ مایل میکشید .
فیزیک دانان باید معادلهای مینوشتند که بیان کند چگونه شرایط جوی و باد و جاذبه و سرعت اولیه وغیره میتوانند مسیر گلولهها را تعیین کنند . اما حل چنین معادلهای بسیار سخت بود . اینها کارهایی بود که توسط کامپیوترهای بشری انجام شد و نتایج انها در دفتر چه راهنمای نظامی منتشر میشد.
اولین ویروس
یکی از بر نامه نویسان مارک۱ یک زن بود به نام گریس هاپر . این زن اولین ویروس کامپیوتر به نام باگ را پیدا کرد . یک حشره مرده که در دستگاه افتاده بود و بالهایش مانع خواندن روزنهها میشد .
باگ برای نشان دادن نقصی در سیستم بکار میرود از آن زمان این کلمه سال ۱۹۵۳ گریس هاپر اولین زبان پیشرفته به نام فلو ماتیک را اختراع کرد، شناخته شد . زبانهای سطح بالا به منظور راحت تر فهمیدن انسانها ساخته شد . چنان که زبان باینری برای کامپیوتر قابل فهم تر بود که بعدها به نام کوبول اما یک زبان برنامه نویسی پیشرفته بدون یک برنامهٔ مترجم ارزشی نداشت . تا زبان سطح بالا را به زبان باینری (یا زبان ماشین ) ترجمه کند که هاپر اولین مترجم یا کامپایلر را هم ساخت . این زن تا سن ۷۹ سالگی در زمینه کامپیوتر و برنامه نویسی فعال بود .
رایانههای نسل اول
در سال ۱۹۳۸٬ جان وینسنت آتاناسف استاد فیزیک و ریاضیات دانشگاه ایالتی آیووا در آمریکا به فکر ساختن اولین رایانه الکترونیکی یک منظوره افتاد. او با همکاری دستیارش و دانشجوی فارغالتحصیلش کلیفرد بری، با استفاده از لامپ خلاء شروع به ساختن رایانهٔ مزبور کرد و آن را کامپیوتر آتاناسفبری یا ABC نامید که میتوانست ۲۹ معادلهٔ چند مجهولی را با ۲۹ مجهول حل کند . این اولین ماشینی بود که توانست دادهها را به عنوان بار الکتریکی در خازن ذخیره کند . کاری که امروزه کامپیوترها برای ذخیره اطلاعاتشان در حافظه اصلی میکنند . اما این دستگاه قابل برنامه ریزی نبود وطراحی انها تنها مناسب برای یک نوع از مشکلات ریاضی (معادلات چند مجهولی ) بود . ولی به خاطر درگیری ارتش آمریکا در جنگ جهانی دوم و لزوم پیوستن آناتاسف به ارتش همکاری او با ارتش آمریکا، ساخت این رایانه عملی نشد و ساخت آن ادامه نیافت.متأسفانه مخترعینش هیچ تلاشی برای نگه داری آن نکردند و سرانجام این دستگاه رها شده و به وسیله کسانی که به داخل اتاق آمده بودند غارت شد .
یکی دیگر از کسانی که در زمینهٔ کامپیوترهای مدرن کار کردکلوسوس بود که در طول جنگ جهانی دوم به کمک دولت بریتانیا به هدف شکستن کدهای پنهانی آلمانیان دستگاهی ساخت .
در حقیقت انگلستان جهان را به سوی ساخت و طراحی ماشینهای الکترونیکی هدایت کرد که برای شکستن رمزها اختصاص یافته بود و معمولاً قادر به خواندن امواج رادیویی کد دارالمانیها بود .کامپیوتر هاروارد مارک ۱ اتانا سوف بری و کلوساس انگلیسی سهم عمدهای در این صنعت دارا بودند ولی پیش گامان آمریکایی و انگلستانی هنوز بر سر اینکه چه کسی اول بود بحث میکردند. اما زود تر از ان زیوس رشته کامپیوترهایی برای اهداف عمومی در نازی آلمان ساخته بود در حقیقت زد ۱ اولین بود چرا که در بین سالهای ۱۹۳۶ و۱۹۳۸ ساخته شده بود.
سومین ماشین زیوس که به زد ۳ معروف است درسال ۱۹۴۱ ساخته شد، که احتمالاً اولین کامپیوتر دیجیتال چند منظوره قابل برنامه ریزی عملی بود . یعنی به وسیله نرمافزار کنترل میشود .زد ۳ به وسیله هجوم بمباران پیوسته خراب شد . زد ۱ و زد۲ هم به همان سر نوشت دچار شدند و تنها زد ۴ باقی ماند زیرا زیوس ان را داخل واگنی گذاشت و روانه کوهستان کرد.
در سال ۱۹۴۳ فیزیکدانی به نام جان ماکلی با همکاری جی پرسیر اکرت که مهندس برق بود، شروع به ساختن اولین رایانه الکترونیکی همه منظوره نمود. این رایانه که در ساخت آن افزون بر اجزاء الکترومکانیکی، از هجده هزار لامپ خلا استفاده شده بود بنام انیاک نامگذاری شد و در سال ۱۹۴۶ میلادی آماده نصب و راهاندازی گردید و در زمان خود پیچیدهترین دستگاه الکترونیکی جهان بود. این رایانه قادر به انجام سیصد عمل ضرب در هر ثانیه بود و به مدت ۹ سال مورد استفاده ارتش آمریکا قرار گرفت.
یکی از موفقیتهای کامپیوتر هاروارد ( مارک ۱ ) بود که به طور شریکی بین هاروارد و ای بی ام در سال ۱۹۴۴ ساخته شد . این اولین کامپیوتر قابل بر نامه ریزی دیجیتال که در آمریکا ساخته شد، بود .ولی آن به طور کامل الکترونیکی نبود . در عوض این دستگاه بدون سوئیج و کلاج و میله و دستگاه تقویت و غیره ساخته شده بود .وزن ماشین ۵ تن بود و در آن ۵۰۰ مایل سیم جا داده شده بود . آن دارای طول ۸ فیت ودرازی ۵۱ فیت بود .مارک ۱ به مدت به مدت ۱۵ سال بدون توقف کار کرد و به شکل یک اتاق بافندگی شبیه بود .
مارک ۱ عملیات را روی اعدادی انجام میداد که ۲۳ رقم عرض داشتند . او میتوانست ۲تا از این اعداد را جمع یا تفریق کند در زمانی برابر سه دهم ثانیه یا انها را ضرب کند در حدود ۴ ثانیه و تقسیم کند در ۱۰ ثانیه ۴۵ سال بعد کامپیوترها میتوانستند عملیات جمع را در یک بیلیونیم ثانیه انجام دهند.
اگر چه مارک ۱ سه بخش مساوی از میلیونها اجزا داشت ولی تنها میتوانست ۷۲ عدد را ذخیره کنند . و ۱۰میلیون عدد دیگر را در هارد دیسک. و سرعت نمایش این اطلاعات بسیار بسیار بالا است . برای همین سرعت بالاست که کامپیوترها ی الکترونیکی قاتل دستگاههای مکانیکی به حساب میایند .هاروارد ایکن یکی از مدیران طراحی مارک ۱ در نامهٔ فکاهی خود نوشت تا سال ۱۹۴۷شش کامپیوتر الکترونیکی برای انجام محاسبات تمام آمریکا کافی است . برای همین ای بی ام شروع به تحقیق کرد که ایا میشود این دستگاه را به یک شکل استا ندارد درآورد چرا که تا آن زمان تنها دولت و ارتش آمریکا توان پرداخت چنین هزینهای را داشتند . البته نظریه ایکن زیاد هم بد نبود جرا که او از انقلاب میکرو کامپیوترها در سال ۱۹۵۹ بی خبر بود .
اپل ۱ که با عنوان «خودتان انجام دهید» بدون ظاهری زیبا فروخته شد . کامپیوترها به صورت شگفت انگیزی گران بودند چرا که در آن نیاز به اسمبلی دستی زیادی بود .
در سال ۱۹۴۵ نابغه ریاضی جان فون نویمان طی مقالهای استفاده از سیستم اعداد دودویی (Binary) در ساختمان رایانه و نظریه انباشت برنامه در حافظه رایانه را مطرح کرد و بر این اساس ساخت رایانه رقمی الکترونیکی همه منظورهای را پیشنهاد نمود و آن را ادواک نامید. این دستگاه رایانهای با توانایی ذخیره داخلی برنامهها و سرعت بالای الکترونیکی بود. فن نویمان را اغلب بهعنوان بنیانگذار ذخیرهسازی برنامهها میشناسند.
ساخت این رایانه در سال ۱۹۴۶ شروع شده بود و تا اواخر سال ۱۹۵۰ به تاخیر افتاد. با نگرش به اینکه در طراحی و ساخت رایانههای مدرن از نظریههای نویمان بهره گرفته میشود، لذا وی را پدر کامپیوتر میخوانند.
در سال ۱۹۴۷ موریس ویلکس استاد دانشگاه کمبریج انگلیس شروع به ساخت اولین رایانه رقمی الکترونیکی حاوی برنامههای ذخیره شده نمود و آن را ادساک نامید. ساخت این رایانه در سال ۱۹۴۹ به پایان رسید و آماده نصب و بهرهبرداری گردید.
در سال ۱۹۵۰ اولین رایانه دارای برنامه ذخیره شده ساخت آمریکا به نام سیک در سازمان ملی استانداردها در واشنگتن نصب گردید و بیش از ده سال مورد استفاده قرار گرفت. در فاصله سالهای ۱۹۵۱ تا ۱۹۵۷ نیز شرکتهای رایانهای آی بی ام و یونیواک رایانههای الکترونیکی گوناگونی ساخته و عرضه کردند.
در رایانههای نسل اول از ویژگی دو حالته بودن لامپ خلا که وسیلهای الکترونیکی است و میتواند خاموش یا روشن باشد بهره گرفته شد و در اغلب آنها لامپ خلا در قسمت محاسبه و منطق بکار رفته بود. رایانههای نسل اول دارای حجم زیادی بودند و میزان حافظه، سرعت و دقت در آنها کم بود و به انگیزه استفاده از لامپ خلا و ایجاد گرمای زیاد، استفاده از آنها به چند ساعت در روز محدود بود.
رایانههای نسل دوم
در رایانههای نسل دوم ترانزیستور جایگزین لامپ خلا گردید. ترانزیستور چند برابر کوچکتر از لامپ خلا بود و تاثیر زیادی بر روی سرعت محاسبات رایانه داشت. ظرفیت حافظه در رایانههای نسل دوم در قیاس با رایانههای نسل اول دارای ظرفیت حافظه بیشتر و سریعتر، کوچکتر و قابل اطمینانتر بودند.
در فاصله زمانی سالهای ۱۹۵۸ تا ۱۹۶۴ توسط شرکتهای کامپیوتری انسیآر٬ ایبیام و سیدیسی رایانههای مختلف الکترونیک ساخته شدند و عرضه شدند و در سال ۱۹۶۳ اولین مینی رایانه بنام پیدیوی ۸ توسط شرکت دک معرفی گردید.
انقلاب میکروالکترونیکها باعث شد مدارهای مجتمع که به اندازهٔ ناخن انگشت شست شما باشند جای آن سیم کشیهای دستی را بگیرد.
اولین سود مدارهای مجتمع ترانزیستورها نیستند بلکه کوچکی آنها هست چرا که ترانزیستورها فایدهٔ تعدادی آنها است و بیشتر از میلیونها ترانزیستور میتواند تولید شود و به فرایندهای ماشینی دستگاه مرتبط شود تمام عناصر بر روی یک مدار مجتمع ساخته شدهاند همزمان در طریق شماره کوچک (شاید ۱۲) از پوشانههای بصری که هندسهٔ هر لایه را تعریف میکند. اینها سرعت پردازش و ساختن کامپیوترها را افزایش میدهد واز این جهت هزینهٔ آنها هم کاسته شد همان گونه که دستگاه چاپ یوهانس گوتنبرگ ساختن کتابهایش را سرعت داد و بدین وسیله آنها را برای عموم قابل خرید کرد
کامپیوتر ای بی ام استرچ سال ۱۹۵۹ درازای ۳۳ فوتی را برای نگاه داشتن ۱۵۰۰۰۰ ترانزیستور داخلش را لازم داشت . این ترانزیستورها به طور شگفت انگیزی کوچک تر از لامپهای خلا هستند . اما آنها عناصر منحصر به فردی بودند که نیاز به اسمبلی منحصر به فردی داشت در اوایل دهه ۱۹۸۰ این ترانزیستورهای زیاد توانست به طور هم زمان بر روی یک مدار مجتمع ساخته شود امروزه کامپیوترهای پنتیوم ۴ شامل ۴۲۰۰۰۰۰۰ ترانزیستور برروی یک مدار مجتمع به اندازهٔ یک ناخن شست است .
رایانههای نسل سوم
برای ساختن کامپیوترهای سریعتر و قویتر کوششها همچنان ادامه داشت تا در اوایل ۱۹۶۰ اولین کامپیوتر نسل سوم (Third Generation) به بازار عرضه شد. این کامپیوتر از سری IBM ۳۶۰ بود که برای ساختن آن ۵ میلیارد دلار سرمایه گذاری شد که بزرگترین پروژه مالی بخش خصوصی تا آن تاریخ به شمار میرفت.این کامپیوتر که مدلهای گوناگونی از نظر ظرفیت و سرعت کار داشت، در هر دو امور تجاری و علمی قابل استفاده بود.
جدیدترین تحول در تکامل کامپیوترها، ساختن وسایل ضبط اطلاعات با قابلیت دسترسی مستقیم (Direct Access Device) در این نسل بود.به این ترتیب کاربران توانستند به هر یک از اجزا اطلاعات ذخیره شده در یک مجموعه عظیم اطلاعاتی، در کسری از ثانیه دسترسی پیدا کنند.علاوه بر آن در این نسل از کامپیوترها، سعی شده که قطعات مدارها را هرچه کوچکتر و با حجم کمتر بسازند و بدین ترتیب مدارهای مجتمع (Integrated Circuits(IC)) به وجود آمدند.ویژگی دیگر رایانههای نسل سوم امکان استفاده همزمان چندین کاربر از یک رایانه بود. این رایانهها بر خلاف نسل قبلی که فقط در یکی از دو حیط علمی و غیرعلمی توانایی کار داشتند، توانایی کار در هر دو محیط را دارا بودند.
سرعت عملیان در رایانههای نسل سوم بسیار افزایش یافت. عملیات حسابی و منطقی در این رایانهها در مایکرو ثانیه(یک میلیونیم ثانیه) و حتی نانو ثانیه (یک بیلیونیم ثانیه) انجام میشد. در ایران، از زمان ارایه کامپیوترهای نسل سوم کاربرد کامپیوتر به سرعت توسعه یافت و مؤسسات مختلف تعدادی از آنها را نصب کردند.
بارزترین ویژگی رایانههای نسل سوم استفاده از مدارهای مجتمع یا آی سی در قسمتهای مختلف ساختمان رایانه بود. این مدارها که از حدود ۱۰۰ عنصر منطقی تشکیل شده بود و در هر عنصر منطقی حدود ۱۰ عنصر الکترونیکی نظیر ترانزیستور و دیود بکار رفته بود، به روش خاصی در سطحی به اندازه یک سانتیمتر مربع تجمع پیدا میکردند و بدین لحاظ اندازه و حجم رایانههای نسل سوم در برابر با رایانههای نسل دوم کاهش یافتند. ظرفیت حافظه در رایانههای نسل سوم به چندین برابر قبل افزایش یافت.
در فاصله زمانی سالهای ۱۹۶۴ تا ۱۹۷۱ شرکتهای از قبیل آیبیام٬ جنرال الکتریک٬ باروز٬ یونیواک٬ آرسیای، انسیآر، سیدیسی٬ هانیول و تعداد زیادی از شرکتهای کوچکتر ارائه گردید. بویژه شرکت دک با تولید مینی رایانههای پیدیپی ۱۰ و پیدیپی ۱۱ راه را برای پیشرفت سریع پدیده مینی رایانهها باز کرد و هزاران مینی رایانه به بازار عرضه کرد.
رایانههای نسل چهارم
در ساختمان رایانههای نسل چهارم از مدارهای مجتمع الکترونیکی با تراکم متوسط و زیاد که حاوی هزارها تا صدها هزار عنصر الکترونیکی بودند و بر روی یک تراشه مربع یا مستطیل شکل از جنس سیلیکان به سطح یک سانتیمتر مربع قرار گرفته بودند استفاده میگردید. سرعت عمل و ظرفیت حافظه رایانههای نسل پنجم به نسبت نسل قبلی افزایش زیادی داشت. توانایی قرار دادن مدارهای مجتمع الکترونیکی زیادی بر روی یک سطح بسیار کوچک سبب پیدایش ریزپردازنده در آغاز این دوره گردید که میتوانست بر روی یک سطح یک تراشه قرار بگیرد. ریز پردازنده دارای کلیه مدارهای مورد نیاز جهت عملیات حسابی، منطقی و کنترلی بود و با افزودن تعدادی تراشه جهت حافظه و سایر مدارهای مکمل به آن یک پردازشگر کامل بوجود آمد و در نتیجه ریز رایانه پا به عرصه وجود گذاشت.
با معرفی اولین ریزپردازنده به نام ۴۰۰۴ در سال ۱۹۷۱ توسط شرکت اینتل و عرضه ریزوردازنده ۸ بیتی ۸۰۸ در اواخر همان سال و ریزپردازنده ۸۰۸۰ در سال ۱۹۷۴ توسط همان شرکت، زمینه کاری جهت ساختن رایانههای شخصی (PC) فراهم گردید. با معرفی ریز رایانه سلب ۸-اینچ در سال ۱۹۷۲ توسط شرکت سلبی و ریز رایانه التایر ۸۸۰ در سال ۱۹۷۵ توسط شرکت میتس و ساخت ریزپردازندههای مختلف توسط شرکتهای اینتل٬ زیلاک٬ موتورولا و اماُاس تکنالوژی، فرایند ساخت و معرفی ریزرایانهها روز به روز گسترش یافت و توسط شرکتهای مختلف از آن جمله اپل(Apple)٬ آتاری(Atari)٬ کامودر(commodore) و آیبیام(IBM) ریز رایانههای گوناگونی عرضه گردید.
در دهه ۸۰ میلادی در زمینه رایانههای بزرگ و مینی رایانهها شرکتهای مختلف از آن جمله آیبیام ٬سیدیسی ٬دک و باروز رایانههای بسیار پیشرفتهای ساختند و به بازار عرضه نمودند.
در همین دهه ابر رایانههای پیشرفتهای توسط شرکتهای مختلف از جمله کری آیبیام، سیدیسی٬ فوجیتسو ٬ هیتاچی و نک ساخته شدند.
رایانههای نسل پنجم
در رایانههای نسل پنجم که از سال ۱۹۹۰ به بعد هستند اندازهٔ تراشهها خیلی کوچکتر شده و از پردازندههای با تراکم خیلی زیاد در آنها استفاده میشود. در این نسل از رایانه بجای معماری ترتیبی از معماری موازی بهره گرفته شده. کشورهای پیشرفتهٔ زیادی مانند آمریکا و ژاپن پژوهشهای زیادی برای ساخت رایانههای بسیار پیشرفته در گذشته و حال انجام دادهاند.
ابر رایانههای در دست ساخت به نام سی ام ۵ که از ۳۲ تا ۱۶۰۰۰ پردازنده بصورت موازی بهره خواهند گرفت سرعت رایانه را تا دو برابر ترافلاپس (تریلیون عملیات اعشاری در ثانیه) خواهند رساند.
نسل پنجم رایانهها که ایده آن اولین بار توسط ژاپنیها در سال ۱۹۸۰ مطرح شد، ساختن کامپیوترهایی را پیشنهاد میکند که بتوانند بیاموزند، استنباط کنند و تصمیم بگیرند و بطور کلی رفتاری داشته باشند که معمولاً در حوزه منطق و استدلال خاص انسان قرار دارد و به عبارت ساده تر هوشمند باشند. در این نسل از مدارهای مجتمع با تراکم فوق العاده بالا استفاده میشود.
بعد از موفقیت کامل بشر در ساخت کامپیوترهای هوشمند، ایده بعدی انسان طراحی کامپیوتری خواهد بود که مدارهای داخلی آن کپی برداری عینی از مغز آدمی است.
با توجه به تحولات در تغییر نسلهای کامپیوتری، در نسل بعد باید منتظر تغییرات زیر باشیم:
کاهش حجم مدارها تا حد مینیاتوری شدن و نیز کاهش توان مصرفی لازم
افزایش پیچیدگی مدارها
افزایش کارایی و بهبود کیفیت عملکرد مدارها
افزایش سرعت عملکرد مدارها
مشخصات کلی
پیشرفتهای سختافزاری
الف)مینیاتوری کردن(تقلیل حجم دستگاهها و اجزای آنها)
ب)افزایش ظرفیت حافظه به چندین برابر قبل
ج)استفاده از دستگاههای واسطه(Media)، با قابلیت دسترسی مستقیم
د)قدرت ارتباط با نقاط دور و متعدد
پیشرفتهای نرمافزاری
الف)هماهنگی بیشتر با سختافزار
ب)هماهنگی بیشتر با سیستمعامل
ج)پیشرفت در زبانهای برنامه نویسی و به کارگیری زبانهای سطح بال
عملیات و بهره برداری
الف)استفاده از روشهای پردازش مستقیم(on-line) و بازده فوری(real time)
ب)اجرای همزمان چند برنامه با یکدیگر
تقسیمبندی و تفکیک نسلهای کامپیوتری تا قبل از نسل چهارم(Forth Generation)، به لحاظ تغییرات عمده در پیشرفت و تکامل کامپیوتر در هر نسل، به سهولت صورت گرفت. دراوایل سال ۱۹۷۰ تکنیکهای جدیدتری در ساخت و بهره گیری از کامپیوترها به کار برده شدکه بسیاری از دست اندرکاران آن را نسل چهارم نامیدند. مهمترین تغییرات در سختافزار کامپیوترهای نسل چهارم، به کارگرفتن مدارهای مجتمع با تراکم زیاد و تراکم خیلی زیاد است.
در نسل سوم از تراکم SSI(Small Scale Integration) و (Scale Integration Medium)MSI یعنی تراکم کم و تراکم متوسط بهره گرفتند. ولی درنسل چهارم از تراکم (Scale Integration Large) LSI،( Scale Integration Very Large) VLSI و (Ultra Large Scale Integration)ULSI یعنی تراکم بالا، خیلی بالا وفوق العاده بالا بهره میگیرند. نسل چهارم همچنین از حافظه نیمه هادی (Semiconductor) ومیکرو پروسسور (Microprocessor)، سیستمهای محاورهای (Interactive System)، پردازش مستقیم و شبکههای کامپیوتری (Computer Network) بهره جستهاست.
توسعه و پیشرفت سختافزار کامپیوترهای فعلی، در مقایسه با نسلهای قبلی با بررسی چند عامل نظیر سرعت، اندازه، هزینه و ظرفیت حافظه روشن میگردد. در کامپیوترهای اولیه از لامپ خلا استفاده میشد و به همین جهت حجم و وزن زیادی داشتند (کامپیوتر انیاک ۳۰ تن وزن داشت) به کار بردن ترانزیستور در نسل دوم به طور قابل ملاحظهای، اندازه کامپیوترها را کاهش داد. در یک فوت مربع از کامپیوترهای نسل اول ۶۰۰۰ مؤلفه وجود داشت که با بکاربردن ترانزیستور۱۰۰۰۰۰ مدار درهمان حجم کار میکرد. در کامپیوترهای فعلی که در آنها میکروالکترونیک و مدارهای مجتمع با تراکم زیاد به کار میرود بیش از ۱۰ میلیون مدار در یک فوت مربع کار میکند.
مهندسی نرمافزار
مهندسی نرم افزار (به انگلیسی: Software engineering) یعنی استفاده از اصول مهندسی بجا و مناسب برای تولید و ارائه محصول نرم افزاری با کیفیت که قابل اطمینان و با صرفه بوده و برروی ماشین های واقعی به طور کارآمدی عمل کند.
مهندسی نرم افزار یک روش سیستماتیک، منظم و دقیق برای ساخت و ارائه محصولی نرم افزاری با کیفیت است.
مهندسی نرمافزار اغلب شامل فرآیند خطی تحلیل، طراحی، پیاده سازی و آزمون است؛ که با به کارگیری روشهای فنی و علمی از علوم مهندسی موجب تولید نرم افزاری با کیفیت مطلوب در طول یک فرآیند انتخابی مناسب پروژه می شود.
کاربردهای مهندسی نرمافزار دارای ارزشهای اجتماعی و اقتصادی هستند، زیرا بهرهوری مردم را بالا برده، چند و چون زندگی آنان را بهتر میکنند. مردم با بهرهگیری از نرمافزار، توانایی انجام کارهایی را دارند که قبل از آن برایشان شدنی نبود. نمونههایی از این دست نرمافزارها عبارتاند از: سامانههای توکار، نرمافزار اداری، بازیهای رایانهای و اینترنت.
فناوریها و خدمات مهندسی نرمافزار به کاربران برای بهبود بهرهوری و کیفیت یاری میرساند. نمونههایی از زمینههای بهبود: پایگاه دادهها، زبانها، کتابخانهها، الگوها، فرآیندها و ابزار.
مهم ترین شاخص مهندسی نرمافزار
مهم ترین شاخص در مهندسی نرم افزار تولید نرم افزار با کیفیت مناسب در جهت «نیازهای مشتری» است.
پیشینه مهندسی نرمافزار
اصطلاح مهندسی نرمافزار پس از سال ۱۹۶۸ میلادی شناخته شد. این اصطلاح طی نشست «مهندسی نرمافزار ناتو ۱۹۶۸» (که در گارمیش-پارتنکیرشن، آلمان برگزار شد) توسط ریاست نشست فریدریش ال باوئر معرفی شد و از آن پس بهطور گسترده مورد استفاده قرار گرفت.
اصطلاح مهندسینرمافزار عموماً به معانی مختلفی بهکار میرود:
بهعنوان یک اصطلاح غیر رسمی امروزی برای محدوده وسیع فعالیتهایی که پیش از این برنامهنویسی و تحلیل سامانهها نامیده میشد.
بهعنوان یک اصطلاح جامع برای تمامی جنبههای عملی برنامهنویسی رایانه، در مقابل تئوری برنامهنویسی رایانه، که علوم رایانه نامیده میشود.
بهعنوان اصطلاح مجسمکننده طرفداری از یک رویکرد خاص نسبت به برنامهنویسی رایانه که اصرار میکند، مهندسی نرمافزار، بهجای آنکه هنر یا مهارت باشد، باید بهعنوان یک رشته عملی مهندسی تلقی شود و از جمعکردن و تدوین روشهای عملی توصیهشده به شکل متدولوژیهای مهندسی نرمافزار طرفداری میکند.
مهندسی نرمافزار عبارتست از:
کاربرد یک رویکرد سامانهشناسی، انتظامیافته، قابل سنجش نسبت به توسعه، عملکرد و نگهداری نرمافزار، که کاربرد مهندسی در نرمافزار است.
مطالعه روشهای موجود در استاندارد IEEE
محدوده مهندسی نرمافزار و تمرکز آن
مهندسی نرمافزار به مفهوم توسعه و بازبینی یک سامانه نرمافزاری مربوط میباشد. این رشته علمی با شناسایی، تعریف، فهمیدن و بازبینی خصوصیات مورد نیاز نرمافزار حاصل سر و کار دارد. این خصوصیات نرمافزاری ممکن است شامل پاسخگویی به نیازها، اطمینانپذیری، قابلیت نگهداری، در دسترس بودن، آزمونپذیری، استفاده آسان، قابلیت حمل و سایر خصوصیات باشد.
مهندسی نرمافزار ضمن اشاره به خصوصیات فوق، مشخصات معین طراحی و فنی را آماده میکند که اگر بهدرستی پیادهسازی شود، نرمافزاری را تولید خواهد کرد که میتواند بررسی شود که آیا این نیازمندیها را تأمین میکند یا خیر.
مهندسی نرمافزار همچنین با خصوصیات پروسه توسعه نرمافزاری در ارتباط است. در این رابطه، با خصوصیاتی مانند هزینه توسعه نرمافزار، طول مدت توسعه نرمافزار و ریسکهای توسعه نرمافزار درگیر است.
نیاز به مهندسی نرمافزار
نرمافزار عموماً از محصولات و موقعیتهایی شناخته میشود که قابلیت اطمینان زیادی از آن انتظار میرود، حتی در شرایط طاقت فرسا، مانند نظارت و کنترل نیروگاههای انرژی هستهای، یا هدایت یک هواپیمای مسافربری در هوا، چنین برنامههایی شامل هزاران خط کد هستند، که از نظر پیچیدگی با پیچیدهترین ماشینهای نوین قابل مقایسه هستند. بهعنوان مثال، یک هواپیمای مسافربری چند میلیون قطعه فیزیکی دارد (و یک شاتل فضایی حدود ده میلیون بخش دارد)، در حالی که نرمافزارِ هدایت چنین هواپیمایی میتواند تا ۴ میلیون خط کد داشته باشد.
با توجه به گسترش روزافزون دنیای رایانه امروزه بیش از هر زمان دیگری نیاز به متخصصان رایانه احساس می شود. متاسفانه این رشته در ایران بازار کار خوبی ندارد طبق آمارها ۶۳٫۲۷ درصد از فارغالتحصیلان در سال ۹۰ مشغول به کار در سایر مشاغل هستند. اما برای مهندسان سخت افزار هم امكان كار در شركتهای تولیدكننده قطعات و دستگاهها و مراكز صنعتی – تولیدی بسیار فراهم است و از نظر سطح درآمدی هم با توجه به دانش و پشتكار شخصی در حد متوسط قرار دارند. به طور کلی این رشته در ایران با استقبال چندانی رو به رو نیست؛ این نیز حاکی از نبود برخی از زیرساختها در ایران هست.
تکنولوژیها و روشهای عملی
مهندسان نرمافزار طرفدار تکنولوژیها و روشهای عملی بسیار متفاوت و مختلفی هستند، که با هم ناسازگار هستند. این بحث در سالهای دهه ۶۰ میلادی شروع شد و ممکن است برای همیشه ادامه پیدا کند. مهندسان نرمافزار از تکنولوژیها و روشهای عملی بسیار متنوعی استفاده میکنند. کسانی که کار عملی میکنند از تکنولوژیهای متنوعی استفاده میکنند: کامپایلرها، منابع کد، پردازشگرهای متن. کسانی که کار عملی میکنند از روشهای عملی بسیار متنوعی استفاده میکنند تا تلاشهایشان را اجرا و هماهنگ کنند: برنامهنویسی در دستههای دونفری، بازبینی کد، و جلسات روزانه. هدف هر مهندس نرمافزار بایستی رسیدن به ایدههای جدید خارج از الگوهای طراحی شده قبلی باشد، که باید شفاف بوده و بهخوبی مستند شده باشد.
با وجود رشد فزاینده اقتصادی و قابلیت تولید فزایندهای که توسط نرمافزار ایجاد شده، هنوز هم بحث و جدلهای ماندگار درباره کیفیت نرمافزار ادامه دارند.
ماهیت مهندسی نرمافزار
دیوید پارناس گفتهاست که مهندسی نرمافزار یک شکل از مهندسی است. استیو مککانل گفتهاست که هنوز اینطور نیست، ولی مهندسی نرمافزار باید یک شکل از مهندسی شود. دونالد کنوت گفتهاست که برنامهنویسی یک هنر است.
دیوان فعالیتهای آماری آمریکا مهندسان نرمافزار را به عنوان زیرگروهی از «متخصصان رایانه»، با فرصتهای شغلیای مانند «دانشمند رایانه»، «برنامه نویس» و «مدیر شبکه» دسته بندی کردهاست. BLS تمام مهندسان دیگر این شاخه علمی، که شامل مهندسان سختافزار رایانه نیز هست، را بهعنوان «مهندسان» دسته بندی میکند.
نرمافزار آزاد
نرمافزار آزاد (به انگلیسی: Free software) نرمافزاری است که بههمراه کد منبع توزیع شده و با قوانینی منتشر میشود که آزادی استفاده، مطالعه، ویرایش و انتشار مجددِ کاربران را تضمین میکند. نرمافزارهای آزاد معمولاً با همکاری برنامهنویسهای داوطلب بهعنوان یک پروژه بهوجود میآیند.
نرمافزارهای آزاد با نرمافزارهای مالکیتی (مانند مایکروسافت ویندوز) که آزادی کاربر در استفاده، مطالعه، ویرایش یا انتشار مجدد را در درجههای مختلف محدود میکنند، متفاوت است. این محدودیتها با در نظر گرفتن مجازاتهایی قانونی برای کاربرانی که قوانین آنها را نقض میکنند، بهوجود میآیند. نرمافزارهای مالکیتی عموماً به صورت بستههای اجراپذیر باینری و بدون دسترسی به کد منبع فروخته میشوند که جلوی ویرایش و وصلهکردن نرمافزار توسط کاربر را میگیرد و او را برای بهروزرسانی و پشتیبانی به شرکت نرمافزاری تولید کننده وابسته میکنند. نرمافزارهای آزاد از نرمافزاریهای رایگان که برای استفاده، از کاربر پولی دریافت نمیکنند، نیز متفاوتاند. این نوع نرمافزارها نیز معمولاً تمامی حقوق نرمافزار را برای تولیدکنندهٔ آن محفوظ داشته و جلوی مهندسی معکوس، ویرایش و یا توزیع مجدد توسط کاربر را میگیرند. بنابراین موضوع اصلی نرمافزار آزاد، موضوع آزادی است و نه قیمت آن: کاربران آزادند که هر چه میخواهند با نرمافزار انجام دهند. این آزادی شامل انتشار مجدد نرمافزار بهصورت رایگان و یا با سود نیز میشود. یعنی نرمافزار آزاد میتواند به صورت رایگان و یا در ازای دریافت مبلغی پول در اختیار کاربر قرار بگیرد.
ریچارد استالمن در سال ۱۹۸۵ در زمانی که در حال آغاز پروژهٔ گنو و بهوجود آوردن بنیاد نرمافزارهای آزاد بود، برای اولین بار از عبارت «نرمافزار آزاد» استفاده کرد. براساس تعریف بنیاد نرمافزارهای آزاد کاربران یک نرمافزارِ آزاد، آزاد هستند؛ چون به اجازه گرفتن نیازی ندارند؛ آنها در انجام کارهای دلخواهشان (مانند حق نشر و کپیبرداری) محدود نیستند؛ نیازی به موافقت با هیچ توافقنامهای ندارند؛ و در همان ابتدا نیز با نداشتن کد منبع محدود نبودهاند.
تعریف
طبق تعریف نرمافزار آزاد توسط بنیاد نرمافزارهای آزاد، هر نرمافزاری که آزادیهای زیر را برای کاربرانش فراهم کند به عنوان یک نرمافزار آزاد شناخته میشود:
کاربران باید اجازه داشته باشند که نرمافزار مورد نظر را برای هر قصد و منظوری اجرا کنند.
کاربران باید اجازه داشته باشند کدهای منبع نرمافزار را مطالعه کرده و آن را مطابق با نیازهای خود تغییر دهند. برای رسیدن به این هدف، کدهای منبع نرمافزار باید در اختیار کاربر قرار گیرد.
کاربران باید اجازه داشته باشند نرمافزار را مجددا منشتر کرده و در اختیار دیگران قرار دهند. این کار میتواند به صورت رایگان و یا در ازای دریافت مبلغی پول صورت گیرد.
اگر کاربری نرمافزار را تغییر داد، باید اجازه داشته باشد آن را مجددا منتشر کرده و در اختیار دیگران قرار دهد. برای تغییر دادن نرمافزار، لازم است تا کدهای منبع نرمافزار در اختیار کاربر قرار گیرد.
همچنین موسسه پیشگامان متنباز هم تعریف مشابهی از نرمافزار آزاد ارائه میدهد. طبق تعریف این موسسه، نرمافزار بازمتن تنها به معنی در دسترس ساختن کدمنبع نیست. علاوه بر آن مجوز باید ویژگیهای زیر را هم داشته باشد:
نرمافزار باید قابل توزیع مجدد باشد (چه به صورت رایگان، چه در ازای دریافت مبلغی پول)
نرمافزار باید شامل کد منبع باشد و این کد منبع را باید بتوان تغییر داد و مجددا منتشر کرد.
مجوز نباید در برابر افراد یا گروه خاصی تبعیض قائل شود.
مجوز نباید کاربر را برای رسیدن به یک هدف خاص محدود کند.
مجوز نباید مختص به یک محصول خاص باشد.
مجوز نباید نرمافزارهای دیگری که به همراه نرمافزار مورد نظر عرضه شدهاند را محدود کرده و تحت تاثیر قرار دهد. برای مثال اگر چند نرمافزار بر روی یک دیسک منتشر شدند، مجوز نباید اصراری بر روی متنباز بودن آنها داشته باشد.
مجوز نباید تکنولوژی خاصی را محدود کند.
تاریخچه
در اوایل، نرمافزارها به صورت آزاد منتشر میشدند و برنامهنویسان و شرکتها آنها را به صورت آزادانه در اختیار یکدیگر قرار میداند. در اوایل، تجارت رایانه بیشتر مبتنی بر سختافزار بود و شرکتها درامد خود را بیشتر از راه تولید سختافزار کسب میکردند و هر شرکت، سختافزاری ناسازگار با دیگر شرکتها تولید میکرد. مشتریان، که بیشتر مهندسان و دانشمندان بودند، تشویق میشدند که نرمافزارهای ارائه شده توسط سختافزار را بهبود بخشیده و حتی آن را در اختیار دیگران هم قرار دهند. از آنجا که در آن زمانها سختافزارهای تولید شده توسط شرکتهای مختلف با یکدیگر ناسازگار بود و سختافزار استانداردی وجود نداشت، و همینطور از آنجا که در آن زمان مفسرها و کامپایلرها هنوز جا نیفتاده بودند (که این برنامهها برنامهها را قابل حملتر میکنند)، شانس کمی وجود داشت که نرمافزار مورد نظر بر روی سختافزار شرکت رقیب هم به خوبی اجرا شود.
رفتهرفته که صنعت رایانه پیشرفت کرد و سختافزارها بیشتر استاندارد شدند و همینطور کامپایلرها و مفسرها پیشرفت کردند، زمینه برای رشد نرمافزارهای انحصاری فراهم شد. با چنین پیشرفتهایی، برنامهها راحتتر از سختافزار یک شرکت به سختافزار شرکت رقیب پورت میشدند و راحت میشد یک نرمافزار را بر روی سختافزارهای مختلفی از شرکتهای مختلف اجرا کرد. بدین ترتیب یک نفر میتوانست نرمافزاری بنویسد که مستقل از سختافزار خاصی عمل کند و بر روی طیف وسیعی از آنها اجرا شود. علاوه بر آن، با استاندارد شدن سختافزارها، تفاوتهای ناچیزی که آنها در کارایی داشتند رفته رفته ناپدید شد. تولید کنندگان به این نتیجه رسیده بودند که باید به نرمافزار هم به چشم یک وسیله فروشی نگاه کنند. شرکتها شروع به فروش نرمافزارهای خود کردند و دست کاربران خود را برای تغییر در نرمافزارها و انتشار مجدد آنها بستند. به گونه ای که در سال ۱۹۶۸ شرکتی به نام ایدیآر (به انگلیسی: ADR) اولین نرمافزار دارای مجوز را عرضه کرد. در سال ۱۹۶۹، شرکت آیبیام به خاطر اینکه به همراه سختافزارهای خود، نرمافزارهای آزاد ارائه میکرد، توسط وزارت دادگستری ایالات متحده آمریکا به از بین بردن کسب و کار و ایجاد یک شرایط ضدرقابتی برای دیگر متهم شد. آیبیام دیگر به همراه سختافزارهای خود نرمافزار ارائه نکرد و بدین ترتیب نرمافزارها و سختافزارها از یکدیگر جدا شدند و فاصله گرفتند.
در سال ۱۹۸۳، ریچارد استالمن از آزمایشگاه هوش مصنوعی و علوم رایانه امآیتی، پروژه گنو را بنیان نهاد. او که از تغییر فرهنگ در صنعت رایانه و کاربرانش ناامید شده بود، قصد داشت سیستمعاملی به نام گنو را به صورت یک نرمافزار آزاد توسعه دهد. در ژانویه ۱۹۸۴ توسعه سیستمعامل گنو آغاز گشت و بنیاد نرمافزارهای آزاد در اکتبر ۱۹۸۵ بنیان نهاده شد. در سال ۱۹۸۹، اولین نسخه از اجازهنامه همگانی گنو منشتر شد. البته جیپیال اولین پروانه نرمافزار آزاد نبود و قبل از آن پروانههای نرمافزار آزاد دیگری مانند پروانه بیاسدی در سال ۱۹۸۸ عرضه شده بودند. تا کنون پروانههای نرمافزار آزاد زیادی توسط افراد و شرکتهای مختلف منتشر شده است که آز این میان میتوان به پروانه امآیتی، پروانه آپاچی، پروانه آیاسسی، پروانه همگانی موزیلا و ... اشاره کرد.
در سال ۱۹۹۷، اریک ریموند مقالهای با نام کلیسای جامع و بازار را منتشر کرد و در آن به بررسی اصول نرمافزارهای آزاد و مزایای آنها پرداخت. این مقاله به شدت مورد توجه قرار گرفت و یکی از دلایلی بود که شرکت ارتباطات نتاسکیپ، کد منبع مرورگر اینترنتی خود را به صورت نرمافزار آزاد منتشر کرد. این کار باعث شد تا شرکتهای دیگری هم به نرمافزارهای آزاد توجه نشان دهند. کدهای منبع نتاسکیپ، بعدها اساس توسعه مرورگر فایرفاکس و برنامه تاندربیرد قرار گرفت.
مسئله نامگذاری
در زبان انگلیسی، کلمه Free معانی متفاوتی همچون آزادی، رایگان بودن و ... دارد. عدهای بر این عقیده بودند که ممکن است این کلمه باعث کژفهمی شده و باعث شود مردم به نرمافزارهای آزاد، به چشم نرمافزارهای رایگان نگاه کنند. این در حالی است که یک نرمافزار آزاد، لزوما رایگان نیست. آنها در سال ۱۹۹۸ کمپین دیگری به نام «نرمافزارهای متنباز» (به انگلیسی: Open Source) را تشکیل دادند تا با تاکید بیشتر بر روی مدل توسعه و مسائل تکنیکی، به جای مسائل فلسفی و اخلاقی، مردم و شرکتها را هر چه بیشتر به استفاده از نرمافزار آزاد تشویق کنند. تقریبا هر دو مفهوم، اشاره به یک چیز دارند و یک نرمافزار متنباز، نرمافزار آزاد هم هست (و برعکس)، اما طرفداران ایده نرمافزارهای متنباز، آن را روشی برای توسعه نرمافزارهای بهتر معرفی میکنند و تاکید کمتری بر جنبش اجتماعی و فلسفه پشت این گونه نرمافزارها دارند. طبق گفته موسسه پیشگامان متنباز (که توسط طرفداران ایده نرمافزار متنباز بوجود آمده)، عبارت «نرمافزار آزاد» واژه ای قدیمیتر است و به گونهای منعکس کننده نام بنیاد نرمافزارهای آزاد است، سازمانی که در سال ۱۹۸۵ برای محافظت و ترویج نرمافزارهای آزاد بوجود آمد؛ با اینکه بنیانگذاران ایده متنباز هم از توسعه و ترویج نرمافزارهای آزاد حمایت میکنند، اما در مورد چگونگی ترویج آنها با بنیاد نرمافزارهای آزاد موافق نیستند و اعتقاد دارند که آزادی نرمافزار در درجه اول یک امر عملی است تا ایدئولوژیکی.
پروانههای نرمافزار آزاد
نرمافزارهای آزاد به همراه اجازهنامهای عرضه میشوند که این اجازهنامه آزادیهای نام برده شده را برای کاربران تضمین میکند. از جمله پروانههای نرمافزار آزاد میتوان به پروانه نرمافزار جیپیال، بیاسدی، پروانه امآیتی، پروانه آیاسسی و ... نام برد. این اجازه نامهها تفاوتهایی با یکدیگر دارند و هر کدام توسط افراد و شرکتهای خاصی برای اهداف خاصی منتشر شدهاند. یک دستهبندی کلی برای پروانههای نرمافزار آزاد این است که آیا آنها به صورت کپیلفت هستند یا نه. پروانههایی که کپیلفت هستند، مانند پروانه جیپیال، تاکید دارند که نسخههای مشتق شده از نرمافزار هم باید به صورت نرمافزار آزاد منتشر شوند. مجوزهای غیر کپیلفت تاکیدی بر روی این مساله ندارند و نسخههای مشتق شده از این گونه نرمافزارها را میتوان آزادانه به هر شکل دلخواهی، چه به صورت نرمافزار آزاد و چه به صورت نرمافزار انحصاری منتشر کرد. چنین مجوزهایی را اصطلاحا «سهلگیرانه» (به انگلیسی: permissive) مینامند. از جمله رایجترین پروانههای کپیلفت، پروانه جیپیال و از جمله رایجترین پروانههای غیر کپیلفت، پروانه بیاسدی و پروانه امآیتی است. امروزه هر دو دسته از این پروانهها به صورت گسترده توسط پروژههای مختلف مورد استفاده قرار میگیرند. برای مثال، هسته لینوکس از پروانه جیپیال و پروژه فریبیاسدی از پروانه بیاسدی استفاده میکنند.
مسئله دیگر در مقایسه پروانههای نرمافزار آزاد، مسئله پیوند دادن کتابخانهها در دیگر نرمافزارهایی است که از یک پروانه غیرمشابه با پروانه کتابخانه استفاده میکنند. برخی از پروانههای نرمافزار آزاد، اجازه نمیدهند که کتابخانههای اشتراکی، توسط نرمافزارهایی که از یک پروانه غیر مشابه استفاده میکنند، پیوند زده شوند و مورد استفاده قرار گیرند. برای مثال، اگر کتابخانهای تحت پروانه جیپیال منتشر شده باشد، تنها نرمافزارهایی که تحت پروانه جیپیال منتشر شدهاند میتوانند به این کتابخانه پیوند داده شوند و از آن استفاده کنند. این کار مانع میشود تا نرمافزارهای انحصاری و یا حتی دیگر نرمافزارهای آزاد از یک کتابخانه با مجوز جیپیال استفاده کنند. بنیاد نرمافزارهای آزاد برای رفع این محدودیت جیپیال، پروانه الجیپیال را منتشر کرده است.
مدل تجاری
نرمافزارهای آزاد را میتوان مستقیما به فروش رساند و به این ترتیب از فروش آنها کسب درامد کرد. اما این مسئله نباید آزادی های بالا را محدود کند. کاربر پس از خرید یک نرمافزار آزاد، میتواند آن را برای هر منظوری استفاده کرده، تغییر داده، و مجددا منتشر کند (چه به صورت رایگان و چه به صورت تجاری). علاوه بر فروش مستقیم نرمافزار، میتوان با ارائه خدمات و پشتیبانی از نرمافزارهای آزاد، کسب درامد کرد. مثلا یک شرکت میتواند با اضافه کردن یک قابلیت جدید به یک نرمافزار آزاد یا در قبال برطرف کردن یک ایراد امنیتی، مبلغی پول از مشتریانش دریافت کند. یا همچنین یک شرکت میتواند نحوه استفاده از یک برنامه را به کارمندان و کاربران یک شرکت دیگر آموزش دهد و در قبال آن دستمزد دریافت کند. برخی از پروانههای سهلگیر نرمافزار آزاد، به کاربران اجازه میدهند تا نرمافزار را بدون در اختیار قرار دادن کدهای منبع توزیع کنند. بدین ترتیب دست کاربران تجاری بیشتر باز خواهد بود. برخی از شرکتها، نرمافزارهای خود را با دو مجوز مختلف، هم به صورت آزاد و هم به صورت غیرآزاد عرضه میکنند.
برخی از توسعهدهندگان مستقل نرمافزار آزاد، کمکهای مالی از طرف افراد داوطلب قبول میکنند. به عنوان مثال، سورسفورج امکاناتی دارد که یک کاربر داوطلب میتواند مبلغی پول را به یک پروژه نرمافزار آزاد اهدا کند.
مثالهایی از نرمافزارهای آزاد کاربردی
هستهٔ سیستمعامل گنو/لینوکس، داروین.
تعدادی از سیستمعاملهای خانواده بیاسدی مانند فریبیاسدی, اپنبیاسدی, نتبیاسدی, دراگونفلیبیاسدی.
کامپایلر جیسیسی، کتابخانهٔ زبان برنامهنویسی سی
کامپایلر کلنگ
پایگاهدادههای رابطهای مانند: mysql، پستگر اسکیوال، برکلی دیبی
زبانهای برنامهنویسی مانند تیسیال، روبی، پایتون، پرل و پیاچپی.
مرورگر وب فایرفاکس (Firefox)
اُپن آفیس (Open Office)
میزکار کیدیای (KDE)
میز کار الاکسدیئی (LXDE)
میزکار اکسافسیئی (XFCE)
میزکار گنوم (Gnome)
برنامههای حروف چینی مانند تک، لاتک و فارسی تک
نرمافزارهای مدیریت محتوا مانند جوملا (!Joomla)، پیاچپی-نیوک (PHP-Nuke)، پست نیوک (postnuke) و مامبو (mambo) ,وردپرس (wordpress), دروپال (drupal) , ....
نرمافزارهای ساخت انجمن (Forum) مانند پیاچپیبیبی (phpbb)، اساماف (smf)، یاب (YaBB) و فروم (phorum)
ویرایشگرهای متن ویم و ایمکس
مجموعه اداری لیبرهآفیس
keywords : رایانه,حافظه,سیستم عامل,ویروس,وب جهان گستر,اینترنت