سفارش تبلیغ
صبا ویژن
اوقات شرعی
نادان شما در کار فزاید آنچه نشاید ، و داناتان واپس افکند آن را که کنون باید . [نهج البلاغه]
امروز: دوشنبه 103 تیر 11

آیا شما معتبر
هستید ؟

همانگونه که در ابتدای بخش فوق اشاره گردید ،  رمزنگاری فرآیندی است که بر
اساس آن اطلاعات ارسالی از یک کامپیوتر برای کامپیوتر دیگر ، در ابتدا  رمز و
سپس ارسال خواهند شد. کامپیوتر دوم ( گیرنده ) ،  پس از دریافت اطلاعات می
بایست  ،اقدام به رمزگشائی آنان نماید. یکی دیگر از فرآیندهای موجود بمنظور
تشخیص ارسال اطلاعات توسط یک منبع ایمن و مطمئن ،  استفاده از روش معروف
" اعتبار سنجی " است . در صورتیکه اطلاعات "معتبر " باشند
،  شما  نسبت به هویت ایجاد کننده اطلاعات آگاهی داشته و این اطمینان را
بدست خواهید آورد که اطلاعات از زمان ایجاد تا زمان دریافت توسط شما تغییر پیدا
نکرده اند. با ترکیب فرآیندهای رمزنگاری و اعتبار سنجی می توان یک محیط ایمن را
ایجاد کرد . 

بمنظور بررسی اعتبار یک شخص و یا اطلاعات موجود بر روی یک
کامپیوتر از روش های متعددی استفاده می شود :

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

? کارت های عبور . این نوع کارت ها دارای مدل های متفاوتی می باشند.
کارت های  دارای لایه مغناطیسی ( مشابه کارت های اعتباری ) و  کارت های
هوشمند ( دارای یک تراشه کامپیوتر است )  نمونه هائی از کارت های عبور می
باشند.

? امضای دیجتالی  
. امضای دیجیتالی،  روشی بمنظور اطمینان از معتبر بودن یک سند الکترونیکی (
نظیر: نامه الکترونیکی ، فایل های متنی و ... )  است .
استاندارد امضای دیجیتالی (
DSS) ،  بر
اساس نوع خاصی از رمزنگاری کلید عمومی و استفاده از الگوریتم امضای دیجیتالی (
DSA)
ایجاد می گردد.الگوریتم فوق شامل یک کلید عمومی ( شناخته شده توسط صاحب
اولیه  سند الکترونیکی - امضاء کننده ) و یک کلید عمومی است . کلید عمومی
دارای چهار بخش است . در صورتیکه هر چیزی پس از درج  امضای دیجیتالی به
یک  سند الکترونیکی ،  تغییر یابد ،  مقادیر مورد نظری که بر اساس
آنها امضای دیجیتالی با آن مقایسه خواهد شد ،  نیز تغییر خواهند کرد.
سیستم های متعددی برای "اعتبار سنجی " تاکنون طراحی و عرضه شده است .
اکثر سیستم های فوق از زیست سنجی برای تعیین اعتبار استفاده می نمایند. در علم
زیست سنجی از اطلاعات زیست شناسی برای تشخیص هویت افراد استفاده می گردد. برخی از
روش های اعتبار سنجی مبتنی بر زیست شناسی کاربران ،  بشرح زیر می باشند :

·       پیمایش اثر
انگشت ( انگشت نگاری )

·       پیمایش
شبکیه چشم

·       پیمایش
صورت

·       مشخصه صدا

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

? Checksum .
یکی از قدیمی ترین روش های استفاده شده برای اطمینان از صحت ارسال اطلاعات است .
Checksum ،  به دو صورت متفاوت محاسبه می گردد . فرض کنید Checksum یک بسته اطلاعاتی دارای طولی به اندازه یک بایت باشد ،  یک بایت شامل هشت بیت و هر بیت یکی از دو
حالت ممکن ( صفر و یا یک ) را می تواند داشته باشد. در چنین حالتی 256 وضعیت
متفاوت می تواند وجود داشته باشد. با توجه به اینکه در اولین وضعیت ،  تمام
هشت بیت مقدار صفر را دارا خواهند بود ،  می تواند حداکثر 255 حالت متفاوت را
ارائه نمود.
 ? در صورتیکه مجموع سایر بایت های موجود در بسته اطلاعاتی ،  255 و یا
کمتر باشد ،  مقدار
Checksum شامل اطلاعات
واقعی و مورد نظر خواهد بود.
 ? در صورتیکه مجموع سایر بایت های موجود در بسته اطلاعاتی ، بیش از 255 باشد
، 
Checksum معادل باقیمانده مجموع اعداد بوده مشروط بر اینکه آن را بر 256
تقسیم نمائیم . مثال زیر ،  عملکرد
CheckSum را
نشان می دهد.

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Byte 7

Byte 8

Total

Checksum

212

232

54

135

244

15

179

80

1,151

127

 

  • 1,151 / 256 =
    4.496 (round to 4)
  • 4 x 256 = 1,024
  • 1,151 - 1,024 = 127

? Cyclic Redundancy Check)CRC) .  روش CRC در
مفهوم مشابه روش
Checksum است . روش فوق از تقسیم چمد جمله ای برای مشخص کردن مقدار CRC استفاده می کند.  طول CRC معمولا"
16 و یا 32 بیت است .  صحت عملکرد روش فوق بسیار بالا است . در صورتیکه
صرفا" یک بیت نادرست باشد ، 
CRC با مقدار مورد
نظر مطابقت نخواهد کرد.
روش های
Checksum و CRC امکانات مناسبی برای پیشگیری از بروز
خطای تصادفی درارسال اطلاعات می باشند،  روش های  فوق در رابطه با حفاظت
اطلاعات و ایمن سازی اطلاعات در مقابل عملیات غیر مجاز بمنظور دستیابی و استفاده
از اطلاعات ،  امکانات محدودتری را ارائه می نمایند. رمزنگاری متقارن و کلید
عمومی ،  امکانات بمراتب مناسب تری در این زمینه می باشند.
بمنظور ارسال و دریافت اطلاعات بر روی اینترنت و سایر شبکه های اختصاصی ،  از
روش های متعدد  ایمنی استفاده می گردد. ارسال اطلاعات از طریق شبکه نسبت به
سایر امکانات موجود نظیر : تلفن ،  پست  ایمن تر می باشد . برای تحقق
امرفوق می بایست از روش های متعدد رمزنگاری و پروتکل های ایمنی بمنظور ارسال و
دریافت اطلاعات در شبکه های کامپیوتری خصوصا"
اینترنت استفاده کرد.


 نوشته شده توسط وحید قویدل در یکشنبه 86/10/23 و ساعت 12:32 صبح | نظرات دیگران()

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

·       اطلاعات
کارت اعتباری

·       شماره های
عضویت در انحمن ها

·       اطلاعات
خصوصی

·       جزئیات
اطلاعات شخصی

·       اطلاعات
حساس در یک سازمان

·       اطلاعات
مربوط به حساب های بانکی

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

اکثر سیستم های رمزنگاری اطلاعات در کامپیوتر به دو گروه عمده
زیر تقسیم می گردند :

·       رمزنگاری 
کلید - متقارن

·       رمزنگاری 
کلید - عمومی 

رمز نگاری کلید -
متقارن

