همراه
سيستم عاملLimo
بهزودي شاهد عموميت سيستم عاملهاي لينوكس بر روي گوشيهاي موبايل خواهيد بود. اين سيستم عامل كه به اصطلاح Limo نام دارد، از اختصار دو كلمهlinux و Mobile تشكيل شده است. شركتهاي NEC، موتورولا و پاناسونيك هفت مدل از گوشيهاي جديد خود را كه با اين سيستم عامل كار ميكنند را معرفي كردند.
با ارايه اين هفت مدل، مجموع گوشيهايي كه از اين سيستم استفاده ميكنند، به 27 عدد رسيد. اما پيش بيني ميشود بهزودي شاهد به دست آوردن سهم بزرگتر و بيشتري از بازارهاي موبايل توسط اين سيستم عاملها باشيم.
در اين سيستم شما قادر به استفاده از مواردي همچون تلويزيون موبايل، ردياب ماهوارهاي و اينترنت پرسرعت هستيد. همچنين بهزودي شركتهاي بزرگي چون سامسونگ نيز از اين سيستم استفاده خواهند كرد.
چاپگرهاي كوچك موبايل
شركت سيكو(Seiko) چاپگرهاي كوچكي را توليد و معرفي كرده كه مخصوص موبايل است و اندازهاي بسيار كوچك دارد.
اين چاپگر كه 544DPU-S نام گرفته، اين قابليت را دارد كه از طريق كابل، پرتو فروسرخ(IR) يا بلوتوث اقدام به دريافت عكس و چاپ آن كند. همچنين وزن آن 446 گرم است و ميتواند عكسها را با سرعت 90 ميلي متر برثانيه پردازش و با كيفيت302dpi چاپ كند. منبع تغذيه اين دستگاه، تنها 2 عدد باتري كوچك است كه علاوه بر كوچكي، ميتوانند تا مدتها قابل استفاده باشد. قيمت اوليه اين دستگاه حدود 300دلار خواهد بود.
گوشي جديد سامسونگ 7110i
يك عكس از گوشي جديد سامسونگ پيش از اعلام رسمي توسط آن شركت رونمايي شد. اين گوشي كه 7110i نام دارد از سيستم عامل سيمبيان بهره ميبرد و يك دوربين 5 مگاپيكسلي دارد. اما هنوز كاملا مشخص نيست كه فلاش استفاده شده براي اين گوشي دو عدد LED است يا از فلشهاي زنون استفاده خواهد شد.
همچنين اين گوشي قابليت پشتيباني از كارتهاي حافظه و پورتUSB را نيز دارد و اين نيز از عكسهاي منتشر شده از آن گوشي پيداست. ما نيز اميدواريم در آينده اطلاعات بيشتري از اين گوشي به دست بياوريم اما بهطور حتم اين گوشي از امكانات بهروز، همچونGPS و يا دسترسي پرسرعت به اينترنت استفاده خواهد كرد.
@@@
انواع دستورات در برنامهنويسي پوسته
لينوكس براي همه
سرجمع دو نوع دستور در پوسته وجود دارد: يك سري دستورهاي «معمولي» هستند كه ميشود از خط فرمان ( Command Prompt ) هم آنها را اجرا كرد (كه به آنها دستورات خارجي هم گفته ميشود)، و يك سري دستور «از پيش تعيين شده» هم وجود دارد كه (دستورات داخلي ناميده ميشود) پيشتر به آنها اشاره شد.
دستورات داخلي نميتوانند بهعنوان برنامه فراخوانده شوند. البته، چندان هم مهم نيست كه يك دستور داخلي است يا خارجي؛ جز اينكه دستورات داخلي بهتر اجرا ميشوند. در اين بخش، تنها دستورات مهم خارجي و داخلي را بررسي خواهيم كرد.
اگر كاربر لينوكس هستيد، بهطور قطع دستورات ديگري را ميدانيد كه ميشود در خط فرمان بهكار برد، پس ميتوانيد از آنها هم در اسكريپت پوسته خود بهره بگيريد.
break
دستور < break>براي فرار از حلقههاي بسته for ، while و until بهكار ميرود. ميتوانيد با break چند بار از حلقه فرار كنيد، اما اينكار باعث ميشود تا خوانايي اسكريپت پايين بيايد، و پيشنهاد نميشود. تنها كافيست بدانيد كه بهطور پيشفرض، break از يك سطح (يك دور) حلقه فرار ميكند.
:
دستور <:> (دونقطه، كولن) دستور پوچي است. اغلب براي ساده كردن منطق عبارات بهكار ميرود و صورت ديگري براي true است. چون دستور تعبيه شدهاي است، پس از true سريعتر اجرا ميشود، هرچند خروجي كار كمتر خواناست. ممكن است در عباراتي مانند while: آن را مشاهده كنيد كه در واقع، بهجاي while true مينشيند و منظور همان حلقه نامتناهي هميشگي است، اما پركاربردتر است.
دستور دو نقطه در مقداردهي به متغيرها نيز بهكار ميآيد، مثلا در دستور:
ت$تvar:=value:
بدون حضور:، پوسته سعي ميكند $var را بهعنوان يك دستور اجرا كند.
نكته:در اسكريپتهاي پوستههاي قديمي، ممكن است نگاهتان به كولني بيفتد كه ابتداي خط شروع شده است. آن براي كامنت گذاشتن است، اسكريپتهاي مدرنتر براي ايجاد خط كامنت از استفاده ميكنند، بههمان دليل اجرا شدن سريعتر.
continue
درست همانند همنام اين دستور در زبان C، اين دستور از حلقههاي for، while يا until خارج ميشود و حلقه را به دور بعدي ميفرستد و متغير حلقه مقدار بعدي خود را ميگيرد.
َ!/bin/sh
rm -rf fred*
1fred<echo
2fred<echo
3mkdir fred
4fred<echo
for file in fred*
do
if [ -d “$file”]; then
echo “skipping directory $file”
continue
fi
file$echo file is
done
rm -rf fred*
0exit
continue ميتواند عدد شمارنده حلقه را بهعنوان پارامتر انتخابي بگيرد تا بتوانيد از بخشي از حلقه تو در تو بيرون برويد. اين كار هم بهندرت استفاده ميشود و باعث ميشود تا اسكريپت شما سختتر فهميده شود. براي مثال:
3 2 1for x in
do
x$echo before
1continue
x$echo after
done
خروجي زير را خواهد داد:
1before
2before
3before
.
دستور < . > (نقطه، دات)، دستوري را در همين پوسته اجرا ميكند:
shell-script/. .
اغلب، وقتي يك اسكريپت دستور خارجي يا اسكريپتي را اجرا ميكند، محيطي جديد (Subshell) ، يا زيرپوسته ايجاد ميشود و دستور در محيط جديد اجرا ميشود و آن محيط با كد خروجياي كه از اجراي اسكريپت حاصل ميشود، بسته شده و كد را به پوسته والد بر ميگرداند.
هرچند دستور خارجيsource و دستور نقطه دستوراتي كه در يك اسكريپت همان پوسته قرار دارند را اجرا مي كند. چون بهطور پيشفرض با اجراي يك اسكريپت پوسته، محيط جديدي ايجاد ميشود، هر تغييري كه اسكريپت در متغيرهاي محيطي ايجاد كند، نابود ميشوند.
از طرف ديگر دستور نقطه اجازه ميدهد اسكريپت اجرا شده محيط فعلي را تغيير دهد. اين كار هنگام استفاده از اسكريپتي كه به عنوان Wrapper (پوشا) براي تنظيم محيط فعلي بهمنظور اجراي دستورات بعدي بهكار ميرود، بسيار مفيد است.
مثلا وقتي داريد روي چند پروژه بهصورت همزمان كار ميكنيد، احتمالا به خودتان ميآييد و ميبينيد داريد دستورات را با پارامترهاي مختلفي فراخوان ميكنيد و لابد نسخه كامپايلر قديمي را براي راهاندازي برنامههاي قديمي مدام صدا ميزنيد.
در اسكريپتهاي پوسته، دستور نقطه كمي شبيه شبهكدinclude درC ياC++ عمل ميكند. هرچند كه در حقيقت اسكريپت را include نميكند، دستورات را در همين محيط اجرا ميكند و بههمين دليل، شما ميتوانيد از اين دستور براي مجتمعسازي متغيرها و تعريف توابع در يك اسكريپت استفاده كنيد.
echo
صرفنظر از استفاده printf در پوستههاي مدرن، تا همين الان مثالها را با استفاده از دستور echo براي چاپ يك رشته، كه بهدنبالش كاراكتر خط جديد دارد، حل كرديم. منتها، مشكل اينجاست كه نسخههاي مختلف UNIX راهحلهاي مختلفي براي اينكار (چسبانيدن كاراكتر خط جديد به انتهاي رشته چاپي) دارند، اما عموما اين دستور جوابگو است و نيازي به مراجعه به راهنماي دستور نداريد:
echo n “String To Output”
eval
دستور eval شما را قادر ميسازد تا دستورات را مقدار دهي كنيد. اين دستور تعبيه شده است و نميتوان بهعنوان دستور خارجي از آن استفاده كرد. بهترين و واضحترين مثالي كه ميتوان از اين دستور آورد، هماني است كه در صفحه راهنماي آن آورده شده:
10foo=
x=foo
x”$”$y=
y$echo
واضح است كه اين دستور خروجي $foo را ميدهد، اما اين جا را نگاه كنيد:
10foo=
x=foo
x”$”$eval =y
y$echo
خروجي 10 را ميدهد. انگارeval يك جورهايي شبيه يك $ اضافه باشد: مقدارِ مقدارِ يك متغير را به ما ميدهد. دستورeval خيلي مفيد است، باعث ميشود كد ايجاد شده و روي هوا (on-the-fly) اجرا شود. ديباگ آن سخت ميشود اما باعث ميشود كارهايي كه پيادهسازيشان جور ديگر سخت يا حتا غيرممكن است، بهسادگي پياده كرد.
exec
دستور < exec >دو كاربرد مختلف دارد. كاربرد معمولاش جايگزيني پوسته فعلي با برنامه ديگري است. براي مثال:
Exec wall “thanks for all the fish”
را اگر در يك پوسته بهكار ببريم، پوسته فعلي را با دستور wall جايگزين ميكند. هيچ خطي در اسكريپت بعد از دستور exec اجرا نميشود، چرا كه پوستهاي كه اسكريپت ما را ايجاد ميكرد ديگر وجود ندارد.
راه حل دوم استفاده از exec تغيير توضيحدهندههاي فايل است. براي نمونه:
> afile3exec
باعث ميشود كه توضيحدهنده فايل 3 باز شود تا از فايلafile بخواند. اين دستور بهندرت بهكار ميآيد.
exit n
دستور <exit >باعث ميشود تا اسكريپت با كد خروجيn خارج شود. اگر در خط فرمان هر پوستهاي اجرايش كنيد، شما را از سيستم بيرون ميفرستد. اگر به اسكريپت خود اجازه بدهيد كه بدون هيچ كدي كه نشانگر وضعيت خروج باشد، دستورexit را اجرا كند، در اينصورت كد وضعيت آخرين دستور اجرا شده در اسكريپت بهعنوان مقدار بازگشتي مورد استفاده قرار ميگيرد. استفاده از كد خروجي هميشه تمرين خوبي است و بايد عادت بشود.در برنامهنويسي اسكريپت پوسته، كد خروجي 0 يعني موفقيت، و كدهاي 1 تا 125، كدهاي خطايي هستند كه در اسكريپتها ميتوان از آنها استفاده كرد. مقادير باقيمانده معناي رزرو شده دارند، جدول زير را ببينيد:
استفاده از 0 براي خروجي موفقيت آميز، شايد براي كاربران C يا C++ كمي عجيب بهنظر برسد. ويژگي خوبي كه در اسكريپتها به چشم ميآيد، اين است كه ميتوانيد از 125 كد تعريفي توسط كاربر بدون احتياج به متغير عمومي(global) استفاده كنيد.
export
دستور <export >باعث ميشود متغيرها درsubshell ها نيز بتوانند استفاده شوند. بهطور پيشفرض هيچ متغيري در يك پوسته نميتواند داخل پوستهsubshell/ هاي ديگر بهكار گرفته شود. دستورexport از پارامترهاي خود متغير محيطي درست ميكند كه بتوانند در اسكريپتها و برنامههاي ديگري كه از برنامه فعلي فراخوانده ميشوند، مورد استفاده قرار بگيرند. اگر بخواهيم فنيتر بگوييم، متغيرهاي صادر شده متغيرهاي محيطي هر پروسس فرزندي را كه از پوسته ايجاد شده تشكيل ميدهند. بياييد يك مثال را ببينيم:
فايل2export
َ!/bin/sh
“foo$”echo
“bar$”echo
فايل1export
َ!/bin/sh
”The first meta-syntactic variable”foot=
The second meta-”export bar=
”syntactic variable
2export
اگر اين اسكريپت را اجرا كنيم، خروجي اينطوري ميشود:
1./export$
The second meta-syntactic variable
$
كد خروجي شرح
126 فايل قابل اجرا شدن نيست
127 دستور يافت نشد
128و بالاتر سيگنالي رخ داد
@@@
تجمع قدرت در يك زبان
هفته گذشته در مورد زبان C و ++C صحبتهايي مطرح شد و از آنها به عنوان زبانهاي قدرتمند چند منظوره نام برديم. در ادامه سعي داريم كمي بيشتر به اين زبانها بپردازيم و البته تمركز ما بيشتر روي زبان شيگراي ++C خواهد بود.
در زبانهاي برنامهسازي ساخت يافته مثل C، برنامهها به فعاليتها توجه دارند. در حالي كه در زبان ++C و ساير زبانهاي شيگرا به اشيا توجه ميشود. در C واحد برنامهنويسي تابع است و در ++C واحد برنامهنويسي، كلاسي است كه اشيا سرانجام از آن نمونهسازي و ايجاد ميشوند. برنامهنويسان C، روي نوشتن توابع متمركز ميشوند. گروهي از فعاليتها كه كار مشتركي را انجام ميدهند، به شكل تابع در ميآيند و گروهي از توابع، برنامه را ايجاد ميكنند. دادهها نيز درC اهميت دارند. ولي فرض ميشود دادههاي مورد نياز فعاليتهايي كه تابع انجام ميدهد، مهياست. مشخصات سيستم و افعال موجود در صورت مساله به برنامهنويسC كمك ميكند، توابعي را تعيين كند كه بايد با هم كار كنند تا سيستم را پياده سازي كنند.
برنامهنويس++C روي ايجاد انواع جديدي به نام كلاس متمركز ميشود. در هر زبان انواع دادهاي مشخصي وجود دارد كه به آنها انواع ابتدايي گفته ميشود. به عنوان مثال نوع دادهايint مشخص كننده داده عددي صحيح، float داده عددي اعشاري، double داده عددي اعشاري بزرگ، char داده كاراكتري وbool داده دو مقداري درست يا غلط است.
برنامهنويس ميتواند با استفاده از انواع ابتدايي، انواع ديگري را ايجاد كند كه به آنها انواع جديد گفته ميشود.
توابع و اعضاي دادهاي
داخل هر كلاس، تعدادي داده وجود خواهد داشت كه به آنها اعضاي دادهاي كلاس گفته ميشود. علاوه بر اعضاي دادهاي، توابعي درون كلاس وجود دارد كه دادهها را دستكاري ميكنند. به اين توابع به اصطلاح متدهاي كلاس يا توابع عضو گفته ميشود.
لازم است بدانيم كه نمونهاي از هر نوع ابتدايي را يك متغير گوييم. يك متغير در واقع مقدار مشخصي از حافظه اصلي(RAM) است كه براي نگهداري يك مقدار رزرو ميشود. اندازه هر متغير در حافظه به نوعي داده اوليه بستگي دارد. به عنوان مثال در ++C ، متغيري از نوع دادهاي char يك بايت از حافظه را براي ذخيره يك كاراكتر رزرو ميكند و يا متغيري از نوع int ، بسته به نوع كامپايلر 2 يا 4 بايت از حافظه را براي نگهداري يك عدد صحيح رزرو ميكند. در صورتي كه نوع int به اندازه 2 بايت باشد به اين معني است كه ميتواند عددي بين 32768- تا 32767 را در خود نگه دارد.
كلاس در واقع يك نوع جديد از انواع داده اوليه است كه به نمونهاي از آن شي گفته ميشود. هر شي نيز مانند متغير، فضايي از حافظه را رزرو ميكند. ميزان اين فضا نيز مجموع اندازههاي متغيرهاي تعريف شده درون آن كلاس است.
در اينجا ذكر يك نكته ضروري به نظر ميرسد. ميدانيم كه درون يك كلاس علاوه بر اعضاي دادهاي توابعي نيز تعريف ميشوند. اين توابع گاهي ممكن است توابعي بزرگ و پيچيده باشند. بايد دقت داشت كه اندازه يك شي به اندازه توابع تعريف شده داخل كلاس مربوط ربطي نخواهد داشت و اين توابع در زمانهاي نياز به صورت مرجع از همان كلاس مربوطه فراخواني ميشوند. بنابراين اندازه يك شي، مستقل از تعداد و اندازه توابع تعريف شده داخل كلاس مربوطه، تنها به تعداد و نوع اعضاي دادهاي آن بستگي خواهد داشت.
گفتيم در زبان ساختيافته، افعال موجود در صورت مساله به برنامهنويس براي پيادهسازي سيستم كمك ميكند. اما در برنامهنويسي شيگرا مثل++C اسامي موجود در صورت مساله به برنامهنويس كمك ميكند تا كلاسهايي را تعيين كند كه با ايجاد اشيايي از آنها با يكديگر كار ميكنند سيستم را پيادهسازي كند.اگر نرمافزار از كلاس ساخته شود، از اين كلاسها ميتوان در برنامههاي ديگر نيز استفاده كرد. به همين دليل، كلاسها قابليت استفاده مجدد را دارند. ويژگي استفاده مجدد، نقش كليدي و مهمي در مهندسي نرمافزار و برنامهنويسي دارد. هر كلاس جديدي كه ايجاد ميكنيم، ممكن است قطعه ارزشمندي براي توليد نرمافزار محسوب شود و براي سرعت در برنامهنويسي ميتوان آن را در برنامههاي آينده به كار برد.
برخي ويژگيهاي C++
بسياري از افراد++C را يك زبان سطح بالا نميدانند و آن را از دسته زبانهاي مياني برميشمارند.
علت آن است كه اين زبان همانند زبان سطح پاييني مثل اسمبلي ميتواند مستقيما به حافظه دستيابي داشته باشد و با مفاهيم بيت، بايت و آدرس كار كند و از طرف ديگر، برنامههاي اين زبان، همچون زبانهاي سطح بالايي مثل پاسكال، از قابليت خوانايي بالايي برخوردارند. به عبارت ديگر، دستورالعملهاي اين زبان، به زبان محاورهاي انسان نزديك است كه اين ويژگي، مربوط به زبانهاي سطح بالاست.
++C زباني بسيار قدرتمند و انعطافپذير است. در اين زبان هيچ محدوديتي براي برنامهنويس وجود ندارد. هر آنچه را كه فكر ميكنيد ميتوانيد در اين زبان پيادهسازي كنيد.
++C زبان برنامهنويسي سيستم است. برنامههاي سيستم، برنامههايي هستند كه امكان بهرهبرداري از سختافزار و ساير نرمافزارها را فراهم ميكنند. سيستم عامل، كامپايلر، اسمبلر و نرمافزار مديريت بانك اطلاعاتي ازجمله برنامههاي سيستم هستند. پيش از اين نيز گفته بوديم كه سيستم عاملي همچون Unix يا Linux با استفاده از اين زبان نوشته شدهاند. همچنين اين زبان براي نوشتن نرمافزارهاي راهانداز سختافزارهاي جديد كه تازه طراحي ميشوند مناسب است.
بين زبان ++C و اسمبلي ارتباط نزديكي وجود دارد. ميتوان در اين زبان از تمامي قابليتهاي زبان اسمبلي بهره برد. اشخاصي كه به زبان اسمبلي مسلط هستند و به زبان ++C برنامه مينويسند گاهي براي نوشتن يك قطعه كد كه بايد به زبان ++C نوشته شوند ممكن است احساس كنند كه نوشتن آن به زبان اسمبلي برايشان راحتتر است. آنها با استفاده از قابليت موجود در ++C ميتوانند به طور مستقيم در برنامههاي ++C از كدهاي اسمبلي استفاده كنند++C . نسبت به حروف حساس است. (Case Sensitive) يعني در اين زبان بين حروف كوچك و بزرگ تفاوت است و تمام كلمات كليدي اين زبان با حروف كوچك نوشته ميشوند. به عنوان مثال كلمه for يك كلمه كليدي زبان ++C است، اما كلمه FOR كليدي نيست. براي جلوگيري از وقوع خطاهاي دستوري، توصيه ميشود كه كل يك برنامه در زبان ++C با حروف كوچك نوشته شود. مگر اين كه قانونمندي خاصي در حروف كوچك و بزرگ توسط برنامهنويس تعريف و تعيين شود و همچنين به اين قانونمندي عادت داشته باشد و راحت به آن عمل كند.
تعداد كلمات كليدي زبان ++C كم است و به عبارتي اين زبان، زباني نسبتا كوچك است. البته نبايد به اشتباه تصور شود كه هر چه تعداد كلمات كليدي يك زبان بيشتر باشد، آن زبان قدرتمندتر است. به واقع اين دو مساله هيچ ربطي به هم ندارند. به عنوان مثال زباني مثل Basic با حدود 150 كلمه كليدي، توانايي كمتري نسبت به ++C كه زباني با تعداد كلمات كليدي كمتر است، دارد.
هر برنامه ++C از قطعاتي به نام كلاس و تابع تشكيل شده است. براي ايجاد برنامه ميتوانيد كلاس يا تابع موردنياز را بنويسيد، اما توابع و كلاسهاي بسيار زيادي از قبل نوشته شده همراه كامپايلر ++C وجود دارد كه برنامهنويس ميتواند براي ايجاد برنامه از آنها استفاده كند. بنابراين در دنياي برنامهنويسي دو مساله مطرح است. يكي خود زبان و ديگري چگونگي استفاده از توابع و كلاسهاي آماده موجود موسوم به توابع كتابخانهاي.
قابليت حمل
قابليت حمل اصطلاحي است كه در برنامهنويسي مطرح است و به اين معناست كه بتوان يك برنامه را كه در يك نوع رايانه نوشته شده است. بدون تغيير يا با اعمال اندك تغييرات، در رايانه نوع ديگر نيز اجرا كرد. ++C اين قابليت را دارد كه بتوان برنامه نوشته شده را در رايانه ديگر با كامپايلر مخصوص همان رايانه مجددا كامپايل و استفاده كرد. به اين خصوصيت زبان قابليت حمل گفته ميشود. به عبارتي زبان ++C زباني قابل حمل است. البته توجه داشته باشيد كه تمام رايانههاي با پردازنده اينتل از يك نوع به شمار ميروند. قابليت حمل براي رايانههايي با انواع مختلف مطرح است.
با توجه به اين توضيحات به راحتي ميتوان نتيجه گرفت كه زبان اسمبلي زباني قابل حمل نيست. زيرا همان طور كه قبلا نيز اشاره كرديم، هر پردازنده دستورالعملهاي خاص خود را دارد و زبان اسمبلي آن با زبان اسمبلي پردازندههاي ديگر متفاوت است. بنابراين نميتوان برنامه مربوط به يك پردازنده را بدون تغيير و حتي با اندك تغيير براي پردازنده ديگر اجرا كرد و بايد آن برنامه به طور كلي براي پردازنده ديگر بازنويسي شود. اين يكي از بزرگترين اشكالات زبان غيرقابل حملي مثل اسمبلي است.
زبان ++C قابليتهاي بسيار ديگري نيز دارد كه از برخي آنها چشمپوشي كرده و برخي را در جاي مناسبي مطرح خواهيم كرد.
@@@
نگاه به همه چيز به چشم اشيا
اولين روشي كه براي نوشتن راحتتر برنامهها با خوانايي بالا مطرح شد، روش ساخت يافته بود كه در مورد آن صحبت كرديم. اما گفتيم كه به دليل مشكلات موجود، اين روش در مقياسهاي حجمي بالا پاسخگو نبوده و نگهداري آن سخت ميشود.
از همين رو شيوه جديدي تحت عنوان برنامهنويسي شيءگرا مطرح شد كه اين مشكلات را از ميان برداشت. در اين روش قطعاتي تحت عنوان شيء ساخته ميشوند كه از آنها ميتوان در برنامههاي ديگر نيز استفاده كرد. البته بايد توجه داشت كه ساخت اشيا در برنامهنويسي شيءگرا، خود از روش ساخت يافته تبعيت ميكند. بنابراين فردي كه از اين روش استفاده ميكند بايد به طور كامل به برنامهنويسي ساخت يافته مسلط باشد.
مفهوم شيء
اگر به اطراف خود نگاه كنيد اشيا بسياري را مشاهده خواهيد كرد. انسان توانايي فكر كردن براساس اشيا را دارد و همچنين ميتواند به صورت انتزاعي تفكر كند. قادر است به جاي آنكه به ذرات شن فكر كند به ساحل بينديشد و به جاي آجر به يك ساختمان فكر كند. در اين مفهوم، موجودات زنده نيز يك شيء محسوب ميشوند. اشيا چه جاندار باشند و چه بيجان، صفاتي داشته و رفتارهايي براي آنها قابل تعيين و تعريف است. همه اشيا صفاتي همچون اندازه، وزن، شكل و غيره دارند و رفتارهايي مثل غلتيدن توپ، حركت اتومبيل، گرم كردن آتش و ... در آنها به چشم ميخورد. اشيا بسياري هستند كه صفات مشتركي داشته و يا رفتارهاي مشابهي از خود نشان ميدهند. برخي از آنها نيز به علت تعدد اين تشابهها، در يك خانواده يا كلاس قرار ميگيرند.
برنامهنويسي شيءگرا اشيا دنياي واقعي را با نرمافزار مدلسازي ميكند. در برنامهنويسي شيگرا مفهومي به نام كلاس وجود دارد. اشيا نمونههايي از يك كلاس هستند. براي درك اين دو مفهوم خودرو معادل يك كلاس است و بنز يك شيء از كلاس خودرو است.
كلاسها ممكن است رابطه سلسله مراتبي داشته باشند و خصوصيات از يك كلاس به كلاس پايينتر به ارث برسد. كلاسي كه در راس همه كلاسهاست، شامل خصوصياتي است كه همه كلاسهاي سطوح پايينتر، آن خصوصيات را دارند و به عبارتي آن خصوصيات را به ارث بردهاند. ضمن اينكه هريك از كلاسهاي سطوح پايينتر ممكن است خصوصيات و رفتارهاي منحصر به فردي نيز داشته باشند.
به عنوان مثال كلاس جانداران خصوصيات و رفتارهايي دارد كه در همه جانداران مشترك است. جانوران و گياهان كه در سطح پايينتر جانداران هستند، كلاسهايي هستند كه تمام خصوصيات و رفتارهاي جانداران را به ارث بردهاند ضمن اينكه هر كدام خصوصيات منحصر به كلاس خود را نيز دارند. همينطور اگر ادامه دهيم هر كدام از اين كلاسها خصوصيات و رفتارهاي خود را به كلاسهاي پايينتر خود منتقل ميكنند و در هر كدام از آنها ويژگيهاي جديدي اضافه ميشود. در پايينترين سطح كلاسي خواهيم داشت كه ميتوان از آن يك شيء ساخت. مثلا يكي از آن كلاسهاي سطح پايين كلاس انسان است كه هر كدام از ما يك شيء از آن كلاس هستيم. توجه داشته باشيد كه كلاسي مثل كلاس جانداران يك كلاس انتزاعي است. زيرا نميتوان از آن يك نمونه ساخت. اين كلاس تنها تعداد محدودي خصوصيت و رفتار دارد كه به سطوح پايينتر خود منتقل ميكند.
اما براي تبديل شدن به يك شيء بايد خصوصيات و رفتارهاي ديگري نيز به آن اضافه شود.
برنامهنويسي شيءگرا روش طبيعيتري را براي نگه داشتن بر فرآيندهاي برنامهنويسي ارائه ميكند و اين كار با مدلسازي اشياي دنياي واقعي، صفات و رفتار آنها انجام ميدهد. برنامهنويسي شيءگرا، ارتباط اشيا را نيز مدلسازي ميكند. همان طور كه انسانها به يكديگر پيام ميفرستند اشيا نيز ميتوانند از طريق ارسال پيام با يكديگر ارتباط برقرار كنند.
بستهبندي و پنهانسازي
صفات و رفتارها در اشيا، بستهبندي (encapsulation) شده و به نوعي پنهانسازي ميشوند. به عبارتي، گرچه اشيا ممكن است طريقه ارتباط با اشيا ديگر را از طريق واسط بدانند، ولي اجازه ندارند كه از چگونگي پيادهسازي اشيا ديگر آگاه باشند. يعني جزئيات پيادهسازي در داخل اشيا مخفي شده است.
براي درك بهتر رانندهاي را در نظر بگيريد كه بدون آشنايي با جزئيات عملكرد موتور اتومبيل و ديگر سيستمهاي آن، ميتواند بخوبي رانندگي كند. خوب است بدانيم كه پنهانسازي اطلاعات مبحث مهمي در مهندسي نرمافزار است.
@@@
Code:: Blocks
كامپايلرهاي عرضهشده از جانب دو شركت مايكروسافت و بورلند كه به ترتيب Visual C++ وC++ Builder نام دارند، محصولاتي قدرتمند هستند كه از محبوبيت خاصي در جهان برخوردارند. اما اين برنامهها اولا حجيم هستند و ثانيا رايگان نيستند و براي استفاده از آنها، بايد بابتشان هزينه پرداخت كرد.
البته نسخههاي قديميturbo C++ و Borland C++ به صورت رايگان وجود دارند و هنوز مورد استفادهاند. اما قصد داريم ابزاري بسيار توانمند، جديد و ساده را براي مبتديان و كاربران حرفهاي اين زبان معرفي كنيم.
Code::Blocks نام يك نرمافزار رايگان و در حقيقت يك IDE مخصوص C++ است كه از جمله نرمافزارهاي متنباز است كه به خود زبان C++ نوشته شده است و كدهاي آن نيز در اختيار كاربران قرار داده شده است. اين نرمافزار مخصوص سيستم عاملهاي ويندوز، لينوكس و Mac OS X عرضه شده است و نسخه كامل آن براي ويندوز، حجمي حدود 20 مگابايت دارد كه به طور مستقيم از سايت www.codeblocks.org قابل دسترسي و دريافت است.
اين IDE از كامپايلرهاي مختلفي از جمله Visual C++ مايكروسافت، 5/5 Borland C++ ، GCC، Digital Mars، Open Watdcom و غيره پشتيباني ميكند. از قابليتهاي بارز اين IDE، سرعت بالاي آن است. ضمن آنكه قادر است پروژههاي توليدشده توسط Visual C++ و DevC++ را نيز درون خود باز كرده و كامپايل كند. در صورت وجود بيش از يك پردازنده يا وجود پردازندههاي 2 يا چند هستهاي، اين IDE قادر است از امكانات پردازش موازي اين پردازندهها براي ساخت همزمان پروژهها استفاده كند.
ظاهر گرافيكي اين نرمافزار بسيار زيبا و كاربرپسند بوده و طراحي ساده آن برنامهنويسي را راحت و لذتبخش ميكند. محيط ويراستار اين IDE از ويژگي Syntax highlighting پشتيباني ميكند. با استفاده از اين ويژگي، كلمات كليدي، توابع، توضيحات و... موجود در كد برنامه به صورت رنگي يا برجسته نمايش داده ميشوند تا خوانايي برنامه افزايش يابد.
خصوصيت Code Completion موجود در آن نيز باعث ميشود كه شما مجبور نباشيد همه متن برنامه مورد نظر را به صورت كامل تايپ كنيد. برنامه به شما كمك خواهد كرد كه كلمات و متغيرهاي طولاني موجود در برنامه و همچنين توابع ممكن در متن برنامه را بدون تايپ كامل وارد برنامه كنيد. در واقع برنامه با پيشنهاد عبارتهاي ممكن به شما امكان انتخاب را فراهم ميكنند تا ضمن سرعت بخشيدن به برنامهنويسي و راحتي عمل برنامهنويس، ميزان خطاي گرامري برنامه نيز تا حد امكان كاهش يابد. ابزارهاي كامل و تواناي موجود براي Debuging در اين نرمافزار، اين امكان را فراهم ميآورند تا شما بتوانيد به سرعت خطاي منطقي موجود در برنامه را يافته و آن را رفع كنيد و به عبارتي برنامه را اشكالزدايي كنيد.
@@@
لينوكس در برابر ويندوز
هسته اساسي يك كامپيوتر، سيستم عامل است. سيستم عامل، نرمافزاري است كه سختافزار را كنترل و همانگونه كه از نام آن مشخص است باعث انجام عمليات در كامپيوتر ميگردد. سيستم عامل، برنامهها را به درون حافظه كامپيوتر استقرار و زمينه اجراي آنان را فراهم ميسازد.
سيستم عامل دستگاههاي جانبي، نظير ديسكها و چاپگرها را مديريت ميكند. كامپيوتر و چاپگرهاي موجود در يك محيط كامپيوتري را ميتوان به يكديگر مرتبط تا زمينه مبادله اطلاعات و دادهها، فراهم گردد.
ويندوز و لينوكس انواع مختلفي دارند. تمامي انواع ويندوز را مايكروسافت توليد ميكند، اما توزيع متنوع لينوكس از سوي شركتهاي متعددي مانند Linspire ، Red Hat، SuSE، Ubunta، Mandriva، Knoppix، Slackware وLycoris صورت ميگيرد. ويندوز دو خط اصلي دارد كه ميتوان آنها راWin9x كه شامل ويندوزهاي 95، 98، 89 SE،Me و كلاس NT كه ويندوزهاي NT، 2000 و XP را در خود جاي داده است، اشاره كرد. ويندوز در واقع كار خود را با نسخه 3x آغاز كرد و پس از چند سال ويندوز 95 را روانه بازار كرد.
لينوكس نسخهها و توزيع هاي مختلفي دارد. تمامي توزيعهاي لينوكس كه در چارچوب زماني يكسان منتشر شده، از يك هسته اصلي (مهمترين بخش سيستم عامل) تبعيت ميكنند. تفاوت آنها در نرمافزارهاي اضافي ارايه شده، واسطه گرافيكي كاربر، فرايند نصب، قيمت، اسنادسازي و پشتيبانيهاي فني است. ويندوز و لينوكس هر دو درdesktop و ويرايشهاي سروري ظاهر ميشوند.
لينوكس ميتواند كارايي كامپيوترهاي قديمي را نيز بالا ببرد ولي ويندوز اين قابليت را ندارد. برخي از نسخههاي لينوكس هدفمند است. بهعنوان مثالNASLite نسخهاي از لينوكس است كه با استفاده از يك فلاپي ديسك، رايانه قديمي را تبديل به يك فايل سرور مي كند. اين نسخه از لينوكس قادر به اتصال به شبكه، تقسيم فايلها و عملكرد بهعنوان يك وب سرور است.
گنو/لينوكس يك سيستم عامل آزاد و متن باز است. كد منبع آن در اختيار همگان قرار دارد و همه ميتوانند در كدهاي آن تغيير ايجاد كرده و بنا به نيازشان استفاده كنند. آزاد و در دسترس بودن كدهاي منبع سبب ميشود تا بتوانيد از طرز كاركرد دقيق سيستم عامل مطلع شويد. شما بسياري از توزيع هاي گنو/لينوكس را ميتوانيد به هر تعداد كپي كرده و بين دوستانتان پخش كنيد. در سمت مقابل، ويندوز يك سيستم عامل اختصاصي است كه كد منبع آن سري نگه داشته شده و براي همگان در دسترس نيست.
يكي از نخستين سوالاتي كه در ذهن هر كاربري كه بهتازگي نام گنو/لينوكس به گوشش خورده، مطرح ميشود، اين است كه خوب گنو/لينوكس چه تفاوتي با ويندوز دارد؟ در اين مقاله قصد داريم بدون اينكه وارد مسايل خيلي فني شويم، بهطور اجمالي اين موضوع را تشريح كنيم.
لينوكس بهخودي خود، يك هسته(Kernel) است. هسته، بخش اصلي سيستم عامل را تشكيل ميدهد كه كار آن كنترل دادهها، مديريت حافظه، سختافزار، ورود و خروج دادهها و همه موارد اصلي سيستم عامل است.
همانطور كه گفتيم، لينوكس بهخودي خود سيستم عامل بهشمار نميرود، بلكه با استفاده از ابزارهايي كه پروژه گنو(GNU) براي آن توليد كرده است، تبديل به يك سيستم عامل كامل ميشود (به همين دليل است كه لينوكس را معمولا گنو/لينوكس يا GNU/Linux مينامند) و با اضافه كردن ساير نرمافزارهاي رايگان به آن، ميتوان از آن در موارد متعددي مانند سرويس دهندهها، ايستگاههاي كاري، كامپيوترهاي روي ميزي، ابر رايانهها، ابزارهاي صنعتي و پزشكي كه داراي سيستمهاي درونهاي(Embedded) هستند، استفاده كرد.
از نظر فني، گنو/لينوكس را ميتوان نمونه كد باز و آزاد سيستم عاملهاي خانواده يونيكس ناميد. زيرا بر اساس استاندارد POSIX پيادهسازي شده و كاملا با آن سازگار است. بنابراين گنو/لينوكس را ميتوان نواده سيستم عامل پرسابقه و مستحكم يونيكس دانست كه البته خواص خوب آنرا نيز به ارث برده است. اكنون تفاوتهاي اصلي گنو/لينوكس و ويندوز را با هم ميشماريم:
امنيت در لينوكس و ويندوز
امروزه در دنيايي متكي بر فناوري اطلاعات زندگي ميكنيم كه هر لحظه به خطر افتادن جريان اطلاعات منجر به بروز خسارتهاي تجاري جبران ناپذيري خواهد شد. امروزه همه بهدنبال يك سكوي(Platform) امنتر براي اجراي برنامههاي كاربردي و سرويسدهندهها هستند. با اينكه مبحث امنيت يك مقوله نسبي است، گنو/لينوكس حرفهاي زيادي براي گفتن در سمت امنيت دارد. بسياري از قابليتهاي امنيتي كه در ويندوز وجود ندارند و يا فقط با اضافه كردن نرمافزارهاي اضافي قابل دسترسي هستند، بهطور دروني و پيشگزيده در گنو/لينوكس پيادهسازي شدهاند.
گنو/لينوكس از ابتدا براي محيطهاي شبكهاي و چندكاربره طراحي شده است و همين باعث رعايت مسايل امنيتي از ابتدا در آن شده است، در حالي كه ويندوز اينگونه نبوده و درحال حاضر نيز از نظر امنيتي داراي نقاط ضعف فراواني است. مثلا يك برنامه مخرب با استفاده از همين ضعفهاي امنيتي ميتواند كل سيستم عامل را نابود كند، ولي در صورتي كه مورد مشابهي در گنو/لينوكس وجود داشته باشد، حداكثر به دايركتوري خانگي كاربر اجرا كننده آسيب خواهد رسيد، نه كل سيستم عامل. اينطور نيست كه گنو/لينوكس فاقد هر گونه اشكال امنيتي باشد، خير، ولي باز بودن كد منبع آن باعث ميشود تا بسياري از اشكالات امنيتي پيش از ايجاد خسارت و در مراحل توسعه و برنامه نويسي برنامه پيدا شده و رفع شوند. در صورتي كه اشكالي نيز در برنامههاي منتشر شده يافت شود، بهدليل موجود بودن كد منبع بهسرعت برطرف ميگردد. در صورتي كه در سيستم عامل ويندوز شما بايد منتظر مايكروسافت بمانيد.
سيستم عامل ويندوز داراي اشكالات امنيتي بسياري است كه بهراحتي هم كشف نميشوند و هنگامي كشف ميشوند كه خسارات جبرانناپذيري در اثر حمله از طريق آن ضعفهاي امنيتي رخ دهد كه امثال آن را شاهد هستيم. در دنياي امنيت ضربالمثلي وجود دارد كه امنيت با مخفي كاري حاصل نميشود.
ميتوان ادعا كرد كه تقريبا هيچ ويروسي براي گنو/لينوكس وجود ندارد و اين درحالي است كه ساليانه بيش از 1000 ويروس و كرم مختلف براي سيستم عامل ويندوز ايجاد ميشود. اين بهخاطر عدم گسترده بودن گنو/لينوكس نيست (حدود 70درصد از سايتهاي وب در جهان بر روي سيستم عاملهاي خانواده يونيكس و گنو/لينوكس و سرويسدهنده وب آپاچي درحال اجرا هستند) بلكه بهدليل وجود حفرههاي امنيتي متعدد ويندوز و سياست انحصارگرايي مايكروسافت است.
يعني چه؟ مايكروسافت طوري رفتار و سياستگذاري كرده است كه مشتريان خود را فقط به محصولات خودش عادت دهد. بسياري از كاربران ويندوز از اينترنت اكسپلورر و آوتلوك براي مرور وب و پست الكترونيك استفاده ميكنند.
گنو/لينوكس: تنوع در انتخاب
بهدليل آزاد بودن سيستم عامل گنو/لينوكس، هر گروه يا موسسه تجاري، يك نسخه خاص از آن كه به توزيع يا پخش(Distribution) معروف هستند، منتشر ساخته است.
اين توزيعهاي مختلف همگي گنو/لينوكس هستند، ولي هريك معمولا براي يك يا چند امر خاص مانند سرويسدهنده، ديوار آتش، ميزكار و ... طراحي شدهاند و هريك قابليتها و بهينهسازيهاي خاص خودشان را به كاربران ارايه ميكنند. كاربران در اين ميان آزادي انتخاب زيادي داشته و ميتوانند چيزي كه كاملا نيازشان را برطرف ميكند، انتخاب كنند. چيزي كه در ويندوز نميتوان مفهومي براي آن پيدا كرد.
@@@
سيستم، تحت كنترل شما
پنهانكاري ممنوع!
بيشك، دسترسي به جزييات نرمافزارهاي نصب شده در سيستم، نرمافزارهاي در حال اجرا و ديگر كارهايي كه توسط فايلهاي سيستمي انجام ميشود اطلاعات مهم و ارزشمندي را در اختيار كاربر قرار خواهد داد.
اگر يك كاربر معمولي رايانه باشيد نميتوانيد به تمام اين جزييات دسترسي داشته باشيد. نرمافزارهاي مختلفي وجود دارند كه كار اصلي آنها همچون Task Manager ويندوز، كنترل و نظارت بر فايلها و نرمافزارهاي در حال اجرا است. Anvir Task Manager, PC Inspector Task Manager, DTaskManager, TaskPatrol 2, Process Manager 2 Lite, Daphne, Process Viewer و ... برخي از اينگونه نرمافزارها بهشمار ميروند. در اين ميان نرمافزار ديگري نيز وجود دارد كه به جرات ميتوان آن را بهترين و كاملترين برنامه براي اينكار معرفيكرد!
مرورگر سيستم
نرمافزار System Explorer ابزاري رايگان تحت ويندوز است كه به شما امكان جستوجو و كنجكاوي در اعماق ويندوز را خواهد داد. اين برنامه ميتواند جايگزين بسيار مناسبي براي Task Manager ويندوز باشد. همچنين نسخه 5/1 به بعد اين نرمافزار اين امكان را به شما ميدهد تا هر زمان كه بخواهيد امكانات غير ضروري موجود در نرمافزار را غير فعال كرده و برعكس، هر زمان كه بخواهيد نيز بتوانيد با استفاده از پلاگينهايي كه روز به روز براي نرمافزار ساخته ميشوند امكانات جديدي را به آن اضافه كنيد. نرمافزار فوق با ويندوزهاي XP, Vista و ديگر ويندوزهاي آينده سازگاري كامل دارد و در همگي آنها بهدرستي قابل اجرا است.
امكانات كليدي
برخي از امكانات و ويژگيهاي كليدي اين نرمافزار عبارتند از:
1- ارايه اطلاعات دقيق دربارهي كارها، پردازشها، ماژولها، كارايي سيستم، افزونههاي اينترنت اكسپلورر، افزونههاي سيستمي، ويندوز، سرويسها، درايورها، اتصالات، Snapshots و فايلهاي باز شده
2- بررسي آسان فايلهاي مشكوك با كمك سرويسهاي VirusTotal و Jotti
3- بررسي خودكار امنيت پردازشها، ماژولها و هر فايل انتخاب شدهي ديگر با استفاده از بانك اطلاعاتي Spyware Terminator
4- جستوجوي آسان جزييات مربوط به فايلها و پردازشها با كمك بانكهاي اطلاعاتي آنلاين
5- دسترسي آسان به ابزارهاي سيستمي و توانايي جايگزيني اين ابزار با Task Manager ويندوز
6- ارايه نمودارهاي آماري براي آگاهي از ميزان كارايي و عملكرد بهينه سيستم
7- ارايه تاريخچه كارهاي صورت گرفته براي كنترل تمام فعاليتها
8- ايجاد Snapshots از سيستم براي بررسي هرچهبهتر تغييرات صورت گرفته در ويندوز نسبت به حالتي كه تغييراتي وجود نداشته
9- پشتيباني از پلاگينها: با برخورداري از اين قابليت، كاربران ميتوانند پلاگينهاي مورد نظرشان را به برنامه اضافه كنند و توسعهدهندگان پلاگين نيز ميتوانند امكانات جديدي را در اين برنامه ايجاد كنند.
10- پشتيباني از زبانهاي مختلف: زبانهاي انگليسي، اسپانيايي، آلماني، پرتغالي و ژاپني از جمله زبانهايياند كه در حال حاضر در نرمافزار قابل دسترسي است. اين زبانها به مرور بيشتر نيز خواهند شد. نرمافزار Process Explorer روش كار بسيار آساني دارد و توانايي انجام كارهاي حرفهاي را بهطور رايگان در اختيار شما قرار ميدهد.
آخرين نسخه اين نرمافزار از بانك اطلاعاتيSpyware Terminator براي بررسي خودكار پردازشهاي مشكوك كمك ميگيرد و همچنين شما ميتوانيد با آپلود فايلهاي مشكوك خود به سرورهايVirusTotal يا Jotti آنها را توسط چندين ويروسياب قدرتمند بررسي كنيد.
قابليت ديگري كه اكثرTask Manager ها از آن پشتيباني نميكنند،snapshot است. اين قابليت وقتي مفيد است كه بخواهيد هرگونه تغيير، حذف يا اضافه را در فايلها و رجيستري ويندوز خود بررسي كنيد. بهعنوان مثال فرض كنيد قصد داريد نرمافزاري را روي ويندوز خود نصب كنيد. چنانچه پس از نصب بخواهيد آن را حذف كنيد مطمئنا ردپاي آن نرمافزار بهطور كامل از ويندوز شما پاك نخواهد شد و بخشي از آن در ويندوز باقي ميماند. حال با استفاده از اين برنامه و قابليتSnapshot ميتوانيد قبل از نصب نرمافزار مورد نظر يكSnapshot از ويندوز خود تهيه كنيد و پس از نصب نرمافزار نيز همين كار را انجام دهيد. در نهايت با مقايسه اين دوSnapshot خواهيد توانست از ردپاي دقيق و تمام تغييرات صورت گرفته توسط نرمافزار در ويندوز مطلع شويد.
جايگزين مناسب
همچون ديگر Task Manager ها اين نرمافزار نيز قابليت جايگزيني با Task Manager ويندوز را دارد. براي اين كار كافيست از بخش options گزينه Replace Task Manager را انتخاب كنيد. توجه داشته باشيد كه نيازي نيست اين نرمافزار مدام در حال اجرا باشد بلكه ميتوانيد در صورت نياز آن را اجرا كنيد. اما ذكر اين نكته قابل توجه است كه حتي در صورت اجراي مداوم نرمافزار نيز هيچ مشكلي در ويندوز شما بهوجود نخواهد آمد؛ چرا كه اين برنامه فقط 4 مگابايت از حافظه رم را اشغال ميكند. براي دانلود نسخه كامل نرمافزار ميتوانيد به سايت زير مراجعه كنيد:
www.systemexplorer.mistergroup.org
@@@
ضد تخريب!
امروزهSpyware ها به يكي از مهمترين و جهانيترين تهديدات اينترنتي تبديل شدهاند. آمار بهدست آمده توسط شركتهاي امنيتي نشان ميدهد 90درصد رايانههاي جهان آلوده به Spyware هستند.
روشهاي مختلفي براي انتشارSpyware ها وجود دارد كه روزبهروز در حال تغيير است. انتشار از طريق تروجانها، نصبActivex ها، وجود كدهاي مخرب در وبسايتهاي مختلف و برنامههاي رايگان يا اشتراكي از جمله عموميترين روشهاي انتشار فايلهاي مخرب و جاسوسي در رايانهها بهشمار ميرود.
از علايم آلوده شدن سيستم به Spyware ميتوان به كندشدن عملكرد برنامهها، كاهش سرعت ارتباطات اينترنتي، بيثباتي سيستم و هنگكردنهاي مداوم اشاره كرد.
نرمافزارAshampoo AntiSpyWare برنامهاي قدرتمند براي حفاظت از شما در برابر اينگونه خطرات است. اين برنامه قبل از آنكه هر فايلي را اجرا كنيد آن را بررسي كرده و در صورت پاك بودن فايل مربوطه اجازه اجراي آن را صادر ميكند. با اين عملكرد، تروجانها هرگز نميتوانند بدون اجازه شما خود را روي ويندوز نصب كنند و به انجام فعاليتهاي مخرب دست بزنند. نرمافزار فوق با استفاده از استراتژيها و الگوريتمهاي جديد خود قادر است فايلهاي مخرب و جاسوسهاي ناشناخته و جديد را نيز شناسايي كند.
براي دانلود اين برنامه به سايت مراجعه كنيد:
www.ashampoo.com
سريع و آسان
به جرات ميتوانم بگويم طي 5 سال اخير حتي 5 بار هم از بخش جستوجوي ويندوز براي پيدا كردن فايلها و پوشههاي مورد نظرم استفاده نكردهام!
اگر شما هم جزو كاربران ناراضي از بخش جستوجوي ويندوز هستيد و از سرعت پايين آن در انجام اين كار شكايت داريد، ميتوانيد از نرمافزار Effective File Search كمك بگيريد.
اين نرمافزار ابزاري قدرتمند با روش كار آسان براي جستوجوي فايلها و پوشههاي مورد نظر در رايانه شما و ديگر رايانههاي تحت شبكه است.
از اين برنامه ميتوانيد بهعنوان يك جايگزين واقعي براي بخش جستوجوي ويندوز كمك گرفته و با استفاده از آن در وقت خود صرفهجويي كنيد. نرمافزار فوق با تمام نسخههاي ويندوز از جمله ويندوز ويستا سازگار است و براي دانلود آن ميتوانيد به سايت زير مراجعه كنيد: www.sowsoft.com
ضبط نامحسوس
همانطور كه ميدانيد نرمافزارSkype يكي از مشهورترين ابزارهاي مكالمه اينترنتي است. نرمافزارهاي مختلفي براي ضبط مكالمات صورت گرفته توسط اين ابزار وجود دارند كه Recorder Skype نام يكي از اينگونه نرمافزارها استSkype Recorder . ابزاري شگفتانگيز با روش كار بسيار ساده براي ضبط مكالمات صورت گرفته در نرمافزارSkype است. استفاده از اين نرمافزار سادهتر از آن چيزي است كه فكر ميكنيد. براي بهكارگيري آن كافي است برنامه را اجرا كنيد و ديگر با آن كاري نداشته باشيد! برنامه به طور خودكار پس از آغاز مكالمه شما در Skype عمليات ضبط را آغاز كرده و به ضبط صحبتهاي شما ميپردازد. پخش زنده فايل ضبط شده، ذخيره فايل نهايي در فورمتهاي مختلف 3 MP، OGG،WMA وWAV و دارا بودن ابزارهاي كار باFTP از قابليتهاي مهم اين نرمافزار است. برنامه فوق را ميتوانيد از سايت زير دانلود كنيد: www.extralabs.net