Prev
Mutvārdu kultūra
Next
Kļūdas, atgūšanās, atjaunošana, uzticamība un citi mistiski jēdzieni

Operētājsistēmu šoks

Jaunie amerikāņi, kuriem ir nācies pamest savu lielo homogēno valsti un apmeklē kādu citu pasaules daļu, parasti pārdzīvo vairākas kultūršoka fāzes: vispirms, muļķīgu ieplestu acu izbrīnu. Tad, īslaicīgu jaunās zemes parašu, virtuves, transporta un tualešu pieņemšanu, kas noved pie muļķīgas pārliecības, ka tagad viņi ir jaunās zemes eksperti. Kad ceļojums iet uz beigām, sāk parādīties ilgas pēc mājām, un ceļotājs pirmo reizi ceļojuma laikā sāk saprast, cik daudzas lietas savās mājās viņš ir uztvēris kā pašsaprotamas. Tajā pat laikā sāk kļūt acīmredzams, ka daudzas no paša ceļotāja kultūras tradīcijām būtībā ir nejaušas, un var būt arī savādākas; piemēram, braukšana pa ceļa labo pusi. Kad ceļotājs atgriežas mājās un atgūstas no pieredzētā šoka, viņš vai viņa ir daudz vairāk iemācījies par Ameriku, nekā par valsti, kuru viņš bija apmeklējis. 

Tieši to pašu iemeslu dēļ ir vērts pamēģināt Linux. Tā ir dīvaina vieta, bet jums nav tur jādzīvo; iepazīt šo vietu palīdzēs arī īss ceļojums, un pats galvenais – ļaus ieraudzīt, ka praktiski visu, ko uztvērāt kā pašsaprotamu Windows vai MacOS, var darīt arī savādāk. 

Jūs nevarat to pamēģināt, pirms tas ir uzstādīts. Ar jebkuru citu operētājsistēmu tā ir taisnvirziena darbība: apmaiņā pret naudu veikalā jums iedos kompaktdisku, un tālākais ceļš ir skaidrs. Bet šajā darbībā ir daudzi pieņēmumi, ko mēs apskatīsim atsevišķi. 

Amerikā mums patīk vienkāršs bizness un skaidra sadarbība. Ja, piemēram, jūs esat Ēģiptē, un paņemat taksometru, tajā brīdī jūs kļūstat par taksometra vadītāja dzīves daļu. Viņš nepieņem jūsu piedāvāto naudu, jo tas pazemotu jūsu draudzību, viņš pavada jūs pa pilsētu, un raud karstas asaras, kad jūs iesēžaties cita vadītāja taksometrā. Tas beidzas ar to, ka jūs apmeklējat viņa bērnus, un jums ir jāpielieto visa atjautība, lai atrastu veidu, kā viņu atalgot, neaizskarot viņa godu. Tas ir nogurdinoši. Dažkārt jūs vēlaties vienkāršu Manhetenas tipa braucienu. 

Bet lai darbotos amerikāņu stils, kur jūs vienkārši varat iziet uz ielas noķert taksometru, ir nepieciešams milzīgs neredzams mehānisms ar licencēm, inspektoriem, komisijām u.t.t. Tas ir labi, kamēr taksometri ir lēti un jūs vienmēr varat kādu atrast. Kad sistēma kaut kāda iemesla dēļ sabrūk, tas ir nesaprotami un tracinoši un padara citādi nosvērtus cilvēkus par konspirācijas teoriju piekritējiem. Bet Ēģiptes sistēmā problēmas ir atklātas. Ja jūs nevarat atrast savu taksometru, parādās jūsu vadītāja brāļadēls, kas izskaidro problēmu un atvainojas.

Microsoft un Apple visu dara kā Manhetenā, lielāko daļu sarežģītības aizslēpjot aiz saskarnes sienas. Linux visu dara kā Ēģiptē, visu sarežģītību parādot kā uz delnas. Ja jūs esat tikko atlidojis no Manhetenas, jūsu pirmais impulss ir pacelt rokas un iesaukties "Beidziet kliegt! Vai jūs nevarat kaut uz mirkli savaldīties!?" Bet tas nepalīdz iegūt draugus ne Linux, ne arī Ēģiptē. 

