Tuesday, May 25, 2010

Виндоус үйлдлийн систем

Виндоус бол Майкрософт корпрациас гаргасан хамгийн алдартай үйлдлийн систем юм. Майкрософт Виндоус нь дэлхий нийтээр танил болж чадсан бөгөөд үүний цаана асар олон хүний хүч хөдөлмөр, авъяас чадвар, уран санаа, ухаан бодол, тэрбум тэрбум доллар бий. 1975 онд Харвардын их сургуулийг төгссөн Билл Гейтс өөрийн багын найз Паул Алентай хамтран өнөөгийн Майкрософт компанийг байгуулсан түүхтэй. Билл Гейтсийн удирдлаган доор уг Майкрософт компани нь өөрийн бүтээгдэхүүнийг хэрэглэгчид хэрэглэхэд илүү хялбар, хүмүүст ойрхон, үний хувьд аль болохоор хямдхан үнэтэй байлгахыг чиглэн ажиллаж байсан. Энэ үедээ 1975 оны эхээр тэд шинээр гарч байсан Altair компьютерт зориулсан Бэйсик хэлний хөрвүүлэгч хийхэд гол анхаарлаа хандуулан ажилсан боловч тэдний хувьд анх Майкрософт компанитай харилцаатай байсан үйлчлэгч компаниуд дампуурсанаар Билл Гейтсийн компани зах зээл дээр оршин тогтноход нилээдгүй хүнд хэцүү байсан хэдий ч тэд шантарсангүй. 1981 оноос персонал компьютерууд их хэмжээгээр үйлдвэрлэгдэж гарсанаар Майкрософт компани хөл дээрээ босч авсан байна. Үүнээс хойш Майкрософт компани нь бодлогоо өргөтгөн хэрэглэгчидэд зориулан программуудыг гаргаж ихэлсэн. Тухайлбал: Майкрософт Ворд, Майкрософт Эксэл зэрэг программууд юм. 1987 онд Майкрософт компаниас Виндоус үйлдлийн системийн анхны хувилбарыг дэлхий нийтэд танилцуулан хэрэглээнд гаргаж ихэлсэн байна. 1993 он гэхэд Виндоус үйлдлийн систем хэрэглэгчидэд хүрж чадсан байсан ба хэдэн зуун сая хувиар борлогдсон байна. 1995 оноос Билл Гейтс компанийхаа хөгжлийн хандлагыг үндсээр нь өөрчилж интернетэд илүүтэйгээр анхаарлаа хандуулж эхэлсэн ба үүний үр дүнд гарч ирсэн Internet Explorer програм нь зах зээл дээр өрсөлдөгч Netscape, Navigator програмуудаас илүү байж чадснаар Internet Explorer-ийг хэрэглэгчил илүү ихээр хэрэглэж ихэлсэн байна. 1999 оноос Майкрософт компаний монополчлолийг эсэргүүцэн шүүхэд дуудсан бөгөөд шүүх яамнаас тус компанийг хоёр компанид хуваах санал тавьсан боловч эцэст нь Виндоус-ийн програмуудыг Виндоусаас нь салгах боломжгүй гэсэг Билл Гейтсийн тэмцэл үр дүнд хүрч 2001 оны 7 сард уг саналыг хүчингүй болгосон байна.

Одоогийн байдлаар дэлхий дээр ашиглагдаж буй бүх компьютеруудын дийлэнхи буюу 85% нь Видоус үйлдлийн системийг хэрэглэдэг гэсэн судалгаа байна.

Виндоус үйлдлийн системийн давуу тал нь: Майкрософт Виндоус-ийн бусад үйлдлийн системээс ялгарах хамгийн чухал давуу тал нь түүнийг Хэрэглэхэд хялбар байдал нь юм. Түүнийг ашиглахад ямар нэгэн системийн нарийн мэдлэг шаарддаггүй. Бусад техник төхөөрөмжүүдтэй хамгийн сайн зохицох чадвартай. Өөрөөр хэлбэл ямар ч төхөөрөмжийн Виндоус орчны програм нь хялбархан олддог. Одоогийн байдлаар прорамистуудын гаргасан програм хангамжийн диилэнх хэсэг нь мөн л Виндоус үйлдлийн систем-д зориулагдсан байдаг. Энэ нь Виндоус-ийг ашиглавал илүү өргөн хүрээтэй ажиллаж чадна гэсэн үг юм. Бусад үйлдлийн системтэй харьцуулбал маш хямд, системийн нийт хэмжээ нь харьцангуй бага, жил болгон сайжруулагдсан хувилбар нь гарч байдаг.