در روش فوق ، هر کامپیوتر دارای یک کلید رمز ( کد ) بوده که از آن برای رمزنگاری
یک بسته اطلاعاتی قبل از ارسال اطلاعات بر روی شبکه و یا کامپیوتر دیگر ، استفاده
می نماید. دراین روش لازم است در ابتدا مشخص گردد که کدامیک از کامپیوترها قصد
مبادله اطلاعاتی با یکدیگر را دارند ، پس از مشخص شدن هر یک از کامپیوترها، 
در ادامه کلید رمز بر روی هر یک از سیستم ها می بایست نصب گردد. اطلاعات ارسالی
توسط کامپیوترهای فرستنده با استفاده از کلید رمز ، رمز نگاری شده وسپس اطلاعات
رمز شده  ارسال  خواهند شد. پس از دریافت اطلاعات رمز شده توسط کامپیوترهای
گیرنده ، با استفاده از کلید رمز اقدام به بازگشائی رمز و برگرداندن اطلاعات بصورت
اولیه و قابل استفاده خواهد شد . مثلا" فرض کنید پیامی را برای یکی از دوستان
خود رمز و سپس ارسال می نمائید . شما برای رمز نگاری اطلاعات از روشی استفاده
نموده اید که بر اساس آن هر یک از حروف موجود در متن پیام را به دو حرف بعد از خود
تبدیل کرده اید. مثلا" حروف
A موجود در متن
پیام به حروف
C و حروف B به حروف D تبدیل می گردند. پس از ارسال پیام رمز شده برای دوست خود ، می بایست با استفاده از
یک روش ایمن و مطمئن کلید رمز را نیز برای وی مشخص کرد. در صورتیکه گیرنده پیام
دارای کلید رمز مناسب نباشد ، قادر به رمز گشائی و استفاده از اطلاعات نخواهد بود.
در چنین حالتی می بایست به دوست خود متذکر گردید که کلید رمز ، " شیفت دادن
هر حرف بسمت جلو و به اندازه دو واحد است " . گیرنده پیام با انجام عملیات
معکوس قادر به شکستن رمز و استفاده از اطلاعات خواهد بود.

< classid="CLSID:D27CDB6E-AE6D-11CF-96B8-444553540000" id="DefaultOcxName" height="325" width="369">

رمزنگاری کلید - عمومی
در روش فوق از ترکیب یک کلید خصوصی و یک کلید عمومی استفاده می شود. کلید خصوصی
صرفا" متعلق به کامپیوتر فرستنده بوده و کلید عمومی توسط کامپیوتر فرستنده در
اختیار هر یک از کامپیوترهائی که قصد برقراری ارتباط با یکدیگر را دارند ، گذاشته
می شود. برای رمزگشائی یک پیام رمز شده ، کامپیوتر می بایست از کلید عمومی که توسط
فرستنده ارائه شده، بهمراه کلید خصوص ی خود  استفاده  نماید. یکی از
متداولترین برنامه های رمزنگاری در این رابطه
PGP)Pretty Good Privacy) است . با استفاده از PGP می توان هر
چیز دلخواه را رمز نمود.
بمنظور پیاده سازی رمزنگاری کلید - عمومی در مقیاس بالا نظیر یک سرویس
دهنده وب
، لازم است از رویکردهای دیگری در این خصوص استفاده
گردد.  " امضای دیجیتال " یکی از رویکردهای موجود در این زمینه
است  یک امضای دیجیتالی صرفا" شامل اطلاعات محدودی بوده  که اعلام
می نماید ، سرویس دهنده وب با استفاده و بکارگیری یک سرویس مستقل با نام "
امضای مجاز "  ، امین اطلاعات است . "امضای مجاز " بعنوان یک
میانجی بین دو کامپیوتر ایفای وظیف می نماید. هویت و مجاز بودن هر یک از
کامپیوترها برای برقراری ارتباط توسط سرویس دهنده انجام و برای هر یک کلید عمومی
مربوطه را فراهم خواهد کرد.
یکی از متداولترین نمونه های پیاده سازی شده از رمزنگاری کلید- عمومی ، روش
SSL)Secure
Sokets Layer
)  است . روش فوق در ابتدا توسط
"نت اسکیپ " پیاده سازی گردید.
SSL یک پروتکل
امنیتی اینترنت بوده که توسط مرورگرها و سرویس دهندگان وب بمنظور ارسال اطلاعات
حساس ، استفاده می گردد. 
SSL اخیرا"
بعنوان بخشی از پروتکل
TLS)Transport Layer Security)  در نظر گرفته شده است .
در مرورگر می توان زمان استفاده از یک پروتکل ایمن نظیز
TLS را
با استفاده از روش های متعدد اعلام کرد. استفاده از پروتکل "
https"
درعوض پروتکل "
http" یکی از روش های موجود است . در
چنین مواردی در بخش وضعیت پنجره مرورگر یک "
Padlock"
نشان داده خواهد شد.

رمزنگاری کلید - عمومی ، مدت زمان
زیادی را صرف انجام محاسبات می نماید. بنابراین در اکثر سیستمها از ترکیب کلید
عمومی و متقارن استفاده می گردد. زمانیکه دو کامپیوتر یک ارتباط ایمن را بایکدیگر
برقرار می نمایند ،  یکی از کامپیوترها یک کلید متقارن را ایجاد و آن را برای
کامپیوتر دیگر با استفاده از رمزنگاری کلید - عمومی ،  ارسال خواهد کرد. در
ادامه دو کامپیوتر قادر به برقرار ارتباط بکمک رمزنگاری کلید متقارن می باشند. پس
از اتمام ارتباط ،  هر یک از کامپیوترها کلید متقارن استفاده شده را دور
انداخته و در صورت نیاز به برقراری یک ارتباط مجدد ،  می بایست مجددا"
فرآیند فوق تکرار گردد ( ایجاد یک کلید متقارن ،  ....)

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

عدد ورودی

الگوریتم

Hash مقدار

10,667

Input #
x 143

1,525,381