Jūs varat izveidot Linux no plika gaisa, lejuplādējot no interneta vajadzīgos failus un saliekot tos vajadzīgajās vietās. Pasaulē varētu būt daži simti cilvēku, kas spēj izveidot darbojošos Linux šādā veidā. Tas, kas jums patiesībā ir vajadzīgs ir Linux distributīvs, kas ir nokomplektētu failu kopums. Bet distributīvs pēc būtības nav tas pats, kas Linux. 

Linux pēc būtības ir nevis noteikts vieninieku un nullīšu komplekts, bet gan pašorganizējoša tīkla kultūra. Tās kopīgo pūļu rezultāts ir milzīgs daudzums programmu pirmkoda, kas lielākoties ir rakstīts C programmēšanas valodā (kas ir dominējošā operētājsistēmu programmēšanas valoda). Pirmkods ir teksta fails, kurā kāds hakeris ir aprakstījis programmas darbību. Ja programma ir rakstīta C, visticamāk faila nosaukums beigsies ar .c vai .cpp, atkarībā no tā, kāds valodas dialekts ir izmantots. Ja programmas kods rakstīts citā programmēšanas valodā, fails var beigties arī ar citu paplašinājumu. Parasti šie faili atrodas mapē, ar nosaukumu /src, kas ir hakeru saīsinājums vārdam "source". 

Datoram pirmkods nav vajadzīgs. Tie ir cilvēku dārgumi. Pirmkods ir tas, kam Holivudas filmās visi dzenas pakaļ: plutonija bumba, slepeni dokumenti, portfelis ar vērtspapīriem vai mikrofilmu rullīši. Ja Windows vai MacOS sistēmu pirmkodu publicētu tīklā, arī šīs sistēmas būtu brīvas tāpat kā Linux, tikai ne tik labas, jo neviens nebūtu labojis to kļūdas un neprastu atbildēt uz visiem jautājumiem. Linux ir "atvērtā koda" programmatūra tāpēc, ka tā pirmkodam var piekļūt katrs un katrs var izveidot savu pirmkoda failu kopiju. 

Bet, atšķirībā no jums, datoram pirmkods nav vajadzīgs. Tam ir nepieciešami izpildāmi faili jeb objektkods. Objektkoda failu nosaukumi parasti beidzas ar ”.o” un tos neprot lasīt neviens, izņemot dažus izcili jocīgus dīvaiņus, jo šie faili sastāv no nullēm un vieniniekiem. Šie faili parasti atrodas mapē /bin, kas ir saīsinājums no "binary". 

Pirmkods ir vienkārši neformatēta teksta faili, kas bieži ir kodēti ar ASCII kodējumu 1. ASCII formāts norāda, kā Latīņu burti un citas rakstu zīmes tiek saglabātas failā, izmantojot astoņu bitu grupas. ASCII failā, katrs burts aizņem astoņus bitus. Līdz ar to, šādā "alfabētā" ir iespējamas 256 unikālas rakstu zīmes, jo ar astoņiem bitiem, var izveidot tik daudz dažādas kombinācijas. Praksē mēs, protams, izmantojam tikai zināmo burtu un ciparu daļu. Burtu bitu secība šajā alfabēta ir tāda pati, kāda savā laikā tika izmantota manas vidusskolas teletaipā, kas savukārt tika aizņemta no telegrāfa, kas bija pazīstams jau vairākus desmitus gadu. Citiem vārdiem sakot, ASCII teksta faili ir telegrammas, un tajās nav nekādu citu izpušķojumu. Tieši šī iemesla dēļ tās ir mūžīgas, jo kodējums nekad nemainās, un tas ir universāls, jo jebkura jebkad uzrakstīta teksta rediģēšanas programma saprot šo kodu. 

Un tāpēc pirmkoda failus var izveidot, lasīt un rediģēt ar jebkuru teksta apstrādes programmu. No pirmkoda failiem objektu faili tiek iegūti ar programmu, ko sauc par kompilatoru, bet visi objektu faili tiek apvienoti darbojošās programmā ar programmu, ko sauc par būvētāju. 

