You are on page 1of 110

Linux ოპერაციული სისტემა

სერვერებისათვის
Tanamedrove informaciuli teqnologiebis farTod danergva
da gamoyeneba Cvens qveyanaSi mniSvnelovanwilad
aris damokidebuli rogorc teqnikur (aparatuli platforma)
da sistemur (programuli platforma) miRwevebze, aseve
specialistTa kvalifikaciisa da codnis doneze.

bolo aTwleulSi gansakuTrebiT swrafad xdeba Cvens


qveyanaSi amerikisa da evropis qveynebidan uaxlesi teqnikisa
da teqnologiebis importi gamoyenebiTi informatikis sferoSi.
es ki cxadia, moiTxovs aseT axal teqnologiebze orientirebuli
kadrebis momzadebas da gadamzadebas.

amitomac Tanamedrove programuli platformebi


da enebi is ZiriTadi da aucilebeli komponentebia, uromlisodac
sainformacio teqnologiebSi nabijis gadadgmac gagviWirdeba.
sayuradReboa avtoritetuli firmebis programuli
platformebi: MicroSoft (Windows NT platforma), Sun
Microsystems (SunOS/Solaris), IBM (AIX), Hewlett Packard (HP-UX),
Siemens (SINIX) da sxv., romlebic Unix platformaze akeTebs
aqcents. gaCnda Unix-is memkvidre 64 Tanrigiani PC-sTvis
- Linux-platforma. Unix-is maRalmwarmoebluroba da
saimedooba ganapirobebs mis farTo gamoyenebas bankebsa da
uwyveti warmoebis obieqtebze, oRond rTulia administrirebis
funqciebi da servisi, rac gansakuTrebiT maRalkvalificiur
personals moiTxovs.

MS Windows-NT, 2000, XP bevrad `komunikabeluria~ kargi


servisiTa da SedarebiT dabali saimedoobiT. gamoCnda Windowsis
axali gaumjobesebuli versia LINDOWS (Linux+wINDOWS).
eqsperimentuli kvlevis garkveuli nawili avtorTa mier
Sesrulda humboldtis universitetis `programuli sistemebis
teqnologiebis~ kaTedraze.

ლინუქსი (Linux) წარმოადგენს მრავალფუნქციონალურ მძლავრ უფასო ოპერაციულ სისტემას,


რომელიც იუნიქს (UNIX) მაგვარი ოპერაციული სისტემების ერთ ერთ ნაირსახეობა არის.
ოპერაციული სიტემა UNIX შეიქმნა სამოციან წლებში, კომპანიაში Bell Telephone Laboratories
(ახლა AT&T Bell Laboratories) მიერ. UNIX-ის შექმნისას გათვალისწინებული იქნა მისი
მულტიპლატფორუმულ ოპერაციულ სისტემად ჩამოყალიბება ანუ უნდა ყოფილიყო
შესაძლებელი მისი სხვადასხვა არქიტექტურის მანქანებზე უპრობლემოდ მუშაობა. სწორედ მისმა
მულტიპლატფორმულობამ განაპირობა UNIX-ის უდიდესი პოპულარულობა. UNIX-ის
პოპულარულობასთან ერთად სხვადასხვა კომპანიებმა დაიწყეს UNIX-ის ბაზაზე
ოპერაციული სისტემების შექმნა.

Linux არის თავისუფალად გავრცელებადი GPL ლიცენზიაზე დამყარებული ოპერაციული


სისტემა რომელიც შეიქმნა UNIX მაგვარი ოპერაციული სისტემა Minix-ის ბაზაზე. მისი
თავდაპირველი შემქმნელია ფინეთის ჰელსინკის უნივერსტიტეტის სტუდენტი ლინუს
ტორვალდსი (Linus Torvalds). Linux შექმნილია მრავალრიცხოვან UNIX პროგრამისტთა და
ინტერნეტის ქსელში მომუშავე ენთუზიასტთა დახმარებით. Linux-ში არ არის გამოყენებული
AT&T UNIX-ის პროგრამული კოდი, ასევე არცერთი სხვა UNIX-ის პროგრამული კოდი.
Linux-ის მეტი წილი პროგრამები შექმნილია GNU Free Software Foundation პროექტის ჩარჩოში,
კემბრიჯში მასაჩუსეტსის შტატში , ასევე მის შექმნაში მონაწილეობა თითქმის მთელი მსოფლიოს
პროგრამისტებმა მიიღეს. აღსანიშნავია ის რომ Linux-ის ბაზაზე შექმნილი პროგრამების
უმეტესობა არის უფასო და არის გახსნილი პროგრამული კოდით (open source).
0.01. ვერსის Linux-ის გამოჩენისას არასდროს არ გაკეთებულა ოფიციალური განცხადება მისი
შექმნის თაობაზე, 0.01. ვერსიის პორგრამული წყარო, პროგრამის კოდის ნორმალური
შესრულების შესაძლებლობასაც კი არ იძლეოდა და მიუთითებდა იმაზე რომ თქვენ
მიმართავდით Minix მანქანას,ეს იმით იყო განპირობებული რათა შესაძლებლობა ყოფილიყო
მისი (Linux) კომპილირებისა თუ სრულყოფისათვის.

1991 წლის 5 ნოემბერი: ლინუსმა “ოფიციალურად” განაცხადა Linux-ის 0.02. ვერსიის გამოსვლის
თაობაზე. მიუხედავად ამისა ეს ისევ განიხილებოდა როგორც მორიგი ექსპერიმენტებისათვის
განკუთვნილი ოპერაციული სისტემა. ძირითადად ყურადღება დაეთმო სისტემის ბირთვის
(kernel) დახვეწას, არანაირი ყურადღება არ ექცეოდა რიგითი მომხმარებელთათვის მასთან
მუშაობის უზრუნვეყოფას, არ მოხდა სისტემის დოკუმენტირება ტირაჟირება. ეს განაპირობა
შემდეგმა გარემოებებმა: ოპერაციული სისტემა უნდა გამხდარიყო დამოუკიდებელი, არ
ყოფილიყო საჭიროება შემდგომი ვერსიების Minix-ზე კომპილირება სრულყოფისა. 0.03 ვერსიაზე
მუშაობის დამთავრების შემდეგ ლინუსმა მომდევნო ვერსიას პირდაპირ მიანიჭა 0.10 ნომერი,
ვინაიდან იმ დროისათვის პროექტზე უკვე საკმაო რაოდენობის ხალხი მუშაობდა და ბევრი რამე
დაიხვეწა.

1992 წლის მარტი: ტესტირების სტადიაში მყოფი ოპერაციული სისტემის ვერსიების


რამოდენიმეჯერ გადახედვის მერე ახალ შექმნილ ვერსიას ამჯერად 0.95 ნომერი მიენიჭა, რითაც
ლინუსმა მიანიშნა რომ მალე შესაძლებელი იქნებოდა ”ოფიციალური” ვერსიის გამოსვლაზე
განაცხადის გაკეთება.

დაახლოებით წელიწადნახევრის შემდეგ 1993 წლის დეკემბერში Linux-ის ვერსიის ნომერი უკვე
0.99.pl14 იყო, რაც გახდა საწინდარი იმისა რომ სულ მალე გამოვიდადა ახლა ნამდვილად
ოფიციალური სტაბილური ვერსია 1.0. რაც 1994 წელს მოხდა. (არ აგვერიოს Linux-ის ვერსიები
დისტრიბუტივების ვერსიებში მაგალითად Red Hat 7.3 ან Mandrake 8.2. დისტრიბუტივები ცალკე
თემა გახლავთ).

Linux თავდაპირველად შეიქმნა Intel-ის 32-ბიტიანი x86-ბაზაზე შექმნილ 386 ან უფრო მძლავრ
პროცესორებზე სამუშაოდ. Linux-ის მუშაობა ასევე შესაძლებელია შემდეგი პლატფორმის
მანქანებზე: Compaq Alpha AXP, Sun SPARC ,UltraSPARC, Motorola 680x0, PowerPC, PowerPC64,
ARM, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, Intel IA-64, DEC VAX, AMD x86-64, CRIS.
Linux წარმატებით შეიძლება გამოვიყენოთ როგორც Workstation ასევე Server პლატფორმად.
დღესდღეობით Linux UNIX მაგვარი ოპერაციული სისტემების ღირსეული კლონი არის, Linux
სრულყოფილი მრავალფუნქციონალური მრავალდარგობრივი ოპერაციული სისტემა გახლავთ
რომელიც პასუხობს თანამედროვე ინფორმაციული ტექნოლოგიების მზარდ მოთხოვნილებებს.
მასზე შესაძლებელია X windows-თან, (გრაფიკულ გარემოში ) თუ console (ბრძანების სტრიქონში)
მოსახერხებელი მუშაობა. Linux-ის მომხმარებელთათვის არსებობს საკმაოდ კარგი თანამედროვე
გრაფიკული და საოფისე პროგრამები, ასევე მათთვის ინტერნეტში სრულყოფილად სამუშაოდ
უამრავი პროგრამა არსებობს რომლებითაც შესაძლებლობა გექნებათ დაათვალიეროთ ვებ
გვერდები, მიიღოთ და გააგზავნოთ ელექტრონული ფოსტა, გამიყენოთ IRC, ICQ,
Yahoo Messanger, AOL Instant Messanger, Microsoft Messanger და სხვა პოპულარული
საკომუნიკაციო საშუალებები. არანაკლები რაოდენობით არსებობს პროგრამირებით
დაინტერესებულ პირთათვის განკუთვნილი პროფესიონალური დონის გრაფიკული
ინტერფეისიანი პროგრამული პროდუქტები. რა თქმა უნდა ყველანაირი პროგრამული
უზრუნველყოფა არსებობს Linux-ის როგორც ინტერნეტ, ბეჭდვით თუ ფაილ სერვერად
გამოსაყენებლად.

Linux-ისთვის არსებობს უმძლავრესი პროგრამული პროდუქტები მონაცემთა


ბაზების შესაქმნელად რომლის ნათელი მაგალითია კომპანია Oracle რომელიც თავის
პროდუქციას სხვა ოპერაციულ სისტემებთან ერთად ასევე Linux პლატფორმისათვის ქმნის.
აღსანიშნავია ის გარემოება რომ Linux საკმაოდ კარგად და დეტალურად არის
დოკუმენტირებული, ასევე დოკუმენტირებულია Linux-ის ბაზაზე შექმნილი პროგრამები,
მომხმარებელს უპრობლემოდ აქვს შესაძლებლობა ინტერნეტში მოძებნოს და წაიკითხოს
ნებისმიერი ინფორმაცია ნებისმიერი პროგრამის შესახებ და თანაც ამ ყველაფრის მოწოდება
ხდება უფასოდ, რაც იქიდან გამომდინარეობს რომ Linux-ის პრინციპია: მომხმარებელს უფასოდ
მივაწოდოთ რაც შეიძლება მეტი ინფორმაცია და პროდუქტი (პროგრამა) აქედან გამომდინარე ეს
ყოველივე შესაძლებლობას გვაძლევს ზოგიერთი ოპერაციული სისტემებისაგან განსხვავებით
(მაგალითად Microsoft Windows) უარი ვთქვათ საკმაოდ ძვირადღირებული წიგნების
დოკუმენტაციისა თუ პროგრამების შეძენაზე.

ზემოთ მოყვანილი მაგალითებიდან კარგად ჩანს თუ როგორ გადაიქცა ენთუზიასტი სტუდენტის


ლინუს ტორვალდსის მიერ დაწყებული ესპერიმენტი ერთერთ უმძლავრეს და
თანამედროვე ოპერაციულ სისტემად.

1990 წელს ჰელსინკის უნივერსიტეტის სტუდენტმა - ლინუს ტორვალდსმა, დაიწყო


დასწრება “ოპერაციული სისტემების” ლექციაზე. წიგნი, რომლითაც უნდა
ეხელმძღვანელა, იყო - ენდრიუ ტანენბაუმის “ოპერაციული სისტემები: დაპროექტება და
განხორციელება”. სახელმძღვანელო შეიცავდა პატარა მეგზურს “Minix” ოპერაციული
სისტემისათვის (გარკვეულწილად, მინი Unix-ი, მოცემული წიგნის ავტორის მიერ
შექმნილი). “Minix”-ი წარმოადგენდა ძალზედ მარტივ პროდუქტს, რომელიც მიზნად
ისახავდა ოპერაციული სისტემების თეორიის ადვილად შესწავლას. ყველაფრის მიუხედავად,
გამოქვეყნებიდან ორ თვეში (1987 წელი) უკვე არსებობდა ამ ოპერაციული სისტემისადმი
მიძღვნილი ძალზედ დიდი Newsgroup-ი (comp.os.minix). ტანენბაუმი იღებდა უამრავ წერილს,
სადაც “Minix”-ის “ფანები” ავტორს მიმართავდნენ სხვა და სხვა წინადადებებით
ოპერაციული სისტემის გაუმჯობესებისათვის, მაგრამ ეს წერილები უპასუხოდ
რჩებოდნენ

http://groups.google.com/group/comp.os.minix/browse_frm/thread/c25870d7a41696d2/f447530d082cd95d#f

აქ შესაძლებელია თვალი გადაავლოთ ტანენბაუმისა და ტორვალდსის დისკუსიას "Minix"-თან


დაკავშირებით.

ლინუს ტორვალდსმა მიატოვა ჰელსინკი და დღესდღეობით თავის მოღვაწეობას განაგრძობს


კალიფორნიაში, ფირმა Trasmeta-ში, რომელიც აწარმოებს პროცესორებს. ყოველივე ამან
არავითარი გავლენა არ მოახდინა კერნელის განვითარებაზე, პირიქით, ის სულ უფრო და უფრო
აქტიურ ფაზაშია. 10 წლის მიუხედავად, პინგვინის ოპერაციული სისტემის ისტორია ჯერ კიდევ
მხოლოდ საწყის ფაზაშია.

operaciuli sistemis programuli paketebi `sasicocxlo~


daniSnulebisaa kompiuterebisaTvis, mis gareSe manqanas muSaoba
ar SeuZlia. yvela danarCeni programuli sistema eyrdnoba da
iyenebs operaciul sistemebs. operaciuli sistemis daniSnulebaa
kompiuteruli resursebis marTva.

resursebSi igulisxmeba, rogorc fizikuri mowyobilobani


(magaliTad, procesori, magnituri disko, operatiuli mexsiereba,
printeri, gadacemis arxi da a.S.), aseve failuri resursebi (magaliTad,
programebi monacemebi). amgvarad, operaciuli sistema
`kompiuteruli ojaxis~ menejeria.

personaluri kompiuterebis gaCenasa da ganviTarebasTan


erTad (1981 w.) viTardeba maTi operaciuli sistemebic. pirveli
manqanebi damisamarTebis 8-bitiani (Tanrigiani) saSualebiT
iyenebda operaciul sistemas saxelwodebiT CP/M (Control Program
for Microcomputers).

16-Tanrigiani manqanebisaTvis gamoiyeneboda MS-DOS (MicroSoft


Disc Operating System), 32 TanrigianisaTvis ki gavrcelebulia
UNIX operaciuli sistema (rogorc globaluri kompiuteruli
qselis sabazo sistema) da personaluri kompiuterebis
popularuli operaciuli sistema Windows (95, 98, NT Serever
da Workstation, 2000, XP).

CP/M da MS-DOS operaciuli sistemebi personalur


kompiuterze uzrunvelyofda erT-programul reJims, anu drois
mocemul momentSi muSaobs mxolod erTi programa, misi sruli
damTavrebis Semdeg iwyeba meore da a.S. manqanis procesors
SeuZlia programebis damuSaveba mimdevrobiT reJimSi.
Windows-is platforma uzrunvelyofs mravalprogramul
reJimSi muSaobas, anu erTdroulad operatiul mexsierebaSi
moTavsebulia da procesoris mier muSavdeba ramdenime programa.
maTi raodenoba da damuSavebis siswrafe damokidebulia manqanis
konfiguraciaze.

kompiuterebis funqcionirebisaTvis aucilebelia maT


mexsierebaSi specialuri menejer-programebis moTavseba,
romlebic uzrunvelyofs erTis mxriv, TviT kompiuteris
resursebis marTvas da momxmareblis interfeiss da, meores
mxriv, saavtomatizacio obieqtze konkretuli saproblemo
amocanebis manqanuri gadawyvetis sistemebis xelSewyobas.
saproblemo amocanebi ganekuTvneba dagegmvis, aRricxvis,
analizis, kontrolisa da gadawyvetilebis miRebis sferoebs.
aseT programebs literaturaSi moixsenieben, rogorc sagnobrivi
sferos gamoyenebiT programul paketebs (gpp_Applications) an
gadawyvetilebis miRebis xelSemwyob sistemebs (DSS-Decision
Support Systems).

gansakuTrebuli mniSvneloba aqvs programul platformebs,


romlebzec daSenebulia marTvis kompiuteruli sistemebi.
termini `programuli platforma~ SedarebiT axalia da igi
`aparatul platformasTan~ kavSirSia. igi gansakuTrebiT maSin
gamoikveTa, roca firmebis Sun Microsystems da MicroSoft
koncefciebi Seejaxa erTmaneTs. ZiriTadad ori programuli
platforma (operaciuli sistema) Unix da Windows NT gaxda
konkurentebi sistemuri programebis bazarze. Unix-is mimdevrebia:
SunOS/Solaris, IBM AIX, HP-UX (Hewlett-Packard), SINIX (Siemens),
IRIX (Silicon Graphics) da sxv.

`asakovani~ Unix gamoirCeva maRalmwarmoeblurobiTa da


saimedoobiT, rasac `axalgazrda~ Windows ver daikvexnis.
samagierod Unix sistema rTulia administrirebis TvalsazrisiT
da moiTxovs maRali rangis kvalifikaciis (ZviradRirebul)
specialistebs, romelTa moZebna araa advili.

saqarTveloSi, iseve rogorc yvela postsabWour qveynebSi


90-iani wlebidan daiwyo IBM firmis personaluri
kompiuterebis masiuri Semotana. am manqanebSi, rogorc cnobilia,
MS-Dos operaciuli sistema gamoiyeneboda. SemdgomSi ki, roca
gaCnda VGA da SuperVGA tipis monitorebi, maikrosofTis
firmam aqtiurad daiwyo Windows-paketebis gavrceleba da
ganviTareba. dReisaTvis moTxovnilebani specialistebze swored
platformebisa da daprogramebis enebis codnis kriteriumebiT
ganisazRvreba. programuli sistemebis msoflio bazarze yvelaze
popularulia qseluri platformebi Unix (stabiluri sistema
didi da super-manqanebisaTvis), Windows (NT, 2000, xp personaluri
kompiuterebisaTvis) da Linux (axali platforma, rogorc
Unix-varianti PC-manqanebisTvis).

თავიდან Unix წარმოადგენდა ოპერაციულ სისტემას დიდი ეგმ-სათვის (სერვერებისათვის).


მაგრამ მასში ჩადებული პრინციპები დროთა განმავლობაში პერსონალური
კომპიუტერისათვის მისაღები აღმოჩნდნენ.
Linux მუშაობს სხვადასხვა აპარატულ პლატფორმაზე. ის შეიძლება გამოიყენებოდეს როგორც
სერვერის, მაგიდის კომპიუტერის ან ნოუთბუკის ოპერაციულ სისტემად. ნებისმიერ
სიტუაციაში ის ინარჩუნებს Unix-ის ყველა ღირსებას.

Linux-სათვის არსებობს სხვადასხვა პროგრამული უზრუნველყოფის უზარმაზარი რაოდენობა.


ო.ს.-ის სპეციფიკის გამო ამ პროგრამათა ნაწილი თავისუფალი ლიცენზიით ვრცელდება,
მაგრამ არსებობს კომერციული პროდუქტებიც.

ამ დროისათვის, სხვადასხვა შეფასებით, Linux-ს იყენებს 7,5-დან 11 მილიონამდე ადამიანი.


უფრო ზუსტი აღრიცხვა შეუძლებელია, რადგანაც Linux არის თავისუფალი ო.ს. და მისი
გამოყენებისათვის არსად რეგისტრირება არის საჭირო.

ისევე, როგორც ყველა Unix სისტემა, Linux სისტემაც შედგება ოპერაციული სისტემის
ბირთვისაგან (www.kernel.org) და სხვა პროგრამებისაგან (ანუ პაკეტებისაგან), რომლებიც
უზრუნველყოფენ სამომხმარებლო ამოცანების გადაწყვეტას. კომპლექტს, რომელიც
აერთიანებს ბირთვსა და პროგრამათა ერთობლიობას, დიტრიბუტივი ეწოდება.
პოპულარული დისტრიბუტივებია: RedHat (www.redhat.com), Mandrake
(www.mandrakelinux.com), Slackware (www.slackware.com), Debian GNU/Linux (www.debian.org).
ჩვეულებრივ დისტრიბუტივები შეიცავენ ყველა აუცილებელ პროგრამულ უზრუნველყოფას
როგორც სერვერის, ისე სამუშაო სადგურის ორგანიზებისათვის.

Linux-ის ბირთვს გააჩნია ნუმერაციის სამსაფეხუროვანი სისტემა - N.X,Y. თუ X ლუწი


რიცხვია - ე.ი. მოცემული ბირთვი წარმოადგენს სტაბილურ ვერსიას. ამ შემთხვევაში Y
რიცხვის გაზრდით ხდება შეცდომების გასწორება, ახალი შესაძლებლობები არ ემატება. თუკი
X კენტია - ეს ნიშნავს, რომ მოცმული ბირთვი წარმოადგენს არასტაბილურ, შემუშავების
სტადიაში მყოფ ვერსიას. ამ შემთხვევაში Y რიცხვის გაზრდით Linux-ს ემატება ახალი
შესაძლებლობები. როცა შემუშავებული ბირთვი მიაღწევს სტაბილურობას მზა პროდუქტის
დონეზე, ის "გაიყინება" და გადაიქცევა სტაბილურ N.X+1.0 ვერსიად.
Unix/Linux სისტემის არქიტექტურის საფუძვლებთან გაცნობის შემდეგ, ამ ო.ს.-ს სიმარტივე და
ლოგიკურობა პროგრამის შემუშავებაში საკუთარი ძალების მოსინჯვის სურვილს აღვიძებს.
ამისათვის Linux-ში არსებობს შემუშავების ბევრი საშუალება. აი მხოლოდ რამოდენიმე
მათგანი: C, C++, Objective C, Java, Modula-3, Modula-2, Oberon, Ada95, Pascal, Fortran, ML,
scheme, Tcl/tk, Perl, Python, Common Lisp.

Linux-სათვის რეალიზირებულია გრაფიკული, ფანჯარული ინტერფეისი X Windows. ძალიან


პოპულარული უფასო X სერვერი არის XFree86 (www.xfree86.org). ეს სერვისი მუშაობს ძალიან
ბევრ სხვადახვა ვიდეოპლატაზე. არის რამოდენიმე ფანჯარული მენეჯერი, რომელთა შორის
ყველაზე პოპულარულები არიან KDE (www.kde.org) და GNOME (www.gnome.org).

Linux-ში ტექსტის დამუშავების სტანდარტულ სისტემა არის TeX სისტემა. ის წარმოადგენს


დე ფაქტო სტანდარტს საგამომცელო საქმიანობაში, განსაკუთრებით სამეცნიერო
პუბლიკაციების სფეროში. Linux-ში აგრეთვე მუშაობენ ისეთი საოფისე პაკეტები
როგორებიცაა კომერციული Applixware (www.applix.com) და უფასო OpenOffice
(www.openoffice.org). ამ პაკეტებს შეუძლიათ MS Office-ის ფაილების ფორმატთან მუშაობა.
კარგ საოფისე პაკეტს წარმოადგენს KOffice (koffice.kde.org).

Linux-ის ქსელური საშუალებების მოკლედ აღწერა შეუძლებელია. ორიოდე სიტყვით


მხოლოდ იმის თქმა არის შესაძლებელი, რომ Linux-ში არის ყველაფერი. ამასთან ნებისმიერი
გემოვნებისთვის. როგორ მოგწონთ Internet ბროუზერების ნაირსახეობა დაწყებული
ტექსტური lynx-ით (lynx.bowser.org) და დამთავრებული უპოპულარულესი გრაფიკული
Mozilla-თი (www.mozilla.org)? იგივეს თქმა შეიძლება საფოსტო კლიენტებზე, სიახლეების
მკითხველ კლიენტებზე irc და icq კლიენტებზე. სავსებით ბუნებრივია, რომ ქსელში
დაბადებული ო.ს. მშვენივრად ეგუება ქსელთან მუშაობას.

ასევე მდიდარია Linux-ის სერვერული პროგრამული უზრუნველყოფის სამყარო. Linux-ზე


მუშაობს პოპულარული WEB სერვერი Apache (www.apache.org), რომლის ბაზაზე მუშაობს
ყველა WEB-კვანძის თითქმის ნახევარი. ეს სერვერი ეფექტურ გადაწყვეტილებას წარმოადგენს
სხვადასხვა სირთულის კვანძებისათვის. არსებობს სისტემები FTP-სერვერების, საფოსტო
სერვერების, DNS-ის, Firewall-ის და ა.შ. ორგანიზებისათვის.

არსებობს მონაცემთა ბაზების სერვერების დიდი რაოდენობა, რომლებიც მუშაობენ Linux-ზე.


მათ შორის არიან ისეთი უფასი SQL სერვერები როგორიცაა: MySQL (www.mysql.org),
PostgreSQL (www.postgresql.org), mSQL (www.hughes.com.au) და სხვ. Linux-ის ფარგლებში
ადვილად წყდება web-თან მომაცემთა ბაზების ინტეგრირების ამოცანები.

ასევე ნაირფეროვანია Linux-ის თამაშების სამყარო. თამაშების მოწინავე მწარმოებლებმა


დაიწყეს Linux-ის როგორც სერიოზულ სათამაშო პლატფორმად განხილვა. ბევრი თამაში
პირდაპირ გამოდიან Linux-ის და Windows-ის ვერსიებად, ან სწრაფად გარდაიქმნებიან
Linux-სათვის. Linux-ს შეუძლია ბევრ მულტიმედიურ მოწყობილობათა ბაზაზე მუშაობა
( ხმის პლატები, TV/FM ტუნერები, 3D აქსელერატორები).

Linux-ის აპარატული უზრუნველყოფის არჩევისას აუცილებელია დარწმუნდეთ იმაში, რომ


ის მუშაობს Linux-ის ბაზაზე. იმ აპარატურის სია, რომლებსაც Linux-ის ბაზაზე მუშაობა
შეუძლიათ დიდია მაგრამ არა უსასრულო. არა მგონია ამ სიაში რომელიმე ნაკლებად
პოპლულარული, არასტანდარტული ნაწარმი ნახოთ. სამწუხაროდ, აპარატურული
უზრუნველყოფის მწარმოებელთა მხოლოდ გარკვეული ნაწილი უზრუნველყოფს თავის
ნაწარმს Linux-დრაივერებით. ენთუზიასტები კი დრაივერებს უმთავრესად პოპულარული
აპარატურისათვის სწერენ.

უნდა აღინიშნოს Linux-ის მცირე მოთხოვნილება რესურსებისადმი. მინიმალური


კონფიგურაცია Linix-ის დასაყენებლად არის: 386SX/16, 1MB RAM, FDD 1.44 Mb ან 1.2 Mb.
ნათელია, რომ ასეთი კონფიგურაციით რაიმე სერიზულის გაკეთება შეუძლებელია, მაგრამ
მიუხედავათ ამისა Linux მაინც გამოავლენს თავის დამახასიათებელ თვისებებს
(მრავალმომხმარებლიანი სისტემა, მრავალფუნქციონალურობა და ა.შ.). უფრო კომფორტული
მუშაობისათვის ბუნებრივია მეტი რესურსებია საჭირო. 486-იანი პროცესორით და 4 Mb
RAM-ით უკვე შეიძლება X-Windows-თან მუშაობა. ამასთან დაგჭირდებათ დაახლოებით
50-100 Mb ვინჩესტერზე.

Linux კარგად ეგუება სხვა ო.ს.-ბს. Linux-ის სტანდარტული ჩამტვირთავი LiLo (Linux Loader)
საშუალებას მოგცემთ ერთ კომპიუტერზე იქონიოთ რამდენიმე ო.ს. გარდა ამისა Linux-ს ისეთ
ფაილურ სისტემებთან შეუძლია მუშაობა, როგორებიცაა: FAT16, HPFS, FAT32, NTFS, HFS.
Linux-ის დაყენება შეიძლება უკვე არსებულ DOS განყოფილებაში. ამისათვის შექმნილია
სპეციალური ფაილური სისტემა - UMSDOS.