Виндоус үйлдлийн системийн сул тал нь: Мөн хамгийн том сул тал бол түүний хамгаалалтын /security/ асуудал юм. Хэрэв сүлжээнд чухал өгөгдлийг холбон ашиглахаар бол Виндоус-ийг ашиглах нь тохиромжгүй гэсэн үг. Учир нь хакерууд түүнийг төвөггүй нэвтэрч өгөгдлийг нь хулгайлж чадна. Хэдийгээр тийм боловч сүүлийн үеийн хувилбаруудад хамгаалалтын асуудлыг тусгаж үзэхийг оролдож байгаа бөгөөд тухайлбал Windows NT систем нь арай гайгүй болжээ гэж мэргэжилтэнүүд үзжээ. Хамгаалалтын асуудал дээр UNIX төрлийн үйлдлийн ситемүүд илүү сайн байдаг байна. Тусгай зориулалтын системээр ашиглагдах боломж муу байдаг. Өөрөөр хэлбэл мэргэжлийн компьютер график, видео хийхэд ихэвчлэн өөр системийг ашигладаг.

Виндоус-ийн үндсэн объёктууд.

1. Цонх.

Цонх бол Виндоус-ийн мэдээллийш харуулах үндсэн арга юм. Цонхны дотор нь текст, зураг файлууд гэх мэт ямар ч төрлийн мэдээлэл байж болно. Цонх нь дотроо төрөлтэй байдаг. Тухайлбал энгийн сануулга агуулсан цонхонд зарим удирдах товч нь бйахгүй байж болно. Хэрэв цонхонд дүрслэх мэдээллийн хэмжээ нь цонхны хэмжээнээс их байвал түүнийг дүрслэхийн тулд цонхны доод хэсэгт эсвэл баруун талд нь гулгагч товч гарч ирдэг. Уг товчийг дээш нь доош нь татсанаар татсанаар мэдээллийн үндсэн хэсэгийг харах боломжтой.

2. Хулгана

Хулганыг ашиглан Виндоус-ийн объектуудтай харьцдаг. Хэдийгээр бүх үйлдлийг гарны тусламжтайгаар хийж болох боловч хулганыг ашигласнаар илүү хурдан эвтэйхэн хийх боломжтой болдог. Хулгана нь зүүн баруун хоёр товчтой /зарим хулгана нь 3 товчтой байдаг/ бөгөөд зүүн товчоор нь үйлдлийг ихэвчлэн гүйцэтгэдэг бөгөөд нэмэлт хэрэгцээгээр баруун товчийг ашигладаг. Хулганагүйгээр Виндоус-ийг төсөөлхийн аргагүй юм.

3. Курсор

Курсор нь товчоор тухайн хүний анхаарал хаана байна тэнд явж байдаг заалтуур юм. Чухам хаана байгаагаас хамаардан янз бүрийн дүрслэлтэй харагддаг.

4. Task Bar

Виндоус-ийн бас нэг гайхалтай онцлог нь түүний программуудын хооронд шилжих бололцоог олгодог Task Bar юм. Энэ шугам нь Start товчтой нийлэн баруун тийшээ үргэлжлэн оршдог. Хэрэглэгчийн ажиллуулсан программууд энэ шугам дээр гарч ирдэг. Мөн эдгээрээс гадна заримдаа түүний эхэн хэсэгт хурдан ачаалах зорилгоор хэрэгтэй программуудын Shortcut-ийг тавьсан байдаг ба түүнийг төгсгөл хэсэгт системийн он сар болон бусад идэвхтэй ажиллаж байгаа програмууд харагдаж байдаг. Task Bar-ийг дэлгэцийн аль ч захад байрлуулж болдог. Ингэхийн тулд түүнийг хулганаар чирэн хүссэн талдаа аваачиж болно. Мөн түүний өндрийн хэмжээг өөрчилж болно. Үүний тулд түүний ирмэгээс хулганаараа татах хэрэгтэй. Заримдаа энэ шугам нь дэлгэцэнд харагддаггүй болсон байх бөгөөд хулганаар дөхөөд ирэх үед өөрөө гарч ирдэг.

Эдгээрээс харахад виндоус үйлдлийн системийн давуу болон сул талуудыг мэдэж болно. Виндоус үйлдлийн системийг цаашаад улам бүр хөгжиж, хэрэглэгчдэд улам бүр хүрсээр л байх болно. Мэдээж өөр өрсөлдөгч компаниудын үйлдлийн системүүдээ сайжруулж цаашид Майкрософт компанийн виндоус үйлдлийн системтэй өрсөлдөхүйц хэмжээний хүчин чадалтай болохын тулд их хугацаа хөрөнгө, мөнгө зарцуулах болов уу! Учир нь: Майкрософт компаний Виндоус үйлдлийн систем нь нилээдгүй өргөн тархсан дэлхий дээрхи Компьютер хэрэглэгчидийн 85% нь Виндоус үйлдлийн систем хэрэглэдэг. Мэдээж Виндоус үйлдлийн систем зүгээр байхгүй нь ойлгомжтой улам бүр алдаагүй шинэ үйлдлийн систем гаргахыг хичээнэ. Үүний тулд Майкрософт компанийн виндоус үйлдлийн системд байх ёстой зүйл бол хамгаалалтыг сайжруулах, өмнөх үйлдлийн системийнхээ сайн талыг нь хадгалж, удамшуулж авах ба эсрэгээр хэрэггүй гэсэн болгоноо гээгдүүлж байвал илүү үр дүнд хүрэх болов уу.