Triāde ar redaktora, kompilatoru un būvētāju ir pamats jebkurai programmatūras izstrādes sistēmai. Tagad ir iespējams par naudu iegūt glītā grafiskā noformējumā ietērptas izstrādes vides ar ergonomiskiem uzlabojumiem. Dažkārt ir vērts par šādām vidēm izdot naudu. Bet šajā ceļa pusē, labākā izstrādes programmatūra ir iegūstama par velti. Redaktors, kompilators un būvētājs hakeriem ir tas pats, kas zirgs, segli un loks bija senajiem mongoļiem. Hakeri dzīvo sedlos, un visas jaunās programmas izstrādā paši ar saviem rīkiem. Kompāniju produktu inženieriem ir praktiski neiespējami izstrādāt vēl labākus rīkus. Pat ja viņi ir pasaules labākie inženieri, viņus vienkārši nomāc milzīgais hakeru skaits. 

GNU/Linux pasaulē ir divas vadošās teksta rediģēšanas programmas: minimālistiskais vi (dažās implementācijās pazīstams kā elvis) un maksimālistiskais Emacs. Es izmantoju Emacs, ko varētu uzskatīt par kodoltermisko teksta apstrādes redaktoru. Pilnīgi pietiek, pasakot, ka Emacs izstrādāja Ričards Stallmans. Tas ir rakstīts Lisp, kas ir vienīgā brīnišķīgā programmēšanas valoda. Tā ir milzīga, un tomēr tā rediģē tikai neformatētus ASCII teksta failus, t.i., tur nav dažādu fontu, treknraksta un slīpraksta 2. Citiem vārdiem, tās inženieru stundas, ko Microsoft tērēja, piemēram, Word vēstuļu sapludināšanai 3 un iespējai tekstā ievietot korporatīvo logo, Emacs izstrādātāji maniakāli veltīja it kā vienkāršai teksta apstrādei. Ja jūs esat profesionāls rakstnieks, t.i., jūs saņemat naudu par teksta rindām, bet par noformējumu uztraucas kāds cits, Emacs nomāc jebkuru citu redaktoru tāpat, kā dienvidus saule nomāc visas zvaigznes. Tas nav tikai lielāks un spožāks. Tas vienkārši padara jebko citu nevajadzīgu. Lapas izklājumam un drukāšanai jūs varat izmantot TeX: milzīgu teksta noformēšanas bibliotēku, kas rakstīta C, un kuru arī var iegūt tīklā par velti. 

Es varētu ilgi stāstīt par Emacs un TeX, bet tagad runa iet par to, kā uzlikt Linux uz sava datora. Smagsvara dīvaiņa pieeja būtu tāda, ka viņš savāktu Emacs redaktoru, GNU rīkus – kompilatoru un būvētāju, kas ir tikpat izpulēti un perfekti kā Emacs. Bruņojies ar šiem rīkiem, entuziasts var sākt lejuplādēt ASCII pirmkoda failus (/src) un kompilēt tos par objektfailiem (/bin), kurus uz datora var palaist. Bet pat šajā gadījumā, lai tiktu pie ejoša Emacs, ir nepieciešams vismaz kaut kāds vienkāršs Linux. Un pat minimālistiskam Linux ir nepieciešami vairāki tūkstoši izpildāmu failu. 

Tāpēc ir daudzas un dažādas institūcijas, kas ir uzņēmušās veidot t.s. Linux distributīvus. Izmantojot Ēģiptes analoģiju, šīs institūcijas ir kaut kas līdzīgs tūristu gidiem, kas sagaida jūs lidostā, runā jūsu valodā, un palīdz tikt galā ar sākotnējo kultūršoku. Ja esat ēģiptietis, jūs to, protams, redzat savādāk. Tūristu gidi ir domāti tam, lai neļautu ārzemniekiem traucēt jūsu ikdienu, un jums nebūtu atkal un atkal jāatbild uz tiem pašiem muļķīgajiem jautājumiem. 

Dažas no šīm institūcijām ir komerciālās firmas, piemēram: Red Hat Software, kas izlaiž Linux distributīvu, sauktu par Red Hat. Vairumā gadījumu jūs ievietojat Red Hat instalācijas kompaktdisku lasītājā un pārstartējat datoru. Visu pārējo jūsu vietā izdara uzstādīšanas vednis. Tāpat kā Ēģiptes tūristu gids vēlas saņemt kādu atalgojumu par saviem pakalpojumiem, arī par komerciāliem distributīviem kaut kas ir jāmaksā. Vairumā gadījumu cena ir tik niecīga, ka ir vērts to samaksāt. 