Linux-თვის არსებობენ ემულატორები, რომლებიც სხვა ოპერაციული სისტემათა პროგრამების


გაშვების საშუალებას იძლევიან. ყველაზე მეტად გავრცელებულია dosemu (www.dosemu.org) –
DOS-ის ემულაციისათვის და wine (www.winehq.com) - Windows-ის ემულაციისათვის. ცალკე
უნდა აღინიშნოს პროგრამა vmware (www.wmware.com). ეს პროდუქტი Linux-ის ბაზაზე
შექმნილ ვირტუალური მანქანაზე (vm = Virtual Machine) სხვადასხვა ოპერაციული სისტემების
დაინსტალირებისა და მუშაობის საშუალებას იძლევა. სხვა სიტყვებით რომ ვთქვათ,
Dos, Windows 9x/Nt/2000/XP შეიძლება Linux-is ერთ ფანჯარაში გავუშვათ. არა მხოლოდ
ცალკეული პროგრამები, არამედ მთელი სისტემა.

Internet-ში თქვენ შეგიძლიათ ნახოთ Linux-ის შესახებ ინფორმაციის და დოკუმენტაციების


ზღვა. საზღვარგარეთულ სერვერებს შორის გამოირჩევიან ისეთები როგორებიც არიან:
www.linux.org, www.linux.com, www.li.org, www.freashmeat.org და ა.შ. რუსულენოვანი
სერვერებია: www.linux.org.ru, www.linux.ru.net. ქართულ ინტერნეტში გამოირჩევა ძალიან
კარგი ქართულენოვანი სერვერი www.linux.ge.

ბოლოს მინდა დავამატო: თუ კი ჯერ ვინმეს არ მოგისინჯავთ Linux, უკვე დროა ეს გააკეთოთ.
საინფორმაციო ტექნოლოგიების სამყარო ძალიან ინტენსიურად ვითარდება და აუცილებელია
სართო ტენდენციებზე მიყოლა, რათა ერთ მშვენიერ დღეს ტექნიკური პროგრესისაგან ძალიან
ჩამორჩენილი არ აღმოჩნდეთ.

LINUX ოპ. სისტემით სერვერების სტრუქტურა

1991 wels informatikis fakultetis finelma studentma


linus torvaldsma (Linus Torvalds) daiwyo Unix _ sistemis
programebis ageba misi axali versiis misaRebad. Tavis Ria
programis teqstebs igi aTavsebda internetSi. SemdgomSi mas
mravali programisti SeuerTda msoflios sxvadasxva kuTxidan
da erToblivad daiwyes muSaoba Linux proeqtze da mis
realizaciaze. sistemis saxelwodebac aqedan gamomdinareobs
Linux=LINus UniX, ase rom Linux SeiZleba sistema Unix -is
nairsaxeobad miviCnioT.

arsebobs Linux-is sxvadasxva paketebi damuSavebuli msoflios


qveynebis firmebis mier, am sakiTxSi liderad kvlav aSS rCeba.
momxmarebelTa Soris didi popilarobiT sargebloben: SuSE
Linux, Slackware Linux, Debian Linux, RadHat Linux, Mandrake Linux,
da a. S.

Linux operaciuli sistemisaTvis damaxasiaTebelia


stabiluroba, saimedooba da Semsrulebloba Internet qselSi
muSaobis farTo SesaZleblobebiT. igi aRiara iseTma cnobilma
firmebma, rogoricaa: IBM, Compaq, Siemens da a.S. ukve Seqmnilia
Linux-ze orientirebuli komerciuli programebi Oracle, Applix,
Corel, da a.S. gansakuTrebiT didi wvlili Linux-is
popularizaciaSi miuZRvis firma Sun Microsystems, romelmac
specialurad Linux-isTvis SeimuSava programuli paketi
StarOffice, romelic dResdReobiT am sistemis ZiriTad saofise
sistemas warmoadgens.

Linux -s aqvs komfortuli grafikuli


interfeisi, Tumca sistema gamoirCeva grafikul interfeisTa
mravalferovani arCevniT.

amgvarad, Linux aris `birTvi~ yoveli Unix operaciuli


sistemisaTvis anu Linux Tavsebadia Unix programuli sistemebis
mTeli speqtrisaTvis.

Linux-Si mravladaa samomxmareblo programa. magaliTad,


saukeTeso gafarToebul versiad iTvleba C/C++ kompilatori,
interfeisuli garsi, monacemTa damuSaveba, teqstebis redaqtori
da sxv. Linux dakomleqtebulia PC-personaluri kompiuterebis
Unix sistemebisaTvis X Window System (magaliTad, X11 Release
6.3, 6.4).

Unix da Linux sistemebi TavisTavad sakmaod rTuli da


moculobiTi dokumentaciiT gamoirCeva.

damatebiTi cnobebis miReba SeiZleba internetis misamarTze:


http://www.suse.com kaliforniidan da http://www.suse.de
germaniidan. SuSE - Software- und SystemEntwiklung (programuli
uzrunvelyofisa da sistemebis warmoeba).

SUSE Linux-is Tanamedrove versiebis instalirebisaTvis


personaluri kompiuteris konfiguracia unda akmayofilebdes
Semdeg minimalur moTxovnebs:

_ procesori - pentiumi;
_ Setup-Si kompaqt diskodan (CD ROM) sistemis gaSvebis
saSualeba;

_ operatiuli mexsiereba 64 Mb (RAM);

_ magnituri disko (HD) 150 Mb (minimaluri


konfiguraciisTvis) da 500 Mb (standartulisaTvis).
instalireba xorcieldeba tradiciuli YaST (Yet another
Setup Tool) paketiT (an grafikulinterfeisiani YAST2-iT).

ukanaskneli gamoiyeneba pentiumis axali modelebisaTvis.


instalaciis procesi imarTeba meniuebiT, romelsac momxmarebeli
sistemis ama Tu im parametrebis arCeviT pasuxobs. aucilebelia
verkveodeT imaSi Tu ramdennairi gziT SeiZleba sistema Linuxis
CatvirTva. es damokidebulia imaze Tu sad CavwerT

LILO(Linux Loader)-s, anu Linux-is CamtvirTav nawils.


LILO Cawera SeiZleba ganvaxorcieloT:

1. moqnil diskoze (floppy disk). es aris Linux-is CatvirTvis


yvelaze saimedo, magram neli meTodi. es meTodi vamoiyeneba im
SemTxvevaSi Tu ar gvsurs SevcvaloT boot-seqtori.

2. Linux-is pirveladi diskos danayofis boot-seqtorSi.


am SemTxvevaSi MBR (Master Boot Record) rCeba xelSeuxebeli.
sanam sistemas CavtvirTavT, saWiroa am diskis danayofis
gaaqtiureba fdisk-is saSualebiT. es CatvirTvis meTodi ar
aris xelsayreli im SemTxvevaSi roca magnitur diskze sxva
sistema gvaqvs dayenebuli, radgan Cven mogviwevs winaswar
gavaaqtiurod im diskis danayofi romlidanac vapirebT sistemis
CatvirTvas. es procesi sakmaod Sromatevadia, ase rom, Semdegi
meTodi ufro xelsayrelia aseT situaciaSi.

3. Master Boot Record-Si. es sistemis CatvirTvis yvelaze


moqnili meTodia. im SemTxvevaSi Tu Cven magnitur diskze
gvaqvs sistema Windows, LILO Seicnobs mas da Tavis CasatvirT
sistemaTa meniuSi Seitans Sesabamisi saxeliT, rac moagvarebs
im problemas romelsac me-2 meTodis ganxilvisas SevexeT.
davuSvaT, sistema dakompleqtebulia sworad, maSin gadavideT
misi eqspluataciis reJimze.

Linux-Si SegviZlia SevideT rogorc grafikuli reJimiT,


aseve teqsturi reJimiT. Tu Cven sistemis dayenebisas amovirCieT
grafikuli reJimi, maSin sistemis CatvirTvis Semdeg gamoCndeba
grafikuli konsoli, sadac SevitanT momxmareblis saxelsa
da parols, xolo Tu Cven amovirCieT teqsturi reJimi, amis
gakeTeba Sesabamisad teqstur reJimSi mogviwevs. gansxvaveba
imaSia Tu saerTod sistemis romel reJimSi gvsurs Cven muSaoba,
grafikulSi Tu teqsturSi.

arsebobs ornairi momxmarebeli: administratori anu root


da ubralo momxmarebeli.
pirvelis SemTxvevaSi sistemasaTan mierTeba xdeba ase:

Login: root
Password: ********

Tu paroli sworadaa miwodebuli, administrators SeuZlia


muSaobis dawyeba da sistemaSi saWiroebisamebr garkveuli
parametrebis cvlileba.

Cveulebrivi momxmareblis reJimSi (mas ara aqvs raime


sistemuri cvlilebis ufleba):

Login: user
Password: ********

Tu logikuri mierTeba normalurad Catarda, maSin unda


gamoCndes ekranze `mipatiJebis~ simbolo:
Meliton::~#brZaneba,

sadac Meliton konkretuli kompiuteris saxelia, xolo brZaneba


- konkretuli Sesasrulebeli funqciis saxelia, romelsac
momxmarebeli miawvdis manqanas. magaliTad,
Meliton:~# startx.

Startx brZanebiT miviRebT grafikul interfeisSi muSaobis


SesaZleblobas (Windows operaciuli sistemis msgavsad).
grafikuli interfeisidan gamosvla xorcieldeba samuSao
magidis meniuSi logout brZanebis gamoZaxebiT .
kompiuteris gamorTvisaTvis saWiroa Semdegi brZanebebi:
Shutdown da Halt.

agreTve, sistemis swrafi gadatvirTvisaTvis SegviZlia avkrifoT reboot.

LINUX-is zogierTi maxasiaTebeli da terminebi

Windows da MS-Dos sistemebisagan gansxvavebiT Linux iyenebs


Unix sistemis Taviseburebebs, amitomacaa igi Unix-Tavsebadi.
direqtoriebis gzis (path) misaTiTeblad aq gamoiyeneba
marjvniv gadaxrili ' / ' sleSi. magaliTad, /home/dev/hdc7…
nacvlad ' \ ' -isa Dos-Si.

buferi (buffer) aris mexsierebis garkveuli adgili, sadac


Tavsdeba monacemebi maTi Semdgomi mravaljeradi gamoyenebis
mizniT. Linux -Si arsebobs mravali saxeoba aseTi buferebisa.
fanjrebis menejeri (windows manager) realizebulia
X Window System grafikuli interfeisis saxiT. igi amuSavdeba
startx brZanebiT.

` * ~ da ` ? ~ niSnebi (wildcards). pirveli ugulebelyofs


ramdenime simbolos, meore ki mxolod erTs. magaliTad, file_*.*
niSnavs file_1.exe, file_7.dll file_19.txt da a.S. ko?o.txt ki koko.txt,
koso.txt, koro.txt da a.S. MS Dos msgavsad.