Windows and Object Oriented Programming

Энэ танилцуулгаар Windows үйлдлийн систем, түүн дээр програмчлах боломжуудыг объект хандлагат програмчлалын орчинд, нарийвчилбал Microsoft Visual C++ 2008 SDK (Software Development Kit буюу Програм Хангамж Хөгжүүлэлтийн багц)-н орчинд авч үзнэ. Windows үйлдлийн систем маань өөрөө 70 орчим хувь нь С хэл дээр, 30 гаруй хувь нь Assembly хэл дээр бичигдсэн байдаг. Үйлдлийн системийн зах зээлийн 95%-г Windows үйлдлийн систем маань эзэлж байгаа болохоор энэ нь ямар хүчирхэг үйлдлийн систем болох, энэ хүчирхэг үйлдлийн систем дээр програмчлахын чухлыг ойлгоход хялбар байгаа бизээ.

Windows програмчлалын боломжууд

Visual C++ 2008 дээр Windows програм бичих гурван боломж бий. Эдгээрийг дурдвал:

1. Windows API (Application Programming Interface) ашиглан програмчлах. Windows үйлдлийн системийг програмтай буюу хэрэглэгчтэй холбож өгдөг хамгийн доод түвшний програмчлалын арга. Хөгжлийн хувьд аваад үзвэл энэ нь Windows програмчлал дах хамгийн эртний арга гэж үзэж болно.

2. Microsoft Foundation Class буюу MFC ашиглан програмчлах. Энэ нь Windows API-г encapsulate хийдэг багц C++ классууд.

3. Windows Forms-г ашиглан програмчлах. CLR (Common Language Runtime)-тай ажилладаг application хөгжүүлэхэд зориулсан form-based (form дээр суурилсан) хөгжүүлэлтийн механизм.

Эхний Windows API нь бүтцэн програмчлалын аргыг хэрэглэдэг бол дараагийн хоёр объект хандлагат технологи.

1. Windows API

Windows хэрэглээний програм болон Windows үйлдлийн систем хоорондох бүх л харилцаа Windows application programming interface буюу Windows API-г ашигладаг. Windows API нь стандартаар үйлдлийн системд орсон үйлдлийн систем програмтай, програм үйлдлийн системтэй харьцах боломжийг олгосон зуу зуун функцуудаас тогтдог. Windows API нь С++ хэл бий болохоос нилээн өмнө, С хэл хэрэглэгддэг байхад хөгжүүлэгдсэн, тийм учраас үйлдлийн систем, програм хоёрын хооронд өгөгдөл дамжуулахдаа class-аас илүүтэйгээр structure (бүтэц)-г ашигладаг. Тийм учраас энэ програмчлалын арга нь бидний үзэж буй объект хандлагат аргыг хэрэглээгүй, түүний өмнөх бүтцэн програмчлалын аргыг хэрэглэдэг юм байна. Windows API-д бүх л зүйл доод түвшинд ажиллаж байгаа учраас зөвхөн маш их хэмжээний код бичих шаардлагатай байдаг. Ямар ч нэмэлт tool, хэрэгслийг хэрэглэх боломж байдаггүй. Хамгийн доод түвшний програмчлал гэж ойлгож болно. Тийм учраас Windows API дээр програмчлах нь бусад объект хандлагат програмаасаа илүү хүчирхэг, хурдан ажилладаг програмыг хөгжүүлэхэд хэрэглэгддэг. Гэсэн хэдий ч бүх л зүйлийг бичиж, програмчилж байгаа учраас маш их цаг хугацаа, хөрөнгө мөнгө, мэдлэг шаарддаг.

2. MFC