Es izmantoju distributīvu, ko sauc par Debian (nosaukums ir cēlies no galvenā izstrādātāja draudzenes un viņa paša vārdiem Debora un Ian), kas nav komerciāls. Tas ir noorganizēts (vai pareizāk būtu teikt, ir noorganizējies) uz tādiem pašiem principiem kā Linux kodols, tas sastāv no brīvprātīgajiem, kas katrs atbild par noteiktu sistēmas daļu un sadarbojas, izmantojot tīklu. Šie dalībnieki ir sadalījuši Linux daudzās dažādās pakotnēs, kuras ir arhivētas failos, kurus var lejuplādēt un uzstādīt, izmantojot bezmaksas uzstādīšanas programmu jau ejošā Debian Linux sistēmā. Protams, ka šādā veidā Debian nav komerciālas izplatīšanas iespējas, jo jūs varat brīvi lejuplādēt pakotnes no tīkla. Tomēr daudzi cilvēki vēlas saņemt visu kompaktdiskā. Tad ir vairākas kompānijas, kas apvieno Debian pakotnes vienā kompaktdiskā un pārdod tos par naudu. Piemēram, es savu Debian iegādājos no Linux Systems Labs. Maksa par trijiem Debian instalācijas diskiem ir niecīga. Es par trijiem diskiem samaksāju trīs dolārus. Tomēr, ir svarīgi tas, ka nekas no šiem trijiem dolāriem nenonāca ne Linux, ne Debian izstrādātāju kabatās. Šie dolāri ir Linux Systems Labs kā samaksa nevis par programmatūras izstrādi, bet gan par kompaktdisku štancēšanu un piegādāšanu. 

Katrā Linux distributīvā ir viltīgi izveidota daļa, kas atbild par to, lai datoru ieslēdzot, tas varētu saprast savu konfigurāciju un spētu palaisties nevis kā Windows, bet gan kā Unix resursdators. Pirmo reizi to redzot, rodas nelielas bažas, bet tas ir pilnīgi nekaitīgi. Kad personālais dators tiek ieslēgts, tas iziet konfigurācijas paštestu, nosakot pieejamo operatīvo atmiņu, cietos diskus, un tad tas mēģina palaist sāknēšanas programmu kādā no diskiem. Normālam Windows datoram tas ir cietais disks. Bet ja dators ir nokonfigurēts pareizi, tad tas var tikt sāknēts arī no citiem diskiem: disketes vai kompaktdiska, ja tie ir ievietoti. 

Linux izmanto šo datora iespēju. Ja dators pamana, ka tajā ir ievietota diskete vai kompaktdisks, tas sāk lasīt objektkodu no diska un cenšas to palaist. Bet tas nav Microsoft vai Apple kods, tas ir Linux kods, līdz ar to, kopš tā brīža jūsu dators sāk uzvesties savādāk, nekā jūs esat pieradis. Uz ekrāna sāk parādīties mistiski ziņojumi. Ja jūs sāknējat kādu komerciālu operētājsistēmu, sāknēšanas brīdī parādās "Welcome to MacOS" attēls, vai arī Windows logo. Bet sāknējot Linux parādās gara telegramma, izdrukāta platiem baltiem burtiem uz melna ekrāna. Nav nekāda "Welcome!" paziņojuma. Vairums no ziņojumiem ir kā slēpti draudi. 