تسخیص اینکه عدد 1.525.381 ( مقدار hash
از ضرب دو عدد 10.667 و 143 بدست آمده است ،  کار بسیار
 مشکلی
است . در صورتیکه بدانیم که یکی از اعداد 143 است
،  تشخیص عدد دوم کار بسیار
ساده ای خواهد بود. ( عدد 10.667) .رمز نگاری مبتنی بر کلید عمومی بمراتب پیچیده
تر از مثال فوق می باشند. مثال فوق صرفا"  ایده اولیه در این خصوص را
نشان می دهد. کلیدهای عمومی عموما" از الگوریتم های پیچیده و مقادیر
Hash بسیار بزرگ برای رمزنگاری استفاده می نمایند. در چنین مواردی اغلب از اعداد 
40 و یا حتی 128 بیتی استفاده می شود. یک عدد 128 بیتی دارای  128 2 حالت متفاوت است .


 نوشته شده توسط وحید قویدل در یکشنبه 86/10/23 و ساعت 12:31 صبح | نظرات دیگران()

 حافظه مجازی یکی ازبخش های متداول
در اکثر سیستم های عامل کامپیوترهای شخصی است . سیستم فوق با توجه
به مزایای عمده، بسرعت متداول و با استقبال کاربران کامپیوتر مواجه شده است . اکثر
کامپیوترها در حال حاضر از حافظه های محدود با ظرفیت 64 ، 128 و یا 256 مگابایت استفاده می نمایند. حافظه موجود در
اکثر کامپیوترها یه منظور اجرای چندین برنامه بصورت همزمان توسط کاربر ، پاسخگو
نبوده و با کمبود حافظه مواجه خواهیم شد. مثلا" در صورتی که  کاربری
بطور همزمان ، سیستم عامل ، یک واژه پرداز ، مرورگر وب و یک برنامه برای ارسال نامه الکترونیکی را فعال نماید ، 32 و
یا 64 مگابایت حافظه، ظرفیت قابل قبولی نبوده و کاربران قادر به استفاده از خدمات
ارائه شده توسط هر یک از نرم افزارهای فوق نخواهند بود. یکی از راهکارهای غلبه بر
مشکل فوق افزایش و ارتقای حافظه موجود است . با ارتقای حافظه و افزایش آن ممکن است
مشکل فوق در محدوده ای دیگر مجددا" بروز نماید. یکی دیگر از راهکارهای موجود
در این زمینه ، استفاده از حافظه مجازی است . در تکنولوژی حافظه مجازی از حافظه
های جانبی ارزان قیمت  نظیر هارد
دیسک
استفاده می گردد. در چنین حالتی اطلاعات موجود در حافظه اصلی که کمتر مورد استفاده قرار
گرفته اند ، از حافظه خارج و در محلی خاص بر روی هارد دیسک ذخیره می گردند. بدین
ترتیب بخش ی از حافظه اصلی آزاد و زمینه استقرار یک برنامه جدید در حافظه فراهم
خواهد شد. عملیات ارسال اطلاعات از حافظه اصلی بر روی هارد دیسک بصورت خودکار
انجام می گیرد.

مسئله سرعت
سرعت خواندن
و نوشتن اطلاعات بر روی  هارد دیسک بمراتب کندتر از حافظه اصلی کامپیوتر است
. در صورتی که  سیستم مورد نظر دارای عملیاتی حجیم در رابطه با حافظه مجازی
باشد ، کارآئی سیستم بشدت تحت تاثیر قرار خواهد گرفت . در چنین مواردی لازم است که
نسبت به افزایش حافظه موجود در سیستم  ، اقدام گردد. در مواردی که سیستم عامل
مجبور به جابجائی اطلاعات موجود بین حافظه اصلی و حافظه مجازی باشد ( هارد دیسک )
، باتوجه به تفاوت محسوس سرعت بین آنها ، مدت زمان زیادی صرف عملیات جایگزینی می
گردد. در چنین حالتی سرعت سیستم بشدت افت کرده و عملا" در برخی حالات غیرقابل
استفاده می گردد. محل نگهداری اطلاعات بر روی هارد دیسک را یک
Page file می گویند. در فایل فوق ، صفحات مربوط به حافظه اصلی ذخیره و سیستم
عامل در زمان مورد نظر اطلاعات فوق را مجددا" به حافظه اصلی منتقل خواهد کرد.
در ماشین هائی که از سیستم عامل ویندوز استفاده می نمایند ، فایل فوق دارای انشعاب
swp است .

 

پیکربندی
حافظه مجازی

ویندوز 98
دارای یک برنامه هوشمند برای مدیریت حافظه مجازی است . در زمان نصب ویندوز ،
پیکربندی و تنظیمات پیش فرض برای مدیریت حافظه مجازی انجام خواهد شد. تنظیمات انجام
شده در اغلب موارد پاسخگو بوده و نیازی به تغییر آنها وجود نخواهد داشت . در برخی
موارد لازم است که  پیکربندی مدیریت حافظه مجازی بصورت دستی انجام
گیرد.  برای انجام این کار در ویندوز 98 ، گزینه
System را
از طریق
Control
panel
انتخاب و در ادامه گزینه Performance را فعال نمائید. در بخش Advanced setting ،
گزینه
Virtual
memory
را انتخاب نمائید.

 

با نمایش پنجره مربوط به Virtual Memory  ، گزینه "Let me specify my own virtual memory setting" را انتخاب تا زمینه مشخص نمودن مکان و طرفیت حداقل و حداکثر
فایل مربوط به حافظه مجازی فراهم گردد..در فیلد
Hard  disk محل ذخیره نمودن فایل و درفیلد های دیگر حداقل و حداکثر ظرفیت
فایل را بر حسب مگابایت مشخص نمائید.  برای مشخص نمودن  حداکثر فضای
مورد نیاز حافظه مجازی می توان هر اندازه ای را مشخص نمود . تعریف اندازه ائی به
میزان دو برابر حافظه اصلی کامپیوتر برای حداکثر میزان حافظه مجازی توصیه می گردد.
میزان حافظه موجود هارد دیسک که برای حافظه مجازی  در نظر گرفته خواهد شد
بسیار حائر اهمیت است . در صورتی که  فضای فوق بسیار ناچیز انتخاب گردد ،
همواره با پیام خطائی مطابق "
Out of Memory" ، مواجه
خواهیم شد. پیشنهاد  می گردد نسبت حافظه مجازی به حافظه اصلی دو به یک باشد.
یعنی در صورتی که  حافظه اصلی موجود 16 مگابایت باشد ، حداکثر حافظه مجازی را
32 مگابایت در نظر گرفت .
یکی از روش هائی که یه منظور بهبود کارائی حافظه مجاری پیشنهاد شده است ، (
مخصوصا" در مواردیکه حجم بالائی از حافظه مجازی مورد نیاز باشد ) در نظر
گرفتن ظرفیت یکسان برای حداقل و حداکثر انداره حافظه مجازی است . در چنین حالتی در
زمان راه اندازی کامپیوتر، سیستم عامل تمام فضای مورد نیاز را اختصاص و در ادامه
نیازی با افزایش آن همزمان با اجرای سایر برنامه ها نخواهد بود. در چنین حالتی
کارآئی سیستم بهبود پیدا خواهد کرد .
یکی دیگر از فاکتورهای مهم در کارآئی حافظه مجازی ، محل فایل مربوط به حافظه مجازی
است . در صورتی که  سیستم کامپیوتری دارای چندین هارد دیسک فیزیکی باشد ، (
منظور چندین درایو منظقی نیست ) می توان حجم عملیات مربوط به حافظه مجازی را بین
هر یک از درایوهای فیزیکی موجود توزیع کرد. روش فوق در مواردیکه از حافظه مجازی در
مقیاس بالائی استفاده می گردد ، کارآئی مطلوبی را بدنبال خواهد داشت .
 

 


 نوشته شده توسط وحید قویدل در یکشنبه 86/10/23 و ساعت 12:30 صبح | نظرات دیگران()

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

متغیرها را می بایست قبل از استفاده ، تعریف کرد. در زمان
تعریف یک متغیر می بایست نوع داده هائی که قرار است در آن نگهداری گردد را نیز
مشخص کرد.مثلا" می توان متغیری تعریف کرد که در آن ، اعداد نگهداری شده و یا
متغیر دیگری را تعریف کرد که بتوان در آن نام و نام خانوادگی را ذخیره کرد. در
زبان برنامه نویسی جاوا تمام متغیرها قبل استفاده می بایست تعریف و همزمان نوع
داده هائی که می توان در آنها نگهداری گردد را نیز مشخص کرد .

مثال : در برنامه زیر ، دو متغیر width و height تعریف شده اند. نوع متغیرهای فوق ، int تعریف شده است . یک متغیر از نوع int ، قادر به نگهداری یک عدد صحیح ( مثلا" 1، 2 ، 3 ) است .
مقدار اولیه هر یک از متغیرهای فوق ، مقدار 200 در نظر گرفته شده است .

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

در زبان جاوا دو نوع متغیر وجود دارد : متغیرهای ساده (Primitive) و کلاس ها .  نوع int ساده بوده و قادر به نگهداری یک عدد است . تمام عملیاتی که می توان با
متغیرهای ساده انجام داد ، صرفا" نگهداری یک مقدار با توجه به نوع متغیر است
. کلاس ها ، قادر به دارا بودن چندین بخش بوده و با استفاده از متدهای
مربوط به هریک ، امکان استفاده آسان آنها فراهم می گردد.
Rectangle یک نمونه از کلاس های فوق است .

متن برنامه

import java.awt.Graphics;

import java.awt.Color;

 

public class FirstApplet extends java.applet.Applet

{

 

    public void paint(Graphics
g)

    {

        int width = 200;

        int height = 200;

        g.drawRect(0, 0, width,
height);

        g.drawLine(0, 0, width,
height);

        g.drawLine(width, 0, 0,
height);

    }

}

در برنامه
ارائه  شده  ، همواره یک خط قطری در پنجره ای با ابعاد 200 * 200 پیکسل
، رسم می گردد . عدم امکان پویائی ابعاد پنجره ، یکی از محدودیت های برنامه فوق
است . فرض کنید در این رابطه ، امکانی در برنامه پیش بینی گردد که از کاربر
درخواست شود ابعاد پنجره را مشخص نماید . پس از مشخص نمودن ابعاد پنجره توسط کاربر
، خط قطری بر اساس ابعاد ارائه شده ، رسم گردد . با مراجعه به صفحه مستندات مربوط
به کلاس
Graphic ، ( موجود در فایل java.awt.Graphic.html ، فایل فوق شامل لیست تمام
توابع مربوط به عملیات گرافیکی است ) ، با تابع
getClipBounds برخورد خواهیم کرد . تابع فوق
پارامتری را بعنوان ورودی اخد نکرده و یک مقدار از نوع
Rectangle را برمی گرداند. Rectangle برگردانده شده ، شامل طول و عرض
محدوده مورد نظر برای رسم است . کلاس
Rectangle دارای چهار متغیر به اسامی x,y,width,height است .  بنابراین به منظور
امکان پویا نمودن ابعاد پنجره ، با استفاده از
getClipBounds  ، محدوده Rectangle را اخذ و پس از استخراج مقادیر
مربوط به
width و height  از Rectangle ، آنها را در متغیرهای width و height ذخیره می نمائیم .

متن برنامه

import java.awt.Graphics;

import java.awt.Color;

import java.awt.Rectangle;

 

public class FirstApplet extends java.applet.Applet

{

 

    public void paint(Graphics
g)

    {

        int width;

        int height;

        Rectangle r;

 

        r = g.getClipBounds();

        width = r.width - 1;

        height = r.height - 1;

 

        g.drawRect(0, 0, width,
height);

        g.drawLine(0, 0, width,
height);

        g.drawLine(width, 0, 0, height);

    }

}

پس از
اجرای برنامه فوق ، مشاهده خواهد شد که
Rectangle و قطرها بصورت کامل در محدوده مربوطه قرار خواهند گرفت . پس از
تغییر اندازه پنجره ،  قطرها و
Rectangle براساس مقادیر جدید بصورت خودکار مجددا" رسم خواهند شد. در
رابطه با برنامه فوق ، ذکر نکات زیر ضروری است :

·       با توجه به استفاده از کلاس Rectangle ، لازم است از java.awt.Rectangle استفاده گردد. 

·       در برنامه فوق سه متغیر تعریف شده است . دو متغیر ( width و height) از نوع int و یک متغیر (r) ، از نوع Rectangle است .

·       تابع getClipBounds ، پارامتری را بعنوان ورودی اخذ نکرده و صرفا" یک Rectangle را برمی گرداند. دستور : r=g.getClipBounds ، یک Rectangle را برگردانده و آن را در متغیر r ذخیره می نماید.

·       متغیر r ، از نوع کلاس Rectangle بوده و دارای چهار متغیر است . (x,y,width,height) . به منظور دستیابی به هر یک
ازمتغیرها
،
از
عملگر نقظه استفاده می گردد. مثلا" r.width ، عنوان می نماید که در متغیر r ، مقداری با نام width بازیابی می گردد. مقدار مورد
نظر در متغیر محلی با نام
width ذخیره می گردد.

·       در نهایت از width و height  در توابع مربوط به رسم ، استفاده می گردد.

جاوا دارای چندین نوع متغیر ساده
است . سه نمونه رایج در این زمینه عبارتند از :

·       نوع صحیح (int)

·       نوع اعشاری (float)

·       نوع کاراکتری (char)


 نوشته شده توسط وحید قویدل در یکشنبه 86/10/23 و ساعت 12:28 صبح | نظرات دیگران()

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

مرحله سوم : کمپایل برنامه پنجره MS-DOS را فعال و با استفاده از دستور CD ، در فولدری که فایل FirstApplet.java قرار دارد ، مستقر شده و دستور
زیر را به منظور ترجمه برنامه نوشته شده ، تایپ نمائید :

 javac FirstApplet.java

نام فایل
حاوی برنامه را بدرستی تایپ نمائید ( دقت لازم در رابطه با حروف بزرگ و کوچک )

مرحله چهارم : تصحیح و برطرف
کردن خطاء
:در صورت وجود خطاء ، می بایست نسبت به رفع اشکالات
موجود اقدام کرد

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

فایل Html

<html>

<body>

<applet code=FirstApplet.class width=200 height=200>

</applet>

</body>

</html>

فایل فوق
را با نام
applet.htm و در فولدری با نام مشابه ذخیره نمائید.

مرحله ششم : اجرای اپلت :پنجره MS-DOS را فعال و دستور زیر را به
منظور اجرای اپلت تایپ نمائید :

  appletviewer applet.htm

پس از
اجرای اپلت ، یک خط قطری از گوشه بالای سمت چپ بسمت گوشه پائین سمت راست را مشاهده
خواهید کرد .  بدین ترتیب اولین برنامه جاوا نوشته و اجراء گردید.

توضیجات و تشریح برنامه
برنامه نوشته شده یک اپلت ساده جاوا است . اپلت  ، نوع
خاصی از برنامه های جاوا بوده که می توان آنها را در یک مرورگر اجراء کرد. اپلت
های جاوا در مقابل برنامه های کاربردی جاوا مطرح شده اند. برنامه های کاربردی جاوا
، برنامه هائی بوده که می توان آنها را بر روی یک ماشین محلی اجراء نمود. برای
کمپایل نمودن اپلت از برنامه
javac استفاده شده است . در ادامه به منظور تگهداری اپلت و فراهم نمودن
محیط لازم برای اجرای آن ، یک صفحه وب ایجاد و اپلت در صفحه فوق صدا زده شده است .
برای اجرای یک اپلت می توان از برنامه
appletviewer  نیز استفاده کرد.
برنامه نوشته شده صرفا" دارای ده خط برنامه است . برنامه
فوق ساده ترین نوع اپلتی است که می توان ایجاد کرد. به منظور شناخت کامل عملکرد
برنامه فوق ، لازم است با تکنیک های برنامه نویسی شی گراء آشنائی لازم وجود داشته باشد.
بدین منظور بر روی یکی از خطوط برنامه متمرکز و عملکرد آن توضیح داده می شود :

 g.drawLine(0, 0, 200, 200);

خط فوق
مسئول انجام عملیات مورد نظر در برنامه است . دستور فوق ، خط قطری را رسم خواهد
کرد. سایر خطوط برنامه در ارتباط با خط اصلی فوق می باشند. با دستور فوق به
کامپیوتر گفته شده است که ، خطی را از گوشه سمت چپ بالا ( مختصات صفر و صفر
)  به گوشه سمت راست پائین ( مختصات 200 و 200 ) رسم کند.

در صفحه
وب ، اندازه پنجره مربوط به اجراء و نمایش اپلت ( در مرحله پنج ) به ابعاد 200 و
200 مشخص شده است. در برنامه فوق از متدی ( تابع )  با نام
drawLine استفاده شده است . متد فوق ،
چهار پارامتر را بعنوان ورودی اخذ می نماید (0,0,200,200) . انتهای خط با استفاده
از کاراکتر ";"  مشخص شده است .  نقش کاراکتر فوق نظیر
استفاده از نقطه در انتهای جملات است . ابتدای خط با حرف
g. شروع شده است . بدین ترتیب مشخص شده است که قصد  فراخوانی
متدی با نام
drawLine با
نام شی
g وجود دارد.
یک متد ، نظیر یک دستور است . متد ها به کامپیوتر اعلام می
نمایند که می بایست یک کار خاص انجام گیرد.
drawLine ، به کامپیوتر اعلام می نماید
که ، خطی افقی با مختصات مشخص شده را رسم نماید. با تغییر مختصات مربوطه (
پارامترهای متد
drawLine) می توان خطوط متعدد و با استفاده از مختصات مشخص شده را رسم
نمود.

از چه توابع دیگری بجز drawLine می توان استفاده کرد ؟ بدین
منظور لازم است که به مستندات مربوط به کلاس
Graphice مراجعه گردد. در زمان نصب محیط
پیاده سازی جاوا و مستندات مربوطه ، یکی از فایل هائی که بر روی سیستم شما نصب
خواهد شد ، فایل
java.awt.Graphice.html است . فایل فوق کلاس Graphic را تشریح می نماید. drawLine  صرفا" یکی از متدهای کلاس Graphic بوده و در این زمینه متدهای
متعدد دیگر به منظور رسم خطوط ، کمان ، چند ضلعی، تغییر  و  ... وجود
دارد.

جاوا دارای کلاس های متعدد بوده و هر کلاس نیز دارای متدهای
فراوانی است . مثلا" کلاس
Color دارای مجموعه ای از متدها به منظور تعریف و نتظیمات مربوط به رنگ
است .
SetColor نمونه ای در این زمینه است . در
زمان استفاده هاز هر یک از متدهای مربوط به کلاس های جاوا می بایست در ابتدای
برنامه با استفاده از دستور
import زمینه استفاده از آنان را فراهم کرد.

اشکال زدائی
در زمان نوشتن برنامه های کامپیوتری ، ممکن است به خطاهای
متفاوت برخورد نمائیم . خطاهای  برنامه نویسی دارای انواع متفاوتی نظیر :
خطای گرامری ، خطای زمان اجراء و خطای منطقی می باشند. تمام خطاهای فوق صرفنظر از
ماهیت مربوطه را ، اشکال (
Bugs) گفته و عملیات مربوط به برطرف کردن اشکال را اشکال زدائی (debugging) می گویند. اشکال زدائی برنامه
های کامپیوتری همواره زمان زیادی از وقت برنامه نویسان را بخود اختصاص خواهد داد.

در زمان نوشتن یک برنامه در صورتی که  مجموعه قوانین
موجود در رابطه با زبان برنامه نویسی رعایت نگردد ( مثلا" عدم استفاده از
کاراکتر ";" در انتهای جملات در جاوا ) ، کمپایلر در زمان ترجمه برنامه
، یک خطای گرامری را تشخیص و اعلام می نماید .  در چنین مواردی می بایست قبل
از هر اقدام دیگر ، نسبت به برطرف نمودن اشکال گزارش داده شده ، اقدام کرد. پس از
ترجمه موفقیت آمیز یک برنامه ( عدم وجود خطای گرامری ) ، برنامه اجراء می گردد. در
زمان اجرای یک برنامه ممکن است با نوع دیگری از خطاء مواجه گردیم . خطاهای فوق را
، خطای زمان اجراء می نامند. در صورتی که  برنامه دارای خطای زمان اجراء
نباشد و بطور کامل اجراء گردد ، ممکن است خروجی تولید شده توسط برنامه متناسب با
خواسته تعریف شده نباشد. خطاهای فوق را خطاهای منظقی گویند و به علت عدم استفاده
درست از دستورات و یا استفاده نامناسب از الگوریتم ها در یک برنامه بوجود می آیند.
در چنین مواردی لازم است برنامه نویس ، برنامه نوشته شده را مجددا" بازبینی
نموده و با دنبال نمودن بخش های مربوطه و در صورت لزوم الگوریتم های استفاده شده ،
خطای موجود را تشخیص و نسبت به رفع آن اقدام و مجددا" برنامه را کمپایل و
اجراء نماید.


 نوشته شده توسط وحید قویدل در یکشنبه 86/10/23 و ساعت 12:27 صبح | نظرات دیگران()

جاوا یک زبان برنامه نویسی است
که  در سطح گسترده ای از آن استفاده می شود . به منظور آشنائی اولیه با جاوا
، لازم است در ابتدا با برخی از واژه ها و اصصلاحات برنامه نویسی بیشتر آشنا شویم

·       برنامه کامپیوتر . یک برنامه کامپیوتری ،
مجموعه ای از دستورالعمل ها بوده که به کامپیوتر اعلام می کنند ، چه کاری را می
بایست انجام دهد. دستورالعمل ها ممکن است به کامپیوتر اعلام نمایند ، که تعدادی از
اعداد را با یکدیگر جمع کرده و یا دو عدد را بایکدیگر مقایسه و بر اساس نتیجه
مربوط اتخاذ تصمیم نماید. یک برنامه کامپیوتری صرفا" مجموعه ای از دستورالعمل
های ساده بوده که فقط برای کامپیوتر قابل استفاده می باشند. نظیر نوت های موسیقی
که بعنوان مجموعه دستورالعمل هائی برای یک موسیقیدان مفید خواهند بود.کامپیوتر
دستورالعمل های نوشته شده را اجراء و ماحصل آن رسیدن به هدفی خواهد بود که بر اساس
آن برنامه نوسته شده  است .

·       زبان برنامه نویسی . دستورالعمل های مورد
نظر به منظور انجام یک کار توسط کامپیوتر می بایست با استفاده از یکی از زبانها ی
برنامه نویسی نوشته شده ( کد گردند ) و در ادامه در اختیار کامپیوتر گذاشته گردند.
زبانهای برنامه نویسی متعددی نظیر : فرترن ، بیسیک ، کوبال ، پاسکال، ،
C و
جاوا و ... وجود دارد.

·       کمپایلر. برنامه ای است که برنامه نوشته شده توسط یکی از زبانهای
برنامه نویسی (نظیر جاوا) را ترجمه و آن را بگونه ای تبدیل خواهد کرد که کامپیوتر
قادر به اجرای آن باشد. احتمالا" شما بر روی کامپیوتر خود فایل هائی با
انشعاب
exe را تاکنون مشاهده کرده اید ، این نوع فایل ها شامل کدهای اجرائی (
قابل خواندن توسط ماشین ) بوده که مرحله ترجمه خود را پشت سر گذرانده اند.

به منظور نوشتن برنامه کامپیوتری با
استفاده از یک زبان برنامه نویسی نظیر جاوا ، به یک کمپایلر نیاز خواهد بود. در
ادامه نحوه دریافت و نصب کمپایلر جاوا توضیح داده می شود. پس از نصب کمپایلر ، می
توان برنامه نویسی جاوا را آغاز کرد.

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

·       یک فایل
بزرگ شامل محیط پیاده سازی جاوا را از طریق اینترنت دریافت و یا از طریق
CD مربوطه آماده نمود.

·       یک فایل
بزرگ شامل مستندات جاوا را از طریق اینترنت دریافت و یا از طریق
CD مربوطه آماده نمود.

·       فایل های
دریافت شده از طریق اینترنت را بکمک برنامه
WinZip (
و یا برنامه های معادل ) از حالت فشرده خارج نمود.

·       محیط پیاده
سازی جاوا را نصب نمائید

·       مستندات
جاوا را نصب نمائید.

·       تنظیمات و
پیکربندی لازم در خصوص چندین متغیر محیطی را انجام دهید.

قبل از انجام هر یک از مراحل فوق ،
پیشنهاد می گردد که در ابتدا یک فولدر موقت ایجاد و فایل هائی را که از اینترنت
دریافت می دارید ، در آن ذخیره نمائید ( نام فولدر فوق
download directory انتخاب شده است )

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

http://java.sun.com/j2se/1.4.1/download.html

مرحله دوم : دریافت مستندات جاوا
از طریق اینترنت :پس از انتخاب نوع سطستم عامل ، با فعال کردن لینک مربوط به
مستندات (
Documentation) ، امکان دریافت مستندات جاوا فراهم می گردد.

مرحله سوم : در صورتی که  بر
روی سیستم خود برنامه
WinZip موجود نباشد ، می توان آن را از
طریق آدرس زیر دریافت کرد :

http://www.winzip.com

مرحله چهارم : نصب محیط پیاده سازی :
با اجرای فایل
j2sdk-1_4_1-*.exe ( فایل فوق در مرحله یک دریافت شده است ) ، در ابتدا فایل از حالت فشرده خارج و در ادامه
عملیات نصب محیط پیاده سازی بصورت خودکار انجام خواهد شد.

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

مرحله ششم : تنظیمات محیط : فایل Autoexec.bat را با استفاده از ویرایشگر notepad فعال و بااستفاده از دستور PATH ، مسیر نصب محیط پیاده سازی جاوا
را مشخص نمائید.

مرحله هفتم : تست : پنجره MS-DOS ویندوز را فعال و دستور Javac را تایپ نمائید. در صورتی
که  مراحل قبل بدرستی انجام شده باشند ، می بایست پیامی مبنی بر نحوه استفاده
از
Javac بر روی مانیتور نمایش داده شود.
این بدان معنی است که همه چیز برای شروع آماده است . در صورتی که  پیام
"
Bad
coomand or file name
" ، نمایش داده شود ، نشاندهنده برزو اشکال در یکی از مراحل
نصب بوده است .

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

اولین برنامه جاوا
اولین برنامه جاوا که قصد توضیح آن را داریم ، بسیار ساده و
مختصر است . برنامه فوق  محیط لازم  برای رسم یک خط قطری را ایجاد می
نماید.بدین منظور عملیات زیر را می بایست انجام داد :

·       برنامه Notepad را فعال و برنامه مورد نظر را در آن تایپ نمائید.

·       برنامه را بر روی هارد دیسک ذخیره نمائید.

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

·       در صورت گزارش خطاء ، نسبت به رفع آنها اقدام گردد.

·       یک  صفحه وب Html ایجاد و از اپلت ایجاد شده در آن استفاده نمائید.

·       اپلت جاوا را اجراء نمائید.

متن برنامه اشاره شده بصورت زیر
است :

متن برنامه

import java.awt.Graphics;

 

public class FirstApplet extends java.applet.Applet

{

 

    public void paint(Graphics
g)

    {

        g.drawLine(0, 0, 200,
200);

    }

}

مرحله یک : تایپ برنامه به
منظور ذخیره نمودن برنامه ، فولدری با نام دلخواه ایجاد تا برنامه در آن ذخیره
گردد. در ادامه ویرایشگر
Notepad ( و یا هر ادیتور متنی دیگری که قادر به ایجاد فایل های با انشعاب TXT باشد ) را فعال و برنامه فوق را
تایپ ( و یا
Copy و Paste) نمائید. در زمان تایپ برنامه

فوق می بایست در رابطه با حروف
بزرگ و کوچک دقت لازم صورت پذیرد. در این رابطه لازم است که حروف بزرگ و کوچک دقیقا"
مشابه جدول فوق ، تایپ گردند.


 نوشته شده توسط وحید قویدل در یکشنبه 86/10/23 و ساعت 12:25 صبح | نظرات دیگران()


اکثر نرم افزارهائی را که شما تهیه و یا از طریق اینترنت
Download می نمائید ،
صرفا" به صورت نسخه های ترجمه شده و  آماده اجراء در اختیار شما قرار می
گیرند .  ترجمه ، فرآیندی است که در آن کد برنامه های نوشته شده توسط برنامه
نویسان  که از آنان به عنوان کد اولیه (
Source Code )
یاد می شود ، پس از استفاده از برنامه های خاصی موسوم به کمپایلرها به بگونه ای
ترجمه می شوند که توسط کامپیوتر قادر درک باشند . اعمال تغییرات دلخواه در اکثر
برنامه های ترجمه شده ، امری بسیار مشکل و گاها" غیر ممکن است . اکثر تولید
کنندگان نرم افزار از ویژگی فوق به منظور صیانت و حفاظت از کدهای نوشته شده ،
استفاده می نمایند .
نرم افزارهای
Open
Source
نقطه مقابل رویکرد فوق می باشند 
. در اینگونه نرم افزارها علاوه بر نسخه ترجمه شده ، کد اولیه نیز در اختیار
متقاضیان قرار می گیرد.بدین ترتیب امکان اعمال تغییرات و یا سفارشی نمودن آن
متناسب با خواسته استفاده کنندگان ، فراهم می گردد . افرادیکه از ایده
Open Source حمایت می نمایند بر این اعتقاد هستند که با اجازه دادن به اشخاصی
که علاقه مند به تغییر کد اولیه می باشند ، امکان استفاده مفیدتر از برنامه فراهم
و احتمال بروز خطاء در آنان، کاهش خواهد یافت .
ویژگی نرم افزارهای
Open Source  :

  • توزیع رایگان . این نوع برنامه
    ها ،  ممکن است به عنوان بخشی همراه یک بسته نرم افزاری ارائه شوند که
    به متقاضیان فروخته می گردند.
  • کد منبع می بایست بهمراه نرم
    افزار ،ارائه گردد .
  • هر شخص می بایست اجازه تغییر کد
    اولیه برنامه را داشته باشد  .
  • نسخه های اصلاح شده را می توان
    مجددا" توزیع نمود .
  • به مجوز سایر نرم افزارها نیاز
    نخواهد بود .

بد نیست اشاره ای به یک مثال واقعی
در دنیای نرم افزارهای
Open Source داشته باشیم .
در سال 1991 ، 
Linus Torvalds ، دانشجوی
دانشگاه هلسینکی فنلاند یک سیستم عامل جدید مبتنی بر
Minix (
اقتباس شده از یونیکس ) را ایجاد که نام آن را لینوکس (
Linux )
گذاشت . وی نسخه شماره 0.02 لینوکس را بر اساس  GNU General Public Licens که شامل تعاریف قانونی جامعی در خصوص نرم افزارهای
Open Source است ، ارائه نمود . تعداد زیادی از افراد در سرتاسر جهان اقدام به Download لینوکس و استفاده از آن نمودند . گروهی زیادی از افراد فوق خود
برنامه نویسان حرفه ای بودند که توانائی انجام تغییرات مورد نیاز در لینوکس را
داشتند .
Torvalds ، نسخه های اصلاح شده  توسط سایر برنامه تویسان را دریافت و
با لحاظ نمودن تغییرات ، در سال 1994 نسخه شماره یک لینوکس را عرضه نمود .
یک نکته نگران کننده  در خصوص نرم افزارهای
Open Source ،
فقدان ضمانت و پشتیبانی فنی از آنان است . با توجه به این موضوع که همواره امکان و
یا بهتر بگوئیم مجوز اعمال تغییرات و یا اصلاحات در این نوع نرم افزارها وجود دارد
، تقریبا" حمایت از آنان غیر ممکن و یا مشکل خواهد بود . بدین دلیل برخی از
شرکت های حامی نرم افزارهای
Open Source با توجه به
ارائه سرویس خدمات و پشتیبانی اینگونه نرم افزارها ، اقدام به فروش آنان می
نمایند. مثلا" نرم افزار
Red Hat در سال 1994
توسط
Official
Red
Hat
Linux
  عرضه گردید. نرم افزار فوق
رایگان نبوده و متقاضیان می بایست هزینه استفاده ( مالکیت ) از آن را پرداخت
نمایند. مهمترین ویژگی
Red Hat ، امکان پشتیبانی فنی از آن
است. برای اغلب سازمان ها و موسسات تضمین حمایت های فنی و پشتیبانی  یکی از
عوامل مهم تصمیم گیری در خصوص خرید لینوکس در مقابل
Download نمودن آن به صورت رایگان می باشد.  علاوه بر Red Hat ،
شرکت های متعدد دیگری نیز اقدام به عرضه لینوکس با توجه به سیاست ها و دیدگاه های
خاص خود نموده اند .در این رابطه نرم افزارهای متعددی با محوریت لینوکس نیز طراحی
و پیاده سازی شده است .
Mozilla ( هسته مرورگر Netscape ) ، سرویس دهنده وب Apache ، زبان
اسکریپت نویسی وب PERL و فرمت فایل های گرافکیی
PNG ،
نمونه هائی در این زمینه بوده که بر اساس ایده 
Open Source طراحی و پیاده سازی شده اند .


 نوشته شده توسط وحید قویدل در یکشنبه 86/10/23 و ساعت 12:23 صبح | نظرات دیگران()

حافظه یکی از مهمترین عناصر سخت افزاری استفاده شده در کامپیوتر است . بدین منظور از
حافظه های مختلف و با فنآوری های متفاوتی استفاده می گردد . حافظه های "ایستا
" (
Static ) و  "پویا" ( Daynamic )
، دو نمونه متدوال در این زمینه می باشند . کامپیوتر شما ممکن است هم دارای حافظه
static و
هم
dynamic باشد . از حافظه های فوق با توجه به تفاوت مشهود قیمت آنان با
اهداف متفاوتی اسفاده می گردد . با بررسی نحوه عملکرد هر یک از تراشه های حافظه
static و dynamic ، می توان به تفاوت های موجود و علت اختلاف قیمت آنان ، بیشتر
واقف گردید .

·         Dynamic RAM ، متداولترین نوع حافظه در حال حاضر محسوب می گردد . درون یک تراشه dynamic RAM ،
هر سلول حافظه صرفا" یک بیت اطلاعات را در خود ذخیره نموده و از دو بخش اساسی
تشکیل می گردد : یک ترانزیستور و یک خازن . به منظور ذخیره میلیون ها سلول حافظه
بر روی یک تراشه از تعداد انبوهی ترانزیستور کوچک و خازن استفاده می گردد . خازن
مسئولیت نگهداری صفر و یا یک را برعهده داشته و  ترانزیستور به منزله یک
سوئیچ است که مدار کنترلی بر روی تراشه  را به منظور خواندن خازن و یا تفییر
وضعیت آن ، مدیریت می نماید . خازن را می توان به منزله یک سطل کوچک در نظر گرفت
که قادر به ذخیره الکترون ها می باشد . به منظور ذخیره سازی مقدار یک در حافظه ،
می بایست سطل فرضی از الکترون ها پر گردد و برای ذخیره مقدار صفر ، این سطل می
بایست خالی گردد . مهمترین مشکل سطل فرضی ، وجود نشتی و یا سوراخی در آن است که
باعث می گردد پس از گذشت مدت زمانی مشخص ، خالی گردد . در مدت زمانی کمتر از چند
میلی ثانیه ، یک سطل پر از الکترون ، خالی می گردد . به منظور نگهداری وضعیت خازن
و ذخیره سازی مقدار یک قبل از تخلیه خازن ، می بایست پردازنده و یا کنترل کننده حافظه
، خازن را شارژ نمایند . بدین منظور کنترل کننده حافظه ، حافظه را خوانده و آن را
مجددا" بازنویسی می نماید . فرآیند فوق که به
Refresh معروف است به صورت اتوماتیک در هر ثانیه ، هزاران مرتبه تکرار می گردد . علت
نامگذاری این نوع از حافظه ها به
dynamic به مفهوم
فرآیند
Refresh برمی گردد .حافظه های dynamic ، می بایست به
صورت پویا بازخوانی و بازنویسی گردند و گرنه تمامی اطلاعات موجود در آنان از بین
خواهد رفت . علاوه بر موارد فوق ، عملیات
Refresh زمان خاص خود
را داشته و باعث می گردد سرعت آنان ، کاهش یابد  .
 

·          Static RAM از یک تکنولوژی کاملا" متفاوت با dynamic RAM ،
استفاده می نماید.  در حافظه های
static از یک نوع
فلیپ فلاپ خاص که هر یک از بیت های حافظه را در خود نگهداری می نماید، استفاده می
گردد . یک فلیپ فلاپ برای هر سلول حافظه از چهار تا شش ترانزیستور استفاده می
نماید . در این نوع حافظه ، ضرورتی به عملیات
Refreshing ،
نبوده و بدیهی است که سرعت آنان در مقایسه با حافظه های
dynamic بمراتب بیشتر می باشد . با توجه به این که این نوع از حافظه ها دارای بخش ها و
عناصر بیشتری می باشند ، یک سلول حافظه
Static فضای بمراتب
بیشتری را نسبت به یک سلول حافظه
dynamic  بر روی
تراشه ، اشغال خواهد کرد.  بنابراین شما حافظه کمتری را در هر تراشه خواهید
داشت و بدیهی است که قیمت آنان نیز افزایش خواهد یافت ( میزان حافظه قابل استفاده
بر روی هر تراشه ) .

با توجه به موارد اشاره
شده ، حافظه های
Static سریع و گرانقیمت و حافظه های  dynamic ارزان و کند می باشند . از حافظه های Static به منظور
ایجاد حافظه های
Cache ریزپردازنده ( حساس به سرعت ) و از حافظه های dynamic به منظور فضای ذخیره سازی اصلی در سیستم ها ، استفاده می گردد .
 


 نوشته شده توسط وحید قویدل در یکشنبه 86/10/23 و ساعت 12:23 صبح | نظرات دیگران()

اگر تاکنون از کامپیوتر حتی به
مدت پنج دقیقه استفاده کرده باشید  بیت و بایت برای شما کلماتی غریب نخواهند
بود. ظرفیت حافظه اصلی، هارد دیسک ، فلاپی
دیسک ها
و... با بایت اندازه گیری می گردد. در زمان مشاهده لیست فایل
ها توسط  برنامه های نمایش دهنده فایل ها ، ظرفیت یک فایل نیز توسط بایت مشخص
می گزدد.  در زمان تهیه یک کامپیوتر با عباراتی مشابه : " این کامپیوتر
دارای یک پردازنده 32 بیتی پنتیوم ،
حافظه با ظرفیت 256 مگابایت و هارد دیسک با ظرفیت
10.2 گیگابایت است " ، برخورد داشته اید. در
این بخش به بررسی مفهومی هر یک از موارد پرداخته تا از این رهگذر شناخت مناسبی
نسبت به آنها بوجود آید.

 اعداد دهدهی
 
ساده ترین روش شناخت بیت ها مقایسه آنها با " ارقام
" است . یک رقم محلی برای ذخیره نمودن مقادیر عددی بین صفر تا نه  است .
ارقام با یکدیگر ترکیب و اعداد بزرگ را بوجود می آورند. مثلا" عدد 100618
شامل شش رقم است . در عدد فوق هر رقم دارای جایگاه اختصاصی خود است . مثلا"
رقم 8 در اولین جایگاه ( رتبه یکان ) و رقم 1 در دومین جایگاه ( رتبه دهگان ) و
رقم 6 در سومین جایگاه ( رتبه صدگان)  قرار دارند. نحوه محاسبه عدد فوق بصورت
زیر است :

 

( 1 * 100000)
+ ( 0 * 10000) + ( 0 * 1000) + ( 6 * 100 ) + ( 1 * 10) + ( 8 * 1 ) = 100618
 

  روش دیگر برای محاسبه عدد فوق استفاده
از توان های متفاوت ده است .

 

(  1 *
10^5) + ( 0 * 10^4 ) + ( 0 * 10^3) + ( 6 * 10^2) + ( 1 * 10^1) + ( 8 * 10^0)
= 100618

 ما
از اعداد دهدهی روزانه استفاده می کنیم . در سیستم عدد نویسی فوق از ده رقم برای
تولید اعداد استفاده می گردد. سیستم های عدد نویسی بر اساس مبنا های متفاوت دیگر
نظیر: مبنای هشت، شانزده و دو نیز وجود دارد. برای استفاده از سیستم های متفاوت
عدد نویسی قطعا" دلایل قانع کننده ای وجود دارد.

 بیت
در
کامپیوتر از سیستم عدد نویسی مبنای دو استفاده می شود. سیستم فوق را سیستم عدد
نویسی باینری
نیز می گویند. علت استفاده از مبنای دو در کامپیوتر سهولت در
پیاده سازی آنها توسط تکنولوژی های موجود الکترونیک است . می توان کامپیوترهائی را
ساخت که از مبنای ده استفاده نمایند ولی قطعا" قیمت ساخت آنها شاید مقرون
بصرفه نبوده و استفاده از مبنای دو از بعد پیاده سازی مطمئنا" مقرون بصرفه تر
از سایر مبناهای عدد نویسی است .در مبنای دو از ارقام باینری ( صفر و یک ) استفاده
می گردد. کلمه " بیت " از کلمات
Binary digIT اقتباس شده است . در سیستم عدد نویسی مبنای ده از ده رقم و در
سیستم عدد نویسی مبنای دو از دو رقم بمنظور تولید اعداد استفاده می گردد.بنابراین
یک عدد باینری صرفا" شامل ارقام صفر و یک است .  برای محاسبه عدد 1011
از چه روشی استفاده می گردد؟ برای محاسبه عدد فوق در مبنای دو از همان روشی
استفاده می گردد که در محاسبه عدد 100618 در مبنای ده استفاده شد با این تفاوت که
از توان های متفاوت عدد دو استفاده خواهد شد.

( 1 * 2^3 )
+ ( 0 * 2^2) + ( 1 * 2^1) + ( 1 * 2^0)

در مبنای دو هر بیت توان های متفاوت
دو را بصورت تصاعدی در بر خواهد داشت . بنابراین بسادگی می توان یک عدد باینری را
شمارش نمود. ( 1 و 2 و 4 و 8 و 16 و 32 و 64 و 128 و 256 و ... ) . مثلا" عدد
1001 شامل 1 + 8  بوده که عدد 9 را نشان خواهد داد.

بایت
هر بیت
می تواند صرفا" شامل یکی از ارقام صفر و یا یک باشد. ( از لحاظ مقداردهی
دارای محدودیت هستند و فقط می توان بکمک آنها دو حالت و یا مفهوم را ارائه داد ).
از ترکیب هشت بیت ، یک بایت بوجود می آید. چرا هشت بیت در یک بایت است ؟  با
استفاده از هشت بیت در یک بایت ، می توان 256 مقدار ( صفر تا 255 ) را نشان داد.

 0 = 00000000  1=
00000001      2 = 00000010   ... 254 =
11111110  255 = 11111111

از بایت  برای ذخیره سازی کاراکترها
در مستندات مبتنی بر متن (
Text) استفاده می
گردد. در مجموعه کاراکتر اسکی (
ASCII) هر یک از
مقادیر بین صفر تا 127 دارای یک کاراکتر خاص است . اغلب کامپیوترها جدول اسکی را
توسعه تا بتوانند از 256 کاراکتر بطور کامل در یک بایت استفاده نمایند.از 
128 بایت بعدی برای موارد خاصی نظیر کاراکترهای موجود در یک زبان غیر انگلیسی
استفاده می گردد. کامپیوترها مستندات متنی را در حافظه و یا دیسک بر اساس کدهای
فوق ( اسکی ) ذخیره می نمایند. مثلا" از برنامه
NotePad در
ویندوز برای ایجاد یک فایل متنی با محتویات "
Four Seven"
استفاده و فایل فوق را با نام
Test.txt ذخیره نمائید.
پس از ذخیره نمودن فایل و مشاهده فایل مورد نظر در برنامه های نمایش دهنده مشخصات
فایل ها متوجه خواهید شد که ظرفیت فایل فوق 27 بایت است . ( یک بایت برای هر حرف )
در صورتیکه معیار مشاهده ما به فایل فوق بر اساس دیدگاه کامپیوتر باشد ، بجای هر
حرف یک عدد ( معادل کد اسکی ) را مشاهده خواهیم کرد.

F      
o      u       
r               
s       e     
v      e     n 
70    111  117   114  
32      115    101   118  101
 110

با مراجعه به جدول اسکی و مشاهده آن
متوجه خواهید شد که یک نتاظر یک به یک بین کدها و معادل حرفی آنها وجود دارد.

بایت های فراوان !
 برای
سنجش میزان حافظه اصلی ، هارد دیسک  و ... که دارای بایت های فراوانی می
باشند از مجموعه ای " پیشوند" قبل از نام بایت استفاده می گردد. ( کیلو،
مگا ، گیکا   نمونه هائی ازاین پیشوندها می باشند) جدول زیر برخی از
پیشوندها بهمراه کاربرد هر یک را نشان می دهد.

نام

مخفف

اندازه

Kilo

K

2^10 = 1,024

Mega

M

2^20 = 1,048,576

Giga

G

2^30 = 1,073,741,824

Tera

T

2^40 = 1,099,511,627,776

Peta

P

2^50 = 1,125,899,906,842,624

Exa

E

2^60 = 1,152,921,504,606,846,976

Zetta

Z

2^70 = 1,180,591,620,717,411,303,424

Yotta

Y

2^80 = 1,208,925,819,614,629,174,706,176

با توجه به جدول فوق می توان چنین
برداشت کرد که : کیلو تقریبا" معادل هزار ، مگا تفریبا" معادل میلیون ،
گیگا تقریبا" معادل میلیارد و ... است. بنابراین زمانیکه شخصی عنوان می نماید
که دارای هارد دیسکی با ظرفیت دو گیگا بایت است  ، معنای سخن وی اینچنین
خواهد بود : " هارد دیسک وی دارای توان ذخیره سازی دو گیگا بایت ، یا
تقریبا" دو میلیارد بایت و یا دقیقا" 2,147,483,648 بایت است
." 
امروزه استفاده از رسانه های ذخیره سازی با ظرفیت بالا بسیار رایج بوده و ما شاهد
حضور و استفاده از بانک های اطلاعاتی با طرفیت بسیار بالا ( چندین ترابایت ) در
موارد متعدد هستیم .

 


 نوشته شده توسط وحید قویدل در یکشنبه 86/10/23 و ساعت 12:22 صبح | نظرات دیگران()

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

ادامه مطلب...

 نوشته شده توسط وحید قویدل در یکشنبه 86/10/23 و ساعت 12:21 صبح | نظرات دیگران()
<      1   2   3   4   5   >>   >
 لیست کل یادداشت های این وبلاگ
نرم افزارهای ضدویروس
[عناوین آرشیوشده]

بالا

طراح قالب: رضا امین زاده** پارسی بلاگ پیشرفته ترین سیستم مدیریت وبلاگ

بالا