birTvi (kernel) aris saerTo sistemis `guli~, masSi


mimdinareobs yvela procesi: mexsierebis marTva, procesebis
cxrilTa marTva, multidavalebebis marTva, monacemTa masivebze
mimarTvis uzrunvelyofa da a.S.

terminali (terminal, console). igulisxmeba virtualuri


terminalebi, romelTa ricxvi Linux-Si 6-ia. momxmarebels SeuZlia
eqvsi erTmaneTisgan damoukidebeli ekranis gamoyeneba. erTSi,
magaliTad, teqstur fails awyobs, meoreSi programas amuSavebs,
mesameSi internetidan gamoaqvs informacia da a.S. gadarTvebi
erTi terminalidan meoreze xdeba Alt+F1,…, Alt+F6 klaviSebiT.
me-7 terminali gaTvaliswinebulia X11-Tvis, anu grafikuli
interfeisisTvis. Alt+F7-iT gadavdivarT X11 -Si, xolo ukan
dabruneba teqstur reJimSi: Ctrl+Alt+F1,…, Ctrl+Alt+F6.

FAT (File allocation Table) ფაილური სისტემა წარმოადგენს ცხრილს, რომელშიც მითითებულია:
ლოგიკური დისკის უშუალოდ დამისამართებული ადგილები, სადაც თავსდება ფაილები
ან მათი ფრაგმენტები;
დისკური მეხსიერების თავისუფალი ადგილები;
დისკის დეფექტური ადგილები;

direqtoriebi (კატალოგები) da failebi

standartuli katalogebi Linux-Si

/ - birTvi

/boot – sistemis CamtvirTveli

/bin - Seicavs standartul programebs

/home – Seicavs momxmareblis samuSao katalogebs

/usr – Seicavs yvela im programas rasac iyenebs sistema

/sbin – brZanebebi sistemuri administrirebisTvis


/var – Seicavs iseT failebs, romlebic xSirad icvlebian, mag. safosto yuTis failebi,
an printeris dayenebebi, buferuli failebi

/ets – sistemis dayenebebis failebi

/dev – periferiuli mowyobilobebis Sesaxeb failebi

/tmp - katalogebi droebiTi failebisaTvis

/mnt - failebi sxvadasxva katalogebis mimaunTebis(mierTebis) Sesaxeb

direqtoriebTan da failebTan muSaoba Linux (Unix) sistemaSi


msgavsia MS-Dos -is.

magaliTad, momxmareblis gio direqtoriaSi yofnisas:

drwxr-xr-x 5 gio users 1024 Jan 5 11:50 ./

-rwxr-xr-x 1 gio users 3500 Feb 20 17:30 file*

drwxr-xr-x 2 gio users 1024 Mar 5 15:20 etc/

drwxr-xr-x 15 gio users 1024 Nov 5 09:05 sbin/

-rw-r--r-- 1 gio users 5678 Apr 1 13:30 f_text.txt

-rw-r-r-- 1 gio users 185050 Dec 5 17:36 xvi.tgz

-rw-r-xr-- 1 gio users 29524 Jun 29 13:11 linux.info

gio@meliton:/home/gio>brZaneba,
sadac brZaneba SeiZleba iyos:

pwd (print working directory) _ gamoaqvs muSa direqtoriis saxeli;

mkdir Newdir - axali direqtoriis Seqmna;

rmdir olddir - direqtoriis waSla;


rm -r olddir - direqtoriis waSlaa;

rm file - failis waSla;

direqtoriebisa da failebis Sesaxeb informacia miiReba ls


brZanebiT.

Selis tipebi

Seli SHELL aris samuSao sistemuri garemo brZanebaTa enaze. failebi Tavmoyrilia
bin katalogSi

/.../sh Bourne shell

/.../csh C shell

/.../tcsh TC shell

/.../ksh Korn shell

/.../bash Bourne Again SHell

imisaTvis rom gavigoT romel SelSi vmuSaobT terminalSi (igive konsoli) avkrifoT braZaneba :

echo $SHELL

uflebebi failebze (permissions)


uflebebis SecvlisaTvis saWiroa brZaneba chmod
brZanebas vkrefT Semdegnairad:

chmod ⊔ Y+(-)rwx⊔ file(directory)

YYY= u(user), g(group), o(other), a(all)

chgrp (change group) command — failisa da direqtoriisTvis jgufis Secvla

chown (change owner) command — failisa da direqtoriis iuzeris Secvla

chgrp ⊔ user2 ⊔ text.odt

momxmareblis da momxmarebelTa jgufis damateba

axali momxmarebeli an jgufi rom davamatoT terminaliT, unda gvqondesAruTis uflebebi

(su -> , root - password );

Semdeg avkrifoT brZaneba: /usr/useradd ⊔ username

mivaniWoT paroli: passwd ⊔ username

****** - enter kidev gavimeorebT. gaCndeba axali “iuzeri” Tavisive axal jgufSi

axali momxmarebeli sasurvel jgufSi


# /usr/sbin/ useradd ⊔ -c ⊔ 'modebadze' ⊔ -u504⊔ -g ⊔users⊔-d⊔home/zurab⊔ -s⊔

/bin/bash⊔zurab

axali jgufis damateba: groupadd ⊔ groupname

jgufis da iuzeris waSla: groupdel ⊔ groupname; userdel ⊔ username

axali direqtoriis Seqmna: mkdir ⊔ /home/user/dirname

kopireba: cp ⊔ /home/user1/filen ⊔ /home/user2/direqt

gadatana-saxelis gadarqmeva:

mv ⊔ /home/user1/filename ⊔ /home/user2/direqt/ filenewname

failis waSla: rm ⊔ /home/user/filename

direqtoriis waSla: rmdir ⊔ /home/user/dirname

terminalis ZiriTadi brZanebebi :

1. კლავიშების "ცხელი" კომბინაციები:

[ctrl] [Alt][F1] პირველ კონსოლურ ტერმინალზე გადართვა.


[ctrl] [Alt][F#] მე-# კონსოლურ ტერმინალზე გადართვა. (#=1..6)
[ctrl] [Alt][F7] გრაფიკულ ტერმინალზე გადართვა.
ბრძანებათა ისტორიის ბუფერის დათვალიერება და
[Arrow Up]
რედაქტირება. ბრძანების შესასრულებად დააჭირეთ [Enter].
[Shift][PgUp] ეკრანის საზღვრებს მიღმა გადამცდარი კონსოლში
გამოტანილი ტექსტის დათვალიერება. ზევით
გადაადგილება.
[Shift][PgDown] იგივე რაც ზემოთ. ქვევით გადაადგილება.
(X-Windows-ში) X-Windows-ის მიმდინარე სერვერის
[ctrl] [Alt] [BkSpc] "მოკვლა". (ყველა პროცესის განადგურებით გრაფიკული
გარსიდან გამოსვლა).
[ctrl][Alt][Del] კომპიუტერის გადატვირთვა.
[ctrl] c მიმდინარე პროცესის მოკვლა.
მიმდინარე ტერმინალიდან გამოსვლა.
[ctrl] d
მიმდინარე პროცესს უგზავნის სიგნალს: [ფაილის ბოლო].
[ctrl] s ტერმინალში ინფორმაციის გამოყვანის შეჩერება.
[ctrl] q ტერმინალში ინფორმაციის გამოყვანის შეჩერება.
[ctrl] z მიმდინარე პროცესის background-ში გაგზავნა.
[მაუსის შუა ღილაკი] კურსორით მონიშნული ტექსტის ჩასმა.
ჩემი საშინაო დირექტორია. მაგალითად cd
~
~/ჩემი_ქვედირექტორია.
. (წერტილი) მიმდინარე დირექტორია.
(ორი წერტილი) მიმდინარე დირექტრიის "მშობლიური"
..
დირექტორია.

2. სტანდარტული ბრძანებები, ბრძანებები რომლებსაც სისტემის


შესახებ ინფორმაცია გამოაქვთ:

Pwd მიმდინარე დირექტორიის გამოტანა.


იმ სახელის გამოტანა, რომლითაც მე ვარ
Whoami
დარეგისტრებული.
Hostname მანქანის ქსელური სახელის გამოტანა ან შეცვლა.
თარიღის და დროის გამოტანა ან შეცვლა. მაგალითად,
იმისათვის რომ დავაყენოთ თარიღი და დრო:
Date
2016-12-31 23:57, უნდა შევასრულოთ ბრძანება:
date 12313572016
პროცესის შესრულებისათვის საჭირო დროის გამოტანა.
Time არ აგერიოთ ეს ბრძანება date-სთან. მაგალითად, მე
შემიძლია განვსაზღვრო თუ რა დრო არის საჭირო
დირექტორიაში მოთავსებული ფაილების სიის
გამოსატანად ბრძანებით: time ls
იმ მომხმარებელთა სახელების გამოტანა რომლებიც
Who
მიმდინარე მომენტში სისტემაში არიან შემოსული.
თქვენ ქსელთან დაკავშირებული ყველა მომხმარებლის
სახელის გამოტანა. ამ ბრძანების შესრულებისათვის
rwho –a საჭიროა, რომ გაშვებული იყოს პროცესი rwho. თუ
კი ის არ არის გაშევებული, გაუშვით "setup"
(სუპერმომხმარებლის (root-ის) პრივილეგიით).
დარეგოსტრირებულ მომხმარებელზე ინფორმაციის
finger [user_name]
გამოტანა. სცადეთ finger root
Uptime მანქანის ბოლო გადატვირთვის შემდეგ გასული დრო.
ps a მიმდინარე პროცესების სია.
მიმდინარე პროცესების ინტერაქტიული სია, რომელიც
Top
დახარისხებულია cpu-ს გამოყენების მიხედვით.
Uname გამოვიტანოთ სისტემური ინფორმაცია.
Free გამოვიტანოთ ინფორმაცია მეხსიერების შესახებ.
(ადგილი დისკზე) გამოვიტანოთ ინფორმაცია
df –h დისკებზე დაკავებული და თავისუფალი ადგილის
შესახებ.
(= ვინ რამდენი დაიკავა) ფესვური დირექტორიიდან
( / დან) დაწყებული, ყველა დირექტორიაში
du / -bh | more
მოთავსებული ფაილების ზომების შესახებ
დეტალური ინფორმაციის გამოტანა.
სისტემური ინფორმაცია პროცესების მიმდინარეობის
cat /proc/cpinfo
შესახებ.
cat /proc/version Linux-ის ბირთვის ვერსია.
მიმდინარე მომენტში გამოყენებადი ფაილური
cat /proc/filesystems
სისტემების სახეების გამოტანა.
cat /etc/printcap პრინტერის კონფიგურაციების გამოტანა.
(როგორც root) ბირთვის მიმდინარე მომენტში
Lsmod ჩატვირთული მოდულების შესახებ ინფორმაციის
გამოტანა.
ცვლადი გარემოების მიმდინარე მნიშვნელობების
set|more
გამოტანა.
ცვლადი გარემო $PATH-ის მნიშვნელობის გამოტანა.
ეს ბრძანება შეიძლება გამოყენებულ იქნას სხვა ცვლადი
echo $PATH
გარემოთა მნიშვნელობების გამოსტანად. სრული სიის
მისღებად ისარგებლეთ ბრძანებით set.

3. ქსელთან მუშაობა :

(როგორც root) ძალიან კარგი პროგრამა ქსელი


Netconf
გამართვისათვის.
სხვა მანქანასთან კავშირის შემოწმება (მანქანის სახელი
ნაცვლად შეიძლება გამოვიყენოთ მისი IP მისამართი).
ping [მანქანის_სახელი]
როდესაც საჭირო ინფორმაციამიღებული იქნებამ
დააჭირეთ [ctrl] c .
route –n მარშრუტიზაციის ცხრილის გამოტანა (the routing table).
ipfwadm -F -p m Firewall-ის გამართვა.
(როგორც root) გამოვიტანოთ ინფორმაცია მიმდინარე
ქსელური ინტერფეისების შესახებ (ethernet, ppp და ა.შ.).
თქვენი პირველი ethernet პლატა ნაჩვენები იქნება
როგორც eth0, მეორე - eth1, პირველი ppp მოდემი
Ifconfig როგორც ppp0 და ა.შ. lo (loopback only) ეს ისეთი
ქსელური ინტერფეისია, რომელიც სულ
აქტივირებული უნდა იყოს. გამოიყენეთ შესაბამისი
ოპციები (ნახეთ ifconfig --help) ქსელური
ინტერფეისების გასამართად.
(/sbin/ifup ჩვეულებრივი მომხმარებლით) შესაბამისი
ქსელური ინტერფეისის აქტივირება. მაგალითად
ifup eth0
ifup ppp0
ifup [ქსელური_ინტერფეისი_სახელი]
მომხმარებელს ppp ქსელური ინტერფეისის აქტივირება
და გამორთვა შეუძლია მხოლოდ მაშინ როცა
დართული აქვს შესაბამისი უფება (უფლება შეიძლება
დავრთოთ) "netconf"-ში ppp-ს გამართვის პროცესსში.
(/sbin/ifdown (ჩვეულებრივი მომხმარებლით)
ifdown [ქსელური_ინტერფეისი_სახელი]
შესაბამისი ქსელური ინტერფეისის დეაქტივირება.
4. უმარტივესი მოქმედებები:

Ls მიმდინარე დირექტორიაში ფაილების სია.


cd [დირექტორია] მიმდინარე დირექტორიის შეცვლა.
cp [რა დავაკოპიროთ][სად
ფაილების კოპირება.
დავაკოპიროთ]
mcopy [რა დავაკოპიროთ][სად DOS-ის ფაილურ სისტემასთან მუშაობის დროს
დავაკოპიროთ] ფაილების კოპირება.
მაგ: mcopy a:\autoexec.bat ~/junk
მსგავსი ბრძანებების (mdir, mcd, mren, mmove, mdel,
mmd, mrd, mformat) შესახებ ინფორმაციას
გაეცანით man mtolls-ში
mv [რა გადავაადგილოთ] [სად
ფაილის გადატანა ან სახელის შეცვლა.
გადავაადგილოთ]
ln -s [რაზე შევქმნათ ბმული] [ბმულის
სიმბოლური ბმულის შექმნა.
სახელი]
rm [ფაილები] ფაილების წაშლა.
mkdir [დირექტორია] დირექტორიის შექმნა.
rmdir [დირექტორია] ცარიელი დირექტორიის წაშლა.
rm -r [ფაილები და/ან დირექტორიები] (რეკურსიული წაშლა) ფაილების, დირექტორიების და
მათი ქვედირექტორიების წაშლა.
cat [ფაილის _სახელი] | more ტექსტური ფაილის შიგთავსის ნახვა თითო-თითო
გვერდით.
vi [ფაილი] ფაილის რედაქტირება.
pico [ფაილი] ტექსტური რედაქტორი.
lynx [html ფაილი ან ბმული] ტექსტური ბროუზერი lynx
tar -zxvf [ფაილები] tgz ან tar.gz არქივების გაშლა.
find / -name "ფაილის სახელი" "ფაილის_სახელი" ფაილის მოძებნა. ძებნა იწყება "/"
დირექტორიიდან. "ფაილის_სახელი" შეიძლება
შეიცავდეს ნიღაბს ძიებისათვის.
Pine კარგი ტექსტური-ორიენტული პროგრამა
ელექტრონული ფოსტის წასაკითხად. კიდევ ერთ
ასეთ პროგრამას ეწოდება elm. pine გამოიყენება
"ლოკალური" ფოსტის წასაკითხად, ანუ იმ ფოსტის
წასაკითხად, რომელსაც თქვენ გიგზავნით son ან cron
პროცესი.
Mc ფაილური მენეჯერი "Midnight Commander".
(გამოიყურება როგორც Norton Commander, მაგრამ
თავისი შესაძლებლობებით უფრო Far Managar-თან
არის ახლოს).
telnet [სერვერი] telnet-ით სხვა მანქანებთან დაკავშირება.
გამოიყენეთ მანქანის სრული სახლი ან IP მისამართი.
შედით თქვენი პაროლის დახმარებით (თქვენ უნდა
იყოთ დარეგისტრებული იმ სხვა მანქანაზე). ეს თქვენ
მოგცემთ საშუალებას სხვა მანქანაში შეხვიდეთ და
მასზე იმუშავოთ ისე, თითქო მის კლავიატურასთან
ზიხართ (თითქმის არავითარი განსხვავება).
ftp [სერვერი] დაშორებულ მანქანასთან ftp-თი დაკავშირება.
კავშირის ეს ტიპი კარგია დაშორებული მანქანიდან ან
დაშორებულ მანქანაში ფაილების კოპირებისათვის.
./პროგრამის_სახელი მიმდინარე დირექტორიაში პროგრამის გაშვება.
Minicom Minicom - პროგრამა (გამოიყენება როგორც telix Linux-
სათვის).
Startx X-Windows სერვერის და დაყენებული ფანჯარული
მენეჯერის გაშვება. ეს ჰგავს იმას, როცა win3.1-ის
გასაშვებად dos-ში ჰკრიბავენ "win"-ს.
Xterm (X ტერმინალში) X-Windows გრაფიკულ გარსში
ჩვეულებრივი ტერმინალის გაშვება. გამოსვლისათვის
აკრიბეთ "exit".
Xboing (X ტერმინალში) ძალიან მაგარი, ძველი, კარგი
არკანოიდი.
gimp (X ტერმინალში) ძალიან მძლავრი გრაფიკული
რედაქტორი. თავისი შესაძლებლობებით ახლოსაა
Photoshop-თან. ძალიან კარგია მხატვრებისათვის.

LINUX ოპერაციულ სისტემაში სტატისტიკები და ლოგ-ები:

იმ შემთხვევაში, როდესაც ამ სისტემით გამოცხადებულია ნებისმიერი სერვერი, ძალიან დიდი


მნიშვნელობა აქვს იმ ლოგების სტატისტიკას თუ ვინ და როდის დაუკავშირდა სერვერს და
რა ოპერაციები შეასრულა. განსაკუთრებით აქტუალური გახდა ეს პროცესები ბოლო დროს
გახშირებული ე.წ. „ხაკერული“ თავდასხმების გამოსააშკარავებლად. ეს ინფორმაცია ძირითადად
განთავსებულია /var/log/ კატალოგში შემდეგი ფაილების სახით:
Secure

Messages.1, …., messages.N

Linux-ის ქსელური ბრძანებები: Ping, Traceroute, Talk, Finger, Write, Wall, Who, Top:

Ping ბრძანების საშუალებით შესაძლებელიალოკალურ ან გლობალურ ქსელში ჩართული


კომპიუტერის (host-ის) „სიცოცხლისუნარიანობის“ დადგენა. ამ ბრძანების ფორმატია:

Ping ip-addresss

Ping hostname

Traceroute ეს ბრძანება საშუალებას იძლევა დავადგინოთ სრული გზა (საფეხურებითა და


ნახტომებით) , რომლის გავლაც უწევს წსელურ პაკეტებს ჩვენიდან ადრესატამდე. მისი
ფორმატია:

Traceroute ip-addresss

Traceroute hostname

ამ ბრძანების შედეგად ეკრანზე გამონათდება გადანომრილი გზის საფეხურები და იმ

შემთხვევაში თუკი შედეგად მივიღებთ ფიფქებს ეს იმას ნიშნავს, რომ გზის ამ კომპონენტზე

ან ხდება გზის წყვეტა ან ამ ადგილზე დახურულია Traceroute-ს საკომუნიკაციო

პორტი.

Talk ამ ბრძანების საშუალებით შესაძლებელია ტერმინალის რეჟიმში დაკავშირება

ნებისმიერ მომხმარებელთან მეილის საშუალებით. ბრძანების ფორმატია:

Talk e-mail <CR>


ამ ბრძანების მერე მოცემულ აბონენტს მიუვა შეტყობინება, რომ მასთან Talk-ის საშუალებით

დიალოგურ რეჟიმში დაკავშირება სურს მოცემულ მომხმარებელს და თუ იგი იგივე ფორმატის

ბრძანებით მიმართავს მომხმარებელს, მოხდება დაკავშირება, ტერმინალის ეკრანი გაიყოფა ორად

ამ ორ აბონენტს შეეძლება ერთმანეთთან „საუბარი“ დიალოგურ რჟიმში.

Finger ამ ბრძანების საშუალებით შესაძლებელია პიროვნების მოძებნა Linux (Unix) ტიპის

სისტემაში , თუ ცნობილია მხოლოდ მისი e-mail. ბრძანების ფორმატია:

Finger e-mail

და ამ ბრძანების შემდეგ მივიღებთ სრულ ინფორმაციას ამ პიროვნების შესახებ, რაც


კი არსებობს Linux სისტემაში.

Write ამ ბრძანების საშუალებით შესაძლებელია Linux სისტემით აღჭურვილ სერვერზე


მივწეროთ შეტყობინება ამავე სერვერზე ნებისმიერ მომხმარებელს. ბრძანების ფორმატია:

Write username

Wall ეს ბრძანება ძალიან სასურველია Linux სისტემის ადმინისტრატორისათვის, რამეთუ


მისი საშუალებით შესაძლებელია ადმინისტრატორმა ერთდროულად დაუგზავნოს
სისტემის ყველა მომხმარებელს „ცხელი“ შეტყობინება. მაგალითად: „ხვალ სერვერზე 13.00
საათიდან 17.00 საათამდე ვერ იმუშაბთ პროფილაკტიკური სამუშაოების გამო“.
ბრძანების ფორმატია:

Wall <CR> „ცხელი“ შეტყობინება CTRL^D

Linux სისტემით აღჭურვილ სერვერზე თუ ვინ რომელი მისამართიდან არის შემოსული და


მუშაობს, ამის ნახვა შესაძლებელია შემდეგი ბრძანებით:

Who <CR>

Top ბრძანების საშუალებით შესაძლებელია სისტემის ადმინისტრატორმა ტერმინალურ


რეჟიმში უწყვეტად ადევნოს თვალყური, თუ რა პროცესები მიმდინარეობს სიისტემაში.

Linux სისტემით აღჭურვილ სერვერზე CRON, Backing Up, Restoring:

CRON - ეს პროცესი საშუალებას იძლევა ავტომატურ რეჟიმში მოხდესსერვერებზე სხვადასხვა


ინფორმაციის დამუშავება ადმინისტრატორის მიერ წინასწარ შედგენილი „გეგმის“ მიხედვით.
ამ „გეგმის“ გაწერა ხდება crontab სისიტემურ ფაილში, რომელიც მდებარეობს /etc
კატალოგში. მაგალითისათვის ქვემოთ მოვტან ერთერთიმოქმედი Linux სერვერის
crontab სტრუქტურას:

[zurab@zurab ~]$ cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# For details see man 4 crontabs


# Example of job definition:

# .---------------- minute (0 - 59)

# | .------------- hour (0 - 23)

# | | .---------- day of month (1 - 31)

# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...

# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

#| | | | |

# * * * * * user-name command to be executed

20 21 * * 6 root scp -r root@80.82.132.13:/home/SYSTEM/mysql /home/backup/

00 06 * * * root scp -r root@80.82.132.13:/home/spd/temp/*.1.tgz /home/backup/sqldump/

00 01 * * * root scp -r root@80.82.132.13:/home/spd /home/backup/


40 20 * * 6 root scp -r root@80.82.132.12:/var/www/html/temp/*.pbo1.tgz /home/backup/sqldumppbo/

* * * * * root scp root@80.82.132.13:/var/log/httpd/modsec_audit.log /var/log/

* * * * * root scp root@80.82.132.13:/var/log/secure /var/log/parl_log/

10 9 * * * root /bin/modsecOUT.sh

27 9 * * * root rm -f /var/log/parliament/modsec_audit.log

00 20 13 * * root scp -r root@80.82.132.14:/var/www/html/ /home/zurab/P_B_O/

05 * * * * root scp root@80.82.132.14:/var/log/httpd/modsec_audit.log /home/zurab/P_B_O/MOD/

07 * * * * root scp root@80.82.132.13:/var/log/secure /home/zurab/P_B_O/MOD/

30 9 * * * root /bin/modsec_PBO_OUT.sh

32 9 * * * root rm -f /home/zurab/P_B_O/MOD/modsec_audit.log

# chmod o+r modsec_audit.log

#11 9 * * * root /opt/splunk/bin/splunk start


#$(date "+%y-%m-%d")

ამ ფაილის თავში კომენტარების სახით განმარტებულია თუ რომელი ველი რა ფუნქციას


ასრულებს. კერძოს პირველ ველში არის წუთი, მორეში - საათი, მესამეში - თვის
რიგითი დღე, მეოთხეში - კვირის დღე (სადაც კვირა არის 0 ან 7). შემდეგ ველში იწერება
იმ მომხმარებლის სახელი, რომელიც ავტომატურად შეასრულებს ბრძანებას, ხოლო
თვითონ შესასრულებელიბრძანება იწერება შემდეგ ველში.

DNS სერვერები, დომენური სისტემის ფუნქციონირების საფუძვლები.

დომენის კონფიგურაცია ლინუქს-სისტემაზე,

პირდაპირი და შებრუნებული დომენური ბაზები, მათი მართვა.

DNS (Domain Name Server) სერვერი - ემსახურება ინტერნეტში ip-მისამართებსა და დომენურ

სახელ-მისამართებს შორის შესაბამისობის დამყარებას. DNS (Domain Name Server) სერვერის

გამოგონებამ ინტერნეტ-მომხმარებლებს „გაუმარტივა ცხოვრება“. წინააღმდეგ შემთხვევაში, მათ

ამა თუ იმ ვებ-გვერდზე გადასვლისათვის ბროუზერში უნდა მიეცათ ip-მისამართები და მათი

დამახსოვრება ურთულეს საქმეს წარმოადგენდა. DNS (Domain Name Server) სერვერის სამართვი

ფაილია named* , ხოლო კონფიგურაციის ფაილებია /etc/named.cf ან /etc/named.conf ან /etc/named.

Boot, იმისდა მიხედვით რომელ სისტემაში ვართ Unix ან Linux ან Solaris.

DNS (Domain Name Server) სერვერის პორტია 53, რომლის ინსტალაცია ხორციელდება

ადმინისტრატორის მიერ ბრძანებით :

yum install bind-chroot system-config-bind

ქვემოთ მოყვანილია კონფიგურაციის ფაილის სტრუქტურა:


Directory /var/domain

Primary hepi.ge db.hepi.ge

Primary 216.67.194in-addr.arpa db.194.67.216

Secondary cyber.hepi.ge 194.67.216.209

სადაც: db.hepi.ge და db.194.67.216 შესაბამისად არის DNS (Domain Name Server) სერვერის

პირდაპირი და შებრუნებული ბაზები. ის ემსახურება ინფორმაციის თარგმნას ინტერნეტში

გასვლისათვის და აგრეთვე, პირიქით ინტერნეტიდან მიღებული ინფორმაციის დაბრუნებას

ადრესატებისათვის. Primary არის ჩემი ქსელის სერვერი, ხოლო Secondary - კი ჩემი ქვექსელის

სერვერი. შებრუნებული ბაზას სახელით db.194.67.216 შეესაბამება „შებრუნებული“

დომენი 216.67.194in-addr.arpa, რომელიც მიღებულია საერთაშორისო შეთანხმებით.

ქვემოთ განვიხილავთ DNS (Domain Name Server) სერვერის პირდაპირი და

შებრუნებული ბაზების მაგალითებს:

პირდაპირი ბაზა დომენისათვის: hepi.ge

@ IN SOA (hepi.ge. root.hepi.ge.

201511121) ;Serial Number

IN NS NS.HEPI. GE .

IN NS NS. DESY.DE.

IN NS NS. MSU.RU.
IN MX 10 MAIL.HEPI.GE.

IN MX 30 MAIL.DESY.DE.

IN MX 50 MAIL.MSU.RU.

NS IN A 194.67.216.1

MAIL IN A 194.67.216.2

WEB CNAME NS

ეს ბაზა (ისე როგორც შებრუნებული) აუცილებლად უნდა იწყებოდეს @ ამ ნიშნით, შემდეგ

ამას მოყვება ბაზის ე.წ. ქუდი SOA, რომლის წინ გვაქვს ბაზის შიგა ბრძანება IN. ეს ბრძანება

წარმოდეგება სიტყვიდან Internet. SOA-ს შემცველი ნაწილებია : დომენის სახელი, რომელსაც

ემსახურება ეს ბაზა, მისი ადმინისტრატორის დასახელება, შემდგომ ე.წ. Serial Number,

შემდგომ სხვადასხვა შიგა ბუფერების ზომები, ძირითადად სტანდარტული. ყურადღება

შევაჩეროთ Serial Number-ზე, რომელიც წარმოადგენს რედაქტირების ან შექმნის თარიღს და

ბოლოში არის ის რიცხვი თუ ამ თარიღის დროს რამდენჯერ მოხდა ამ ბაზის ცვლილება.

შემდგომ, ბრძანებებით IN NS (სადაც შიგა ბრძანანება NS წარმოდგება სიტყვებს

კომბინაციიდან Name Server) აღწერილია ერთი ან ორი ალტერნატიული DNS-სერვერი,

რომლებიც ჩაერთვებიან თარგმნაში იმ შემთხვევაში თუ ძირითადი გაითიშება. ამასთანავე,

ბაზაში აღიწერება IN MX (სადაც შიგა ბრძანანება MX წარმოდგება სიტყვიდან

MAILBOX) ამ ბრძანების საშუალებით ე.წ. მეილ-სერვერები თავისი

ალტერნატიული ვარიანტებით, აგრეთვე იმ შემთხვევის გათვალისჭინებით, თუ ძირითადი

ვერ ღებულობს მეილებს ამ შემთხვევაში მათი დაგროვება მოხდება ალტერნატიულზე, სანამ

მწყობრში შევა ძირითადი და ამ უკანასკნელ შემთხვევაში ისისნი მყისიერად

გადმოისტყორცნებიან ადრესატისაკენ. სწორედ, ამის გამოა, რომ ინტერნეტში წერილები


არ იკარგება. მეილ სერვერების აღმწერი ბრძანებების გასწვრივ მითითებული რიცხვები

მიანიშნებენ ამ სერვერის პრიორიტეტზე: კერძოდ, რაც დიდია პრიორიტეტი, მით პატარაა

ეს რიცხვი.

შენიშვნა: ამ ბაზაში ყველა დომეინური სახელი აუცილებლად უნდა ბოლოვდებოდეს

წერტილით.

“NS IN A 194.67.216.1” – ამ აღწერის შინაარსი შემდეგია: 194.67.216.1 ამ მისამართის

კომპიუტერს ( შიგა ბრძანება A წარმოდგება სიტყვიდან ADDRESS) შეესაბამება სახელი NS.

შენიშვნა: ამ ბაზაში ერთ და იგივე მისამართის მქონე კომპიუტერს შეიძლება ქონდეს

სხვადასხვა რამდენიმე სახელი. ამისთვის ხშირად გამოიყენებენ ბრძანებას CNAME

(სიტყვიდან Change Name) .

შებრუნებული ბაზა ემსახურება ინტერნეტიდან ინფორმაციის მიღებას და მისის სახელი

არის შემდეგი ტიპის: db.194.67.216. შებრუნებული ბაზაში ძირითადი აღწერები არის პირდაპირი

ბაზის ანალოგიური. ერთადერთი განმასხვავებელი აღწერაა მიღებული ინფორმაციის

სახელ-ადრესატის აღწერა, რომელსაც აქვს შემდეგი სახე:

1 IN PTR NS

2 IN PTR MAIL

სადაც ეს ჩანაწერები მიუთითებს, რომ მისამართს 194.67.216.1 შეესაბამება კომპიუტერი-„ჰოსტი“

სახელით NS, ხოლო მისამართს 194.67.216.2 შეესაბამება კომპიუტერი-„ჰოსტი“ MAIL.


საფოსტო სერვერები: კონფიგურაცია ლინუქს-სისტემაზე (SMTP,POP3, IMAP,

Webmail) სერვისების კონფიგურაცია, Sendmail პაკეტი.

LINUX ოპერაციულ სისტემაში მეილ-სერვერის მომსახურებისთვის პოპულარული პაკეტია

Sendmail, რომლის კონფიგურაციის ფაილი განთავსებულია კატალოგში: /etc/mail/ sendmail.cf .

მეილ-სერვერის სახელი ინსტალაციის შემდგომ განთავსდება ფაილში /etc/mail/local-host-names.

მეილ-სერვერი თავის კლიენტებთან მუშაობს პროტოკოლით POP3 (პორტი 110) ან

გაუმჯობესებული IMAP-ით (მაგალითად, IMAP-ში დაამატეს „ონ-ლაინ“ მხარდჭერა და ა.შ. ),

ხოლო გარე კავშირზე - ინტერნეტში მუშაობს SMTP ოქმით. როდესაც დგება მეილ-სერვერთან

„ჰოსტის“ სერვერ-კლიენტური მიერთება, ამ დროს ამ „ჰოსტის“ მხარეს აღიწერება როგორც

POP3, IMAP ისე SMTP ოქმების (პროტოკოლების) მხარდაჭერა.

შენიშვნა: მეილ-სერვერის გამართვისას არაა გამორიცხული, რომ მან დასაწყისში იმუშავოს

ცალმხრივად: ან მხოლოდ მეილების მიღებაზე ან მხოლოდ გაგზავნაზე. აგრეთვე,

არარეგისტრირებული მეილ-სერვერების შემთხვევაში წასული მეილები აღიქმება როგორც

სპამი.

WEB სერვერები (Apache)

WEB სერვერების გასამართად ერთ-ერთი პოპულარული პაკეტია - Apache. ამ პაკეტის გამართვისას

ხშირად ამბობენ , რომ გაიმართა Httpd (პორტი 8080) . ამ დროს Linus-ის სხვადასხვა ჯიშებში

მიიღება შესაბამისად სხვადასხვა სინტაქსის ძირითადე ვებ-კატალოგები.


მაგალითად: UBUNTU-ში /etc/apache2, ხოლო CENTOS-ში /etc/httpd/ და ა.შ. ვებ-სერვერი

ადმინისტრატორმა შეიძლება გააჩეროს, გადატვირთოს ან თავიდან გაუშვას. ამას ახორციელებს

ბრძანებით /etc/httpd/bin/apachectl, რომელსაც გარედან აძლევს ბრძანებებს: stop, start, restart.

ვებ-სერვერის კონფიჰურაცია აღწერილია ფაილში Httpd.conf. აქვე აღიწერება ვირტუალური

ჰოსტები. საკუთრი ვებ-გვერდების განსათავსებლად მომხმარებელმა უნდა შექმნას კატალოგი

public_html, სადაც ვებ-გვერდის მთავარი სამართავი ფაილია: index.html.

უსაფრთხოება, კატალოგები და ფაილები LINUX-ში:

LINUX-ში system-config-ის უსაფრთხოების დონეები გაწერილია /etc/sysconfig/iptables-ში.

გარდა ამისა არსებობს კატალოგი /etc/xinetd.d/ , რომელშიც სკრიპტების სახით შესაძლებელია

ამა თუ იმ ოქმის საშუალებით გლობალური გახსნა ან დაკეტვა, შესაბამისად ამ სკრიპტებში

არსებული შემდეგი სტრიქონებით:

DISABLE = NO

DISABLE = YES

ამ შემთხვევებშიც ხანდახან აუცილებელი ხდება გარკვეული მისამართების შემოშვება სერვერზე.

ამისათვის გამოიყენება სისტემური ფაილი /etc/hosts.allow, ხოლო ჩემი სერვერის გავლით

მომხმარებლების ზოგიერთ სერვერზე გასვლის აკრძალისათვის კი გამოიყენება სისტემური

ფაილი /etc/hosts.deny . ხშირად ქსელისა და სერვერების დაცვისათვის გამოიყენებენ Firewall-ებს.

ასეთი პროგრამული Firewall-ებიდან ერთ-ერთი პოპულარულია - CheckPoint, ხოლო

მყარი- Firewall-ებიდან ერთ-ერთი პოპულარულია - RedBox.


FTP და ftp-anonymous სერვერების მოწყობის საკითხები.

Telnet და SSH პაკეტები.

FTP (File Transfer Protocol) ამ პაკეტის საშუალებით შესაძლებელია მოშორებულ (თუნდაც

სხვა ქვეყანაში არსებულ) სერვერზე ინფორმაციის (ფაილებისა და კატალოგების)

გადაწერა და გადმოწერა. ერთადერთი მოთხოვნაა, რომ ამ მომხმარებელს მოშორებულ

სერვერზე გახსნილი ქონდეს ე.წ. account-ი, ესე იგი login და password.

ბრძანების ფორმატია: ftp ip-მისამართი.

საერთოდ, ეს პაკეტი არის ინტეგრირებული, მას გააჩნია შიგა ბრძანებები, რომელთა საშუალებით

შესაძლებელია ამ პაკეტის პარამეტრების გაწყობა სურვილისამებრ. ყველა არსებული ბრძანების

დათვალიერება შესაძლებელია შემდეგნაირად: FTP> ? <CR>, პაკეტიდან გამოსვლა მოხდება

FTP> bye ბრძანებით, რომელზეც გვიპასუხებს Goodbye და დაიხურება პაკეტი.

FTP ინტეგრირებული პაკეტის ძირითადი ფუნქციების გამომხატველი ბრძანებებია:

get filename - ფაილის გადმოწერა;

put filename - ფაილის გადაწერა, შენახვა;

Telnet - პაკეტი გამოიყენება მოშორებულ სერვერზე სამუშაოდ. კერძოდ, შესაძლებელია

თუ მომხმარებელს მოშორებულ სერვერზე გახსნილი აქვს ე.წ. account-ი, ესე იგი

login და password, მაშინ შევიდეს ამ სერვერზე და შეასრულოს ამოცანები ისე, თითქოს

იქ იმყოფებოდეს. ბრძანების ფორმატია: Telnet ip-მისამართი.


SSH პაკეტი არის Telnet -ის ფუნქციური ანალოგი გატეხვისგან უფრო დაცული.

მისი ფორმატია: ssh ip-მისამართი login, და თუ არსებობს ასეთი მომხმარებელი სერვერზე,

მაშინ ამის შემდეგ გაჩნდება შეკითხვა password, და მხოლოდ ამ პაროლის სწორად მიწოდების

შემდეგ მოხდება სერვერზე შესვლა.

ადმინისტრირების ძირითადი ბრძანებები:

Printtool (X ტერმინალში root-ის პრივილეგიით) პრინტერის გამართვა.


Setup (root-ის პრივილეგიით) მაუსის, ხმის პლატის, კლავიატურის,
x-windows-ის გრაფიკული გარსისა და სისტემური სერვისების
კონფიგურაცია. ძალიან მარტივი და სასარგებლო პროგრამა.
Alias alias-ფსევდონიმების შექმნა. alias გამოიყენება იმისათვის, რომ
ერთ ბრანებით შესაძლებელი იყოს ბრძანებთა უფრო რთული
კომბინაციის შესრულება. შექმნილი alias მოათავსეთ /etc/bashrc
-ში თუკი თქვენ გინდათ რომ ეს ფსევდონიმი სისტემის ყველა
მომხმარებლისათვის იყოს მისაწვდომი.
adduser ახალი მომხმარებლის რეგისტრაცია (თქვენ უნდა გქონდეთ
[მომხმარებლის_სახელი] root-ის უფლება).
მაგალითად: adduser webber
არ დაგავიწყდეთ ახალი მომხმარებლის დარეგისტრების
შემდეგ მისი პაროლის დაყენება. მომხმარებლის დირექტორია
არის /home/მომხმარებლის_სახელი დირექტორია.
useradd
იგივეა რაც adduser.
[მომხმარებლის_სახელი]
userdel [მომხმარებლის_სახელი] სისტემიდან მომხმარებლის წაშლა (საჭიროებს root-ის
უფლებას). მომხმარებლის დირექტორიის და მისი წაუკითხავი
ფოსტის წაშლა ცალკე მოგიწევთ.
grouppadd [ჯგუფის_სახელი] თქვენ სისტემაში მომხმარებელთა ახალი ჯგუფის შექმნა.
Passwd პაროლის შეცვლა. თუ თქვენ root ხართ, თქვენ შეგიძლიათ
შეცვალოთ ნებისმიერი მომხმარებლის პაროლი ბრძანებით:
passwd მომხმარებლის_სახელი
chmod [დაშვების_უფლება] =(change mode) თქვენს მფლობელობაში მყოფი ფაილებზე
[ფაილი] დაშვების უფლების შეცვლა (თუ თქვენ root ხართ, მაშინ
ნებისმიერ ფაილზე შეგიძლიათ დაშვების უფლების შეცვლა).
ფაილზე დაშვების სამი ხერხი არსებობს: კითხვა - read (r),
ჩაწერა - write (w) და გაშვება - execute (x) და მომხმარებლის
სამი ტიპი: ფაილის მფლობელი - (u), იმავე ჯგუფის წევრი,
რომელსაც ფაილის მფლობელი მიეკუთვნება - (g), და ყველა
დანარჩენი (o).
ფაილზე დაშვების მიმდინარე უფლების შემოწმება შეიძლება
შემდეგი ხერხით:
ls -l ფაილის_სახელი
თუკი ფაილზე დაშვების ყველა ხერხი აქვს ყველა
მომხმარებელს, მაშინ ფაილის გასწვრივ იქნება ასოთა შემდეგი
კომბინაცია:
rwxrwxrwx
პირველი სამი ასო - ეს არის ფაილზე მისი მფლობელის
დაშვების უფლება.
მეორე სამეული - მისი ჯგუფის დაშვების უფლება.
მესამე - დაშვების უფლება დანარჩენებისათვის.
"-" ნიშნავს ფაილზე დაშვების უფლების არარსებობას.
მაგალითად:
შემდეგი ბრძანებით შეიძლება ფაილისათვის - "junk"
დაყენდეს დაშვება ყველასათვის (all=user+group+others):
chmod a+r junk
შემდეგი ბრძანებით შეიძლება დაყენდეს ფაილის გაშვების
უფლება ყველასათვის, გარდა მფლობელისა და მისი ჯგუფისა:
chmod o-x junk

დამატებითი იმფორმაციისათვის აკრიბეთ chmod --help ან man


chmod.
თქვენ შეგიძლიათ ბრძანების - umask - დახმარებით
ავტომატურად დააყენოთ დაშვების უფლება თქვენს მიერ
შექმნილ ნებისმიერ ფაილზე.
chown [ახალი_მფლობელი] ფაილის მფლობელის და ჯგუფის შეცვლა. თქვენ შეგიძლიათ ამ
[ფაილები] ორი ბრძანების გამოყენება ვინმესათვის ფაილის კოპიის
გაკეთების შემდეგ.
chgrp [ახალი_მფლობელი]
[ჯგუფი]
su (=Super User) სისტემაში, როგორც სუპერმომხმარებელი (root)
შესვლა (თქვენ მოგთხოვენ პაროლს). "exit"-ის აკრების შემდეგ
თქვენ დაუბრუნდებით წინა სამომხმარებლო გარსს.
პროცესებზე კონტროლი:

Ps (=Print Status) მიმდინარე პროცესების (თავიანთი ID


იდენტიფიკატორებით (PID)) სიის გამოტანა. გამოიყენეთ:
ps axu
იმისათვის, რომ თქვენს სისტემაში გაშვებული ყველა ის
პროცესები გამოვსახოთ მონიტორზე, რომლებისთვისაც
თქვენ მფლობელი (owner) ხართ.
tg [PID] ფონური ან შეჩერებული პროცესის ინტერაქტიულ
(მაღალპრიორიტეტულ) რეჟიმში დაბრუნება.
bg [PID] პროცესის ფონურად გარდაქმნა. fg-ს საპირისპირო ფუნქცია.
kill [PID] პროცესის მოკვლა. დასაწყისისათვის განსაზღვრეთ
"მოსაკლავი" პროცესის PID ბრძანება ps-ს დახმარებით.
killall [პროგრამის_სახელი] ყველა პროცესის მოკვლა პროგრამის სახელის მიხედვით.
Xkill (X-windows ტერმინალში) იმ პროცესის მოკვლა, რომლის
ფანჯარაზე მიმართავთ კურსორს.
Lpc (როგორც root) პრინტერის დავალებათა რიგის შემოწმება.
Lpq გამოვიტანოთ ბეჭდვაზე მიცემული დავალებების (tasks) sia.
lprm [დავალების_სახელი] ბეჭდვაზე მიცემული დავალებათა რიგიდან ამოშლა.
nice [პროგრამის_სახელი] პროგრამის გაშვება მისი პრიორიტეტის დაყენებით.
renice [PID] პროცესის პრიორიტეტის შცვლა.

ვირტუალიზაციის პროექტები Linux - თვის

ვირტუალიზაცია ყველას თავისებურად, განსხვავებულად ესმის, მაგრამ რაც მის ძირითად


აზრს აერთიანებს, არის ამ სისტემის ერთი წარმოდგენა: ურთიერთდამოუკიდებელი სერვერებისა
და ოპერაციული სისტემების ერთ კომპიუტერზე განთავსება არის მოცემული სისტემის
ვირტუალიზაცია. ვირტუალიზაცია ეწოდება ასევე ისეთ სიტუაციას, როდესაც რამდენიმე
კომპიუტერი წარმოდგენილია ერთ ცალკეულ კომპიუტერად, ჩვეულებრივ ამას უწოდებენ
კლასტერულ სერვერს - Grid Computing.

ვირტუალიზაციის ისტორია 40 წელზე მეტ დროს ითვლის, მისი პირველი განხორციელება


გასული საუკუნის 70-იან წლებში მოხდა IBM® 7044 სერიის კომპიუტერებში Compatible Time
Sharing System (CTSS), მასაჩუსეცის ტექნოლოგიურ ინსტიტუტში დამუშავებულ კომპიუტერში
IBM 704 და პროექტ Atlas-ში მანჩესტერის უნივერსიტეტში (ერთ-ერთი პირველი
სუპერკომპიუტერი). IBM ჯერ კიდევ 1960-იან წლებში მიხვდა ვირტუალიზაციის საჭიროებას,
კომპიუტერ System/360(TM) Model 67 - ის დამუშავებისას. ამ კომპიუტერის მთელი აპარატურული
ინტერფეისი ვირტუალიზირებულ იქნა VMM (the Virtual Machine Monitor)-ის საშუალებით.
კომპიუტერული ეპოქის დასაწყისში ოპერაციულ სისტემას უწოდეს „სუპერვიზორი“ (Supervisor),
მას შემდეგ, რაც მოხდა ერთი ოპერაციული სისტემის რეალიზება მეორე ოპერაციულ სისტემაში,
გაჩნდა ტერმინი „ჰიპერვიზორი“ (Hypervisor).

მიღებული წარმადობის უმრავლესობა გამომუშავებულია სერვერების კონსოლიდაციის


შედეგად. თუ ჩვენ გავაერთიანებთ ერთ სერვერზე რამდენიმე სისტემას, მივიღებთ სივრცის
ეკონომიას, ენერგომოხმარების შემცირებას, გაგრილების სისტემის შემცირებულ რაოდენობას და
სამართავად მხოლოდ ერთ სერვერს.

ვირტუალიზაცია ასევე მნიშვნელოვანია პროგრამირებისთვისაც. Linux-ის ბირთვი მუშაობს


სივრცის საერთო დამისამართებით, რაც გულისხმობს იმას რომ, თუ ბირთვში ან რომელიმე
დრაივერში მოხდება რამე შეცდომა, მწყობრიდან გამოდის მთელი ოპერაციული სისტემა.
ვირტუალიზაციის შემთხვევაში გვაქვს რამდენიმე ოპერაციული სისტემა და თუ ერთ-ერთი
მათგანი გამოვა რაიმე შეცდომის გამო მწყობრიდან, ჰიპერვიზორი და დანარჩენი ოპერაციული
სისტემები განაგრძობენ მუშაობას უპრობლემოდ.

ვირტუალიზაცია პროგრამული ტექნოლოგიაა, რომელიც სარგებლობს სერვერის


ფიზიკური რესურსებით და ანაწილებს მას ვირტუალურ ნაწილებად, რომელთაც
ვირტუალური სერვერები ეწოდებათ. როდესაც საქმე ვირტუალიზაციაზე მიდის, არსებობს
არაერთი გზა საჭირო ეფექტის მისაღებად. ფაქტიურად არსებობს რამდენიმე ვარიანტი ერთი
და იმავე შედეგის მისაღწევად, სხვადასხვა დონის აბსტრაქციის გამოყენებით. ამ ნაწილში
განვიხილავთ ვირტუალიზაციის ყველაზე გავრცელებულ სახეებს Linux - ში, განვსაზღვრავთ
მათ დადებით და უარყოფით მხარეებს.

ვირტუალიზაციის ყველაზე რთულ მეთოდად ითვლება აპარატურული ემულაცია, ამ

მე მეთოდის გამოყენებით ჰოსტ-სისტემაზე იმართება ვირტუალური მანქანა, რომელიც ახდენს

სხვა რომელიმე აპარატურის არქიტექტურის მოდელირებას, როგორც ეს შემდეგ სურათზეა

ნაჩვენები:
ამ მეთოდში მთავარი პრობლემა არის ის, რომ სისტემა საკმაოდ ნელია. საქმე იმაშია, რომ

თითოეული ბლოკი უნდა იყოს მოდელირებული მიახლოებული რეალურ აპარატურულ

უზრუნველყოფასთან, რაც იწვევს სისტემის 100-ჯერ შენელებას. სრული მოდელირებისას,

რომელიც გულისხმობს სრული ციკლის შესრულებას, პროცესორის კონვეირის და ქეშ მეხსიერების

სიმულაციას, შესაძლოა სისტემის სიჩქარე 1000-ჯერ მცირე იყოს, ვიდრე რეალური მოდელირე

ბული აპარატურისა.

აპარატურის ემულაციას აქვს თავისი უპირატესობებიც. მაგალითად, ამ შემთხვევაში ჩვენ

შეგვიძლია ნებისმიერი ცვლილების გარეშე ჩავტვირთოთ ოპერაციული სისტემა განკუთვნილი

PowerPC-თვის ჰოსტ-კომპიუტერზე. ჩვენ შეგვიძლია გავუშვათ რამდენიმე ვირტუალური სისტემა

განსხვავებული პროცესორებით მოდელირებული.

სრული ვირტუალიზაცია, რომელსაც ასევე უწოდებენ ბუნებრივს (Native Virtualization) –

ეს განსხვავებული, საინტერესო ვირტუალიზაციის მეთოდია. ეს მოდელი იყენებს ვირტუალურ

მანქანას, რომელიც წარმოადგენს შუამავალს ვირტუალურ სისტემასა და რეალურ მოწყობილობას

შორის. ამ შემთხვევაში შუამავლის როლს ასრულებს VMM, რომელიც ამასთანავე

არის ჰიპერვიზორიც:

სრული ვირტუალიზაცია შედარებით სწრაფია ვიდრე აპარატურის ემულაცია, მაგრამ

წარმადობა უფრო დაბალია რეალურ აპრატურაზე. ყველაზე დიდი დადებითობა სრული

ვირტუალიზაციის არის ის, რომ ოპერაციული სისტემა ვირტუალურად შეგვიძლია დავაყენოთ

ისე რომ ამ სისტემაში არ გავაკეთოთ არანაირი მოდიფიკაცია. ერთადერთი შეზღუდვა არის იმაში,

რომ სისტემა რომელსაც ვაინსტალირებთ, უნდა აკმაყოფილებდეს რეალური ფიზიკური


მოწყობილობების სტანდარტებს.

არასრული ვირტუალიზაცია - ეს არის კიდევ ერთი პოპულარული ვირტუალიზაციის

სახე, რომელიც წააგავს სრულ ვირტუალიზაციას. ეს მეთოდიც იყენებს ჰიპერვიზორს

განცალკევებულ მოწყობილობებთან წვდომისთვის, მაგრამ ვირტუალიზაციის კოდი

ინტეგრირდება ოპერაციულ სისტემაში:

ამ შემთხვევაში ვირტუალური სისტემის წარმადობა უახლოვდება არავირტუალური

სისტემის წარმადობას. სრული ვირტუალიზირებული სისტემის მსგავსად, აქაც შესაძლოა

ერთდროულად წარმოდგენილი იყო რამდენიმე დამოუკიდებელი ვირტუალური სისტემა.

ვირტუალიზაცია ოპერაციული სისტემის დონეზე წარმოადგენს ჩვენს მიერ ზემოთ

განხილული ვარიანტების გაუმჯობესებულ სახეობას. ამ შემთხვევაში ვირტუალიზირდება

ოპერაციულ სისტემაში ჩატვირული სერვერები. ამ შემთხვევაში ოპერაციული სისტემა არის ერთი

და იზოლირებულია სერვერებისგან, რომლებიც შეიძლება იყოს რამდენიმე და

ვირტუალიზირებული მოცემულ ოპერაციულ სისტემაზე:


ვირტუალიზაცია ოპერაციული სისტემის დონეზე საჭიროებს ცვლილებებს სისტემის
ბირთვში, მაგრამ ეს იძლევა საშუალებას საგრძნობლად გაიზარდოს ვირტუალური სისტემის
წარმადობა.

ოპერაციული სისტემის დონეზე ვირტუალიზაციის მატრიცა

მექანიზმი ოპერაციული
ლიცენზია წარმოებისფაილური დისკურიI/O-ს მეხსიერების
CPU-ს ქსელის მიგრაცია
სისტემა თარიღი სიტემის ქვოტა განსაზღვრაგანსაზღვრაქვოტა იზოლაცია
იზოლაცია

chroot Unix BSD, 1982 ნაწილ არა არა არა არა არა არა
GNU GPL, ობრივ
CDDL
Containers/ZonesOpenSolarisCDDL 05/2008 კი კი არა კი კი კი არა
Containers/ZonesOpenSolarisCDDL 01/2005 კი კი არა კი კი არა არა
FreeVPS Linux GNU GPL - კი კი არა კი კი კი არა
iCore Virtual Windows XPProprietary 06/2008 კი კი არა არა არა კი არა
Accounts (პატენტი)
Linux-VServer Linux GNU GPL - კი კი კი კი კი კი არა
v.2
LXC Linux GNU GPL 2008 კი არა კი კი კი კი არა
v.2
OpenVZ Linux GNU GPL - კი კი კი კი კი კი კი
v.2
Parallels Virtuozzo
Linux Proprietary - კი კი კი კი კი კი კი
Containers Microsoft (პატენტი)
Windows
FreeBSD Jail FreeBSD BSD 03/2000 კი კი არა კი ნაწილ კი არა
ობრივ
SysJail OpenBSD, BSD - კი არა არა არა არა კი არა
NetBSD
WPARS AIX Proprietary 10/2007 კი კი კი კი კი კი კი
(პატენტი)

ქვევით ცხრილში მოყვანილია ვირტუალიზაციის სახეები და მათი ტიპები. აღნიშნული


ჩამონათვალი არასრულია იმ სიიდან რაც არსებობს დღევანდელი მდგომარეობით კომპიუტერულ
სამყაროში. განვიხილავთ აქ ჩამოთვლილი პროექტებს:
პროექტი პროექტის ტიპი
Bochs ემულაცია
QEMU ემულაცია
Vmware სრული ვირტუალიზაცია
z/VM სრული ვირტუალიზაცია
Xen არასრული ვირტუალიზაცია
UML არასრული ვირტუალიზაცია
Linux-Vserver ვირტუალიზაცია ოპერაციული სისტემის დონეზე
OpenVZ ვირტუალიზაცია ოპერაციული სისტემის დონეზე

Bochs (ემულაცია) - ესაა პროგრამა იმიტატორი, მოდელირებული x86 არქიტექტურის


კომპიუტერისათვის, რომელიც პორტატულია და შეიძლება გაეშვას ბევრ აპარატურულ
პლატფორმაზე, როგორებიცაა x86, PowerPC, Alpha, SPARC და MIPS. მოცემული სისტემა
საინტერესოა იმითაც, რომ იგი ახდენს არა მხოლოდ პროცესორის მოდელირებას, არამედ
პერიფერიული მოწყობილობებისასაც, როგორებიცაა: კლავიატურა, მაუსი, ვიდეოკარტა,
ქსელური კარტა და ასე შემდეგ. Bochs-ის გამოყენებით Linux-ში, ჩვენ შეგვიძლია გავუშვათ
Linux-ის ნებისმიერი დისტრიბუცია, Microsoft Windows 95/98/NT/2000, Berkeley Software
Distribution (BSD) - FreeBSD, OpenBSD და ა.შ.

Qemu (ემულაცია) - მას აქვს ემულაციის ორი რეჟიმის მხარდაჭერა:


პირველი - სისტემის სრული ემულაცია (Full System Emulation). აღნიშნული რეჟიმის დროს ხდება
პერსონალური კომპიუტერის სრული ემულაცია, პროცესორის და პერიფერიული
მოწყობილობების ჩათვლით. მეორე - მომხმარებლის რეჟიმის ემულაცია (User Mode Emulation).
აღნიშნული რეჟიმი მუშაობს მხოლოდ იმ შემთხვევაში როდესაც ბაზისი ოპერაციული სისტემა
არის Linux. ამ შემთხვევაში შესაძლებელია ბინარული ფაილების გაშვება, რომლებიც არის
განკუთვნილი სხვა არქიტექტურისთვის. მაგალითად, x86 არქიტექტურის Linux-ზე შეიძლება
გავუშვათ ბინარული ფაილი, რომელიც არის დაკომპილირებული MIPS არქიტექტურისთვის
(Microprocessor without Interlocked Pipeline Stages).

VMware (სრული ვირტუალიზაცია) - მოცემულ შემთხვევაში ჰიპერვიზორი განთავსებულია


ვირტუალიზირებულ ოპერაციულ სისტემასა და რეალურ მოწყობილობას შორის, ქმნის ერთგვარ
დამაკავშირებელ გარემოს რეალურსა და ვირტუალურ სისტემებს შორის. აღნიშნულ აბსტრაქციას
შეუძლია ამუშაოს ოპერაციული სისტემა თავის მოწყობილობებთან ერთად, იმის მიუხედავად
აყენია თუ არა რომელიმე ოპერაციული სისტემა ვირტუალურად ან რამდენია ასეთი სისტემა, იგი
სრულიად დამოუკიდებლად გამოყოფს რესურსს ცალკეული სისტემისთვის. მთელი ეს
ვირტუალური სისტემები ინახება ფაილური სისტემით, რაც საშუალებას გვაძლევს გადავიტანოთ
ნებისმიერ ადგილზე ან დავაბალანსოთ რეალურის სისტემის დატვირთვა.
z/VM (სრული ვირტუალიზაცია) - ეს არის ჰიპერვიზორი, ოპერაციული სისტემა “System z”-

თვის (System Z) მის ბირთვს წარმოადგენს მართვის პროგრამა, რომელიც უზრუნველყოფს

ფიზიკური რესურსების ვირტუალიზაციას ვირტუალური სისტემისათვის, მაგალითად Linux-თვის

. ამით შესაძლებელია მრავალპროცესორიანი სისტემის ვირტუალიზაცია და ასევე სხვა ფიზიკური

რესურსების ვირტუალიზაცია, სხვადასხვა ვირტუალიზირებული ოპერაციული სისტემისთვის

ერთდროულად:

Xen (არასრული ვირტუალიზაცია) - ეს არის თავისუფალი გადაწყვეტა ღია კოდით, კომპანია

XenSource-გან. დასამახსოვრებელი ფაქტია ის, რომ არასრული ვირტუალიზაციის დროს

ჰიპერვიზორი და ოპერაციული სისტემა ერთიანდებიან, ოპერაციული სისტემის ხარჯზე, მაგრამ

სამაგიეროდ ვღებულობთ თითქმის ისეთ წარმადობას, როგორსაც მივიღებდით რეალური

მოწყობილობების შემთხვევაში.

რადგან Xen-თვის საჭიროა ჰიპერვიზორის ისეთ ოპერაციულ სისტემასთან გაერთიანება,


რომლის ცვლილებაც შესაძლებელია, ამიტომ Linux ღია კოდით არის საუკეთესო ვარიანტი,
რისგანაც მივიღებთ მაღალ წარმადობას. ხოლო ისეთი ოპერაციული სისტემის შემთხვევაში,
რომელშიც გარკვეული ცვლილებების შეტანა შეუძლებელია, აღნიშნული ტექნოლოგია ვერ
იქნება წარმატებული.

UML – User Mode Linux (არასრული ვირტუალიზაცია) - აღნიშნული მეთოდი გვაძლევს


საშუალებას ოპერაციული სისტემა Linux-ის ერთი მომხმარებლის ჭრილში გაშვებული გვქონდეს
სხვა ოპერაციული სისტემა Linux. ყოველი ვირტუალური სისტემა გაშვებულია ერთ საბაზისო
ოპერაციულ სისტემაზე. ვიღებთ სისტემის ორ განსხვავებულ ბირთვს, საბაზისო ოპერაციული
სისტემის ბირთვს და მომხმარებლის სივრცეში რეალიზებული ვირტუალური ოპერაციული
სისტემის ბირთვს:
Linux – Vserver (ვირტუალიზაცია ოპერაციული სისტემის დონეზე) - ცვლის Linux-ის ბირთვს

ისეთნაირად, რომ იქმნება მომხმარებელთა სივრცის სიმრავლე, ვირტუალური სერვერის

დამოუკიდებელი ნაწილებით (Virtual Private Servers - VPS). Linux-VServer უზრუნველყოფს ამ

მომხმარებელთა სივრცის იზოლაციას Linux-ის ბირთვის ხარჯზე.

Linux-VServer ასევე იყენებს სპეციალური ფორმა უტილიტას Chroot, რაც უზრუნველყოფს ფუძე

დირექტორიის იზოლაციას ყოველი VPS-თვის. Croot იძლევა საშუალებას განვსაზღვროთ ახალი

ფუძე კატალოგი, მაგრამ ამ შემთხვევაში საჭიროა დამატებითი ფუნქციონალი, რომელსაც

უწოდებენ Croot-Barrier, რომ VPS -ს არ შეეძლოს გამოსვლა მისთვის დანიშნული ფუძე

კატალოგიდან. გარდა იზოლირებული ფუძე კატალოგისა, ყოველ VPS-ს აქვს საკუთარ

მომხმარებელთა სია და ცალკე პაროლი სუპერმომხმარებლისთვის Root.

OpenVZ (ვირტუალიზაცია ოპერაციული სისტემის დონეზე) - ეს არის ოპერაციული სისტემის


დონეზე ვირტუალიზაციის მეორე ვარიანტი, გავს Linux-Vserver-ს, მაგრამ აქვს საინტერესო
განსხვავებებიც. იგი მორგებულია მოდიფიცირებული ბირთვის ვირტუალიზაციისთვის,
რომელიც მხარს უჭერს მომხმარებელთა სივრცის იზოლირებას, აგრეთვე აქვს მომხმარებელთა
უტილიტების ნაბორი, სამართავად. მაგალითად, შესაძლებელია მარტივად შევქმნათ ახალი VPS
ბრძანებათა ველიდან:

$ vzctl create 42 --ostemplate fedora-core-4

Creating VPS private area

VPS private area was created

$ vzctl start 42
Starting VPS ...

VPS is mounted

ასევე შესაძლებელია მივიღოთ ინფორმაცია უკვე არსებული VPS-ების შესახებ, შემდეგი ბრძანების
გამოყენებით vzlist. პროცესების სამართავად OpenVZ-ში არსებობს დავალებების ორდონიანი
დამგეგმავი (დისპეჩერი) CPU, ეს დისპეჩერი პირველ რიგში განსაზღვრავს, რომელმა VPS-მა
უნდა მიიღოს ნებართვა CPU-ზე, როცა ეს უკვე განსაზღვრულია, მეორე დონის დამგეგმავი
უშვებს პროცესს შესრულებაზე. მისთვის დაწესებული Linux-ის პრიორიტეტების
გათვალისწინებით.

OpenVZ-ის უნიკალური შესაძლებლობაა ისიც, რომ საშუალებას იძლევა შევქმანათ საკონტროლო


წერტილები (To Checkpoints) და გადავიტანოთ VPS ერთი ფიზიკური სერვერიდან მეორეზე.

ზემოთ ჩამოთვლილის გარდა, არსებობს კიდევ ვირტუალიზაციის სხვადასხვა მექანიზმები,


მაგალითად ერთ-ერთი მათგანი არის VirtualBox, რომელსაც დაწვრილებით განვიხილავთ
შემდეგ თავში და განვახორციელებთ მისი მეშვეობით ვირტუალურად Windows-ის ინსტალაციას
Linux-ზე.

ვირტუალიზაცია Linux-ის გარემოში

აქ განვიხილავთ Linux-ის გარემოში Windows-ის ვირტუალიზაციის პრაქტიკულ მაგალითს,


VirtualBox-ის გამოყენებით.VirtualBox განეკუთვნება სრული ვირტუალიზაციის სისტემების
კატეგორიას, მაგალითად როგორიცაა VMware. იგი შეიძლება გაიმართოს სხვადასხვა ოპერაციულ
სისტემებზე, როგორებიცაა Windows, Linux, Mac OS X. ცალკეული მომხმარებლებისთვის პროგრამა
არის უფასო, თუმცა ასევე არის კომერციული ვერსიებიც, რომელიც იყენებს სტანდარტულ
საერთო ლიცენზიას - General Public License (GPL).

მოცემული პროგრამის ჩამოტვირთვა შესაძლებელია მისი ოფიციალური საიტიდან


https://www.virtualbox.org/. მინიმალური სისტემური მოთხოვნები და რეკომენდაციები:

• x86 არქიტექტურის კომპიუტერი, ნებისმიერი Intel ან AMD ტიპის პროცესორი.


• მეხსიერება. პროგრამაში რომ გაეშვას ვირტუალური ოპერაციული სისტემა, ამისათვის
საჭიროა მინიმუმ 512 MB RAM. ჩვენს შემთხვევაში რეკომედირებულია მინიმუმ 1 GB.
• მყარი დისკის მოცულობა. ვინაიდან VirtualBox-ს ინსტალაციისთვის ესაჭიროება ძალიან
ცოტა მეხსიერება დაახლოებით 30 MB, ამიტომ ვირტუალური სისტემის ინსტალაციისთვისაც არ
ითხოვს განსაკუთრებულ დიდ მეხსიერებას, ამისათვის რამდენიმე GB-იც საკმარისია.
ინსტალაციის პროცესში სტანდარტული რეკომენდირებული მონაცემები შერჩეულია
ავტომატურად, რისი ცვლილებაც ნებისმიერ დროს არის შესაძლებელი.
• VirtualBox-ს აქვს შემდეგი ოპერაციული სისტემების მხარდაჭერა, რომლებზეც
შესაძლებელია მისი რეალიზება: Windows XP და Windows-ის შემდეგი ვერსიები, Linux-ის
რამდენიმე სახეობა, Mac OS X, Solaris და OpenSolaris.
• რაც შეეხება იმ ოპერაციულ სისტემებს თუ რომლებიც შეიძლება ვირტუალურად
დავაინსტალიროთ VirtualBox-ის მეშვეობით, მათი სრული ჩამონათვალი შესაძლებელია
ვიხილოთ შემდეგ მისამართზე: https://www.virtualbox.org/wiki/Guest_OSes.

დავიწყოთ ინსტალაციის პროცესი. მას შემდეგ რაც გადმოვწერთ საინსტალაციო ფაილს,

ვუშვებთ ინსტალაციის დასაწყებად, აღნიშნული საინსტალაციო ფაილი დაგვხვდება

Downloads საქაღალდეში:

ამის შემდეგ გამოდის ინსტალაციის ფანჯარა, სადაც ვაჭერთ ღილაკს Install:


რადგან მოცემული ოპერაციული სისტემა ითხოვს აუთენთიფიკაციას პროგრამული

უზრუნველყოფის მომენტში, შემდეგ გამოსულ ფანჯარაში შეგვყავს Linux-ის იუზერის პაროლი

და ვაჭერთ ღილაკს Authenticate:

შემდეგ გამოსულ ფანჯარაში მიდის ინსტალაციის პროცესი და ველოდებით:


ინსტალაციის დასრულების შემდეგ გამოდის შეტყობინება, რომ პროგრამა უკვე
დაინსტალირებულია, აქვე არის ღილაკი Reinstall, რომლის გამოყენებაც შეგვიძლია, თუ რაიმე
არასწორად გავაკეთეთ ინსტალაციის პროცესში, ცვლილების შესატანად:

VirtualBox უკვე მზადაა ვირტუალური სისტემის საინსტალაციოდ, რომელ პროცესსაც ვიწყებთ


New ღილაკით:

შემდეგ მოცემულ ბიჯზე, ჩამონათვალში ვირჩევთ თუ რომელ ოპერაციულ სისტემას


ვაინსტალირებთ ვირტუალურად, ვარქმევთ სახელს და Next ღილაკით გადავდივართ შემდეგზე:
შემდეგში ხდება ოეპრაციული სისტემის კონფიგურირება, მისი ზომის განსაზღვრა. ამ სქრინზე
ჩანს რომ შესაძლებელია გავზარდოთ ან შევამციროთ ოპერატიული მეხსიერების მოცულობა,
მაგრამ ამასთანავე მოცემული სტანდარტული რეკომენდირებული მოცულობა 512 MB. ამ
შემთხვევაში ვირჩევთ 2 GB, რადგან გვაქვს ამის საშუალება და ვაგრძელებთ:
შემდეგ ფანჯარაში ვაკონფიგურირებთ ვირტუალური მყარი დისკის ზომას, აქაც მოცემულია
სტანდარტული რეკომენდაცია (25 GB) მოცემული ოპერაციული სისტემისათვის (Windows 7 32 Bit)
, რომელსაც ვაინსტალირებთ. ვირჩევთ „Create a virtual hard drive now“ (მყარი დისკის შექმნა) და
ვაგრძელებთ Create ღილაკით:
შემდეგ ფანჯარაში ვირჩევთ მყარი დისკის ტიპს ვირტუალიზაციისთვის, მოცემული

ჩამონათვალიდან შეგვიძლია ავირჩიოთ ნებისმიერი, იმის მიხედვით თუ რისთვის გვჭირდება:


შემდეგ ბიჯზე ვირჩევთ მყარი დისკის ზომას, ვირტუალური სისტემის სახელს და მისამართს,
თუ სად უნდა განთავსდეს ფაილურად აღნიშნული სისტემა და Create ღილაკით ვაგრძელებთ
პროცესს:
ამის შემდეგ პლატფორმა დაკონფიგურირებულია და მზადაა მასზე ვირტუალური სისტემის

დასაყენებლად. მოცემულ ფანჯარაში ჩანს ინფორმაცია თუ როგორაა კონფიგურირებული

VirtualBox. Start ღილაკით ხდება უკვე არჩეული სისტემის ინსტალირებისთვის საჭირო

ფანჯარაში გადასვლა:
მომდევნო სქრინზე ვირჩევთ .iso ტიპის ფაილს, რომელიც წარმოადგენს ოპერაციული სისტემის „

Image“-ს, ვხსნით მას და Start ღილაკით ვიწყებთ, ჩვენს შემთხხვევაში Windows - ის ინსტალაციას.

თუმცა შესაძლებელია დაინსტალირდეს ნებისმიერი ოპერაციული სისტემა, რომლის

მხარდაჭერაც აქვს VirtualBox - ს:


Windows - ის ინსტალაციის შემდეგ, ვირტუალური სისტემა მზადაა სამუშაოდ, რომელიც

წარმოადგენს, VirtualBox - ის საშუალებით გაწყობილ, სრულად ვირტუალიზირებულ სისტემას.

დღევანდელ ტექნოლოგიურ სამყაროში, ვირტუალიზაცია წინ გადადგმული დიდი ნაბიჯია, მისი


დადებითი თვისებებიდან გამომდინარე. როგორც უკვე ავღნიშნეთ იგი ფართოდ გამოიყენება
კომპიუტერულ ტექნოლოგიებში და საკმაო პოპულარობითაც სარგებლობს. ძირითადი პრობლემა
რასაც ორგანიზაციები აწყდებიან ვირტუალურ გარემოზე გადასვლისას არის შემდეგი:

1.ორგანიზაციების 80% რომლებიც ნერგავენ ვირტუალიზაციას საქართველოში სასერვეროს


მოცულობა იზრდება 20-30%-ით. ამის ახსნა მარტივია, სერვერის შექმნა ვირტუალურ გარემოში
იმდენად მარტივია, რომ სისტემურ ადმინისტრატორს შეუძლია რამდენიმე კლიკით შექმნას
სერვერი ვირტუალურ გარემოში, ვიდრე რეალურ სერვერზე დაამატოს შესაბამისი საჭირო
აპლიკაცია, რამაც შესაძლოა გარკვეული დროით, სერვისების შეფერხება გამოიწვიოს.

2.რეალური და გაანგარიშებული სიმძლავრეების არ დამთხვევა. ორგანიზაციების საკმაოდ დიდი


ნაწილი აწყდება ამ პრობლემას. ეს ნაწილობრივ პირველი პუნქტითაც არის გამოწვეული,
30%-ით დიდ ინფრასტრუქტურას მინიმუმ 15-25%-ით მეტი რესურსი ჭირდება და გარდა ამისა,
ხშირად გათვლა ხდება პროცესორული რესურსზე და ოპერატიულ მეხსიერებაზე, დისკური
სისტემები კი რატომღაც ავიწყდებათ, რაც ქმნის შემდგომ ძალიან დიდ პრობლემებს და
ხანდახან ორგანიზაცია სერიოზულად ფიქრობს ძველ ინფრასტრუქტურაზე დაბრუნებას ან
უწევს დამატებით გაუთვალისწინებელი ხარჯის გაღება. რეალურად, ვირტუალიზაციის
დანერგვისას ყველაზე დიდი მნიშვნელობა დისკურ სისტემებს აქვს, მარტივი მაგალითისთვის:
სტანდარტული დისკური სისტემები (RAID მასივი, კარგი კონტროლერით და საკმარისი
ქეშ-მეხსიერებით) სრულიად საკმარისია, რომ გარკვეული აპლიკაცია ამუშაოს, მაგრამ როცა ამ
სერვერზე 10 ან მეტი ანალოგური აპლიკაციის გაშვება ხდება, დისკური სისტემა ყველაზე
სუსტი რგოლი გამოდის, რადგან თუ პროცესორის და ოპერატიული მეხსიერების დათვლა
ძალიან მარტივია, დისკური სისტემის საჭირო სისტემის გამოთვლა საკმაოდ რთული პროცესია.

ვირტუალიზაციას მთელი რიგი უპირატესობები გააჩნია, ეს ძირითადი უპირატესობებია:

1. პროგრამული ჩავარდნების შემცირება და ასევე ერთმანეთთან კონფლიქტური პროგრამების

ერთმანეთისგან განცალკევება.

2. ერთმანეთთან მჭიდროდ დაკავშირებული პროგრამების ერთ ჯგუფში გაწევრიანება და ერთ

ვირტუალურ მანქანაზე ატვირთვა.

3. უსაფრთხოება

3.1. ადმინისტრაციული უფლებების განაწილება იძლევა საშუალებას შევზღუდოთ და

ვმართოთ ყოველი იუზერის უფლება.

3.2. შიდა და გარე უსაფრთხოების ამაღლება - დაცვა შიდა და გარე კიბერ შემოტევისგან.

4. რესურსების გადანაწილება - ყოველ ვირტუალურ მანქანაზე გამოიყოფა ის რესურსები,

რაც რეალურადაა საჭირო.

4.1. მანქანებს შორის მოქნილი ქსელური კავშირი

4.2. დასმული ამოცანებიდან პრიორიტეტების ამორჩევა

4.3. მყარი დისკის მოდულების ოპტიმალური გადანაწილება

4.4. მეხსიერების მიზანმიმართული გამოყენება

5. მუდმივი ხელმისაწვდომობა
5.1. კრიტიკული სერვერების თანმიმდევრული განახლება

5.2. ვირტუალური მანქანების Online მიგრაციის შესაძლებლობა

6. ადმინისტრირების სიმარტივე და მისი ხარისხის ამაღლება

6.1. ექსპერიმენტებისა და გამოკვლევების ჩატარების შესაძლებლობა

6.2. რეგრესიული ტესტების გაკეთების შესაძლებლობა.

LINUX ოპერაციული სისტემის აუცილებლობა GRID-ტექნოლოგიებში

GRID გამოთვლები არის განაწილებული გამოთვლების ფორმა, რომელიც შეიძლება


წარმოვადგინოთ როგორც „ვირტუალური სუპერკომპიუტერი“, რომელიც წარმოდგენილია
ქსელით დაკავშირებული კლასტერების სახით (ერთმანეთთან დაკავშირებული
კომპიუტერები, რომლებიც მუშაობენ ერთად ამოცანების უზარმაზარი რაოდენობის
შესასრულებლად). ეს ტექნოლოგია გამოიყენება სამეცნიერო ამოცანების ამოსახსნელად,
რომლებსაც ჭირდებათ მძლავრი რესურსები. GRID გამოთვლები ასევე გამოიყენება
კომერციულ ინფრასტრუქტურებში ისეთი შრომატევადი ამოცანების შესასრულებლად
როგორიცაა ეკონომიკური პროგნოზირება, სეისმოანალიზი, კლიმატის მოდელირება, ცილის
ფოლდინგის, წამლის თვისებების დამუშავება და გამოკვლევა. მრავალპროცესორიან
სუპერკომპიუტერებთან შედარებით შეიძლება გამოვყოთ GRID_ის უპირატესობები:
- შედარებით იაფია

- ხელმისაწვდომია ყოველდღე მთელი დღე-ღამის განმავლობაში

- ადვილად განახლებადია

ქსელური ორგანიზების თვალსაზრისით GRID წარმოადგენს შეთანხმებულ, გახსნილ


და სტანდარტიზებულ სისტემას, რომელიც უზრუნველყოფს გამოთვლითი რესურსების
მოქნილ, უსაფრთხო, კოორდინირებულ განაწილებას და ინფორმაციის შენახვას, რომელიც
წარმოადგენს ვირტუალური ორგანიზაციის (Virtual Organization-VO ეს არის მომხმარებელთა
საზოგადოება რომლებიც ერთობლივად გამოიყენებენ გამოთვლით რესურსებს იმ წესების
მიხედვით, რომელიც დადგენილია რესურსების მფლობელებსა და მათ შორის მოქმედი
შეთანხმების საფუძველზე. ყოველ ვირტუალურ ორგანიზაციას გააჩნია თავისი
რეგისტრაციის ცენტრი) გარემოს ნაწილს. GRID ასევე წარმოადგენს პარალელური
გამოთვლების სახეობას და გეოგრაფიულად განაწილებულ ინფრასტრუქტურას, რომელიც
აერთიანებს სხვადასხვა ტიპის რესურსებს (პროცესორებს, მუდმივ და ოპერატიულ
მეხსიერებებს, შემნახველებს და მონაცემთა ბაზებს), რომელთანაც წვდომა მომხმარებელს
შეუძლია მსოფლიოს ნებისმიერი წერტილიდან, ისე რომ მას არ ჭირდება გამოყენებული
რესურსების ადგილმდებარეობის ცოდნა. ხშირად მოჰყავთ მაგალითი: world wide web
(WWW) უზრუნველყოფს ინფორმაციასთან წვდომას, რომელიც გეოგრაფიულად მთელ
მსოფლიოში განაწილებულ მილიონობით სხვადასხა სერვერებზეა განთავსებული. WWW-
სგან განსხვავებით GRID არის ახალი გამოთვლითი ინფრასტრუქტურა რომელიც
უზრუნველყოფს შეუფერხებელ და უსაფრთხო წვდომას გამოთვლით სიმძლავრეებთან,
მონაცემთა შენახვის რესურსებთან, რომლებიც ასევე მთელ მსოფლიოშია განაწილებული.
GRID აღჭურვილია სტანდარტული ბიბლიოთეკებით თუმცა მომხმარებლების
ამოცანების სფეციფიკიდან გამომდინარე შესაძლებელია მასზე სხვა არასტანდარტული
პროგრამების და ბიბლიოთეკების დაყენება, მარტივად რომ ვთქვათ GRID-ზე შესაძლებელია
მოხდეს ნებისმიერი ამოცანის შესრულება, მთავარი მოთხოვნაა რომ ამოცანა განსაზღვრული
იყოს ლინუქსის პლატფორმისთვის.
GRID ინფრასტრუქტურის მნიშვნელოვანი კომპონენტი არის შუალედური
პროგრამული უზრუნველყოფა (middlware, ჩვენს შემთხვევაში EMI), რომლის დანიშნულებაა
ამოცანების მართვა, დიდი მოცულობის მონაცემებთან უსაფრთხო წვდომა,მონაცემების
სწრაფად გადაადგილება და ტირაჟირება ერთი გეოგრაფიული ადგილიდან მეორეში და
დაშორებული ასლების სინქრონიზაციის ორგანიზება.

GRID დამოკიდებულია პროგრამულ უზრუნველყოფაზე რომელსაც middlware_ს


უწოდებენ. იგი შეიძლება წარმოვიდგინოთ როგორც ინტერფეისი რესურსებსა და
აპლიკაციებს შორის. GRID-ის სერვისები ეს არის პროგრამული შესაძლებლობების კრებული,
აგრეთვე წესები და რეკომენდაციები მათი გამოყენების შესახებ. ესენია:

• User Interface, UI – მომხმარებლის ინტერფეისი

• Workload Management System,WMS – ამოცანათა მართვის სისტემა

• Logging and Bookkeeping, LB – შესრულებადი ამოცანების სტატუსის შემოწმების


სერვისი
• Virtual Organization Management service, VOMS – ვირტუალური ორგანიზაციის
მენეჯმენტის სერვისი

• Berkeley Database Information Index, BDII – ინფორმაციული სისტემა

• Computing Element, CE – გამომთვლელი ელემენტი

• Worker Nodes, WN – მუშა კვანძები

• Storage Element, SE – შემნახველი ელემენტი

• File catalog, LFC – ფაილების კატალოგი

• MyProxy– მინდობილობის ვადის გახანგრძლივების მექანიზმი

UI

მომხმარებლის GRID-ის რესურსებთან წვდომისთვის მომხმარებლის ინტერფეისი


არის განკუთვნილი. მისი საშუალებით მომხმარებელს შეუძლია გაუშვას ამოცანა,
გადააგზავნოს მონაცემები ერთი შემნახველი რესურსიდან მეორეზე, აკონტროლოს ამოცანის
შესრულების პროცესი და მიიღოს შედეგი.

WMS

ამოცანათა მართვის სისტემის დანიშნულება არის ამოცანათა გაშვებაზე მოთხოვნების


მიღება, შესაბამისი რესურსის მოძებნა (ანუ CE-ს და მასთან დაკავშირებული WN-ების),
ამოცანის გაგზავნის შესასრულებლად, ანიჭებს მას სტატუსს და ახდენს მის შესრულებას და
შედეგის მიღების კონტროლს. მომხმარებლის მიერ ამოცანის გაშვება ხდება მომხმარებელზე
ორიენტირებული მაღალი დონის ენის (Job Description Language, JDL) საშუალებით. GRID-ში
დასათვლელად დავალების გაგზავნამდე მისი აღწერა უნდა მოხდეს JDL-ენის საშუალებით.
დავალების აღწერის ტიპიური ფაილი შეიცავს ინფორმაციას დავალების შესასრულებელი
ფაილის მდებარეობაზე, შესავალი და გამოსავალი მონაცემების მდებარეობაზე და
მოთხოვნებს რომლებსაც უნდა აკმაყოფილებდეს გამოთვლითი რესურსები (მინიმალური
მეხსიერება, პროცესორის ტიპი და ა.შ.).

LB

შესრულებადი ამოცანების სტატუსის შემოწმების სერვისი ამოწმებს WMS-ის მიერ


მართული ამოცანის შესრულების პროცესს, აგროვებს WMS-ის სხვადასხვა
კომპონენტებისგან შეტყობინებებს მოვლენათა შესახებ და ამუშავებს მათ, რათა
წარმოადგინოს მიმდინარე ამოცანის სტატუსის ზოგადი მდგომარეობა.

VOMS
ვირტუალური ორგანიზაციის მენეჯმენტის სერვისი წარმოადგენს ინფორმაციას მომხმარებელთა
ავტორიზაციისათვის. VOMS მონაცემების შესანახად იყენებს რელაციურ მონაცემთა ბაზას
MySQL-ს ან ORACLE-ს. ის მართავს მომხმარებლის აუტენტიფიკაციასა და ავტორიზაციას და
აძლევს საშუალებას ვირტუალური ორგანიზაციის წევრებს სხვადასხვა წვდომის უფლებებით
გამოიყენონ GRID-ის რესურსები. ეს სერვისი შეიძლება შეიცავდეს მრავალ ვირტუალურ
ორგანიზაციას. ის ანიჭებს მომხმარებელს უფლებებს მათი ვირტუალურ ორგანიზაციის
წევრობის, ამ ორგანიზაციაში მომხმარებელთა ჯგუფის, როლის და ატრიბუტების მიხედვით.
ყველა სერვისი შეიცავს VOMS კლიენტს. სერვისი მუშაობს ვარგისი სერტიფიკატის მქონე
მომხმარებელთან. გააჩნია ინტერფეისი მომხმარებლის ვირტუალურ ორგანიზაციაში
გაწევრიანების, ადმინისტრატორისთვის მომხმარებლის სამართავად და სხვადასხვა
სერვისისთვის შენახული ინფორმაციის მოთხოვნის შემთხვევაში მის მისაწოდებლად
(მომხმარებელთა სია, როლი და ა.შ.) . BDII ინფორმაციული სისტემა წარმოგვიდგენს
დეტალურ ინფორმაციას GRID სერვისებზე. მას აქვს სამ დონიანი იერარქიული სტრუქტურა:
BDII core(resource level), BDII site და BDII top. BDII core აყენია GRID-ის კონკრეტულ სერვისთან
ერთად და შეიცავს ინფორმაციას მის შესახებ. ყოველ GRID საიტზე გაშვებულია BDII site სერვისი. ი
ინფორმაციას საიტის ყველა BDII core-დან. BDII top კრებს ინფორმაციას ყველა საიტის BDII
site-დან. როგორც წესი VO-ში არის რამდენიმე BDII top-ი, რომ ერთ-ერთის დაზიანების
შემთხვევაში მუშაობა არ შეფერხდეს და მოხდეს დატვირთვის გადანაწილება. ინფორმაციული
სისტემის კლიენტი უგზავნის მოთხოვნას BDII top-ს რათა მიიღოს მისთვის საჭირო ინფორმაცია.
BDII იღებს ინფორმაციას გაშვებული საინფორმაციო პროვაიდერებისგან. ეს არის სკრიპტები,
რომლებიც იღებენ ინფორმაციას, აძლევენ მას LDAP (Lightweight Directory Access Protocol –
პროტოკოლი ინტერნეტში განაწილებული დირექტორიების ინფორმაციის წვდომისა და
შენახვისთვის) Data Interchange Format (LDIF) ფორმატს და გამოაქვთ შედეგი სტანდარტულ
გამოსავალში . ეს საინფორმაციო პროვაიდერები შეიძლება გამოყენებულ იქნეს სხვა BDII-სთვის
მოთხოვნის გასაგზავნათ. Generic Information Provider (GIP) არის პროგრამა, რომელიც ამარტივებს
საინფორმაციო პროვაიდერების შექმნას და ჩამოყალიბებას. ის მცირე ფლაგინების გამოყენების
საშუალებას იძლევა, რაც აიოლებს ახალ სისტემებთან თავსებადობას. ინფორმაციული სისტემის
ინფმორმაცია შეესაბამება სქემას რომელსაც GLUE სქემას უწოდებენ. Freedom of Choice for Resources
mechanism (FCR) გამოიყენება BDII top-ში რაც აძლევს VO-ს საშუალებას გავლენა მოახდინოს
მათი კონკრეტული სერვისის გამოყენებაზე. FCR პორტალი აყალიბებს VO-სთვის
ხელმისაწვდომი სერვისების სიას. პორტალი შეიძლება VO მენეჯერის მიერ გამოყენებული
იქნას საიტების თეთრი და შავის სიის შესადგენად (ანუ სანდო და საეჭვო საიტები).
ამ ინფორმაციას შემდეგ იყენებს BDII top.

CE

გამომთვლელი ელემენტი არის პასუხიმგემელი გამომთვლელ რესურსებზე. მისი ძირითადი


ფუნქცია არის ამოცანათა მენეჯმენტი (გაშვება, კონტროლი და ა.შ.). მომხმარებელს შეუძლია
ინტერაქცია უშუალოდ მასთან ან WMS-თან, რომელიც გადასცემს ამოცანას შესაბამის CE-ს
რომელსაც იპოვის matchmaking პროცესის საშუალებით. მოცანათა გადაცემისას CE-ს შეუძლია
იმუშავოს push მოდელით (სადაც ამოცანა შესასრულებლად გადეცემა პირდაპირ CE-ს) ან
pull მოდელით (სადაც CE უგზავნის თხოვნას WMS-ს რათა ამ უკანასკნელმა გადასცეს მას ამოცანა).
ამოცანათა მენეჯმენტის ფუნქციისა, CE-მა უნდა წარმოადგინოს ინფორმაცია რომელიც
განსაზღვრავს მის მფლობელობაში მყოფ რესურსებს. push მოდელის შემთხვევაში ეს ინფორმაცია
ქვეყნდება ინფორმაციულ სისტემაში და გამოიყენება match making მიერ, რომელიც ძებნის
საჭირო რესურსებს ამოცანების რიგში. pull მოდელის შემთხვევაში ეს ინფორმაცია ჯდება
CE availability მესიჯში და გადაეცემა WMS-ს CE-გან. ამის შემდეგ matchmaker იყენებს ამ
ინფორმაციას CE-სათვის შესაბამისი ამოცანის საპოვნელად .
WN

GRID გარემოს თვალთახედვით მუშა კვანძები წარმოადგენს CE-ს შემადგენელ ნაწილს. WN


იმართებიან CE-ს მიერ. პროცესის განაწილების და გამოთვლის დეტალები მომხმარებლისთვის
დამალულია, მაგრამ რეალურად WN ახორციელებენ გამოთვლებს, ამიტომ მათზე უნდა დაყენდეს
გამომთვლელი პროგრამები. SE 6 შემნახველი ელემენტი უზრუნველყოფს ერთგვაროვან წვდომას
ნებისმიერ მონაცემთა შემნახველთან. ზოგადად SE-ს შეუძლია მართოს ჩვეულებრივი დისკის
სერვერები,
დისკების მასივებიანი ლენტური შემნახველი სისტემები (MSS). ეს ელემენტი მალავს
მომხმარებლისგან მონაცემთა შემნახავის დეტალებს და უზრუნველყოფს მომხმარებლის
ერთგვაროვან წვდომას მონაცემებზე. SE შეიძლება გააჩნდეს მონაცემთა წვდომის სხვადასხვა
პროტოკოლი და ინტერფეისი, მაგალითისთვის ლოკალური და დაშორებული პროტოკოლები:
GSIFTP (a GSIsecure FTP), RFIO, (gsi)dcap, xroot, NFS 4.1. შენახვის რესურსის უმეტესობა იმართება
Storage Resource Manager (SRM)-ის მიერ, რომელიც არის შუალედური სერვისი და იძლევა
საშუალებას დისკიდან ლენტზე ფაილის ტრანსფერის, სივრცის დარეზერვების და ა.შ.
მიუხედავად ამისა SRM იმპლემენტაცია სხვადასხვა შენახვის სიტემებსთვის შეიძლება
განსხვავდებოდეს და გვთავაზობს სხვადასხვა შესაძლებლობებს. არსებობს სხვადასხვა ტიპის
შემნახველი სისტემები: - Disk Pool Manager (DPM), რომელიც გამოიყენება მხოლოდ დისკების
სისტემისთვის. - CASTOR შექმნილია დიდ მასშტაბიანი MSS (ინტერფეისული დიკებით და შიდა
ლენტური შემნახველებით) სამართავად. - DCACHE განკუთვლია MSS და დისკის მასივების
სისტემისთვის. - არსებობს ასევე StoRM და BestMAN.
GRID-სისტემის უსაფრთხოება

GRID-სისტემაში მომხმარებლის შესვლა საკმაოდ მარტივია, თუმცა ამისათვის რამდენიმე


მნიშვნელოვანი ამოცანის გადაჭრაა საჭირო. პირველი ამოცანაა როგორ დავშიფროთ ის
ინფორმაცია რომელიც გადაეცემა GRID-ს, განსაკუთრებით ის პარამეტრები რომლებიც
დაკავშირებულია GRID-სისტემაში შესვლასთან. ამ ამოცანის გადასაწყვეტად გამოიყენება
ასიმეტრიული დაშიფვრის ტექნოლოგია. ასიმეტრიული სისტემები ისეა მოწყობილი, რომ მათში
არსებობს ორი რიცხვი:

• A მომხმარებლის ღია გასაღები (PublicKey), რომელიც ყველასათვის


ხელმისაწვდომია და გამოიყენება A-მომხმარებლისათვის განკუთვნილი შეტყობინების
დასაშიფრად.

• A მომხმარებლის ჩაკეტილი გასაღები (PrivateKey), რომელიც გამოიყენება


მისთვის გამოგზავნილი შეტყობინებების გასაშიფრად.

ყოველი Private Key არის სპეციალურად


დაგენერირებული რიცხვი, რომელიც გამოიყენება საიდენტიფიკაციოდ როგორც პაროლი.
Private Key დაცული უნდა იყოს. იგი მათემატიკურად დაკავშირებულია Public Key-სთან.
ფორმალურად Public Key-სგან შეიძლება Private Key-ის გამოთვლა, მაგრამ პრაქტიკულად ამას
ძალიან დიდი დრო ჭირდება (გასაღების ზომის გაზრდით დრო ექსპონენციალურად იზრდება),
ხოლო Private Key-დან Public Key-ს გამოთვლა მარტივია. ამის გამო მათ ასიმეტრიულ
გასაღებებსაც უწოდებენ. ეს მეტად მნიშვნელოვანია, რადგან მომხმარებელს შეუძლია
გამოაქვეყნოს თავისი ღია გასაღები იმისათვის რომ ნებისმიერმა შეძლოს მისთვის შეტყობინების
დაშიფვრა და გამოგზავნა.

მომხმარებელმა სხვებისაგან საიდუმლოდ უნდა შეინახოს თავისი


ჩაკეტილი გასაღები, რომ მხოლოდ თვითონ შეძლოს მისთვის გამოგზავნილი შეტყობინებების
გაშიფვრა. აქვე ავღნიშნოთ, რომ ჩაკეტილი გასაღების გასაიდუმლება იმიტომაცაა საჭირო, რომ
მხოლოდ მომხმარებელს უნდა შეეძლოს ციფრული ხელმოწერის შესრულება. ეს ხელმოწერა კი
დამოკიდებულია ჩაკეტილი გასაღების მნიშვნელობაზე.

მომხმარებელს შეუძლია შექმნას ციფრული ხელმოწერა, რომელიც დასმული ციფრულ


დოკუმენტზე, იძლევა იმის გარანტიას,რომ ხელმომწერი დოკუმენტზე მომხმარებელი.
სქემა შემდეგია: მომხმარებელი იყენებს რა თავის ჩაკეტილ გასაღებს, აწარმოებს
გარკვეულ ოპერაციას მონაცემებზე, რომელზეც უნდა

დასვას ხელმოწერა და გადაცეს რეზულტატი საწყის მონაცემებთან ერთად ნებისმიერ სხვა


ობიექტს. ეს უკანასკნელი მომხმარებელ A-ს ღია გასაღების გამოყენებით იოლად დარწმუნდება,
რომ ციფრული ხელმოწერა ნამდვილია. უნდა აღინიშოს, რომ წყვილი გასაღები ვერ
უზრუნველყოფს სათანადო უსაფრთხოების დაცვას. როგორ შეიძლება დარწმუნება იმაში რომ
დაშიფრული ჩაკეტილი გასაღებით გადაცემული ინფორმაცია ნამდვილად ეკუთვნის აღნიშნულ
მომხმარებელს. GRID-ის უსაფრთხოების ინფრასტრუქტურა (Grid Security Infrastructure, GSI)
უზრუნველყოფს უსაფრთხო მუშაობას საერთო მოხმარების ქსელებში და თავაზობს
მომხმარებელს ისეთ სერვისებს როგორიცაა იდენტიფიკაცია, ინფორმაციის გადაცემის
კონფიდეციალობა და GRID-ში ერთიანი შესვლა. ერთიან შესვლაში იგულისხმება, რომ
მომხმარებელმა საჭიროა მხოლოდ ერთხელ გაიაროს იდენტიფიცირების პროცედურა შემდეგ კი
ყველა რესურსებზე წვდომისათვის, რომელიც მას დაჭირდება სისტემა თვითონ იზრუნებს მის
იდენტიფიცირებაზე. მომხმარებლის და სერვისების იდენტიფიცირებისათვის GSI-ში
გამოიყენება ციფრული სერტიფიკატები X.509. ციფრული სერტიფიკატი არის სერტიფიკატის
მქონე მომხმარებლის ღია გასაღები, რომელშიც ინტეგრირებულია პერსონალური ინფორმაცია,
როგორიცაა მომხმარებლის სახელი, მისი ელექტრონული მისამართი, სამუშაო ადგილი,
სერტიფიკატის მოქმედების დრო და ა.შ. გარდა ამისა სერტიფიკატი შეიცავს სასერტიფიკაციო
ცენტრის ციფრულ ხელმოწერას (Certification Authority - CA), რომელიც ადასტურებს, რომ
სერტიფიკატი ეკუთვნის იმ მომხმარებელს ვისი მონაცემებიც ჩაწერილია სერტიფიკატში.
ციფრული ხელმოწერა ეს არის ინფორმაცია სერტიფიკატის შესახებ, რომელიც დაშიფრულია
CA მიერ ჩაკეტილი გასაღებით. ამრიგად ამ ინფორმაციის წაკითხვა შესაძლებელია მხოლოდ
CA-ს ღია გასაღების საშუალებით . სერტიფიკატის გაცემამდე (ხელმოწერამდე) CA-ს
ვალდებულებაა შეამოწმოს სერტიფიკატის კუთვნილება მოცემულ მომხმარებელზე. ყველა
სასერტიფიკაციო ცენტრი ატარებს საკუთარ პოლიტიკას, რომელიც განსაზღვრავს
სერტიფიკატების შექმნის და ხელმოწერის წესებს.

როგორც წესი სერტიფიკატის მისაღებად საჭიროა მომხმარებელი შევიდეს სასერტიფიკაციო


ცენტრის Web-გვერდზე და შეავსოს ფორმა, რომელშიც მითითებული იქნება პერსონალური
მონაცემები, ორგანიზაციის დასახელება და ზუსტი ელექტრონული მისამართი. ზოგიერთი
სასერტიფიკაციო ცენტრი თხოულობს დამატებით ინფორმაციას მაგალითად შესასრულებელი
პროექტების შესახებ, ჩასატარებელი სამეცნიერო სამუშაოების შესახებ და ა.შ. მაგრამ როგორ
უნდა დაამტკიცოს პიროვნების იდენტობა სასერტიფიკაციო ცენტრმა, რომელიც სხვა ქალაქშია
ანდა სულაც სხვა ქვეყანაში? ამისათვის უმეტეს მაშტაბურ GRID პროექტებში
გათვალისწინებულია რეგისტრატორების ინსტიტუტის არსებობა (Registration Authority - RA)
რომლებიც დაადასტურებენ სერტიფიკატის მქონე მომხმარებლის პერსონალურ მონაცემებს.
ამიტომ სანამ მოხდება ციფრული სერტიფიკატის ხელმოწერა CA უკავშირდება შესაბამის RA-ას
და მისგან იღებს დასტურს, რომ მოთხოვნა სერტიფიკატის მიღებაზე ჭეშმარიტია. Public Key
ინახება სპეციფიურ ფორმატში რომელიც ცნობილია როგორც X.509 სერტიფიკატი. სერტიფიკატის
მნიშვნელოვანი პარამეტრია Subject Name (SN), რომელიც ასე გამოიყურება:

/C=UK/O=eScience/OU=CLRC/L=RAL/CN=John Doe

ეს არის უფრო ზოგადი ფორამტის Distinguished Name (DN)-ის ნაწილი,


რომელიც ფართოდ გამოიყენება GRID-ში. არ არსებობს DN-ის ჩაწერის მიღებული სტანდარტი,
მაგრამ ითვლება რომ მას სულ მცირე უნდა გააჩნდეს უნიკალური სახელი, ხოლო SN
სერტიფიკატს მფლობელის სახელი. სერტიფიკატი ასევე შეიცავს სხვა ინფორმაცისაც,
მაგალითად დროს რომლის შემდეგაც მას გასდის გამოყენების ვადა. მომხმარებლის
სერტიფიკატის ნორმალური ვადა ერთი წელია, რომლის გასვლამდეც ის უნდა განახლდეს.
განახლებული სერტიფიკატს აქვს ახალი Private and Public Key, მაგრამ SN იგივე რჩება.
Private Key-ს მოპარვის შემთხვევაში შეიძლება მისი ცნობილი სერტიფიკატების სიაში შეტანა
რომლებიც მოიაზრება როგორც უვარგისი.

იდენტობის დადასტურების შემდეგ გენერირდება


სერტიფიკატი და ეგზავნება მომხმარებელს. ეს შეიძლება განხორციელდეს ელ-ფოსტით ან
მომხმარებელმა შესაბამისი ინსტრუქციის მიხედვით უნდა გადმოწეროს ის საიტიდან. თუ
სერტიფიკატი უშუალოდ დაინსტალირდება ბროუზრში უნდა მოხდეს მისი შენახვა დისკზე.
თუ როგორ მოხდება ეს ბროუზერის სპეციფიკაციაზეა დამოკიდებული.
გამოგზავნილი სერტიფიკატი მიიიღება ჩვეულებრივ PEM (გაფართოება .pem) ან PKCS12
(გაფართოება .p12 ან .pfx) ფორმატში. შეიძლება მის ერთი ფორმატიდან მეორეში გადაყვანა
openssl ბრძანებით. თუ
სერტიფიკატი PKCS12 ფორმატშია ის შეიძლება გადავიყვანოთ PEM-ში:

$ openssl pkcs12 -nocerts -in my_cert.p12 -out userkey.pem

$ openssl pkcs12 -clcerts -nokeys -in my_cert.p12 -out usercert.pem

სადაც: my cert.p12

არის გადასაყვანი PKCS12 ფორმატის ფაილი; userkey.pem არის მიღებული private key ფაილი;
usercert.pem არის მიღებული PEM სერტიფიკატის ფაილი. userkey.pem და usercert.pem ფაილი
უნდა დაკოპირდეს UI-ში.

ამოცანის აღწერის ენა JDL

JDL არის მაღალი დონის ენა რომელიც


გამოიყენება ამოცანების აღწერისთვის. მომხმარებელმა უნდა აღწეროს მისი ამოცანა, დავალების
აღწერის ტიპიური ფაილი შეიცავს ინფორმაციას დავალების შესასრულებელი ფაილის
მდებარეობაზე, შესავალი და გამოსავალი მონაცემების მდებარეობაზე და მოთხოვნებს
რომლებსაც უნდა აკმაყოფილებდეს გამოთვლითი რესურსები (მინიმალური მეხსიერება,
პროცესორის ტიპი და ა,შ.) და მიიღოს გამოსავალი ფაილი როცა ამოცანა დასრულდება.
აქ შევეხებით მოკლედ ენის სინტაქსს და მოვიყვანთ რამდენიმე მაგალითს. ამოცანის
განმსაზღვრელი ფაილი არის JDL გაფართოების ფაილი რომელიც შედგება ასეთი ფორმატის
ხაზებისგან:

attribute = expression;

გამოსახულება შეიძლება შედგებოდეს რამოდენიმე


სტრიქონისაგან, მაგრამ მხოლოდ ბოლო სტრიქონი მთავრდება წერტილ-მძიმეთი.
ლიტერალური სტრიქონი მოთავსებულია ორმაგ ბრჭყალებში. თუ სტრიქონი თვითონაც
შეიცავს ბრჭყალებს ისინი უნდა გამოიყოს backslash- ით (მაგ: Arguments = "\"hello\" 10").
ერთ ხაზიან კომენტარს უნდა წინ უძღვოდეს # ან // სიმბოლო, ხოლო მრავალხაზიანი
კომენტარი უნდა მოთავსებული იყოს შემდეგ /* */ სიმბოლოებს შორის. ამოცანის განსაზღვრა
რომელიც უშვებს hostname ბრძანებას WN-ზე უნდა დაიწეროს ასე:

Executable = "/bin/hostname";

StdOutput = "std.out";

StdError = "std.err"; 11

Executable ატრიბუტი განსაზღვრავს ბრძანებას


რომელიც უნდა გაუშვას ამოცანამ. თუ ბრძანება უკვე არის WN-ზე ის უნდა გამოისახოს როგორც
სრული გზა (path); თუ ის უნდა გადაკოპირდეს UI-დან მაშინ მხოლოდ ფაილის სახელით უნდა
გამოისახოს და მისი გზა UI- ზე უნდა მცემული უნდა იყოს InputSandbox ატრიბუტით.
მაგალითად:

Executable = "test.sh";

InputSandbox = {"/home/doe/test.sh"};

StdOutput = "std.out";

StdError = "std.err";

ატრიბუტი Arguments შეიძლება შეიცავდეს სტრიქონს, რომელიც მოცემულია


როგორც არგუმენტების სია Executable-სთვის:
Arguments = "fileA 10";

Executable და Arguments

ატრიბუტებში შესაძლოა აუცილებელი იყოს ისეთი სპეციალური სიმბოლოების გამოყოფა


როგორებიცაა &, \, |, >, <. ამ შემთხვევაში (თუ ისინი
არიან ფაილის სახელის ნაწილი) მათ წინ უნდა უძღოდეთ შემდეგი სიმბოლო \.
StdOutput და StdError ატრიბუტები განსაზღვრავენ executable-ს სტანდარტული
გამოსავლის და შეცდომების შემცველ ფაილებს. სტანდარტული შესავალი ფაილის
განსასაზღვრად შესაბამისად StdInput ატრიბუტი გამოიყენება:

StdInput = "std.in";

თუ ფაილები უნდა გადაკოპირდეს UI-დან WN-ზე ისინი უნდა ჩაიწეროს

InputSandbox ატრიბუტში:

InputSandbox = {"test.sh", "fileA", "fileB", ...};

მხოლოდ ფაილს რომელიც განისაზღვრება როგორც Executable აქვს ავტომატურად


execution ბიტი ჩართული. თუ სხვა ფაილებს, რომლებიც მითითებულია InputSandbox-ში და
აქვთ ასეთი ტიპის ბიტი, WN-ზე გადაკოპირებისას კარგავენ მას. ამოცანის დასრულების
შემდეგ ფაილები რომელთა ტრანსფერი ხდება WN-დან უკან UI-ზე განსაზღვრულია

OutputSandbox ატრიბუტით:

OutputSandbox = {"std.out", "std.err"};

სადაც ფაილების სახელები არის ფარდობითი გზა ამოცანის სამუშაო დირექტორიის მიმართ
(ანუ მიმდინარე დირექტორია როდესაც შემსრულებელი ფაილი იშვება).
ჯგუფური სიმბოლოს (Wildcards) გამოყენება დაშვებულია მხოლოდ InputSandbox
ატრიბუტში. ფაილების სია input sandbox-ში ფარდობითია UI-ზე მიმდინარე დირექტორიის
მიმართ. OutputSandbox ატრიბუტში აბსოლუტური გზის განსაზღვრა შეუძლებელია.
InputSandbox ატრიბუტი არ შეიძლება შეიცავდეს ორი ერთიდაიგივე დასახელების ფაილს,
მიუხედავათ მათი განსხვავებული აბსოლუტური გზისა, რადგან ისინი გადაეწერებიან
ერთმანეთს WN-ზე.

ამოცანის shell გარემო შეიძლება შეიცვალოს Environment ატრიბუტით. მაგალითად:

Environment = {"CMS_PATH=$HOME/cms", "CMS_DB=$CMS_PATH/cmdb"};

საბოლოოდ, ტიპიური JDL ფაილი მარტივი ამოცანისთვის გამოიყურება ასე:

Executable = "test.sh";

Arguments = "fileA fileB";

StdOutput = "std.out";

StdError = "std.err";
InputSandbox = {"test.sh", "fileA", "fileB"};

OutputSandbox = {"std.out", "std.err"};

სადაც test.sh ფაილი შეიძლება გამოიყურებოდეს ასე:

#!/bin/sh

echo "First file:"

cat $1

echo "Second file:"

cat $2
Requirements ატრიბუტი შესაძლოა გამოყენებულ იქნეს ამოცანის გასაშვებად საჭირო
რესურსების მითითებით. მისი ცვლადი არის ლოგიკური ტიპის (Boolean) გამოსახულება
რომელიც იღებს ნამდვილ (true) მნიშვნელობას ამოცანისთვის რომელიც უნდა გაიშვას
რომელიმე CE-ზე. ამ მიზნით BDII-ს ყველა GLUE ატრიბუტის გამოყენება შეიძლება, წინ
other.-ის დაწერით. მხოლოდ ერთი Requirements ატრიბუტის გამოყენება შეიძლება.
რამდენიმეს დაწერის შემთხვევაში მხოლოდ ბოლო გამოიყენება. თუ საჭიროა ამოცანაში
რამდენიმე პირობის გათვალისწინება მაშინ უნდა მოხდეს მათი კომბინირება ერთ
Requirements ატრიბუტში.

მაგალითად, ვთქვათ მომხმარებელს უნდა გაუშვას ამოცანა CE-ზე PBS-ის როგორც


batch სისტემის გამოყენებით და რომლის WN-ებს აქვთ მინიმუმ ორი პროცესორი. მაშინ მას
შეუძლია დაწეროს:

Requirements = other.GlueCEInfoLRMSType == "PBS" && other.GlueCEInfoTotalCPUs > 1;

WMS-ს ასევე შეიძლება მოეთხოვოს ამოცანის გაგზავნა CE-ის კონკრეტულ ამოცანათა


რიგში:

Requirements = other.GlueCEUniqueID == "lxshare0286.cern.ch:2119/jobmanager-pbs-short";

ან CE-ის ამოცანათა ნებისმიერ რიგში:

Requirements = other.GlueCEInfoHostName == "lxshare0286.cern.ch";

თუ ამოცანის შესრულების ხანგრძლივობის მითითება მნიშვნელოვანია, მაშინ საჭიროა


მაქსიმუმი CPU დროის ან wallclock დროის (წუთებში) მითითება. მაგალითად თუ საჭიროა რვა
CPU საათი და 12 wallclock საათი ეს შეიძლება ასე გამოისახოს:

Requirements = other.GlueCEPolicyMaxCPUTime > 480 &&other.GlueCEPolicyMaxWallClockTime


> 720;

თუ ამოცანამ გადააჭარბა იმ ამოცანათა რიგის დროის ლიმიტს რომელშიც ის


არის გაშვებული მაშინ ის ნადგურდება batch სისტემის მიერ.
ამოცანისთვის საჭირო CPU
დრო უკუპროპორციულია CPU სიჩქარის , რომელიც გამოისახება GlueHostBenchmarkSI00
ატრიბუტით. თუ მაგალითად ამოცანას ჭირდება 720 წუთი 1000-ანი სიჩქარის CPU-ზე,
მაშინ ვწერთ:

Requirements = other.GlueCEPolicyMaxCPUTime >(720 * 100

other.GlueHostBenchmarkSI00);

თუ ამოცანა უნდა გაიშვას CE-ზე სადაც VO-ს სპეციფიური პროგრამაა დაყენებული და ეს


ინფორმაცია გამოქვეყნებულია CE-ს მიერ, მაშინ შეიძლება საჭირო იყოს მსგავსი რამის
მითითება:

Requirements = Member("VO-cms

CMSSW_2_0_0",other.GlueHostApplicationSoftwareRunTimeEnvironment);

Member ოპერატორი გამოიყენება ტესტისთვის თუ მისი პირველი არგუმენტი


(სკალარული ცვლადი) არის მისი მეორე არგუმენტის (სია) წევრი. GlueHostApplicationSoftwareRun
TimeEnvironment ატრიბუტი ფაქტიურად არის სტრიქონების სია და გამოიყენება VO-ს სპეციფიური
ინფორმაციისთვის CE-თან დაკავშირებით (მაგალითად ინფორმაცია პროგრამმის შესახებ
რომელიც აყენია შესაბამისი VO-ს CE-ზე). ასევე შესაძლებელია რეგულარული გამოსახულების
გამოყენება მოთხოვნილი რესურსების გამოსახვისას:

Requirements = RegExp("cern.ch", other.

GlueCEUniqueID); საწინააღმდეგო შეიძლება მოთხოვნილ იქნეს ასე: Requirements =

(!RegExp("cern.ch", other.GlueCEUniqueID));

მომხმარებელს შეიძლება დაჭირდეს განსაზღვრა თუ


რა ტიპის CE იქნას გამოყენებული ამოცანის შესასრულებლად. აქ გვაქვს ორი მაგალითი თუ
როგორ შეიძლება გამოისახოს JDL-ით მოთხოვნა კონკრეტულ ოპერაციულ სისტემაზე და
კომპიუტერის არქიტექტურაზე:

Requirements = ( other.GlueHostOperatingSystemName ==

"CentOS" ||

RegExp("Scientific", other.GlueHostOperatingSystemName) ||

RegExp("Enterprise", other.GlueHostOperatingSystemName) ) && ( other.GlueHostOperatingSystemRelease

>= 5 &&

other.GlueHostOperatingSystemRelease < 6) ;

ან ასე:

SN = other.GlueHostOperatingSystemName ;

SR = other.GlueHostOperatingSystemRelease ;

SL5 = ( SN == "CentOS" ||

RegExp("Scientific", SN) ||
RegExp("Enterprise", SN) )

&&( SR >= 5 && SR < 6 ) ; Requirements = SL5 ;

ქვემოთ მოყვანილია Requirements ატრიბუტის მაგალითები სპეციფიური CE-ს


არქიტექტურისთვის:

Intel i386-i686

Requirements = other.GlueHostArchitecturePlatformType is UNDEFINED ||

RegExp("i[3456]86",other.GlueHostArchitecturePlatformType) ;

64-bit Xeon and Opteron

Requirements = (other.GlueHostArchitecturePlatformType == "x86_64") ;

64-bit Itanium

Requirements = (other.GlueHostArchitecturePlatformType == "ia64") ;

თუ საჭიროა მოცემულ CE-ის უახლოეს SE-ზე ჩაიწეროს თვლის შედეგები, მაშინ საჭიროა
დავწეროთ:

Member("srm.pic.es", other.GlueCESEBindGroupSEUniqueID);

შემდეგი მაგალითი გამოიყენება alice VO პროექტში CE-ს


მოსაძებნად, რომელზეც დაყენებულია რაიმე პროგრამა
(მაგ:VO-alice-AliEn and VO-alice-ALICE-v4-01-Rev-01) და
ამოცანას აძლევს საშუალებას გაიშვას ერთი დღის განმავლობაში (ანუ ამოცანა არ შეწყდება
დროის ამოწურვამდე):

Requirements = other.GlueHostNetworkAdapterOutboundIP==true &&

Member("VO-alice-AliEn", other.GlueHostApplicationSoftwareRunTimeEnvironment) &&

Member ("VO-alice-ALICE-v4-01", other.GlueHostApplicationSoftwareRunTimeEnvironment) &&

(other.GlueCEPolicyMaxWallClockTime> 1440 );

შეიძლება ასევე WMS-მა ავტომატურად თავიდან


გაუშვას ამოცანა, რომელიც GRID-ის მიერ იქნა შეწყვეტილი. არსებობს deep resubmission და
shallowresubmission. deep resubmission- ია როდესაც ამოცანა წყდება WN-ზე გაშვებისთანავე,
სხვა შემთხვევაში shallowresubmission. მომხმარებელს შეუძლია შეზღუდოს WMS-ის მიერ
ამოცანის თავიდან გაშვების რაოდენობა
RetryCount და ShallowRetryCount ატრიბუტით:

RetryCount = 0;

ShallowRetryCount = 3;

ხანდახან უმჯობესია deep resubmission-ის გათიშვა,


რადგან შეიძლება ამოცანა შეწყდეს მის მიერ რამის შესრულების შემდეგ (მაგალითად ფაილის
შექმნა). shallowresubmission-ის გამოყენება ზრდის ამოცანის სწორად შესრულების შანსს.
WMS-ის პროქსი სერტიფიკატის განახლების თვისება ავტომატურად ჩართულია, რამდენადაც
მომხმარებელი გრძელვადიან პროქსი სერტიფიკატს ინახავს default MyProxy სერვერზე
(ჩვეულებრივ განისაზღვრება MYPROXY_SERVER გარემოს ცვლადი MyProxy კლიენტის
ბრძანებებისთვის) და UI-ის კონფიგურაციაში WMS-ის ბრძანებებისთვის. მიუხედავად ამისა
შესაძლებელია WMS-ზე სხვა MyProxy სერვერის მითითება JDL ფაილში:

MyProxyServer ="myproxy.cern.ch";

შესაძლოა პროქსი სერტიფიკატის განახლების გამორთვა:

MyProxyServer ="";

არჩევა თუ სად უნდა გაიშვას ამოცანა რამოდენიმე CE-ს შორის ხდება CE-ის რანგის მიხედვით
(rank), რომლის სიდიდე გამოისახება ათწილადის სახით.
თუ რანგი ცხადად არ არის
მითითებული მაშინ რანგი უდრის - other.GlueCEStateEstimatedResponseTime, სადაც
სავარაუდო პასუხის დრო არის დროის ინტერვალი ამოცანის გადაგზავნასა და მისი გაშვების
დასაწყისის შორის. მიუხედავად ამისა მომხმარებელს შეუძლია თავიდან განსაზღვროს CE-ის
რანგი Rank ატრიბუტით:

Rank = other.GlueCEStateFreeCPUs;

რომელიც რანგს განსაზღვრავს


თავისუფალი CPU-ს მიხედვით. შეგვიძლია უფრო რთული გამოსახულებაც დავწეროთ:

Rank = ( other.GlueCEStateWaitingJobs == 0 ? other.GlueCEStateFreeCPUs :

-other.GlueCEStateWaitingJobs);

აქ დამატებულია მოთხოვნა ისეთ CE-ზე სადაც საერთოდ არ არის გაშვებული ამოცანები ან


გაშვებულია ყველაზე ნაკლები. JDL ფაილში შესაბამისი პარამეტრების გამოყენებით დავალება
შეიძლება გაიგზავნოს გამომთვლელ კვანძებზე რომლებსაც გააჩნიათ განსაზღვერული შემავალი
ფაილების ასლები.
InputData = {"LF:file1.txt"};

ReplicaCatalog="ldap://lhc20.sinp.msu.ru:9011/rc=

Testbed\Replica

Catalog,dc=lxshare0226,dc=cern,dc=ch";

DataAccessProtocol = {"file", "gridftp"};

პარამეტრი Replica Catalog საჭიროა მხოლოდ იმ შემთხვევაში როდესაც InputData შეიცავს


ფაილის ლოგიკურ სახელს. მისი გამოყენება არ არის საჭირო თუ ფაილებს გააჩნიათ ფიზიკური
სახელები. ანალოგიურად შეიძლება საიტების გამოყოფა განსაზღვრული შემნახველი
ელემენტით (storage element):

OutputSE = "gppse05.gridpp.rl.ac.uk";

ხშირად მოსახერხებელია
დავალების შესრულების დაწყებამდე რესურსების დავალებასთან თავსებადობის შემოწმება.
ამისათვის გამოიყენება ბრძანება:

glite-wms-job-list-match

მოცემული JDL ფაილისათვის იგი იძლევა რანგის მიხედვით დალაგებულ რესურსების


ჩამონათვალს, რომლებიც აკმაყოფილებენ მოცემული დავალების პირობებს.

GRID სისტემაში შესვლა

GRID რესურსებთან დაშვების მისაღებად საჭიროა მომხმარებელს ჰქონდეს


ვარგისი პროქსი სერტიფიკატი UI კომპიუტერზე. GRID-ის გარემოში შესვლა ხორციელდება
სერტიფიკატში მითითებული სახელით და კონტროლდება სპეციალური პროგრამით
(ელექტრონული მინდობილობით - proxy), რომელიც იქმნება შეზღუდული დროთ
მომხმარებლის პერსონალური (userkey.pem) გასაღების გამოყენებით. GRID სისტემის
სერვისული სამსახურებს შეუძლიათ შეასრულონ ნებისმიერი მოქმედებები თუ მათ
გააჩნიათ ასეთი მინდობილობის ასლი.

თუ სერტიფიკატი სწორედაა დაყენებული,


მაშინ ბრძანება grid-proxy-init შექმნის ახალ მინდობილობას. პასუხად ეკრანზე გამოვა
მსგავსი შეტყობინება:
$ grid-proxy-init

Youridentity: =FR/O=CNRS/OU=LAL/CN=CharlesLoomis/Email=loomis@lal.in2p3.fr

Enter GRID pass phrase for

this identity: **********

Creating proxy .................................................. Done

Your proxy is valid until Tue Aug 13 03:15:11 2002

განსაკუთრებული მითითების გარეშე მინდობილობა მოქმედებს 12


საათის განმავლობაში. მინდობილობის შექმნის შემდეგ, აუცილებლობის შემთხვევაში ის
გამოიყენება GRID-ის სხვადასხვა ბრძანებების მიერ. თუ საჭიროა შეიძლება მინდობილობის
შექმნა სხვა ხანგრძლივობით, ამისათვის გამოიყენება პარამეტრი –hours. უნდა გვახსოვდეს,
რაც მეტია მინდობილობის ხანგრძლივობის დრო მით მეტია მათი გატეხვის ალბათობა.
თუ სერტიფიკატი არასწორედ იყო დაყენებული, გამოვა შეტყობინება შეცდომის შესახებ:
“user certificate not found”, ხოლო თუ შეცდომაა საიდენტიფიკაციო ფრაზაში შეტყობინება –
“wrong pass phrase”.

მინდობილობის ვადის გასვლამდე გასანადგურებლად შეიძლება შემდეგი


ბრძანების გამოყენება: grid-proxy-destroy. მაგრამ ამ ბრძანებით განადგურდება მინდობილობის
მხოლოდ ლოკალური ასლი. იგი არ შეეხება იმ ასლებს, რომლებიც გამოიყენებოდა თქვენი
დავალების შესრულებისას და აგრეთვე GRID-ის სამსახურების მიერ.
გაცემული მინდობილობის შესახებ ინფორმაციის მისაღებად საჭიროა გამოვიყენოთ ბრძანება
grid-proxy-info პარამეტრით –all, რომელიც იძლევა სრულ ინფორმაციას მინდობილობის
შესახებ:

$ grid-proxy-info -all
subject : /C=FR/O=CNRS/OU=LAL/CN=Charles Loomis/Email=

loomis@lal.in2p3.fr/CN=proxy

issuer : /C=FR/O=CNRS/OU=LAL/CN=Charles Loomis/Email=

loomis@lal.in2p3.fr

type : full strength : 512 bits

timeleft : 11:36:17

გარკვეულ ელემენტებზე
ინფორმაციის მიღება შესაძლოა ბრძანების პარამეტრების შესაბამისი მნიშვნელობების
საშუალებით. უფრო დაწვრილებით ყველა ამ ბრძანების შესახებ ინფორმაციის მიღება
შესაძლოა თუ გამოვიყენებთ ბრძანებებთან ერთად პარამეტრს--help.

დავალებების გაგზავნის ბრძანებები

WMProxy წარმოადგენს Glite WMS-ის მთავარ სერვისს ამოცანების სამართავად.


მისი რამდენიმე ფუნქცია:

• პროქსის დელეგაციით აჩქარებს თანმიმდევრულ ოპერაციებს;

• Match-making (რომელი CE შეესაბამება JDL ფაილით აღწერილს);

• ერთი ან რამოდენიმე ამოცანის გადაგზავნა შესასრულებლად;

• ამოცანების გაუქმება;

• ამოცანების შედეგის გამოტანა.

ბრძანება რომელიც მოითხოვს ინფორმაციას LB სერვისისგან შეიცავს ამოცანის მიმდინარე


სტატუსს ან მისი სტატუსის ისტორიას. შემდეგ ცხრილში წერია ძირითადი ბრძანებები, მათი
ხშირად გამოყენებადი ობციებით:

ფუნქცია Glite WMS ამოცანის გადაგზავნა შესასრულებლად

glite-wms-job-submit [-d delegID] [-a] [-o joblist] „jdl ფაილი“

ამოცანის სტატუსის შემოწმება

glite-wms-job-status [-v verbosity] [-i joblist] „ამოცანის ID“

ამოცანის logging ინფორმაცია

glite-wms-job-logging-info [-v verbosity] [-i joblist] „ამოცანის ID“

ამოცანის შედეგის გამოტანა

glite-wms-job-output [-diroutdir] [-i joblist] „ამოცანის ID“

ამოცანის გაუქმება glite-wms-job-cancel

[-i joblist] „ამოცანის ID“

მისაწვდომი რესურსების სია glite-wms-job-list-match[-d delegID] [-a] „jdl


ფაილი“ პროქსი დელეგაცია glite-wms-job-delegate-proxy -d „დელეგაციის ID“

ამოცანის გაგზავნა ხდება ამ ბრძანებით

glite-wms-job-submit -a „jdl ფაილი“

-a ობცია საჭიროა მომხმარებლის პროქსის


WMProxy სერვერზე ავტომატური დელეგირებისთვის.

https://lhc20.sinp.msu.ru:7846/137.138.181.214/152312203546264?lhc20.sinp.msu.ru:7771

მიაქციეთ ყურადღება, რომ მინიჭებული ნომერი შეიცავს კითხვის ნიშანს, რომლებიც


ზოგიერთ სისტემურ გარსებში (მაგალითად csh-ში) აღიქმება როგორც ნებისმიერი სიმბოლოების
კრებული (wildcard) ამ გარსებისათვის საიდენტიფიკაციო ნომრები ბრჭყალებში უნდა ჩაისვას.
სხვა ბრძანებების
მიერ ხდება საიდენტიფიკაციო ნომრის გამოყენება შესაბამისი მოქმედებების ჩასატარებლად
ჩამოთვლილი დავალებებიდან. ბრძანება dg-job-output აგზავნის შესრულებული დავალების
რეზულტატს რესურსების ბროკერიდან მომხმარებლის კომპიუტერზე. რეზულტატი შეიძლება
მიღებული იქნას, როდესაც დავალებას ექნება სტატუსი Output Ready.

Proxy

დაშორებულ სერვისთან ურთიერთობისთვის სერტიფიკატი შეიძლება გამოვიყენოთ


საიდენტიფიკაციოდ.მიუხედავად ამისა ხშირად დაშორებული სერვისისთვის აუცილებელია
იმოქმედოს მომხმარებელის სახელით, მაგალითად ამ სერვერზე გაშვებულ ამოცანას შეიძლება
დასჭირდეს სხვა სერვერებზე ფაილის ტრანსფერი და ამისთვის მას სჭირდება დაამტკიცოს რომ მას
უფლება იმოქმედოს ამ მომხმარებლის სახელით (ამას უწოდებენ Delegation-ს). მეორე მხრივ
Private Key-ს გადაგზავნა სხვა სერვერზე უსაფრთხოებიდან გამომდინარე არ არის მიზანშეწონილი.
არის proxy სერტიფიკატის გამოყენება. proxy სერტიფიკატი შეიცავს ახალ Public/PrivateKey
წყვილს ხელმოწერილს მომხმარებლის პერსონალურ სერტიფიკათთან ამის მსგავსი SN-ით:

/C=UK/O=eScience/OU=CLRC/L=RAL/CN=John Doe/CN=proxy

ჩვეულებრივ proxy-ს აქვს


მცირე ვადა (სტანდარტულად 12 საათი). Proxy ფაილები შეიცავენ proxy სერტიფიკატს,
მის Private Key-ს და მომხმარებლის სერტიფიკატს (მაგრამ არა მომხმარებლის Private Key-ს).
მომხმარებლის proxy-სთან იდენტიფიკაციის მექანიზმი იგივეა როგორც პერსონალური
სერტიფიკატის შემთხვევაში, მაგრამ დამატებით მოწმდება პროქსის ხელმოწერა
მომხმარებლის სერტიფიკატთან (ჩართულია ფაილში).
უსაფრთხოების თვალსაზრისით
proxy სუსტია. რადგან Private Key იგზავნება passphrase-ს გარეშე, ადვილია მისი მოპარვა.
ასევე არ არსებობს proxy-ს გაუქმების მექანიზმი რომ შეუძლებელი იყოს მისი გამოყენება,
ამიტომაც მას აქვს 12 საათიანი ვადა, რაც ამცირებს პოტენციური ზარალის რისკს.

VOMS Proxy

VOMS სისტემა მართავს ინფორმაციას, ორგანიზაციის შიგნით მომხმარებლის როლის


და პრივილეგიების შესახებ. პროქსის შექმნისას რამდენიმე VOMS სერვერი ეკონტაქტება
ერთმანეთს და ისინი აბრუნებენ “mini certificate”-ს რომელიც ცნობილია როგორც Attribute
Certificate (AC). AC შეიცავს რა ინფორმაციას მომხმარებლის ჯგუფის წევრობისა და ამ
ორგანიზაციის შიგნით როლის შესახებ.
VOMSproxy-ს შესაქმნელად AC ჩაშენებულია
სტანდარტულ proxy-ში და ეს მთლიანად ხელმოწერილია ძირითადი სერთიფიკატის
private key-თ. სერვისები შემდეგ შიფრავენ VOMS ინფორმაციას და იყენებენ
დანიშნულებისამებრ, ანუ მომხმარებელს ეძლევა რაიმეს გაკეთების უფლება იმის მიხედვით
თუ მას რა როლი აქვს შესაბამის VO-ში. ამ მეთოდიდან გამომდინარე VOMS ატრიბუტები
შეიძლება გამოყენებულ იქნეს პროქსისთან ერთად და ისინი არ შეიძლება მიებას CA გაცემულ
სერტიფიკატებს. ყოველ AC-ს აქვს თავისი ვადა. ეს ვადა proxy-სთვის ჩვეულებრივ 12 საათია,
მაგრამ AC-სთვის შესაძლებელია ამ დროის შეცვლა.

MyProxy

პროქსის შეზღუდული დრო ქმნის


პრობლემას. თუ ამოცანა არ დამთავრდა პროქსის ვადის ამოწურვამდე ამოცანა შეწყდება.
ეს შეიძლება მოხდეს იმ სემთხვევაში თუ ამოცანის შესრულება იკავებს ძალიან დიდ დროს ან
ის იმყოფება გაშვებული ამოცანების რიგში დიდი დროის განმავლობაში. ამ პრობლემის
მარტივი გადაწყვეტაა გრძელვადიანი პროქსის დაშვება, მაგრამ ეს ქმნის დამატებით რისკებს
უსაფრთხოებისთვის. ასევე პროქსის ვადა განსაზღვრულია VOMS სერვერზე ამიტომ მისი შეცვლა
შეუძლია მხოლოდ ამ სერვერის ადმინისტრატორს. ამ შეზღუდვის გვერდის ასავლელად
არსებობს MyProxy სერვერი, სადაც იქმნება გრძელვადიანი პროქსი. ეს შეიძლება იყოს
ცალკე სერვერი. WMS-ს შეუძლია გამოიყენოს ეს გრძელვადიანი პროქსი და პერიოდულად
განაახლოს იგი გაშვებული ამოცანისთვის, სანამ ეს ამოცანა დასრულდება ან გრძელვადიანი
პროქსის დრო ამოიწურება. ავტომატური განახლების მექანიზმის ჩართვისათვის საჭიროა
შესრულდეს შემდეგი მოქმედებები:

1. შეიქმნას მინდობილობა grid-proxy-init-ის


გამოყენებით.

2. დარეგისტრირდეს ეს მინდობილობა proxy-server-ზე შემდეგი ბრძანებით


myproxy-init –s [-t -c ], სადაც “server” ეს არის სერვერის მისამართი, “cred” – დრო (საათების
რაოდენობა), რომლის განმავლობაშიც სერვერზე უნდა მოქმედებს მინდობილობა, ხოლო “proxy” - დ
რაოდენობა), რომლის განმავლობაშიც უნდა მოქმედებდეს განახლებული მინდობილობა.
3. დავალებები ხანმოკლე მინდობილობებით გაეშვება შემდეგი ბრძანების საშუალებით:

grid-proxy-init –hours.

ინფორმაცია შენახული მინდობილობების შესახებ შეიძლება მიღებული


იქნეს შემდეგი ბრძანებით:

myproxy-info –s -d,

ხოლო მინდობილობის განადგურება


შესაძლებელია ბრძანებით

myproxy-destroy–s.

მაგალითი 1. Hello from Script

ამ მაგალითში
GRID გარემოში ხდება მცირე დავალების სკრიპტის გაგზავნა, ის სრულდება და რეზულტატი
ეგზავნება მომხმარებელს. შევქმნათ შესასრულებელი ფაილი დასახელებით HelloScript.sh,
რომელიც შეიცავს შემდეგ სკრიპტს:

#!/bin/sh

/bin/echo "Hello From Script"

/bin/ls 9485968.txt

ეს სკრიპტი მოცემულ ფრაზას (ამ შემთხვევაში "HelloFromScript") ჩაწერს სტანდარტულ


გამოსავალ ფაილში, ხოლო შეცდომას სტანდარტული შეცდომების ფაილში-9485968.txt
(თუ კომპიუტერში რომლიდანაც გაიშვა დავალება არ არის ფაილი 9485968.txt)

JDL ფაილს ამ დავალებისათვის აქვს შემდეგი სახე:

Executable = "HelloScript.sh";

StdOutput = "std.out";

StdError = "std.err";

InputSandbox = {"HelloScript.sh"};

OutputSandbox = {"std.out","std.err"};
თუ სკრიპტი HelloScript.sh არ არის მოთავსებული მიმდინარე დირექტორიაში, მაშინ
აუცილებელია მიეთითოს სრული გზა სკრიპტისაკენ.

თუ დავალება სწორედაა შესრულებული მაშინ გამოსავალი ფაილი შედგება ერთი სტრიქონისაგან

HelloFromScript

ხოლო შეცდომების ჩაწერის ფაილი-სტრიქონისაგან:

/bin/ls: 9485968.txt: No such file or directory

მაგალითი 2. დავალების შესრულებისათვის აუცილებელი


მოთხოვნების სპეციფიკაცია.

სპეციფიკაციის მოთხოვნების
საშუალებით, მომხმარებელს შეუძლია გააგზავნოს დავალება იმ საიტზე რომელიც
აკმაყოფილებს აღნიშნულ მოთხოვნებს და რომელიც აუცილებელია დავალების
შესასრულებლად. არასრულ სპეციფიკაციას შეუძლია გამოიწვიოს დავალების შესრულების
გაჩერება და დროის კარგვები.
დავალების აღწერის JDL ფაილში სპეციფიკაციისათვის
გამოიყენება ატრიბუტი "Requirements". ამ ატრიბუტის მნიშვნელობებს წარმოადგენენ
ლოგიკური გამოსახულებები, რომელთა საშუალებით მიიღება საჭირო შეზღუდვები.
შესაძლო მნიშვნელობები (ან ცვლადები) რომლებიც გამოიყენება მოთხოვნების აღწერისათვის,
განისაზღვრება გამოთვლითი ელემენტის ატრიბუტებით. ისინი განისაზღვრება GRID-ის
საინფორმაციო სამსახურების საშუალებით.

ldapsearch -x \

-Hldap://lxshare0225.cern.ch:2135 \

-b 'mds-vo-name=edg,o=grid' \

'(objectclass=computingelement)'

ტიპიური ატრიბუტებია: "Architecture",

"OpSys", "RunTimeEnvironment", "MaxCPUTime", "MaxWallClockTime" и "FreeCPUs".

მაგალითად თუ დავალების მოთხოვნაა, რომ CPU-ს სამუშაო დრო იყოს 25 წუთი და


რეალური დრო 100 წუთი, ამისათვის საჭიროა შემდეგი სპეციფიკაციის მოთხოვნა:

Requirements = other.MaxCPUTime>=1500 &&other.MaxWallClockTime>=6000;


დრო მოცემულია წამებში. აუცილებელია ავღნიშნოთ, რომ რიცხვითი მნიშვნელობები
არ ისმება ბრჭყალებში. მათი ბრჭყალებში ჩასმა გამოიწვევდა რესურსების არასწორ არჩევას.

ატრიბუტი "RunTimeEnvironment" გამოიყენება პროგრამული საშუალებების აღწერისათვის,


რომლებიც უნდა იქნეს დაყენებული კვანძზე დავალების შესასრულებლად. მაგალითად მოთხოვნა

Requirements =Member(other.RunTimeEnvironment,"ALICE-3.07.01");

გამოყოფს კვანძებს რომლებზეც დაყენებულია პროგრამული უზრუნველყოფა "ALICE- 3.07.01".

მაგალითი 3. RankingResources

თუ GRID ქსელის რამდენიმე კვანძი აკმაყოფილებს


დავალების მოთხოვნებს, მაშინ ის გაიგზავნება უმაღლესი რანგის მქონე რესურსზე.
თუ ატრიბუტი "Rank" არ არის მითითებული JDL ფაილში, მაშინ გამოყენებული იქნება:

Rank = -other.EstimatedTraversalTime; EstimatedTraversalTime

პარამეტრის მნიშვნელობა იმ
შეფასებული დროის ტოლია (წ ამებში) რომელიც გაივლის დავალების გაშვებამდე. ასეთი
მითითება ყოველთვის ოპტიმალური ვერ იქნება და მომხმარებელს შეუძლია გამოიყენოს
სხვა კრიტერიუმები, მაგალითად:

Rank = other.FreeCPUs;

იძლეა საშუალებას ავირჩიოთ


კვანძი რომელსაც გააჩნია თავისუფალი პროცესორების უდიდესი რაოდენობა.
რასაკვირველია რაც მეტია რანგი, მით უფრო სასურველია რესურსის გამოყენება.

მონაცემების მართვა

GRID-ის მონაცემთა მართვის მთავარი ერთეული ჩვეულებრივ


არის ფაილი. GRID გარემოში ფაილებს შეიძლება ჰქონდეთ ასლები რამდენიმე GRID
საიტზე. ამ ფაილებს შორის შესაბამისობის უზრუნველსაყოფად არ შეიძლება GRID-ის
ფაილების განახლება შექმნის შემდეგ და მხოლოდ წაკითხვისა და წაშლის ოპერაციებია
რეკომენდირებული. იდეალურ შემთხვევაში მომხმარებელს არ ჭირდება ფაილის
ადგილსამყოფელის ცოდნა, რადგან ის იყენებს ფაილის ლოგიკურ სახელს.
ფაილებს GRID-ში შეიძლება ჰქონდეთ რამდენიმე სახელი. Grid Unique IDentifier (GUID), Logical
File Name (LFN), Storage URL (SURL) და Transport URL (TURL). ფაილის GUID და LFN
სახელი არ ასახავს ფაილის და მისი ასლის ფიზიკურ მდებარეობას განსხვავებით SURL
და TURL-ისგან .

ფაილს შეიძლება ჰქონდეს GUID უნიკალური სახელი.


ეს სახელი მას ეძლევა GRID-ში მისი თავდაპირველი რეგისტრაციისას UUID სტანდარტის
საფუძველზე (UUID იყენებს MAC მისამართისა და დროის კომბინაციას). GUID-ის ფორმაა:
guid:(მაგ: guid:93bd772a-b282-4332-a0c5-c79e99fc2e9c).

მომხმარებელი ფაილზე ოპერაციებისთვის


ძირითადად იყენებს LFN-ს. მისი ფორმაა: lfn:. GRID-ის ფაილს შეიძლება ჰქონდეს რამდენიმე
lfn ლინკი ისევე როგორც UNIX ფაილურ სისტემაში.
SURL-ი იძლევა ინფორმაციას ფაილის
ასლის ადგილსამყოფელის შესახებ. მას აქვს ასეთი ფორმატი:

srm://:/srm/managerv2?SFN= TURL

იძლევა აუცილებელ ინფორმაციას ფაილის ასლის ჩასაწერად ან მისაღებად, ჰოსტის სახელის,


ფაზის, პროტოკოლის და პორტის გამოყენებით. მისი ფორმატია ://:/. არ არის აუცილებელი
ერთი ფაილის ფაზა ან ჰოტის სახელი SURL-სთვის და TURL-სთვის ერთი და იგივე იყოს.
მოცემული ფაილისთვის შეიძლება იყოს იმდენი TURL რამდენი მონაცემთა წვდომის
პროტოკოლიც გააჩნია მოცემულ SE-ს. ასევე SE შეიძლება შეიცავდეს ფაილის მრავალ ასლს
დატვირთვის ბალანსირებისათვის (load balancing).
სანამ ფაილები ინახება SE-ზე, LFN, GUID და
SURL შორის შესაბამისობა ინახება File Catalogue სერვისში. EMI-ში ოფიციალური კატალოგი
არის LCG File Catalogue (LFC).

File Transfer Service (FTS) არის სერვისი რომელიც უზრუნველყოფს


SE-ს შორის ფაილების მიღებას, ტრანსფერის დაგეგმვას და განხორციელებას. ის ასევე იძლევა
საშუალებას განსაზღვროს ფაილის ნაწილის ტრანსფერი სხვადასხვა ვირტუალურ
ორგანიზაციებს შორის და მიანიჭოს სხვადასხვა პრიორიტეტები ინდივიდუალურ ფაილებს.
FTS არის ძალიან მოსახერხებელი დიდი მოცულობის მონაცემების ტრანსფერისთვის.

არსებობს მონაცემთა მართვის სხვადასხვა კლიენტური პროგრამები ფაილების


ატვირთვა ან ჩამოტვირთვისთვის GRID-ში ან პირიქით GRID-დან, მათი ასლის შექმნისთვის
და ფაილების კატალოგთან ინტერაქციისთვის. შეგვიძლია გამოვიყენოთ lcg-util პროგრამა
ანუ მისი lcg-* ბრძანებები. ეს არის მაღალი დონის ინტერფეისი (command line and API),
რომელიც მალავს ფაილების კატალოგისა და SE-ების ურთიერთობის კომპლექსურობას,
რაც ამცირებს გრიდის ფაილის დაზიანების რისკებს.
ასევე შეგვიძლია გამოვიყენოთ

glite-gridftp-*, uberftp, globus-url-copy და srm* ბრძანებები. თუმცა მათი გამოყენება


ჩვეულებრივი მომხმარებლისთვის არ არის რეკომენდირებული, რადგან ისინი არ
უზრუნველყოფენ SE-ზე ფაილების და ფაილების კატალოგში ჩანაწერებს შორის
შესაბამისობის დადგენას რამაც შეიძლება ცუდი შედეგი გამოიწვიოს.

ვირტუალური ორგანიზაციაში ხელმისაწვდომი SE-ს მოსაძებნად გამოიყენება


„lcginfosites --vo MyVO se“ ბრძანება. შედეგი იქნება ამის მსგავსი:

Avail Space(Kb) Used Space(Kb)Type Ses


--------------------- -------------------- --------- --------------------

16070000000 n.a n.a se.phy.bg.ac.yu

888143872 84934656 n.a se001.ipp.acad.bg

1634215924 68738609 n.a se03.grid.acad.bg

2300000000 20226331 n.a plethon.grid.ucy.ac.cy

75518264 152634624 n.a node004.grid.auth.gr

2247308768 194503424 n.a se.hep.ntua.gr

lcg-infosites ბძანებით
ასევე შესაძლებელია სხვა სერვერების პოვნა, მათ შორის მოცემულ SE ელემენტთან ახლო
მყოფი CE-ის პოვნა. მაგ: lcg-infosites --vo lhcb ce.
დირექტორიის შექმის ბრძანება:

lfc-mkdir -p /grid/MyVO/MyUserName

ფაილის დირექტორიაში ატვირთვა:

lcg-cr -d MySEName -l lfn:/grid/MyVO/MyUserName/MyFileName --vo MyVO MySrcFilePath

MySEName არის SE სახელი,


lfn- ფაილის ლოგიკური სახელი, MySrcFilePath – UI-დან ასატვირთი ფაილის სახელი.
მას უნდა ჰქონდეს შემდეგი ფორმატი: file:AbsolutePath. მაგალითად ფაილის U-დან GRID-ში
ატვირთვის დასრულებისას:

lcg-cr -d MySEName -l lfn:/grid/MyVO/MyUserName/MyFileName

--vo MyVO file:/home/MyUserName/MyFileName

საბოლოო გამოსავალი გამოიყურება ასე:

guid:399099e7-6333-45e9-8029-67aa6097d16a.

ჩვენ lcg-cr ბრძანებას ვიყენებთ ფაილის გრიდში


განსათავსებლად მის გაშვებამდე. ასევე შეიძლება გამოვიყენოთ bash სკრიპტი:

#!/bin/sh

lcg-cr -d MySEName --vo MyVO -l lfn:/grid/MyVO/MyUserName/proteins1.fasta

file:`pwd`/proteins1.fasta

lcg-cr -d MySEName --vo MyVO -l lfn:/grid/MyVO/MyUserName/proteins2.Fasta

file:`pwd`/proteins2.fasta lcg-cr -d MySEName --vo MyVO -l lfn:/grid/MyVO/MyUserName

/blosum62.txt file:`pwd`/blosum62.txt lcg-cr -d MySEName --vo MyVO -l lfn:/grid/MyVO/MyUserName/

alignment.exe file:`pwd`/ariadne

დირექტორიის დათვალიერება:

lfc-ls -l /grid/MyVO/MyUserName

ჩვენ ყოველთვის შეგვიძლია lfn-იდან guid-ის მიღება და პირიქით. მაგალითად lcg-lg (GUID სია)
ბრძანება გვიბრუნებს lfn ან surl-თან ასოცირებულ guid-ს. SE-ზე ატვირთული ფაილისთვის,
რომელსაც დავარქვით lfn-ი შეგვიძლია ვნახოთ მისი guid:

lcg-lg --vo

MyVO lfn:/grid/MyVO/MyUserName/MyFileName

შედეგი იქნება:

guid:399099e7-6333-45e9-8029-67aa6097d16a

თუ ჩვენ არ გვინდა მუდმივად სრული მისამართების


აკრეფა, შეგვიძლია ჩვენი ძირითადი დირექტორია გავწეროთ გარემოს ცვლადის სახით:

export LFC_HOME=/grid/MyVO/MyUserName

lfc ბრძანებების სია:

lfc-chmod წვდომის უფლებების შეცვლა LFC ფაილზე/დირექტორიაზე

lfc-chown LFC ფაილის ან დირექტორიის მფლობელი მომხმარებლის და ჯგუფის შეცვლა

lfc-chgrp LFC ფაილის ან დირექტორიის მფლობელი ჯგუფის შეცვლა

lfc-setcomment კომენტარის დამატება/შეცვლა

lfc-delcomment ფაილთან ან დირექტორიასთან ასოცირებული კომენტარის წაშლა

lfc-setacl ფაილის/დირექტორიის წვდომის სიის შექმნა

lfc-getacl ფაილის/დირექტორიის წვდომის სიის ნახვა

lfc-ln ფაილის/დირექტორიის სიმბოლური ლინკის შექმნა

lfc-ls დირექტორიაში ფაილების/დირექტორიების სია

lfc-rm ფაილის/დირექტორიის წაშლა

lfc-mkdir დირექტორიის შექმნა

lfc-rename ფაილის/დირექტორიის სახელის შეცვლა

lfc-ping ამოწმებს დომენური სახელების სერვერის მდგომარეობას.


lcg ბრძანებების სია:

ასლების მართვა

lcg-cp ფაილების SE -დან/-ზე კოპირება

lcg-cr ფაილს კოპირება SE-ზე და კატალოგში დარეგისტრირება

lcg-del ფაილების წაშლა (ერთი ან ყველა ასლის) lcg-rep ფაილის კოპირება ერთი SE-დან სხვა SE-ზე
ასლის კატალოგში დარეგისტრირება (replicate)

lcg-gt მოცემული ფაილის SURL-ის და ტრანსფერ პროტოკოლისთვის TURL-ის მიღება

მოქმედებები ფაილების კატალოგზე

lcg-aa კატალოგში მოცემული GUID-სთვის ფსევდონიმის მიცემა

lcg-ra კატალოგში მოცემული GUID-თვის ფსევდონიმის წაშლა

lcg-rf SE-ზე განთავსებული ფაილის კატალოგში დარეგისტრირება

lcg-uf SE-ზე განთავსებული ფაილის კატალოგიდან რეგისტრირებული ფაილის ამოშლა

lcg-la მოცემული LFN, GUID ან SURL-სთვის ფსევდონიმების სია

lcg-lg მოცემული LFN ან SURL-სთვის GUID-ის ნახვა

lcg-lr მოცემული LFN, GUID ან SURL-სთვის ასლების სია

lcg-ls მოცემული SURL-ის ან LFN-სთვის ფაილების სია

ხშირად საჭიროა რაღაც ფაილების გადაგზავნა ერთი კვანძიდან მეორეზე. ამის გაკეთება
შესაძლებელია შემდეგი ბრძანებით:

globus-url-copy [options] sourceURL destURL

შესაძლო ოპციების სიის მიღება შესაძლებელია ამ ბრძანების გამოყენებით ოპცია--- help-თან ერთად
შესაძლოა შემდეგი პროტოკოლების გამოყენება: file, gsiftp и http. მაგალითად:
file:///home/loomis/stuff.txt

gsiftp://testbed011.cern.ch/~/stuff.txt

gsiftp://testbed011.cern.ch//tmp/stuff.txt

http://marianne.in2p3.fr/datagrid/documentation/daemon-guidelines.html

პროტოკოლ file-სათვის დასაშვებია მხოლოდ აბსოლუტური სახელი. პროტოკოლ gsiftp- შემთხვევაშ


დირექტორიის აღნიშვნისათვის გამოიყენება ნიშანი ტილდა.

ერთ-ერთი მნიშვნელოვანი უპირატესობა globus-url-copy ბრძანების გამოყენების არის ის,


რომ მისი საშუალებით შესაძლებელია მონაცემების პირდაპირი გადაცემა ორ დაშორებულ
კომპიუტერს შორის. ეს შესაძლებლობას იძლევა თავიდან ავიცილოთ ფაილების ორმაგი
კოპირება (განსაკუთრებით იმ შემთხვევაში თუ ბრძანება გაიცემა კომპიუტერიდან რომელიც
ქსელს უერთდება დაბალსიჩქარიანი ხაზით).

GRID-ზე ამოცანების გაშვების მაგალითები

GRID-ის რესურსების გამოყენების აუცილებელი პირობაა GRID-ის User Interface (UI)


მანქანაზე წვდომა. ასევე აუცილებელია GRID-ის რომელიმე ვირტუალურ ორგანიზაციაში
გაწევრიანების დამადასტურებელი სერთიფიკატი.

სერთიფიკატის მისაღებად აუცილებელია მოთხოვნითი ფაილის დაგენერირება: რომელიც


სრულდება Linux-ის SHELL-ში შემდეგი ბრძანებით:

$ openssl req -newkey rsa:1024 -subj "/DC=ORG/DC=SEE-GRID/O=People/O=Oxford

University/CN=Klarens Braun" -out req.pem

ამ ბრძანების შესრულების დროს ორჯერ მოგთხოვენ შეიყვანოთ საიდუმლო სიტყვა


(ერთხელ დადასტურებისათვის). იმისათვის რომ ამ საიდუმლო სიტყვის ცოდნის გარეშე
შეუძლებელი გახდეს ამ სერთიფიკატით სარგებლობა. ამის შემდეგ იმ დირექტორიაში
საიდანაც გაიცა ეს ბრძანება შექმნება ორი ფაილი: privkey.pem და req.pem. privkey.pem
არის თქვენი სერთიფიკატის პირადი ნაწილი, ხოლო req.pem ფაილი არის სერთიფიკატის
მოთხოვნის ფაილი, რომელიც უნდა გადაიგზავნოს GRID-ის სერთიფიკატების
„დამზადების“ ცენტრში, სადაც დაგენერირდება თქვენი სერთიფიკატის ფაილი
(ჩვეულებრივ pem გაფართოებით) რომელიც, გადმოგეგზავნებათ თქვენ. ამ სერთიფიკატის
ფაილს გადაარქმევთ სახელს usercert.pem, ხოლო თქვენს მიერ დაგენირირებულ
privkey.pem ფაილს გადაარქმევთ სახელს userkey.pem და ორივეს ერთად მოათავსებთ
თქვენი საშინაო კატალოგის “.globus” ქვე-კატალოგში UI მანქანაზე, ასევე აუკრძალავთ
userkey.pem ფაილზე წვდომის უფლებას ყველას თქვენ გარდა. ამას გააკეთებთ შემდეგი
ბრძანებით:

$ chmod 400 ~/.globus/userkey.pem

ამის შემდეგ უნდა მოვახდინოთ სერთიფიკატის იმპორტი თქვენს ვებ-ბროუზერში:


ამისათვის საჭიროა დავამზადოთ ახალი სერთიფიკატი pkcs12-ის ფორმატში, რისთვისაც
ვასრულებთ ბრძანებას:

$ openssl pkcs12 -export -in ~/.globus/usercert.pem -inkey ~/.globus/userkey.pem -name "My

Certificate" -out my_cert.p12

ამ ბრძანების შესრულების დროს მოგთხოვენ იმ საიდუმლო სიტყვის შეყვანას, რომელიც


თქვენ გამოიყენეთ მოთხოვნითი სერთიფიკატის შექმნის დროს და ასევე ახალი
საიდუმლო სიტყვის შეყვანას, რომელიც გამოიყენება სერთიფიკატის ვებ-ბროუზერში
იმპორტის დროს (ბროზერში იმპორტის პაროლი). ამ ბრძანების შესრულების შემდეგ
შეიქმნება ფაილი სახელით my_cert.p12. ეს არის ის სერთიფიკატი, რომელიც მოგვცემს
ჩვენი GRID-ის მონაცემების იმპორტის საშუალებას ვებ-ბროუზერში. ამ ფაილს
გადავიტანთ ჩვენს სამუშაო კომპიუტერში (არა UI მანქანა).
SEE-GRID-ის სერთიფიკატის იმპორტისათვის ვებ-ბროუზერში მოგვიწევს რამდენიმე
ნაბიჯის გადადგმა:

1. ვებ-ბროუზერით მივდივართ მისამართზე (მაგალითისთვის ვიღებთ IE8):

http://www.grid.auth.gr/en/services/hellasgrid-ca/
და ვაჭერთ ლინკს [import], რომელიც არის

„Import the HellasGrid CA root certificate in your browser“ ფრაზის შემდეგ.

გამოჩნდება პატარა ფანჯარა:

ვაჭერთ ღილაკს “Open” და რის შემდეგაც ვიღებთ პასუხს:


ვაჭერთ „Install Certificate“ და მიყვებით დიალოგს „Next“ ღილაკზე რამდენჯერმე დაჭერით
ვიდრე არ მივალთ ბოლო ეტაპამდე:
2. ვიწყებთ საკუთარი სერთიფიკატის იმპორტს. ამისათვის გადავდივართ ბროუზერის
მენიუ “Tools -> Internet Options”, ვირჩევთ დაფა „Content“-ს.
და ვაჭერთ ღილაკ „Certificates“:
ვაჭერთ ღილაკ „Import…“ და მივყვებით დიალოგს „Next“ ღილაკზე დაჭერით:
ვაჭერთ ღილაკ „Browse…“ და ვირჩევთ ჩვენს my_cert.p12 სერთიფიკატს და მივყვებით
დიალოგს „Next“ ღილაკზე დაჭერით:
შეგვყვავს ბროზერში იმპორტის პაროლი, რომელიც ჩვენ გამოვიყენეთ ამ სერთიფიკატის
შექმნის დროს და მოვნიშნავთ ოპციას “Enable strong private key protection”. ამის შემდეგ
მივყვებით დიალოგს ბოლომდე „Next“ ღილაკზე რამდენჯერმე დაჭერით, სანამ არ
მივიღებთ სასურველ შედეგს:

ამ წარმატებული ოპერაციის შემდეგ მივდივართ ჩვენი ვირტუალური ორგანიზაციის


რეგისტრაციის ვებ-გვერდზე:
VO GRENA-ს შემთხვევაში მისამართზე:

https://s1.ngi.grena.ge:8443/voms/grena/register/start.action

ხოლო VO meteo.see-grid-sci.eu-ს შემთხვევაში მისამართზე:

https://voms.grid.auth.gr:8443/voms/meteo.see-grid-sci.eu/register/start.action

ვავსებთ ამ გვერდზე მოცემულ ანკეტას (ვიყენებთ იმ მონაცემებს, რომელიც გამოვიყენეთ


GRID-ის სერთიფიკატის შექმნის დროს) და ველოდებით პასუხს ვირტუალური
ორგანიზაციის ადმინისტრატორიდან, რომელიც დაადასტურებს ჩვენს ორგანიზაციაში
გაწევრიანებას. ამის შემდეგ ჩვენ ვხდებით GRID-ის მომხმარებელი.
ინფორმაცია GRID-ის შესახებ შესაძლებელია მიიღოთ რამდენიმე ბრძანებით, რომელიც
უნდა გაუშვათ UI-ის მანქანაზე; ეს მეტად სასარგებლო ბრძანებებია:
lcg-info და lcg-infosites. თვითოეულ მათგანს აქვს რამდენიმე პარამეტრი/ოპცია, რომელიც
საშუალებას გვაძლევს მივიღოთ საკმაოდ სრული ინფორმაცია GRID-ის რესურსებზე.
აღსანიშნავია, რომ ამ ბრძანებებით სარგებლობისათვის არ არის აუცილებელი GRID-ის
სერთიფიკატის ქონა. საკმარისია თქვენ გქონდეთ წვდომა UI-ის მანქანაზე.
რამდენიმე მაგალითი ამ ბრძანებების გამოყენების:
თუ თქვენ გაუშვით lcg-info ყოველგვარი პარამეტრის გარეშე თქვენ მიიღებთ უნებლიე
დახმარებას:
$ lcg-info

lcg-info: use one an only one option among:

--list-ce, --list-se, --list-service, --list-site, --list-attrs, --help

Usage:

lcg-info --list-ce [--bdii bdii] [--vo vo] [--sed] [--debug]

[--query query] [--attrs list]

lcg-info --list-se [--bdii bdii] [--vo vo] [--sed] [--debug]

[--query query] [--attrs list]

lcg-info --list-service [--bdii bdii] [--vo vo] [--sed] [--debug]


[--query query] [--attrs list]

lcg-info --list-site [--bdii bdii] [--vo vo] [--sed] [--debug]

[--query query] [--attrs list]

lcg-info --list-attrs

lcg-info –help

აქედან ჩანს რომ ამ ბრძანებით თქვენ შეგიძლიათ მიიღოთ ინფორმაცია GRID-ის


რესურსებზე: Computing Element-ზე (CE), Storage Element-ზე (SE), GRID-ის საიტებზე და
GRID-ში გაშვებულ სერვისებზე.
ბრძანება:

lcg-info --list-ce --vo meteo.see-grid-sci.eu

გაძლევთ meteo.see-grid-sci.eu -ის ვირტიალურ ორგანიზაციაში არსებული CE-ის


ჩამონათვალს.
თუ უფრო დააზუსტებთ ამ ბრძანებას:
lcg-info --list-ce --vo meteo.see-grid-sci.eu --attrs

'Processor,CPUVendor,PhysicalCPU,OS,OSRelease,PlatformArch,SMPSize,VMemory'

მივიღებთ ინფორმაციას აღნიშნულ ვირტუალურ ორგანიზაციაში არსებული CE-ის და


მათი სამუშაო კვანძებზე არსებული პროცესორების ტიპზე, ოპერაციულ სისტემებზე
ვირტუალურ მეხსიერების სიდიდეზე და ა.შ.
ასევე შეგვიძლია მივიღოთ ინფორმაცია GRID-ის SE-ის შესახებ.
ბრძანება:

lcg-info –list-attrs

იძლევა იმ ოპციების ჩამონათვალს, რომელიც თან ერთვის lcg-info-ს. ზოგი მათგანი


ეკუთვნის CE-ს, ნაწილი SE-ს, ნაწილი სერვისებს.

თუ რა რესურსებს ფლობს ვირტუალური ორგანიზაცია უფრო დეტალურად შეგიძლიათ


შეამოწმოთ ბრძანებთ

lcg-infosites –vo my_vo all

სადაც my_vo არის თქვენი ვირტუალური ორგანიზაციის სახელი.


თუ გვინდა ვისარგებლოთ GRID-ში არსებული რესურსებით, აუცილებელია მოქმედი
სერთიფიკატის ქონა. თუ თქვენ ხართ რომელიმე ვირტუალური ორგანიზაციის წევრი
მაშინ თქვენ შეგიძლიათ ისარგებლოთ ამ ორგანიზაციის რესურსებით (CE, SE).
პირველად უნდა მოხდეს GRID-ში დარეგისტრირება პროქსის საშუალებით (თქვენი
სერთიფიკატის გააქტიურება)

grid-proxy-init

თუ თქვენ ხართ რომელიმე ვირტუალური ორგანიზაციის წევრი, მაშინ თქვენ შეგიძლიათ


ისარგებლოთ voms-proxy-init. VOMS (Virtual Organization Membership Service)
ვირტუალური ორგანიზაციის წევრობის შემოწმების სერვისი და ბრძანება იწერება ასე:

voms-proxy-init –voms my_vo -hour 14

თუ არ მიუთითეთ ბოლო პარამეტრი (-hour 14) მაშინ თქვენი პროქსი გააქტიურებს თქვენს
სერთიფიკატს 12 საათით.

როდესაც თქვენი პროქსის აქტივაცია (რეგისტრაცია) წარმატებით გაივლის შეგიძლიათ


ისარგებლოთ GRID-ის რესურსებით.
მუშაობის დროს თქვენ შეგიძლიათ შეამოწმოთ თუ კიდევ რამდენ ხანს იქნება თქვენი
პროქსი აქტიური ბრძანებით:

voms-proxy-info
თუ თქვენ უფრო ადრე მორჩით მუშაობას შეგიძლით “გამოხვიდეთ” GRID-დან ბრძანებით:

voms-proxy-destroy

GRID-ზე ფაილური ოპერაციების შესასრულებლად არსებობს რესურსი – Storage Element


(SE). ფაილური სიტემა რომელიც გამოიყენება GRID-ზე არის ლოგიკური ფაილური
სისტემა LFS, რომლის კატალოგი LFC (Logical File Catalog) განთავსებულია სპეციალურ
სერვერებზე/მანქანებზე, რომელიც აღიწერება პარამეტრით LFC_HOST.
ყველა ვირტუალურ ორგანიზაციას გააჩნია თავისი საკუთარი სერვერი სადაც ინახება მისი
ლოგიკური ფაილების კატალოგი. მისი დადგენა შეგვიძლია ბრძანებით:

lcg-infosites --vo VirtOrganization_name lfc

ზუსტად ამ ბრძანებით მიღებული მნიშვნელობა უნდა ჰქონდეს მინიჭებული LFC_HOST


პარამეტრს GRID-ზე ფაილური ოპერაციების ჩასატარებლად.

ლოგიკური ფაილების კატალოგში შეგვიძლია ჩავატაროთ შემდეგი ოპერაციები:


დავათვარიელოთ კატალოგები და ფაილები, შევქმნათ და წავშალოთ კატალოგები,
ავტვირთოთ და ჩამოვტვირთოთ ფაილები, წავშალოთ ფაილები,
მაგალითები:

კატალოგის დათვალიერება LFC-ში

lcg-ls -l lfn:/grid/meteo.see-grid-sci.eu/some_dir/
კატალოგის შექმნა

lfc-mkdir /grid/meteo.see-grid-sci.eu/my_dir

ცარიელი კატალოგის წაშლა

lfc-rm -r /grid/meteo.see-grid-sci.eu/my_dir

ფაილის ატვირთვა (აუცილებლად უნდა მიეთითოს Storage Element (SE) სადაც


ფიზიკურად იქნება ფაილი განთავსებული)

lcg-cr --vo meteo.see-grid-sci.eu -d se.sg.grena.ge local_file -l lfn:/grid/meteo.see-gridsci.eu/GM/grid_file

ფილის გადმოტვირთვა

lcg-cp lfn:/grid/meteo.see-grid-sci.eu/my_dir/my_file my_local_file

ფაილის წაშლა (ორი ვარიანტი):

1. მხოლოდ სახელის წაშლა LFC-ში მაგრამ არ ვეხებით მის ფიზიკურ მდებარეობას, ეს


სასარგებლოა მაშინ, როდესაც არ ვიცით თუ რომელ SE-ზე იგი განთავსებული ან ის
ფაილი ფიზიკურად უკვე აღარ არსებობს.

2. ვშლით სახელსაც LFC-ში და ფიზიკურად SE-დან

1. lfc-rm -a -f /grid/meteo.see-grid-sci.eu/some_dir/some_file

2. lcg-del --vo meteo.see-grid-sci.eu -s se.sg.grena.ge -a lfn:/grid/meteo.see-gridsci.eu/some_dir/some_file

თქვენი ამოცანის გაშვება GRID-ზე შეგიძლიათ როდესაც თქვენ გააქტიურებთ თქვენს


სერთიფიკატს პროქსის საშუალებით.
ამისათვის თქვენი ამოცანა წინასწარ უნდა მომზადდეს.
ამოცანის მოსამზადებლად აუცილებელია ავღწეროთ ის სპეციალური (GRID-თვის
გასაგები) ენის გამოყენებით. ეს ენა არის jdl (job description language) script ენა.
თქვენ უნდა შეადგინოთ ფაილი jdl გაფართოებით (მაგალითად my_task.jdl) სადაც უნდა
აღწეროთ თქვენი ამოცანისთვის საჭირო ატრიბუტები და ასევე მისი შესრულების შედეგად
მიღებული რეზულტატი.
ამ ფაილის სინტაქსი საკმაოდ მარტივია:
აღწერა თავსდება კვადრატულ ფრჩხილებში []:

Executable=;
StdOutput=;

StdError=;

InputSandbox=;

OutputSandbox=;

OutputSandboxBaseDestURI=;

ან OutputSandboxDestURI= ;

აქ არის ჩამოთვლილი პარამეტრების ის მინიმალური რაოდენობა, რომელიც საჭიროა


ამოცანის GRID-ზე გაშვებისას.
როდესაც თქვენ ითხოვთ პროცესორების გარკვეულ რაოდენობას ამოცანის აღწერას
დაემატება რამდენიმე პარამეტრი:
CpuNumber=;

როდესაც ამოცანა აღწერილია (მომზადებულია jdl ფაილი) მისი GRID-ზე გაშვება ხდება
ბრძანებით:

glite-ce-job-submit -a -r CE my_task.jdl

ოპცია -r (resource) მიუთითებს რომელ გამოთვლით რესურსზე (CE) ვუშვებთ ამოცანას.

სადაც CE არის კომპიუტინგ ელემენტის იდენტიფიკატორი თავისი სერვისით შემდეგ


ფორმატში

<full-hostname>:<port-number>/cream-<service>-<queue-name>

მაგალითი:

cream.sg.grena.ge:8443/cream-pbs-meteo

ხოლო ოპცია -a ნიშნავს ავტო დელეგირებას, ე.ი. თქვენს მიერ აქტივირებული პროქსის
მიერ მონიჭებული GRID-ზე წვდომის უფლებების (credentials) მონაცემების ავტომატურ
გადაცემას GRID-ზე ამოცანის გაშვებისათვის. თუ არ მივუთითეთ ეს პარამეტრი მაშინ
აუცილებლათ უნდა მივმართოთ პროქსის დელეგირების უტილიტას დელეგირების
საიდენტიფიკაციო ნომრის მისაღებად და ეს საიდენტიფიკაციო ნომერი გადავცეთ
ამოცანის გასაშვებად:

glite-ce-delegate-proxy -e CE_id my_proxy_id


CE_id არის კომპიუტინგ ელემენტის იდენტიფიკატორი ოღონდ სხვა ფორმატში <fullhostname>:<port
და ამის შემდეგ:

glite-ce-job-submit -D my_proxy_id -r CE my_task.jd

თუ ჩვენი ამოცანა წარმატებით გაეშვა GRID-ზე, პასუხად მოვიღებთ მის იდენთიფიკატორს


job_id, მაგალითად:

https://cream.sg.grena.ge:8443/CREAM283514829

ამ იდენთიფიკატორის საშუალებით ჩვენ შეგვიძლია შევამოწმოთ ამოცანის მდგომარეობა:

glite-ce-job-status

https://cream.sg.grena.ge:8443/CREAM283514829

ხოლო ამოცანის დასრულების შემდეგ შეგვიძლია გადმოვწეროთ შედეგები:


glite-ce-job-output

https://cream.sg.grena.ge:8443/CREAM283514829

ქვემოთ მოყვანილია jdl ფაილების მაგალითები:

------ cpuinfo.jdl -------

JobType="Normal";

Executable="cpuinfo.sh";

StdOutput="std.out";

StdError="std.err";

InputSandbox="./cpuinfo.sh";

OutputSandbox={"std.out","std.err","node.txt"};

OutputSandboxBaseDestURI="gsiftp://localhost";

]
-------------------------------

InputSandbox-პარამეტრს გადაცემული აქვს ლოკალური ფაილის სახელი, რომელიც


მდებარეობს იმავე დირექტორიაში სადაც jdl ფაილი.
მაგრამ მას შეიძლება გადაეცეს ასევე GRID-ის FTP სერვერზე განთავსებული ფაილის url-
იც:

InputSandbox=“gsiftp://se.sg.grena.ge/storage/gia/some_file“

-------------------nodes.jdl------------------------

Type="Job";

JobType="Normal";

CpuNumber=8;

Executable="nodes.sh";

InputSandbox="nodes.sh";

StdOutput="std.out";

StdError="std.err";

OutputSandbox={"std.out", "std.err", "nodes.txt"};

OutputSandboxBaseDestURI="gsiftp://localhost";

]
------------------------------------------------------------

ამ ამოცანაში ჩვენ მოვითხოვეთ რომ, CE-მ გამოგვიყოს 8 cpu/core:

CpuNumber=8

--------- dir_struct.jdl------------------------

Executable="/bin/bash";

Arguments="dir_structure.sh";

StdOutput="std.out";

StdError="std.err";

InputSandbox="./dir_structure.sh";
OutputSandbox={"std.out","std.err","directory"};

OutputSandboxDestURI= {

"gsiftp://se.sg.grena.ge/storage/gia/std.err","gsiftp://se.sg.grena.ge/storage/gia/std.out","gsiftp://se.sg.g

rena.ge/storage/gia/directory"};

----------------------------------------------------------

ფაილში ჩვენ მივუთითეთ OutputSandboxDestURI პარამეტრი, რაც ნიშნავს იმას რომ


ამოცანის შესრულების შემდეგ შედეგები გადაიგზავნება GRID-ის მითითებულ FTP
სერვერზე და შედეგების მიღება ბრძანებით glite-ce-job-output job_id შეუძლებელია.
ისინი სათითაოდ უნდა გადმოვწეროთ შემდეგი ბრძანებთ:

globus-url-copy -fast gsiftp://se.sg.grena.ge/storage/gia/std.out file://`pwd`/std.out

globus-url-copy -fast gsiftp://se.sg.grena.ge/storage/gia/std.err file://`pwd`/std.err


...

საერთოდ თუ არ გვაქვს მითითებული პარამეტრი OutputSandboxBaseDestURI ან


მივუთითეთ მნიშვნელობით განსხვავებული ვიდრე "gsiftp://localhost" მაშინაც
შეუძლებელია შედეგების გადმოწერა glite-ce-job-output job_id ბრძანებით.

------- lfc_oper.jdl---------------

Executable="/bin/bash";

Arguments="lfc_oper.sh";

StdOutput="std.out";

StdError="std.err";

InputSandbox="./lfc_oper.sh";

OutputSandbox={"std.out","std.err","directory"};

OutputSandboxBaseDestURI="gsiftp://localhost";

]
--------------------------------------------------------
ამ ფაილში მითითებულია პარამეტრი Arguments, რაც ნიშნავს იმას რომ მთავარი
შემსრულებელი ფაილი რომელიც მოცემულია პარამეტრით Executable (ჩვენ შემთხვევაში
/bin/bash) გაეშვება არგუმენტით lfc_oper.sh:

/bin/bash lfc_oper.sh.

--------- new_dna.jdl -----------------

Type="Job";

JobType="Normal";

CpuNumber=8;

Executable="new_dna.sh";

InputSandbox={"./dna_basis.tgz","./DNAopt.in","./new_dna.sh"};

StdOutput="std.out";

StdError="std.err";

OutputSandbox={"std.out", "std.err", "DNAopt.out"};

OutputSandboxBaseDestURI="gsiftp://localhost";

PerusalFileEnable=true;

PerusalTimeInterval=100;

PerusalListFileURI="gsiftp://se.sg.grena.ge/storage/gia/DNAopt.out";

PerusalFilesDestURI="gsiftp://se.sg.grena.ge/storage/gia";

]
--------------------------------------------------------

ამ ფაილში არის რამდენიმე ახალი პარამეტრი, რომელთა სახელი იწყება Perusal-ით. ეს


დაკავშირებულია ამოცანის შესრულების დროს შუალედური შედეგების შემოწმების
შესაძლებლობასთან.
თუ ჩვენ გვინდა ამოცანის შესრულების დროს თვალყური ვადევნოთ წარმოქმნილ ფაილს
(DNAopt.out) - აუცილებლად უნდა დავამატოდ პარამეტრი PerusalFileEnable და მისი
მნიშვნელობა უნდა გავუტოლოთ true-ს, უნდა მივუთითოთ თუ რამდენ ხანში (წამებში)
ერთხელ მოხდეს სასურველი ფაილის გადაგზავნა (PerusalTimeInterval=100) და სად
(PerusalListFileURI="gsiftp://se.sg.grena.ge/storage/gia/DNAopt.out",

PerusalFilesDestURI="gsiftp://se.sg.grena.ge/storage/gia).

Linux-is grafikuli interfeisi

rogorc pirvel TavSi avRniSneT Linux gamoirCeva


mravalferovani grafikuli interfeisebiT romlebsac msoflios
sxvadasxva firmebi qmnian. maTgan gamoirCevian: KDE, Gnome,
Window Maker da a.S.. standartul grafikul interfeisad
miCneulia KDE (KDE Desktop Enviroment), romelic didi
popularobiT sargeblobs msoflioSi. KDE-s Desktop
grafikulad waagavs Windows-is Desktop-s Tumca masze muSaobis
princi pebi gansxvavdeba, misi Desktop-i ase gamoiyureba:

StarOffice - linuqsis ofisuri SesaZleblobebi

Linux arc ofisuri SesaZleblobebis naklebobas ganicdis,


firma Sun Microsystems-ma specialurad sistema Linux-isTvis
SeimuSava arakomerciuli programuli paketi StarOffice,
romelSic gaerTianebulia dokumentis, saprezentacio,
eleqtronuli cxrilebis, da sxva mravali redaqtori.
StarOffice-s aqvs sakuTari Desktop, romelzec ganlagebulia
sxvadasxva redaqtorebis gamosaZaxebeli piqtogramebi. igi ase
gamoiyureba:
pirvel piqtogramaze orjer dawkapunebiT gamoviZaxebT
teqstur redaqtors, romelic Microsoft Word-s mogvagonebs.
es redaqtori Zlieri da bevri SesaZleblobis mqonea, Tumca
igi ar aris iseTi srulyofili, rogorc Microsoft Word .
redaqtoris saSualebiT SegviZlia wavikiTxoT Word-is
dokumentebi (.doc failebi) da aseve SevqmnaT Word-is
dokumentebi. teqsturi redaqtori ase gamoiyureba:

piqtograma saxelowodebiT New Spreadsheet-ze dawkapunebiT


gamoviZaxebT eleqtronul cxrils, romelic Microsoft Excel-s
waagavs. igi ase gamoiyureba:
Semdegi piqtograma saxelwodebiT New Presentation
prezentaciis redaqtoris gamoZaxebis saSualebaa. visac Microsoft
PowerPoint-Si umuSavia advilad SeZlebs am redaqtoris
meSveobiT prezentaciis Seqmnas. redaqtorSi Tavmoyrilia mravali
mza prezentaciis modelebi da teqstur-grafikuli efeqti.
igi ase gamoiyureba:

es rac Seexeba Linux-is ofisur SesaZleblobebs, axla ki


vnaxoT Linux-is grafikuli SesaZleblobebi. arakomerciuli
paketebidan gamoirCeva Tavisufali programebis fondis (Free
Software Foundation) GNU-s mier Seqmnili programa Gimp (GNU
Image Manipulation Programme). Adobe Photoshop-is mcodnesaTvis
am programaSi muSaoba sirTules ar warmoadgens. Gimp-Si
SeiZleba seriozuli grafikuli gamosaxulebis Seqmna, misi
mza efeqtebi sakmaod daxvewilia rac bevrad aadvilebs rTuli
suraTis Seqmnas. Gimp-is samuSao interfeisi gamosaxulia
naxazze.
“Minix”-მა იმდენად მოხიბლა ლინუსი, რომ ამ უკანასკნელმა გადააწყვეტინა PC-ს ყიდვა.
ამ კომპიუტერით ის აქამდე არ დაინტერესებულა, რადგან ოპერაციული სისტემა,
MSDOS, რომლითაც იყო აღჭურვილი, წარმოადგენდა ძალზედ ლიმიტირებული ფუნქციების
მქონე და ამავე დროს, დახურულ სისტემას. ტორვალდსის “ინფორმატიკული” განათლება
მომდინარეობდა წლების განმავლობაში Commodor Vic 20-სა და უფრო მეტად, Sinclair
QL-ის გამოყენებით, ეს უკანასკნელი წარმოადგენდა უამრავი დეფექტით აღჭურვილ მანქანას,
მაგრამ, მიუხედავად ამისა, დაწყებული 1984 წლიდან, შეეძლო შეესრულებინა
დაბალი დონის ”მრავალდავალებიანი” (multitasking) ოპერაციები. ლინუსი შეუდგა
ექსპერიმენტებს თავისი PC-ს გამოყენებით; თავდაპირველად, შექმნა ორი პროცესი,
რომლებიც ტაიმერის გამოყენებით ერთმანეთს ენაცვლებოდნენ. ერთს მონიტორზე
გამოყავდა ასო A, ხოლო მეორეს B. პრაქტიკულად, შედეგი წარმოადგენდა რაღაც ამის
მაგვარს: AAAABBBBAAABBBBAA.

საბოლოოდ, ლინუსმა გადაწყვიტა ისეთნაირად დაეწერა ”სიახლეების მკითხველი”


(NewsReader), რომ ერთ პროცესს წაეკითხა კლავიატურაზე დაბეჭდილი სიმბოლოები და
გაეგზავნა მოდემისათვის, ხოლო მეორეს მიეღო ინფორმაცია მოდემიდან და გამოეყვანა
მონიტორზე. ასეთნაირად გაჩნდა აუცილებლობა დაეწერა დრაივერი მყარი დისკისათვის,
რათა შესაძლებელი ყოფილიყო მოდემიდან მიღებული მონაცემების დამახსოვრება.
ამასთანავე, პროგრამას უნდა შეძლებოდა “Minix”-ის FileSystem-ის გაგება.

სამუშაოს დასრულების შემდეგ აღმოჩნდა, რომ შექმნილი იყო Device Drivers-ების ”დავალებების

გადამრთველი” (Task-Switching) სისტემა და ცალკე ”FileSystem”-ი. ანუ შექმნილი იყო კერნელი

(kernel). ამის შემდეგ, ლინუსმა გადაწყვიტა უნივერსიტეტის FTP სერვერზე გამოექვეყნებინა

თავისი ნამუშევრის კოდი, მაგრამ არ უნდოდა გამოეყენებინა სახელი - ლინუქსი (Linux),

რომლითაც მოიხსენიებდა თავის ნაშრომს; არ სურდა გარკვეულ ეგომანიაკად ყოფილიყო

წარმოდგენილი. მან სერვერის ადმინისტრატორს, ერი ლემკეს, სთხოვა კატალოგისათვის დაერქვა

სახელი “Freax”, რომელიც მიიღო free, freak და x-ის გაერთიანებით, მაგრამ ერის არ მოეწონა ეს

უკანასკნელი და კატალოგს მაინც ლინუქსი (Linux) დაარქვა. 1992 წლის იანვარში

მომხმარებლების რაოდენობა აღწევდა რამოდენიმე ასეულს. ამ ხალხმა (early adopters) თავისი

წინადადებებით, დახმარებებით და პატჩებით ძალზედ დიდად შეუწყვეს ხელი პრიმიტიული

კერნელის განვითარებას. მთელი ეს სამუშაო მიმდინარეობდა, როგორც კერძო საუბრებში

ელ.ფოსტის საშუალებით, ასევე ჯგუფურად newsgroup-ში დისკუსიების მეშვეობით.

ათასობით ფაილს შორის, რომლებიც შეადგენენ თავად ”ლინუქსს”, ერთ-ერთს ეწოდება “Credits”.

ეს ფაილი შეიცავს ასობით ადამიანის სახელს, რომლებმაც მონაწილეობა მიიღეს კერნელის

შექმნასა და განვითარებაში. თეზისი, რომელსაც ლინუს ტორვალდსი დღემდე მისდევს

პროექტის განხორციელებაში, არის:

1. კერნელის კოდზე მუშაობის თანამშრომლობისათვის ყველა მსურველის დაშვება

2. რამოდენიმე თანამშრომლის არჩევა კოდის დიდი ბლოკების შემუშავებისა და

ოპტიმიზირებისათვის
როდესაც რამოდენიმე პროგრამისტი ახორციელებს ერთი და იგივე პროცედურას, საბოლოოდ
შესაძლებელია აირჩიო საუკეთესო და სწორედ ეს ხორციელდება ლინუქსში: ბუნებრივი
გადარჩევის პროცესი, რომელიც მიმდინარეობს ხანგრძლივი შეთავსებებისა და
ბეტა-ტესტების მეშვეობით.

”სუპერკომპიუტერი - ეს არის ყველა კომპიუტერი, რომელიც დაამზადა ქრეიმ”.


ბევრი პროცესორი , ეს ნიშნავს მეტ სწრაფმოქმედებას :

1) კომპიუტერები საერთო მეხსიერებით (SMP, SM MIMD).

2) კომპიუტერები განაწილებული მეხსიერებით ( SMP, DM MIMD ).

3) NUMA.

klasteri – es aris kompiuterebis jgufi, romlebic gaerTianebuli arian swrafmoqmed


qselSi da momxmareblis TvalsazrisiT warmoadgens erTian kompiuteruli resurss.
klsateri aris paraleluri sistemis erT-erTi nairsaxeoba.
paraleluri daprogramebis enebi:

• Ada

• Chapel

• Ease

• Id

• NESL

• Sisal

paraleluri dialeqtebi:
• MultiLisp

• XMTC

• Charm++

• mpC

• Vienna Fortran

• MPP Fortran
• HPF

• OpenMP

paraleluri informaciuli teqnologiebi: paraleluri daprogramebis ena, arsebuli


enis paraleluri dialeqti, gamoyenebiTi biblioTeka da mxardaWeris biblioTeka.
klasteris agebisas, pirvel etapze xorcieldeba TiToeul kompiuterze operaciuli
sistema LINUX dayeneba, gamarTva, testireba. Semdeg kompiuterebis qseliT SeerTeba
da operaciuli sistemis Sesabamisad dakonfigurireba. mmarTvel serverze xdeba virtualuri
interfeisis damateba gamomTvlel kvanZebTan kavSiris dasamyareblad.
mmarTvel serverze diskuri masivebis konfiguracia xdeba sarkuli principiT (RAID-1).
erTi myari diskis teqnikuri dazianebis SemTxvevaSi informacia Senaxuli darCeba meoreze.
klasteris Semadgeneli komponentebis da qselis gamarTvis Semdeg, am
komponentebidan xdeba erTiani integrirebuli gamoTvliTi sistemis awyoba. gaimarTeba
erTiani NFS failuri sistema. rac saSualebas iZleva serverma da gamomTvlelma kvanZebma
martivad gacvalon erTmaneTSi informacia.
erTiani failuri sistemis Seqmnis Semdeg moxda amocanebis marTvis sistemis
instalireba-konfigurireba. Klasteri SeiZleba dakonfigurirdes ise, rom mmarTvelma
serverma ar miiRos monawileoba amocanebis SesrulebaSi. mmarTveli serveri
anxorcielebs mxolod amocanebis marTvas, xolo gamomTvleli kvanZebi asruleben
momxmareblis mier gaSvebul amocanebs da abruneben pasuxebs.
xdeba gamoTvliTi klasteris kompleqsuri Semowmeba: amocanebis garCeva, failure
sistemisa da qselis. ganisazRvreba klasterze momxmareblebis registraciisa da
marTvis amocanis gaSvebis wesebi.

Linux-is teqsturi redaqtorebi da


programuli kodebis ageba

Unix sistemidan Linux-ma memkvidreobiT miiRo teqsturi


redaqtorebi vi, emacs, xemacs. C, C++ an Java programis sawyisi
teqsti SeiZleba aiwyos rogorc am redaqtorebSi, aseve mc
(Midnight Commander)-Si, es teqsti Semdeg kompilirebul unda
iqnas operaciuli sistemis brZanebis striqonidan. zemoT
naxsenebi redaqtorebi sakuTari princi pebiT muSaoben, amitom
maT garCevas ar SevudgebiT da mxolod mc-Si programis
sawyisi teqstis awyobas gavarCevT. ai rogor xdeba C programis
Seqmna, kompilacia da amuSaveba. mc-Si brZaneba touch-is
saSualebiT vqmniT sasurveli gafarToebis fails:

>touch FileName.c

Seiqmneba faili romelsac gavxsniT F4 klaviSiT, Semdeg viwyebT


programuli teqstis weras. programuli teqsti mc-Si iwereba
feradi asoebiT, teqstis yovel nawils, anu programis Sesavals,
operatorebs Tu sxvadasxva punqtuaciis niSnebs aqvT sakuTari
feri. im SemTxvevaSi Tu operatori iwereba SecdomiT igi
kargavs fers, es ki gamoricxavs meqanikur Secdomebs programuli
teqstis weris dros. teqstis Seqmnis Semdeg imisaTvis rom
programuli teqsti kompilirebul iqnas mc-s brZanebis
striqonSi unda avkrifoT:

> gcc -c FileName.c

Seiqmneba obieqturi kodis faili FileName.o, amis Semdeg vqmniT


muSa, Sesrulebad fails:

> gcc FileName.o

Seqmnili failis amuSaveba xdeba am failis gamoZaxebiT.


C++ programasTan muSaobis procesi msgavsad warimarTeba
oRond gcc-s magivrad g++ kompilatori gamoiyeneba.
40
axla aRvwerT Tu rogor xdeba java programis Seqmna da
amuSaveba. vqmniT java fails, vwerT teqsts da Semdeg vaxdenT
mis kompilacias brZanebiT javac:

> javac filename.java

Seiqmneba class faili filename.class. aRsaniSnavia isic, rom


programul teqstSi klasisTvis miniWebuli saxeli unda
emTxveodes class failis saxels. Semdeg xdeba am failis
amuSaveba:

> java filename.class

Sedegis naxva SesaZlebelia F10 klaviSis meSveobiT.

You might also like