Dec 14 15:04:15 theRev syslogd 1.3-3#17: restart.
Dec 14 15:04:15 theRev kernel: klogd 1.3-3, log source = /proc/kmsg started.
Dec 14 15:04:15 theRev kernel: Loaded 3535 symbols from /System.map.
Dec 14 15:04:15 theRev kernel: Symbols match kernel version 2.0.30.
Dec 14 15:04:15 theRev kernel: No module symbols loaded.
Dec 14 15:04:15 theRev kernel: Intel MultiProcessor Specification v1.4
Dec 14 15:04:15 theRev kernel: Virtual Wire compatibility mode.
Dec 14 15:04:15 theRev kernel: OEM ID: INTEL Product ID: 440FX APIC at: 0xFEE00000
Dec 14 15:04:15 theRev kernel: Processor #0 Pentium(tm) Pro APIC version 17
Dec 14 15:04:15 theRev kernel: Processor #1 Pentium(tm) Pro APIC version 17
Dec 14 15:04:15 theRev kernel: I/O APIC #2 Version 17 at 0xFEC00000.  
Dec 14 15:04:15 theRev kernel: Processors: 2  
Dec 14 15:04:15 theRev kernel: Console: 16 point font, 400 scans
Dec 14 15:04:15 theRev kernel: Console: colour VGA+ 80x25, 1 virtual console (max 63)
Dec 14 15:04:15 theRev kernel: pcibios_init : BIOS32 Service Directory structure at 0x000fdb70
Dec 14 15:04:15 theRev kernel: pcibios_init : BIOS32 Service Directory entry at 0xfdb80
Dec 14 15:04:15 theRev kernel: pcibios_init : PCI BIOS revision 2.10 entry at 0xfdba1
Dec 14 15:04:15 theRev kernel: Probing PCI hardware.
Dec 14 15:04:15 theRev kernel: Warning : Unknown PCI device (10b7:9001). Please read include/linux/pci.h
Dec 14 15:04:15 theRev kernel: Calibrating delay loop.. ok — 179.40 BogoMIPS
Dec 14 15:04:15 theRev kernel: Memory: 64268k/66556k available (700k kernel code, 384k reserved, 1204k data)
Dec 14 15:04:15 theRev kernel: Swansea University Computer Society NET3.035 for Linux 2.0
Dec 14 15:04:15 theRev kernel: NET3: Unix domain sockets 0.13 for Linux NET3.035.
Dec 14 15:04:15 theRev kernel: Swansea University Computer Society TCP/IP for NET3.034
Dec 14 15:04:15 theRev kernel: IP Protocols: ICMP, UDP, TCP
Dec 14 15:04:15 theRev kernel: Checking 386/387 coupling... Ok, fpu using exception 16 error reporting.
Dec 14 15:04:15 theRev kernel: Checking 'hlt' instruction...  Ok.
Dec 14 15:04:15 theRev kernel: Linux version 2.0.30 (root@theRev) (gcc version 2.7.2.1) #15 Fri Mar 27 16:37:24 PST 1998
Dec 14 15:04:15 theRev kernel: Booting processor 1 stack 00002000: Calibrating delay loop.. ok — 179.40 BogoMIPS
Dec 14 15:04:15 theRev kernel: Total of 2 processors activated (358.81 BogoMIPS).
Dec 14 15:04:15 theRev kernel: Serial driver version 4.13 with no serial options enabled
Dec 14 15:04:15 theRev kernel: tty00 at 0x03f8 (irq = 4) is a 16550A
Dec 14 15:04:15 theRev kernel: tty01 at 0x02f8 (irq = 3) is a 16550A
Dec 14 15:04:15 theRev kernel: lp1 at 0x0378, (polling)
Dec 14 15:04:15 theRev kernel: PS/2 auxiliary pointing device detected – driver installed.
Dec 14 15:04:15 theRev kernel: Real Time Clock Driver v1.07
Dec 14 15:04:15 theRev kernel: loop: registered device at major 7  
Dec 14 15:04:15 theRev kernel: ide: i82371 PIIX (Triton) on PCI bus 0 function 57
Dec 14 15:04:15 theRev kernel: ide0: BM-DMA at 0xffa0-0xffa7
Dec 14 15:04:15 theRev kernel: ide1: BM-DMA at 0xffa8-0xffaf
Dec 14 15:04:15 theRev kernel: hda: Conner Peripherals 1275MB — CFS1275A, 1219MB w/64kB Cache, LBA, CHS=619/64/63
Dec 14 15:04:15 theRev kernel: hdb: Maxtor 84320A5, 4119MB w/256kB Cache, LBA, CHS=8928/15/63, DMA
Dec 14 15:04:15 theRev kernel: hdc: , ATAPI CDROM drive
Dec 15 11:58:06 theRev kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Dec 15 11:58:06 theRev kernel: ide1 at 0x170-0x177,0x376 on irq 15
Dec 15 11:58:06 theRev kernel: Floppy drive(s): fd0 is 1.44M
Dec 15 11:58:06 theRev kernel: Started kswapd v 1.4.2.2
Dec 15 11:58:06 theRev kernel: FDC 0 is a National Semiconductor PC87306
Dec 15 11:58:06 theRev kernel: md driver 0.35 MAX_MD_DEV=4, MAX_REAL=8
Dec 15 11:58:06 theRev kernel: PPP: version 2.2.0 (dynamic channel allocation)
Dec 15 11:58:06 theRev kernel: TCP compression code copyright 1989 Regents of the University of California
Dec 15 11:58:06 theRev kernel: PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.  
Dec 15 11:58:06 theRev kernel: PPP line discipline registered.
Dec 15 11:58:06 theRev kernel: SLIP: version 0.8.4-NET3.019-NEWTTY (dynamic channels, max=256).  
Dec 15 11:58:06 theRev kernel: eth0: 3Com 3c900 Boomerang 10Mbps/Combo at 0xef00, 00:60:08:a4:3c:db, IRQ 10
Dec 15 11:58:06 theRev kernel: 8K word-wide RAM 3:5 Rx:Tx split, 10base2 interface.
Dec 15 11:58:06 theRev kernel: Enabling bus-master transmits and whole-frame receives.
Dec 15 11:58:06 theRev kernel: 3c59x.c:v0.49 1/2/98 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html
Dec 15 11:58:06 theRev kernel: Partition check:
Dec 15 11:58:06 theRev kernel: hda: hda1 hda2 hda3
Dec 15 11:58:06 theRev kernel: hdb: hdb1 hdb2
Dec 15 11:58:06 theRev kernel: VFS: Mounted root (ext2 filesystem) readonly.
Dec 15 11:58:06 theRev kernel: Adding Swap: 16124k swap-space (priority -1)
Dec 15 11:58:06 theRev kernel: EXT2-fs warning: maximal mount count reached, running e2fsck is recommended
Dec 15 11:58:06 theRev kernel: hdc: media changed
Dec 15 11:58:06 theRev kernel: ISO9660 Extensions: RRIP_1991A
Dec 15 11:58:07 theRev syslogd 1.3-3#17: restart.
Dec 15 11:58:09 theRev diald[87]: Unable to open options file /etc/diald/diald.options: No such file or directory
Dec 15 11:58:09 theRev diald[87]: No device specified. You must have at least one device!
Dec 15 11:58:09 theRev diald[87]: You must define a connector script (option 'connect').
Dec 15 11:58:09 theRev diald[87]: You must define the remote ip address.
Dec 15 11:58:09 theRev diald[87]: You must define the local ip address.
Dec 15 11:58:09 theRev diald[87]: Terminating due to damaged reconfigure.