MFC буюу Microsoft Foundation Classes нь урьдчилэн тодорхойлж өгсөн бэлэн классуудын сан буюу цуглуулга юм. Үүн дээр л Visual C++ хэлний Windows програмчлал суурилдаг гэхэд хилсдэхгүй. Эдгээр классууд нь Windows програмчлал дах хамгийн доод түвшний Windows API-уудыг объект хандлагат технологиор encapsulate хийдэг. MFC-н код нь encapsulation, data hiding гэх зарчмууд гарж ирэхээс өмнө бичигдсэн учраас эдгээр зарчмуудыг объект хандлагат технологийн дагуу бүрэн дүүрэн мөрдөж чаддаггүй. Гэсэн хэдий ч MFC дээр бидний гол сэдэв болох Windows ба объект хандлагат технологи маань гарч ирж байна. MFC ашиглан програмчлах процесс нь MFC объектуудыг ашиглах, шинээр үүсгэх, эсвэл MFC-ээс удамшсан объектыг ашиглах аргуудыг хэрэглэдэг. Ерөнхийдөө бол программист Visual C++ тусгай хэрэгслүүдийн тусламжтайгаар MFC-ээс класс удамшуулснаар програмчлах процессыг амар хялбар болгодог. MFC дээр суурилсан объектууд нь Windows-тэй харилцах, Windows message-уудыг боловсруулах, хоорондоо message илгээх гишүүн функцуудыг агуулж байдаг. Мэдээж эдгээр удамшсан классууд нь өөрсдийнхөө гишүүн өгөгдлүүдийг суурь буюу эх классаасаа удамшуулж авдаг. Эдгээр удамшуулсан классууд нь Windows үйлдлийн системийн орчинд ажиллахад шаардлагатай бүх л ажилуудыг хийдэг. Програмист хүний хийх ёстой ажил нь тухайн програмынхаа юу хийхээс хамаараад гишүүн өгөгдөл болон функцуудыг нэмж оруулж өгөх л юм. Мөн MFC-г ашиглан програмчлахад цонхон дээр байрлах control-уудыг бэлэн график хэрэгсэл ашиглан, код бичихгүйгээр зохицуулах боломжтой болсон юм. Ингэснээр програмист зөвхөн тухайн control-н хэрэглэгчтэй хэрхэн харицахыг програмчилж өгөх л ажилтай болж байгаа юм. Гэсэн хэдий ч MFC-г Windows Forms-г ашиглан програмчлахтай харьцуулвал нилээн код бичих шаардлага байдаг. Одоо MFC-н гол шинж чанар, давуу талуудыг авч үзэцгээе:

Объект хандлагат програмчлалын арга. Өмнөх Windows API нь бүтцэн програмчлалын аргыг хэрэглэдэг бол MFC нь объект хандлагат програмчлалын аргыг хэрэглэснээр Windows програмчлалд хувьсгал болж чадсан юм.

Windows API-г encapsulate хийж өгдөг. Windows API-н кодыг бичих ямар ч шаардлагагүй болж байгаа учир нь MFC-н классуудад эдгээр кодуудыг агуулсан байгаа учраас шууд удамшуулаад хэрэглэж болно.

Функцууд болон өгөгдлийн нэрсийн давхацлыг үгүй болгосон.

Класс доторх код болон өгөгдлийн encapsulation

Объеъкт хандлагат технологийн гол зарчим болох удамшилыг ашигласнаар дэвшилт болж байгаа юм.

Сайн зохион байгуулагдсан классын сангуудын ачаар програмын кодны хэмжээ багасдаг.

200 илүү классуудтай.

Hungarian тэмдэглэгээг хэрэглэдэг. Жишээ нь сан дах бүх л классууд С-ээр эхэлсэн байдаг. Мөн энэ зарчмыг гишүүн өгөгдлүүд, функцуудад хэрэглэдэг.

3. Windows Forms

Windows Forms програмчлалын арга та бидний сайн мэдэх C# хэлний хөгжүүлэлтийн арга юм. Бид цонх буюу form дээр юу байхыг бэлэн график хэрэгсэл ашиглан зохиомжилдог. Windows Forms-г ашиглах нь одоогоор програм хөгжүүлэхэд хэрэглэгддэг хамгийн хурдан, хамгийн амархан арга юм. Учир нь бэлэн график хэрэгслийг ашиглан програмчилснаар нөгөө хоёр програм бичих аргыг бодвол бичих ёстой кодыг маш их багасгаж өгдөг юм. Windows Forms application-н код нь мөн CLR (Common Language Runtime)-тай хамт ажиллах болсноороо давуу талтай юм. Windows form нь System::Windows::Forms::Form-н дэд классаар encapsulate хийгддэг ба бүх л кодыг автоматаар үүсгэдэг. Энэхүү арга нь объект хандлагат технологи дээр суурилсан арга.

Хэрхэн Windows Forms-г эхлүүлж ажиллах вэ:

Visual C++ -> Project Type-н CLR-г нь сонгоод, Templates-ээс Windows Forms Application-г сонгон project-н нэрээ өгснөөр ашиглах боломжтой.