Vienīgais, ko no tā visa var saprast normāls cilvēks ir kļūdu ziņojumi un brīdinājumi. Un neskatoties uz to visu, Linux neapstājas, nesalūzt un, lai arī tas rāda niknus kļūdu ziņojumus par to, kuri procesi ir salūzuši, tas iet tālāk. Tas pilnīgi noteikti nebija raksturīgi tā laika Apple un Microsoft operētājsistēmām, tā vienkāršā iemesla dēļ, ka tās nespēja vienlaicīgi iet un košļāt gumiju, un tāpēc tās nespēja atgūties no kļūdām. Kļūdu noteikšana un to seku novēršana Linux ir atsevišķs process. Gluži kā tāds superego, kas visu patur acīs un iejaucas, kad kāds sāk darboties nepareizi. Tagad arī MacOS un Windows spēj darīt vairāk par vienu darbu vienlaicīgi un tie ar kļūdām tiek galā daudz labāk, bet tie šajā jomā vēl arvien ir tālu no Linux vai jebkura cita Unix, un to pieaugošā sarežģītība tos padara ievainojamus ar jauna tipa kļūdām. 

Prev
Mutvārdu kultūra
Next
Kļūdas, atgūšanās, atjaunošana, uzticamība un citi mistiski jēdzieni
  1. ^ Mūsdienās bieži tiek izmantots UTF-8 kodējums.
  2. ^ Mūsdienās šiem pēc būtības neformatētajiem teksta failiem redaktors pievieno īpašu noformējumu, t.s. sintakses noformējumu, kas atkarīga no koda satura.
  3. ^ Mail merge, reti izmantota iespēja, kura tomēr ir iekļauta ECDL eksāmenā.

Created by Administrator on 2009-12-21 17:56
Last modified by Administrator on 2021-04-13 14:28
 
Xwiki Powered
Creative Commons Attribution 3.0 Unported License