Slack Tai nemokama, laisvo kodo operacijų sistema, paremta Linux branduoliu. Viena pirmųjų sistemų, pradėjusių naudoti Linux branduolį ir vienintelė iš jų veikli iki šiol. Slackware sukūrė Patrikas Volkerdingas 1993-iais metais, kaip privatų namų projektą, be jokių įsipareigojimų. Tam, kad šis užsiėmimas netaptų pernelyg rimtas, Patrikas davė jam humoristinį vardą, kuris prilipo projektui tapus rimtu. 2013-tais išleista naujausia stabili versija 14.1

Pramanymas

Daug Slackware dizaino pasirinkimų gali būti KISS principo pavyzdžiais. Šiame kontekste "paprastumas" reiškia labiau administratoriaus požiūrį į sistemos dizainą, nei paprastumą naudojimui. Dauguma programinės įrangos naudoja konfigūracijos mechanizmus pateiktus originalių autorių; yra viso labo keli konfigūracijos mechanizmai, būdingi šiai distribucijai. Dėl šios priežasties yra taip mažai grafinių sistemos konfigūravimui skirtų įrankių. Rezultate, naudotojai neturintys darbo komandine eilute patirties, gauna kur kas statesnę mokymosi kreivę.

64-ių bitų Slackware versija, norint supaprastinti sistemą, yra pateikiama be 32-jų bitų suderinamumo bibliotekų. Šio sprendimo privalumas, kaip jau minėta, sistemos paprastumas, bei greitaveika (paketai kompiliuojami pagal x86_64 instrukcijas). O trūkumas tas, kad neveiks kai kurios komercinės programos, kaip Adobe reader. Todėl yra neoficialios multi-bibliotekos kurias įsidiegus, galima naudoti ir 32-jų bitų programinę įrangą.

Slackware tikslai yra sistemos stabilumas, paprastumas, bei būvimas labiausiai Unix suderinama Linux operacijų sistema. Todėl naudojami tekstiniai konfigūracijos failai, bei daroma kuo mažiau modifikacijų programinės įrangos paketams.

Kur gauti Slackware?

Slackware parduotuvėje - Taip, Slackware yra nemokama operacinė sistema, tačiau Slackware komanda deda labai daug pastangų, kad mes gautumėm puikią sistemą, tad perkant Slackware diskus iš šios parduotuvės, paremiame šiuos žmones.

Atsisiųsti Slackware ISO atvaizdus patartina naudojantis torrent tinklais.

Įkrova

Gal būt pastebėjote, jog Slackware įkrovos laikas yra ženkliai ilgesnis, nei kitų sistemų. Tarnybinėse stotyse, žinoma, tai nėra taip svarbu. Tačiau naudojantys Slackware darbiniuose ar nešiojamuose kompiuteriuose vargu ar norės keletą minučių žiūrėti kaip ekrane slenka tekstas. Tas minutes galima nesunkiai sutaupyti tinkamai parinkus įkrovos nuostatas, šiek tiek pertvarkius paleisties skriptus.

Lilo

Lilo, tai pirmoji programa, kuri paleidžiama iš kart po BIOS. Galima sutaupyti, apie dvi minutes įkrovos laiko, tinkamai nustačius lilo. Nustatymai keičiami lilo.conf byloje:

# nano /etc/lilo.conf

Reikia nustatyti delsos laiką, skirtą Operacinės sistemos pasirinkimui. Taip pat pridėti compact komandą, liepiančią sparčiau skaityti informaciją iš kieto disko. Jeigu kompiuteryje nenaudojami RAID masyvai, galima išjungti jų automatinį aptikimą, išjungti įkrovos tekstus. Taigi, kernelio nustatymų skiltis turėtų atrodyti taip:

# Append any additional kernel parameters:
append=" vt.default_utf8=1 resume=/dev/sda1 raid=noautodetect quiet"
boot = /dev/sda
compact
  • vt.default_utf8=1 - reikalinga utf-8 koduotės aktyvavimui.

  • resume=/dev/sda1 - nurodžius swap skirsnį, įjungiamas išjungimas įrašius (hibernate).

  • raid=noautodetect - jeigu kompiuteryje nenaudojami raid masyvai, galima išjungti jų aptikimą.

  • compact - apjungia skaitymo užklausas gretimiems sektoriams, kad paspartinti užsikrovimo laiką.

  • timeout = 50 - Laikas, skirtas OS pasirinkimui dešimtosiomis sekundės dalimis. 600 = 1 minutė. Numatytoji reikšmė - 1200

Kiek žemiau, eilutėje timeout reikia įrašyti skaičių nustatantį, kiek laiko, reikės laukti naudotojo pasirinkimo, prieš automatiškai paleidžiant numatytąją sistemą. Pagal nutylėjimą yra 1200 dešimtųjų sekundės dalių (600 = viena minutė), taigi, nustatome 3 sekundes:

# Timeout before the first entry boots.
# This is given in tenths of a second, so 600 for every minute:
timeout = 30

Kad nustatymai įsigaliotų, reikia įvykdyti lilo komandą:

# lilo

Sekančio paleidimo metu įkrovos laikas bus ženkliai trumpesnis.

Įkrovos skriptai

Tam, kad sistemai besikraunant būtų paleistos jos darbui reikalingos tarnybos, reikalingi paleisties skriptai. Skirtingai negu dauguma kitų Linux operacijų sistemų, Slackware naudoja BSD stiliaus, RC paleisties skriptus, kadangi šie yra gerokai paprasčiau naudojami ir prižiūrimi, nei Linux System-V-Init skriptai ir todėl labiau suderinami su Slackware dizaino filosofija.

Pati pirmoji programa paleidžiama sistemai startuojant, po Linux kernelio, yra init. Ši programa nuskaito /etc/inittab failą, kuriame aprašyta pagal kokią tvarką bus paleidžiama sistema. Tuomet paleidžiamas /etc/rc.d/rc.S skriptas, skirtas sistemos paruošimui tam tikram paleisties lygiui. Šis skriptas atsakingas už virtualios atminties įjungimą, failų sistemų aktyvavimą, tam tikrų žurnalo (log) aplankų išvalymą, taip pat Plug and Play aparatinės įrangos aktyvavimą, kernelio modulių prijungimą bei System-V-Init skriptų paleidimą (jeigu tokių yra sistemoje). Atrodo daug pareigų kaip vienam skriptui, ar ne? Todėl rc.S kreipiasi į seriją kitų skriptų.

Visus, šiuo metu esančius sistemoje įkrovos skriptus galima pamatyti terminale įrašius komandą:

# ls -l /etc/rc.d

Tipai

RC paleisties skriptai yra kelių tipų: skirti sistemos paleidimui, paleisties lygių nustatymui, tinklo posistemiui paleisčiai, bei įvairių pagalbinių tarnybų paleidimui. Visi šie skriptai laikomi /etc/rc.d/ aplanke:

  • rc.S - Pagrindinis paleisties skriptas.

  • rc.modules - Prijungia kernelio modulius, jeigu randa, įvykdo rc.netdevice.

  • rc.pcmcia - Aptinka ir paruošia naudojimui PCMCIA įrenginius.

  • rc.serial - Paruošia serial portus.

  • rc.sysvinit - Ieško System-V init skriptų, jeigu randa - įvykdo.

Paleisties lygių nustatymams:

  • rc.0 - Išjungtia sistemą (lygis: 0).

  • rc.K - Paleidžia vieno naudotojo režimą (lygis: 1).

  • rc.M - Paleidžia daugelio naudotojų režimą (multiuser) (lygiai: 2 ir 3), prisijungimas vyksta tekstinėje aplinkoje. Tai yra paleisties lygis naudojamas pagal nutylėjimą Slackware sistemoje.

  • rc.4 - Paleidžia daugelio naudotojų režimą (multiuser) (lygis: 4), prisijungimas vyksta grafinėje X11 aplinkoje, per KDM, GDM, arba XDM.

  • rc.6 - Perkrauna sistemą (lygis: 6).

Tinklo posistemio paleidimui:

  • rc.inet1 - Sukurtas netconfig programos, atsakingas už tinklo prieigos nustatymą.

  • rc.inet2 - Startuoja po rc.inet1 ir paleidžia pagrindines tinklo tarnybas.

  • rc.atalk - Paleidžia AppleTalk tarnybas.

  • rc.httpd - Paleidžia Apache web serverį. Gali būti panaudotas ir perkrovimui arba sustabdymui, nes priima stop, start arba restart argumentus.

  • rc.news - Paleidžia naujienų serverį.

Kiti paleisties skriptai:

  • rc.gpm - Paleidžia bendros paskirties pelės tarnybas, kurios leidžia kopijuoti ir įklijuoti tekstą Linux tekstinėje aplinkoje. Kartais gali sukelti problemų naudojant pelę grafinėje aplinkoje. Tokiu atveju, šiam reikia nuimti vykdymo leidimą.

  • rc.font - Nustato tekstinės aplinkos raidžių šriftą.

  • rc.local - Čia laikomos specifinės paleisties komandos, įrašytos sistemos administratoriaus. Iškart po diegimo būna tuščias.

Programos, kurioms reikalingos tarnybos, turi savo paleisties skriptus. Šie taipogi laikomi /etc/rc.d/ aplanke, turi priedėlį rc. ir kartais raidelę d (daemon) pabaigoje. Keli pavyzdžiai:

  • rc.wicd - wicd programos tarnyba.

  • rc.mysqld - Mysql duomenų bazės tarnyba.

Tarnybos

Visos sparčiai veikiančios sistemos turi bendrą bruožą - tinkamai parinktas tarnybas. Kompiuteryje neturėtų veikti nenaudojamos, nereikalingos ar visai nežinomos tarnybos. Leidžiant veikti tik reikalingoms tarnyboms užtikrinama greitesnė sistemos įkrova, spartesnė greitaveika ir kai kurių kompiuterio dalių tarnavimo laikas! Pateikiami trys paleisties valdymo įrankiai, kuriais galima maksimaliai valdyti sistemos ir tarnybų paleistį: Unix leidimų sistema, skriptų argumentai ir nustatymų failai.

Apie Unix leidimų sistemą manau, nereikia pasakoti. Žinome, jog yra toks leidimas x (vykdyti). RC skriptų sistemai jis labai svarbus. Jeigu rc.wicd turi leidimą x, reiškia sistemos paleidimo metu bus įvykdytas, jei neturi - nebus. Paprastas būdas leidimo x uždėjimui bei nuėmimui:

# chmod +x /etc/rc.d/rc.wicd

# chmod -x /etc/rc.d/rc.wicd

+ leidimą prideda, - leidimą nuima.

Pažiūrėti esamus leidimus galima peržiūrint /etc/rc.d/ turinį:

# ls -l /etc/rc.d/
total 352
drwxr-xr-x 2 root root  4096 2011-04-10 17:13 init.d
lrwxrwxrwx 1 root root     4 2011-03-04 12:02 rc.0 -> rc.6
-rwxr-xr-x 1 root root  1473 2011-02-27 00:06 rc.4
-rwxr-xr-x 1 root root  7425 2010-03-19 22:14 rc.6
-rwxr-xr-x 1 root root  2425 2008-12-02 18:31 rc.K
-rwxr-xr-x 1 root root 10936 2011-03-03 18:55 rc.M
-rwxr-xr-x 1 root root 14238 2010-03-19 22:14 rc.S
-rwxr-xr-x 1 root root   552 2010-05-19 00:55 rc.acpid
-rwxr-xr-x 1 root root  2672 2010-04-30 04:54 rc.alsa
-rw-r--r-- 1 root root  1032 2010-02-19 18:05 rc.atalk
-rw-r--r-- 1 root root  2784 2010-03-05 23:54 rc.autofs
-rw-r--r-- 1 root root  3116 2008-04-13 19:48 rc.bind
-rw-r--r-- 1 root root   497 2010-05-02 06:41 rc.bluetooth
-rwxr-xr-x 1 root root  4318 2010-05-17 05:52 rc.cups
-rw-r--r-- 1 root root   512 2010-02-12 23:45 rc.dnsmasq
-rw-r--r-- 1 root root   119 2010-04-30 04:39 rc.font
-rwxr-xr-x 1 root root  1893 2010-02-12 22:52 rc.fuse
Pagal išvestį matyti, jog rc.fuse, rc.alsa ir panašūs turi x leidimus, todėl yra paleidžiami kas kart sistemai startuojant. O štai rc.bind, rc.bluetooth x leidimų neturi, reiškia yra neveiksnūs.

Skriptas turintis leidimą x, gali būti realiu laiku valdomas argumentais: start, restart, stop (paleisti, perleisti, sustabdyti). Pavyzdžiui paleidžiama wicd tarnyba:

# /etc/rc.d/rc.wicd start

Kai kurie paleisties skriptai turi ir konfigūracijos failus tuo pačiu pavadinimu. Kaip rc.wireless.conf:

rc.wireless
rc.wireless.conf
Galūnė .conf reiškia, jog failas yra skirtas konfigūravimui. Redaguojant šį failą yra valdomas rc.wireless tarnybos darbas.

Įkrovos spartinimas

Šiek tiek perdarius paleisties skriptą rc.M, galima juntamai sutrumpinti įkrovos laiką. Minėtame skripte yra keli svarbūs darbai, kurie yra reikalingi, tačiau užima nemažai laiko paleisties metu. Šiuos darbus perkeliant į atskirą skriptą ir paleidžiant jį vienu metu su rc.4, šie darbai bus įvykdomi fone, todėl nereikalaus papildomo įkrovos laiko. Šiam naujam skriptui panaudojus ash vertėją, visi darbai bus įvykdyti šiek tiek greičiau. Pirmiausia sukuriama nauja rc.P byla:

# nano /etc/rc.d/rc.P

Užpildoma šiuo turiniu:

#!/bin/ash

# Update the X font indexes:
/usr/bin/fc-cache -v -s -f

# Update any existing icon cache files:
rm -f /usr/share/icons/icon-theme.cache
find /usr/share/icons -maxdepth 2 -name 'icon-theme.cache' \
  -printf '%h\0' \
 | xargs -0r -I'{}' /usr/bin/gtk-update-icon-cache -t -f '{}'

# Update mime database:
/usr/bin/update-mime-database /usr/share/mime

# These GTK+/pango files need to be kept up to date for
# proper input method, pixbuf loaders, and font support.
/usr/bin/update-gtk-immodules --verbose
/usr/bin/update-gdk-pixbuf-loaders --verbose
/usr/bin/update-pango-querymodules --verbose
/usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas

Keičiama rc.M byla, joje reikia užkomentuoti arba pašalinti visas šias eilutes. Kitaip tie patys darbai bus atliekami du kartus:

# nano /etc/rc.d/rc.M

Tam, kad rc.P būtų įvykdyta reikiamu metu, šią bylą reikia įtraukti į /etc/inittab:

# nano /etc/inittab

Susiradus eilutę rc:2345:wait:/etc/rc.d/rc.M žemiau jos pridedama nauja, skirta rc.P bylai:

# Script to run when going multi user.
rc:2345:wait:/etc/rc.d/rc.M

# Paralel script
m1:34:once:/etc/rc.d/rc.P

Galiausiai rc.P bylai uždedamas vykdymo leidimas:

# chmod +x /etc/rc.d/rc.P

Kernelis

Pagal nutylėjimą, Slackware sistemoje nustatomas huge kernelis, kuris yra sukompiliuotas taip, jog veiktų su kuo daugiau skirtingų kompiuterių. Tai yra vykęs pasirinkimas diegiant sistemą, tačiau pasirinkus labiau optimalų kernelį kompiuteris dirbs ženkliai našiau. Slackware pagal nutylėjimą, šalimais huge kernelio įdiegia ir generic kernelį, kuris yra sukompiliuotas ne monolitiniu (kaip huge), tačiau moduliniu būdu. Tai reiškia, jog sistema automatiškai prijungs tvarkyklių blokus sistemai užsikraunant, bei prijungiant prie sistemos kokius nors įrenginius. Viskas ką reikia atlikti, tiesiog pasirinkti, jog sistema įkrovos metu naudotų generic kernelį.

Initrd.gz kūrimas

Kadangi, generic kernelis yra modulinis, reikia sukurti initrd.gz modulių archyvą. Šiame archyve laikomos vos kelios tvarkyklės, reikalingos įkrovos metu, tam, kad sistema aptiktų kietą diską, bei failų sistemą. Be šios bylos, Slackware įkrovos metu parodytų kernel panic pranešimą.

Pirmiausia, keliaujame į /boot aplanką, kuriame laikomi įkrovai būti failai.

# cd /boot

Tuomet pasižiūrime ką turime. Matysite kažką panašaus (atkreipkite dėmesį į turimų kernelių versijas)

# ls
lrwxrwxrwx  1 root root   37 Oct  2  2012 README.initrd -> /usr/doc/mkinitrd-1.4.7/README.initrd
lrwxrwxrwx  1 root root   25 Feb 20 00:16 System.map -> System.map-huge-3.2.45
-rw-r--r--  1 root root 1.9M Jun  1  2013 System.map-huge-3.2.45
-rw-r--r--  1 root root 1.9M Jun  1  2013 System.map-generic-3.2.45
-rw-r--r--  1 root root  512 Oct  2  2012 boot.0800
-rw-r--r--  1 root root  199 Nov  1  2012 boot_message.txt
lrwxrwxrwx  1 root root   21 Feb 20 00:16 config -> config-huge-3.2.45
-rw-r--r--  1 root root 119K Jun  1  2013 config-huge-3.2.45
-rw-r--r--  1 root root 119K Jun  1  2013 config-generic-3.2.45
-rw-r--r--  1 root root 4.3M Feb 20 00:28 initrd.gz-generic-3.2.45
-rw-r--r--  1 root root  23K Aug 18  2012 inside.bmp
-rw-------  1 root root 132K Feb 20 00:31 map
-rw-r--r--  1 root root 6.8K Aug 18  2012 onlyblue.bmp
-rw-r--r--  1 root root  16K Mar 27  2011 slack.bmp
-rw-r--r--  1 root root 116K Oct  3  2012 slack14.bmp
-rw-r--r--  1 root root  33K Aug 18  2012 tuxlogo.bmp
lrwxrwxrwx  1 root root   22 Feb 20 00:16 vmlinuz -> vmlinuz-huge-3.2.45
-rw-r--r--  1 root root 3.1M Jun  1  2013 vmlinuz-huge-3.2.45
-rw-r--r--  1 root root 3.1M Jun  1  2013 vmlinuz-generic-3.2.45

Slackware pateikia mkinitrd_command_generator.sh skriptą, kuris supaprastina initrd.gz sukūrimą automatiškai aptikdamas aparatūrą ir pasiūlydamas mkinitrd komandą. Tereikia jį įvykdyti:

# /usr/share/mkinitrd/mkinitrd_command_generator.sh

Ekrane matysite siūlomą mkinitrd komandą. Jeigu / skirsnis yra /dev/sda2, o failų sistema ext4, galima naudoti tokią komandą:

# mkinitrd -c -k 3.2.45 -f ext4 -r /dev/sda2 -m mbcache:jbd2:ext4 -u -o /boot/initrd.gz

Kernelio pasirinkimas

Gavus initrd.gz bylą, lieka parinkti generic kernelį, kaip sistemos numatytąjį. Tai atliekama nuorodų pagalba, kreipiant jas į reikiamas bylas.

Pirmiausia šalinamos esamos nuorodos:

# rm vmlinuz System.map config

Tuomet kuriamos naujos:

# ln -s vmlinuz-generic-3.12.13 vmlinuz

# ln -s System.map-generic-3.12.13 System.map

# ln -s config-generic-3.12.13 config

nekopijuokite šių komandų, o surašykite jas pagal savo kernelio versiją.

Lilo nustatymai

Belieka nustatyti Linux įkrovos programą lilo. Tai atliekama redaguojant lilo.conf bylą:

# nano /etc/lilo.conf

Kurios gale reikia susirasti įkrovos aprašymą ir jame pridėti eilutę initrd = /boot/initrd.gz. Visas aprašymas atrodo taip:

# Linux bootable partition config begins
image = /boot/vmlinuz
  initrd = /boot/initrd.gz
  root = /dev/sda2
  label = Linux
  read-only

Kiekvieną kartą pakeitus nustatymus lilo.conf byloje, arba pakeitus nuorodas į kernelį esančias /boot aplanke, reikia įvykdyti lilo programėlę:

# lilo

Štai ir viskas, belieka perkrauti kompiuterį (ir laikyti špygą kišenėje):

# reboot

Failų sistema

Slackware, kaip ir kitos Linux sistemos, palaiko daug įvairių failinių sistemų. Tačiau standartinė Linux failinė sistema ext4 patenkins daugumą poreikių.

Lentelė 1. Failinių sistemų apžvalga
Failų sistema Failo dydis Skirsnio dydis Žurnalo palaikymas Pastabos

Fat16

2 GB

2 GB

Nėra

Paveldas

Fat32

4 GB

8 TB

Nėra

Paveldas

NTFS

2 TB

256 TB

Yra

Windows failinė sistema. NTFS-3g tvarkyklė, Linux sistemoms leidžia nuskaityti, bei įrašyti failus į šią sistemą

ext2

2 TB

32 TB

Nėra

Paveldas

ext3

2 TB

32 TB

Yra

Ilgametis Linux failinės sistemos standartas. Geras pasirinkimas sistemoms, kur svarbus super-standartas.

ext4

16 TB

1 EB

Yra

Moderni Linux failinė sistema. Puikus pasirinkimas asmeniniams kompiuteriams, ssd diskams, bei sistemoms, kur super-stantartas nereikalaujamas.

reiserFS

8 TB

16 TB

Yra

Sistema gerai dirbanti su mažais failais. Mažai palaikoma.

JFS

4PB

32PB

Yra (metaduomenys)

IBM kurta failinė sistema. Prastai palaikoma.

XFS

8 EB

8 EB

Yra (metaduomenys)

SGI kurta failinė sistema. Geriausias pasirinkimas norint stabilumo, bei pažangaus žurnalizavimo.

GB = Gigabaitas (1024 MB), TB = Terabaitas (1024 GB), PB = Petabaitas (1024 TB), EB = Eksabaitas (1024 PB)

Fstab

Pataisius /etc/fstab bylą ir parinkus tinkamus skirsnių nustatymus, galima šiek tiek pagerinti sistemos greitaveiką, bei įkrovos laiką. Svarbiausia, jog šioje byloje nebūtų nenaudojamų įrašų, bei esamiems būtų parinktos tinkamos nuostatos.

# nano /etc/fstab

Patarčiau užkomentuoti /dev/cdrom, bei /dev/fd0 įrašus skirtus CD diskų, bei FLOPPY diskelių prijungimui (visa tai vis vien atliekama automatiškai per udev), bei įtraukti aukščiau minėtus nustatymus:

/dev/sda1    swap        swap    defaults  	      0   0
/dev/sda2    /           ext4    defaults  		  1   1
/dev/sdb1    /home       ext4    defaults  	      1   2
#/dev/cdrom  /mnt/cdrom  auto    noauto,owner,ro,comment=x-gvfs-show 0   0
#/dev/fd0    /mnt/floppy auto    noauto,owner             0   0
devpts       /dev/pts    devpts  gid=5,mode=620           0   0
proc         /proc       proc    defaults                 0   0
tmpfs        /dev/shm    tmpfs   defaults                 0   0
#tmpfs       /tmp        tmpfs   defaults                 0   0
Turintys didelį kiekį laisvos operatyviosios atminties (RAM) gali atkomentuoti paskutinę tmpfs eilutę. Tuomet /tmp aplankas bus prijungtas į RAM, taip pagerinant kompiuterio greitaveiką bei atsikratant šiukšlių. Reikia turėti galvoje, jog kompiliuojant dideles programas gali kilti keblumų!

Sintaksė

/etc/fstab sintakę sudaro šeši stulpeliai atskirti tarpu. Kiekvienam skirsniui skirta viena eilutė. Eilutes galima užkomentuoti # simboliu. Užkomentuota eilutė tiesiog praleidžiama, neveiksni.

/dev/sda2    /           ext4    defaults  		  1   1
  • Pirmasis stulpelis žymi diską ir skisrsnį (/dev/sda2).

  • Antrasis žymi skirsnio prijungimo vietą (/).

  • Trečiame nurodoma failinė sistema (ext4).

  • Ketvirtame surašomos mount nuostatos.

  • Penktame nurodoma ar failų sistemą galės naudoti dump komanda. (0 - nenaudoti, 1 - naudoti).

  • Šeštame stulpelyje nurodoma failų sistemos tikrinimo seka. Šakninis skirsnis (/) visuomet turėtų būti pirmas (1).

SSD Optimizavimas

SSD diskai savo veikimo principu skiriasi nuo įprastų mechaninių. Pastarieji informacija įrašinėja magnetiniu būdu į besisukančius diskus. SSD duomenų saugojimui ir nuskaitymui naudoja elektronines atminties mikroschemas. Norint optimaliai išnaudoti gerąsias SSD diskų savybes, būtina atlikti šiek tiek nustatymų. Slackware, kaip ir daugelis Linux sistemų pilnai palaiko SSD diskus, tačiau pagal nutylėjimą yra optimizuota senesnio tipo, mechaniniams diskams.

Skirsnių lygiavimas

SSD diskai geba greitai nuskaityti duomenis iš atsitiktinių sektorių. Tačiau visumoje, tie sektoriai yra saugomi skirtingose mikroschemose, kurios yra apjungiamos į bendrą masyvą. Kiekviena atminties mikroschema gali saugoti tam tikrą infromacijos ruožą. Todėl tinkamai sulygiuotas disko skirsnis gali ženkliai pagerinti SSD disko greitaveiką.

Pasitikrinti ar skirsnis yra tinkamai sulygiuotas galima blockdev komandos dėka, jei gaunama reikšmė lygi 0, reiškia, jog skirsnis sulygiuotas:

# blockdev --getalignoff /dev/sdX*
0

TRIM

dauguma SSD diskų palaiko atminties mikroschemų išvalymo technologiją TRIM. Tai yra labai svarbi technologija elektroniniams diskams. Kadangi bėgant laikui diskuose kaupiasi nereikalinga informacija, apsunkinti ir kartais smarkiai sulėtinanti disko greitaveiką. Slackware, kaip ir kitos Linux sistemos palaiko TRIM, tačiau pagal nutylėjimą neįjungia. TRIM palaikymas susideda iš dviejų dalių: failų sistemos nuostatos ir realaus atmintinių išvalymo.

Patikrinti, ar turimas SSD diskas palaiko TRIM galima pasinaudojus šia komanda:

# hdparm -I /dev/sda | grep TRIM
        *    Data Set Management TRIM supported (limit 1 block)
Nuostatos

Failų sistema ext4 palaiko TRIM technologiją, tačiau šį palaikymą reikia įjungti redaguojant /etc/fstab failą:

# nano /etc/fstab

Jame susirasti skirsnio, esančio SSD diske eilutę ir pridėti discard nuostatą:

/dev/sda1    swap        swap    defaults  	      0   0
/dev/sda2    /           ext4    defaults,discard 1   1
/dev/sdb1    /home       ext4    defaults  	      1   2
swap skirsnis taipogi yra SSD diske, tačiau swap failų sistema automatiškai išnaudoja TRIM, discard nuostatos pridėti nereikia.
Valymas

Kai TRIM palaikymas įjugtas, susikaupusias šiukšles iš atminties mikroschemų galima pašalinti fstrim komandos pagalba:

# fstrim -v /
/: 159436800 bytes were trimmed

Tačiau nėra patogu nuolatos valyti rankiniu būdu, galima panaudoti cron, kad ši komanda būtų įvykdoma automatiškai kartą savaitėje. Tam reikia sukurti skriptą:

# nano /etc/cron.weekly/fstrim

Ir užpildyti turiniu:

#! /bin/sh

# By default we assume only / is on an SSD.
# You can add more SSD mount points, separated by spaces.
# Make sure all mount points are within the quotes. For example:
# SSD_MOUNT_POINTS='/ /boot /home /media/my_other_ssd'

SSD_MOUNT_POINTS='/'

for mount_point in $SSD_MOUNT_POINTS
do
    fstrim $mount_point
done

Disko tvarkaraštis

Pagal nutylėjimą, Slackware naudojasi cfq tvarkaraščiu, kuris gerai tinka mechaniniams diskams, tačiau SSD diskai greičiau dirba pagal deadline tvarkaraštį. Rankiniu būdu pažiūrėti ir nurodyti tvarkaraštį konkrečiam diskui, galima keičiant failą /sys/block/sda/queue/scheduler:

# cat /sys/block/sda/queue/scheduler
noop deadline [cfq]

Šiuo atveju, SSD diskui /dev/sda naudojamas CFQ tvarkaraštis. Galima norodyti naudoti kitą:

# echo deadline > /sys/block/sda/queue/scheduler

Tačiau šitoks nustatymas neišliks po sistemos perkrovimo. Išsirinkus geriausiai veikiantį tvarkaraštį, galima nustatyti jį visam laikui panaudojant udev taisyklę:

# nano /etc/udev/rules.d/60-scedulers.rules

# set noop scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"
pagal šią taisylę, udev nustatys deadline tvarkaraštį visiems diskams, kurie neturi besisukančių mechanizmų.

Tinkamai užpildžius /etc/fstab failą ir atlikus reikiamus nustatymus, belieka paleisti kompiuterį iš naujo ir stebėtis pokyčiais:

# reboot

Kalba ir koduotė

Kaip ir dauguma šiuolaikiškų sistemų, Slackware palaiko daugelį kalbų, bei koduočių. Tarp jų ir lietuvių. Kalbos palaikymas susiveda į kelis dalykus. Tai koduotės palaikymas, šrifto parinkimas ir kalbos nustatymas.

Koduotė

Pagal nutylėjimą UTF-8 koduotė nenaudojama, jos naudojimą reikia įjungti kernelio lygyje. Diegimo metu, tai galima atlikti lilo nustatymų pagalba. Jau įdiegtoje sistemoje reikia redaguoti lilo.conf bylą.

Kalba

Norint pasirinkti lietuvių kalbą, keičiamos bylos /etc/profile.d/lang.sh ir /etc/profile.d/lang.csh. Šios bylos nurodo kuri kalba ir koduotė sistemoje naudojama pagal nutylėjimą.

# nano /etc/profile.d/lang.sh

Reikia užkomentuoti numatytą en_US ir žemiau nurodyti lt_LT.UTF-8, byla turėtų atrodyti taip:

# en_US is the Slackware default locale:
#export LANG=en_US

# 'C' is the old Slackware (and UNIX) default, which is 127-bit
# ASCII with a charmap setting of ANSI_X3.4-1968.  These days,
# it's better to use en_US or another modern $LANG setting to
# support extended character sets.
#export LANG=C

# There is also support for UTF-8 locales, but be aware that
# some programs are not yet able to handle UTF-8 and will fail to
# run properly.  In those cases, you can set LANG=C before
# starting them.  Still, I'd avoid UTF unless you actually need it.
export LANG=lt_LT.UTF-8

Taip pačiai reikia pataisyti ir antrąją bylą:

nano /etc/profile.d/lang.csh

Turi atrodyti taip:

# en_US is the Slackware default locale:
#setenv LANG en_US

# 'C' is the old Slackware (and UNIX) default, which is 127-bit
# ASCII with a charmap setting of ANSI_X3.4-1968.  These days,
# it's better to use en_US or another modern $LANG setting to
# support extended character sets.
#setenv LANG C

# There is also support for UTF-8 locales, but be aware that
# some programs are not yet able to handle UTF-8 and will fail to
# run properly.  In those cases, you can set LANG=C before
# starting them.  Still, I'd avoid UTF unless you actually need it.
setenv LANG lt_LT.UTF-8

Šriftas

Tam, kad sistema galėtų ne tik koduoti ir iškoduoti tekstą UTF-8 formatu, bet ir tvarkingai jį atvaizduoti, reikia naudoti ir UTF-8 palaikantį šriftą. Pagal nutylėjimą, su Slackware sistema pateikiamas puikus šriftas Terminus. Kompiuteriui kraunantis, sistema naudoja numatytąjį šriftą arba tą, kuris nurodytas /etc/rc.d/rc.font byloje. Norint naudotis Terminus šriftu, reikia nurodyti jį minėtoje byloje:

# nano /etc/rc.d/rc.font

#
# This selects your default screen font from among the ones in
# /usr/share/kbd/consolefonts.
#
setfont -v ter-v16n

Užsaugojus, bylai suteikiami vykdymo leidimai:

# chmod +x /etc/rc.d/rc.font

Nuo šiol krovimosi metu, sistema pasirinks Terminus šriftą.

Įvestis

Kokia nauda iš galimybės matyti lietuviškas raides, jeigu nėra galimybės joms įvesti? Įvedimui, reikia parinkti lietuvišką klaviatūrą. Slackware krovimosi metu klaviatūros nustatymai ieškomi /etc/rc.d/rc.keymap byloje. Norint įjungti lietuvišką klaviatūrą, ji tinkamai pataisoma:

# nano /etc/rc.d/rc.keymap

# Load the keyboard map.  More maps are in /usr/share/kbd/keymaps.
if [ -x /usr/bin/loadkeys ]; then
 /usr/bin/loadkeys lt.map
fi

Nuo šiol tekstinėje aplinkoje, galima įvesti lietuviškas raides. Lietuviškos raidės yra ant įprastinių skaičių klavišų, tačiau norint jas įvesti, reikia laikyti nuspaudus dešinį Alt (arba Alt_gr) klavišą ir spustelėti norimą raidę skaičių eilutėje.

Naudotojai

Linux sistemose, skirtingai negu "vienintelėje" sistemoje, niekas nedirba kaip pagrindinis administratorius. Todėl vienas iš pirmutinių darbų po Slackware įdiegimo yra naudotojo susikūrimas. Jį galima atlikti dviem būdais: pasinaudojus Slackware skriptu, palengvinančiu šią užduotį, arba standartinės, visose Linux distribucijose prieinamos, komandos pagalba. Kuris būdas skaitytojui labiau tinkamas - nuspręs pats. O kol kas prisijungiame root naudotoju (kuriam reikėjo sugalvoti slaptažodį Slackware diegimo metu), kadangi paprasto naudotojo sukūrimui yra reikalingos sistemos administratoriaus teisės.

Standartinis būdas

Šiuo keliu dažniausiai eina patyrę Linux naudotojai, dėl galimybės nurodyti visas reikalingas nuostatas vienoje eilutėje, be to, šis būdas veiks bet kurioje Linux sistemoje. Tuo tarpu tik ką išsiritusiam Linux naujakailiui čia kur kas lengviau pridaryti klaidų. Žinoma, iš klaidų mokomasi, o jų nedaro tik tie, kas nemėgina. Taigi šiai užduočiai reikalinga komanda yra:

# useradd

Įvedus šią komandą be jokių parametrų, bus parodytas pilnas galimų parametrų sąrašas.

Kaip pavyzdį Aului Batsiuviui sukursime naudotoją slapyvardžiu: kablukas, nustatysime prisijungimo komandinę eilutę į Bash, priskirsime pagrindinei grupei: users bei papildomoms grupėms:

  • audio - leidžia naudotis audio aparatine įranga bei programomis

  • video - ledžia naudotis vaizdo plokštės video spartinimu, kaip vaapi

  • plugdev - leidžia prijungti išorines laikmenas (usb raktai, diskai, mp3 grotuvai ir t.t.)

  • netdev - leidžia naudotis tinklo aparatine įranga

  • wheel - šiai grupei leidžiama įgyti root naudotojo teises per sudo komandą

  • games - leidžia naudotis vaizdo plokštės 3D spartinimu

  • cdrom - leidžia naudotis cd/dvd įrenginiu

  • power - leidžia išjungti, perkrauti arba užmigdyti kompiuterį

Surašius šiam tikslui reikalingus useradd komandos parametrus, komanda atrodys štai taip:

# useradd -g users -G audio,video,games,plugdev,netdev,cdrom,wheel,power -m -s /bin/bash kablukas

Panaudotos nuostatos:

-g - priskiria naudotoją pagrindinei grupei (šiuo atveju "users").
-G - priskiria naudotoją pagalbinėms grupėms (grupės išvardintos po -G, atskirtos kableliais)
-m - sukurti namų katalogą numatytoje sistemos vietoje (šiuo atveju /home/kablukas)
-s - nustatyti prisijungimo komandinę eilutę (šiuo atveju /bin/bash)

Naudotojas sukurtas, tačiau norint juo prisijungti, reikalingas slaptažodis, jį reikės užsidėti komandos passwd pagalba:

# passwd kablukas

Sistema paprašys įvesti slaptažodį, taigi sugalvokite ir įveskite. Patartina naudoti skaičių, bei DIDŽIŲJŲ ir mažųjų raidžių. Po slaptažodžio uždėjimo - turite savo naudotoją. Sveikinu!

Slackware būdas

Na o dabar aptarsime Slackware būdą, kuris išties yra skriptas, skirtas standartinės useradd komandos supaprastinimui, paverčiant ją dialogu. Todėl kurti naudotojus adduser pagalba yra taip pat paprasta, kaip atsakyti į klausimus ir paspausti enter. Užduotis ta pati, Aului Batsiuviui kursime naudotoją slapyvardžiu: kablukas, priskirsime pagrindinei grupei: users bei papildomoms grupėms: audio, video, games, plugdev, netdev, cdrom, power ir nustatysime komandinę eilutę Bash. Taigi pradedam, komandinėje eilutėje rašome:

# adduser

Sistema paprašys įvesti slapyvardį naujam naudotojui:

Login name for new user []:

Rašome kablukas ir spaudžiam enter. Sekantis prašymas bus įvesti naudotojo UID, daugeliui žmonių čia galima tiesiog spausti enter. Naudotojui bus priskirtas sekantis laisvas UID:

User ID ('UID') [ defaults to next available ]:

Toliau seka pagrindinės grupės parinkimas. Kaip matome, laužtuose skliaustuose įrašyta grupė users. Tai reiškia, kad spustelėjus enter, naudotojui bus automatiškai priskirta grupė users.:

Initial group [ users ]:

Reikės išvardyti pagalbines grupes. Šiuo atveju atskirti jas reikia tarpu, o ne kableliu:

:  audio video games plugdev netdev wheel cdrom power lp

Namų aplanko parinkimas, daugelis gali tiesiog spausti enter:

Home directory [ /home/kablukas ]

Komandinės eilutės pasirinkimas, dauguma naudojasi Bash, jei esate vienas iš jų, spaudžiam enter:

Shell [ /bin/bash ]

Galiausiai bus parodytas įvestų duomenų sąrašas ir reikės patvirtinti paspaudžiant enter arba atšaukti spustelėjus ctr+c:

New account will be created as follows:

---------------------------------------
Login name.......:  kablukas
UID..............:  [ Next available ]
Initial group....:  users
aAdditional groups:  audio,video,games,plugdev,netdev,cdrom,wheel,power
Home directory...:  /home/kablukas
Shell............:  /bin/bash
Expiry date......:  [ Never ]

This is it... if you want to bail out, hit Control-C.  Otherwise, press
ENTER to go ahead and make the account.

Paspaudus enter, programa pasiūlys įvesti papildomą informaciją apie naudotoją, kaip vardas, pavardė, telefonas, buto numeris ir pan. Tačiau šie duomenys nėra būtini, galima tiesiog spausti enter. Kol galiausiai bus prašoma įvesti naują slaptažodį šiam naudotojui:

Enter the new password (minimum of 5 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
Kaip ir naudojant standartinį būdą, slaptažodį turi sudaryti ne mažiau kaip 5 simboliai. Patartina, kad slaptažodis turėtų skaičių bei DIDŽIŲJŲ ir mažųjų raidžių.

Štai ir viskas, prisijungimui prie Slackware sistemos galima naudoti sukurtą naudotoją.

Sudo

Sudo programa leidžia įgyti root teises neįvedus root slaptažodžio. Patogu, kai reikia ką nors nustatyti, paleisti ar paredaguoti sistemoje, kas reikalauja root teisiu. Žinoma galima tieisog naudoti su ir įvedus root slaptažodį tapti root naudotoju, o kai root teisių nebereikia, tiesiog pasinaudoti komanda exit ir grįžti į prieš tai buvusį naudotoją. Jeigu sudo nėra reikalingas, šį skyrelį galima praleisti.

Aukščiau priskyrėme naudotoją kablukas grupei wheel, tačiau dar reikia aktyvuoti sudo. Tam reikės paredaguoti /etc/sudoers failą:

# nano /etc/sudoers

Tiesa, pagal nutylėjimą šis failas jau yra užpildytas, tereikia atkomentuoti (nutrinant "#" simbolį pradžioje eilutės) vieną iš dviejų eilučių pasirinktinai:

# %wheel ALL=(ALL) ALL

arba

# %wheel ALL=(ALL) NOPASSWD: ALL
Primosios atveju, naudotojai priklausantys grupei wheel galės įgauti root vartotojo teises pasinaudoję sudo komanda ir įvedę savo slaptažodį. Antroji eilutė leis atlitkti tą patį, tačiau, kaip sufleruoja pati eilutė, leis įgauti root teises neįvedus slaptažodžio.

Jeigu manote, kad tai saugu, galima atkomentuoti antrąją eilutę, šitaip sutaupysite vargo. Tačiau bet kas atsisėdęs prie jūsų kompiuterio galės daryti su jūsų sistema ką tik nori, vos įvedęs komandą sudo.

Bashrc

Pagal nutylėjimą, prisijungus tekstinėje aplinkoje yra vykdomas ~/.bash_profile, o ~/.bashrc vykdomas grafinėje aplinkoje įsijungus Terminal programą. Kadangi dviejų failų palaikymas vargina, o dirbti tenka abiejuose aplinkose, tai naudoju ~/.bash_profile kaip kreipinį į ~/.bashrc, nes taip patogiau. Taigi, redaguojam ~/.bash_profile:

$ nano ~/.bash_profile

Turinys paprasatas, tiesiog įsisavinam asmenines nuostatas iš ~/.bashrc:

#~/.bash_profile

# Source bashrc
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

Belieka susikurti ~/.bashrc:

$ nano ~/.bash_profile

Kuris užpildomas turiniu:

#~/.bashrc
## Source global definitions
if [ -f /etc/profile ]; then
    . /etc/profile
fi

# EXPORTS
#######################################################

export PS1="[\[\033[1;34m\w\033[0m]\n[\h \u]$ "
export EDITOR=/usr/bin/nano
export HISTFILESIZE=3000 # the bash history should save 3000 commands
export HISTCONTROL=ignoredups #don't put duplicate lines in the history.
alias hist='history | grep $1' #Requires one input

# Define a few Color's
BLACK='\e[0;30m'
BLUE='\e[0;34m'
GREEN='\e[0;32m'
CYAN='\e[0;36m'
RED='\e[0;31m'
PURPLE='\e[0;35m'
BROWN='\e[0;33m'
LIGHTGRAY='\e[0;37m'
DARKGRAY='\e[1;30m'
LIGHTBLUE='\e[1;34m'
LIGHTGREEN='\e[1;32m'
LIGHTCYAN='\e[1;36m'
LIGHTRED='\e[1;31m'
LIGHTPURPLE='\e[1;35m'
YELLOW='\e[1;33m'
WHITE='\e[1;37m'
NC='\e[0m'              # No Color

# ALIAS'S OF ALL TYPES SHAPES AND FORMS ;)
#######################################################

alias ls='ls --color --group-directories-first -lh'

Nuo šiol prisijungę į tekstinę aplinką, bei atsidarę naują grafinį terminalą matysite štai tokią komandinę eilutę:

CLI
Laužtiniuose skliaustuose mėlynu šriftu žymimas esamas aplankas. Šiuo metu naudotojas savo namų aplanke, kurį žymi tildės ~ ženklas. Žemiau, baltu šriftu užrašytas kompiuterio vardas (šiuo atveju takuan), bei naudotojo slapyvardis (meisteris).

Abu šiuos failus galima pasidėti į /etc/skel aplanką, tuomet naujai sukurtiems sistemos naudotojams .bash_profile, bei .bashrc bus pateikiami automatiškai.

Pravartu sukurti šiek tiek kitokius failus root naudotojui, tuomet darbo metu galima aiškiai susivokti kokiomis teisėmis dirbama. root naudotojui skirto ~/.bashrc versija:

#~/.bashrc
## Source global definitions
if [ -f /etc/profile ]; then
    . /etc/profile
fi

# EXPORTS
#######################################################

export PS1="[\[\033[1;31m\w\033[0m]\n[\h \u]# "
export EDITOR=/usr/bin/nano
export HISTFILESIZE=3000 # the bash history should save 3000 commands
export HISTCONTROL=ignoredups #don't put duplicate lines in the history.
alias hist='history | grep $1' #Requires one input

# Define a few Color's
BLACK='\e[0;30m'
BLUE='\e[0;34m'
GREEN='\e[0;32m'
CYAN='\e[0;36m'
RED='\e[0;31m'
PURPLE='\e[0;35m'
BROWN='\e[0;33m'
LIGHTGRAY='\e[0;37m'
DARKGRAY='\e[1;30m'
LIGHTBLUE='\e[1;34m'
LIGHTGREEN='\e[1;32m'
LIGHTCYAN='\e[1;36m'
LIGHTRED='\e[1;31m'
LIGHTPURPLE='\e[1;35m'
YELLOW='\e[1;33m'
WHITE='\e[1;37m'
NC='\e[0m'              # No Color

# ALIAS'S OF ALL TYPES SHAPES AND FORMS ;)
#######################################################

alias ls='ls --color --group-directories-first -lh'

Failas ~/.bash_profile tinka tas pats, kaip ir paprastam naudotojui.

Tinklas

Tikėtina, jog bus poreikis kompiuterio su Slackware sistema prijungimui prie kompiuterinių tinklų, bei interneto. Slackware sistemoje galima naudotis dviem būdais: NetworkManager bei rc.inet1 skripu. NetworkManager labiau tinkamas naudojantiems Slackware, kaip darbinę stotį (Desktop), kadangi tai labiau automatinis būdas, turintis patogų grafinį valdymą. Skriptais paprastai naudojamasi kuomet Slackware atlieka tarnybinės stoties funkcijas ir grafinė aplinka tiesiog neįdiegta. Slackware diegimo metu yra prašoma vieną iš šių būdų pasirinkti.

NetworkManager

Dar žinomas, kaip „paprastasis“ būdas. Kadangi juo naudojantis valdyti tinklo parametrus yra taip paprasta, kaip bet kur kitur. Tereikia suteikti vykdymo leidimą /etc/rc.d/rc.networkmanager bylai:

# chmod +x /etc/rc.d/rc.networkmanager

Ir prisijungus prie grafinės aplinkos valdyti tinklą iš valdymo juostos. Tiesa, taip pat yra ir tekstinis valdymo įrankis nmcli.

Nustatymai

Kadangi NetworkManager tėra apvalkalas Linux tinklo įrankiams, galima šiek tiek įtakoti jų naudojimą redaguojant /etc/NetworkManger/NetworkManager.conf bylą:

# nano /etc/NetworkManger/NetworkManager.conf

Galima nurodyti kuriuo DHCP klientu naudosis NM. Patariama naudoti dhclient, tačiau susidūrus su problemomis galima pamėginti internal, bei dhcpcd.

[main]
plugins=keyfile
dhcp=dhclient

Skriptai

Skriptas atsakingas už tinklo valdymą yra /etc/rc.d/rc.inet1, jo dėka tinklo plokštės paruošiamos darbui, nustatomi IP adresai, įjungiami DHCP klientai, uždedami aparatiniai adresai (MAC). Tiesa, minėti parametrai yra imami iš /etc/rc.d/rc.inet1.conf bylos. Prisijungimui prie belielių tinklų naudojamas skriptas /etc/rc.d/rc.wireless ir jo nustatymų byla /etc/rc.d/rc.wireless.conf. DNS adresai nustatomi /etc/resolv.conf byloje.

Valdymas

Pasinaudojus /etc/rc.d/rc.inet1 skriptu, galima įjungti/išjungti tinklą arba pavienes tinklo plokštes. Pavyzdžiui:

# /etc/rc.d/rc.inet1 restart

Išjungs ir vėl įjungs visas jame nustatytas tinklo plokštes. Atitinkamai galima naudoti start, bei stop komandas.

# /etc/rc.d/rc.inet1 eth0 restart

Ši komanda išjungs ir vėl įjungs tiktai eth0 plokštę.

Aukštas pasiekiamumas

Jeigu kompiuteryje yra dvi tinklo plokštės (arba daugiau), galima jas dubliuoti, apjungiant į vieną virtualią sąsają. Šiuo būdu vienai plokštei, ar maršrutizatoriaus prievadui pakibus, sugedus, taip pat nutraukus vieną iš LAN kabelių, kompiuteris nepraras ryšio. Savotiškas RAID tinklo plokštėms.

Įrankis

Tinklo plokščių apjungimui į vieną sąsają reikalingas nedidelis įrankis ifenslave. Ši programėlė pateikiama kartu su Linux kernelio išeities kodu, tačiau reikia patiems ją susikompiliuoti ir pasidėti į tinkamesnę vietą (/sbin). Tai atliekama šiais žingsniais:

# cd /usr/src/linux/Documentation/networking
# gcc -Wall -O -I/usr/src/linux/include ifenslave.c  -o ifenslave
# cp ifenslave /sbin/ifenslave

Virtuali sąsaja

Virtuali tinklo sąsaja sukuriama pasinaudojus paleisties skriptu (rc.bond), kurį reikia susikurti patiems:

# nano /etc/rc.d/rc.bond

Ir užpildyti turiniu:

#!/bin/sh

case "$1" in
  'start')
    echo "start bond0"
    modprobe bonding mode=balance-rr miimon=100
    modprobe tg3
    ifconfig bond0 up
    ifenslave bond0 eth0
    ifenslave bond0 eth1
    #You don't necesarily need to change the hardware address
    #It will take it from the first hardware interface
    ifconfig bond0 hw ether 4e:a8:be:c7:24:ec
    ;;
  'stop')
    ifconfig bond0 down
    rmmod bonding
    rmmod tg3
  ;;
  *)
  echo "Usage: $0 {start|stop}"
  ;;
esac

Tam, kad šis skriptas būtų įvykdytas kiekvieną kartą įjungus kompiuterį, reikia pridėti kelias eilutes į /etc/rc.d/rc.M skriptą.

# nano /etc/rc.d/rc.M

Jame, virš rc.inet.1 eilutės reikia pridėti eilutes rc.bond įvykdymui:

# Initialize the networking hardware.

# If script rc.bond is executeable then start it
if [ -x /etc/rc.d/rc.bond ]; then
  . /etc/rc.d/rc.bond start
fi
if [ -x /etc/rc.d/rc.inet1 ]; then
  . /etc/rc.d/rc.inet1
fi

Nuo šiol, kiekvienos įkrovos metu, sistema patikrins ar byla /etc/rc.d/rc.bond turi vykdymo (x) leidimą, jei turi – bus įvykdyta. Todėl belieka šį leidimą suteikti:

# chmod +x /etc/rc.d/rc.bond

Arba nuimti (nenorint, jog skirptas būtų vykdomas įkrovos metu):

# chmod -x /etc/rc.d/rc.bond

Nustatymai

Turim veikiančią virtualią sąsają bond0, nuo šiol ji gali būti valdoma ir nustatoma lygiai taip pat, kaip ir įprastinės tinklo sąsajos. Redaguojant /etc/rc.d/rc.inet1.conf bylą.

# nano /etc/rc.d/rc.inet1.conf

Tiesa, šioje byloje dar reikia pridėti sekciją skirtą `bond0´ sąsajai:

# Config information for bond0:
IFNAME[6]="bond0"
IPADDR[6]=""
NETMASK[6]=""
USE_DHCP[6]="yes"
DHCP_HOSTNAME[6]=""

Šaltiniai

Grafinė aplinka

Pilnai įdiegta Slackware turi keletą grafinių aplinkų, kaip KDE, XFCE, fluxbox, blackbox, wmaker, fvwm2, twm. Taigi, pasinaudojant xwmconfig įrankiu, reikia pasirinkti, kuri iš sistemoje įdiegtų aplinkų bus naudojama:

$ xwmconfig

Iš pateikto sąrašo pasirinkus norimą aplinką, bus sugeneruotas ~/.xinitrc failas. Nuo šiol, pasinaudojus komanda startx bus paleista pasirinktoji grafinė aplinka.

Norint, kad Slackware startuotų į grafinę aplinką, reikia paredaguoti /etc/inittab failą:

# nano /etc/inittab

Jame reikia nurodyti, ketvirtąjį paleisties lygmenį:

# Default runlevel. (Do not set to 0 or 6)
id:4:initdefault:

Programų Paketai

Kaip didžiosios daugumos kitų operacinių sistemų, taip ir Slackware standartinis programų rinkinys netinka visiems ir viskam. Ir tai nieko nuostabaus, nes kiekvienas žmogus kompiuteriu naudojasi vis kitaip ir vis kitokiems poreikiams. Todėl reikalingos įvairios pagalbinės programos ir būdai joms gauti, įdiegti ir šalinti, kai tampa nebereikalingos. Slackware naudojami .tgz/.txz programų paketai-archyvai. Kaip įsitikinsite vėliau, tai įgalina labai greitą ir paprastą programų diegimą: užtenka viso labo išskleisti paketą į šakninę direktoriją, o iškleidimo proceso palengvinimui yra įrankiai, kurie atlieka tai automatiškai.

O ką daryti, kai reikia pašalinti programas iš sistemos? Ne bėda, /var/log/packages duomenų bazėje yra saugomi įrašai apie įdiegtus programų paketus, kiekvienam paketui priklausančius failus ir jų buvimo vietą. Todėl įvykdžius komandą, skirtą paketui šalinti, pagal įrašus šioje duomenų bazėje failai yra pašalinami iš sistemos. Vėl gi, paprasta ir švaru. Naudotojui belieka apsispręsti, ką daryti su programos konfigūracijos failais: palikti ar pašalinti.

Sandara

Paketas susideda iš dviejų dalių: programos failų, ir failų reikalingų Slackware paketų valdymo sistemai. Programų failai suspaudžiami taip, kad išskleidus paketą į šakninę / (root) direktoriją, patektų į atitinkamas direktorijas. Kiti failai, padedami į /install aplanką, esantį pakete.

slack-desc ir doinst.sh failai yra dažniausiai sutinkami /install aplanke. Šie failai paketo diegimo metu nėra išskleidžiami į failų sistemą. slack-desc - paprastas tekstinis failas, kuriame laikomas programinės įrangos aprašymas, naudojamas paketų peržiūros metu. doinst.sh - Shell skriptas kurio paskirtis - įvykdyti komandas ar atlikti sistemos pakeitimus, kurie negali būti padaryti koreguojant paketo turinį. Diegiant paketą, šis failas vykdomas pats paskutinis.

Slackware paketai sukuriami kompiliuojant išeities tekstus ir gautas programas talpinant į .tar.gz paketą, kurio diegimo metu programa padedama į atitinkamą sistemos direktoriją. Linux operacijų sistema susideda iš daugybės tokių paketų. Visų jų kompiliavimas ir priežiūra, gali būti be galo sudėtinga ar net vargiai įmanoma veikla (patys galite įsitikinti pamėginę pasidaryti savo LFS (Linux From Scratch operacijų sistemą)). Todėl šio reikalo palengvinimui naudojami SlackBuild skriptai, kuriuose surašytos komandos bei parametrai, reikalingi programos kompiliavimui bei paketo sudarymui. Turint SlackBuild skriptą ir aukščiau minėtus slack-desc ir doinst.sh failus, gaunamas pilnai paruoštas diegimui Slackware paketas. Vos tik paleidus SlackBuild skriptą, programos išeities tekstai automatiškai parsiunčiami, išskleidžiami, kompiliuojami. Gauta programa talpinama į paketą drauge su slack-desc bei doinst.sh ir gautas paketas padedamas /tmp direktorijoje. Patogu, tiesa?

Valdymas

Slackware paketų valdymo sistema susideda iš viso labo keturių programų: installpkg - įdiegti paketą, upgradepkg - atnaujinti paketą, removepkg - pašalinti paketą bei pkgtool - ncurses meniu įrankis paketų peržiūrai ir valdymui. Šitokiu būdu, paketai gali būti įdiegiami, atnaujinami, bei šalinami iš vietinių laikmenų. Skirtingai nuo daugumos paketų valdymo sistemų, ši neseka ir nevaldo programų priklausomybių. Tai - naudotojo pareiga. Jis turi pasirūpinti, kad visos programai reikalingos bibliotekos bei pagalbinės programos būtų įdiegtos.

Be minėtų programų, egzistuoja ir dar keli paketų valdymo būdai.:

  • Slackpkg

  • SBopkg

Kai kurie iš jų nėra visiškai oficialiai palaikomi, tad naudodami juos, rizikuojate sistemos stabilumu, savo bei visuomenės gerove.

Slackpkg

Įrankis skirtas diegti paketams tinklu/internetu iš oficialių Slackware repozitorijų. Bet galimybės tuo nesibaigia. Slackpkg taip pat sėkmingai moka sekti, parsiųsti ir įdiegti sistemos pataisymus, naujus paketus ir išvalyti Slackware nuo visų neoficialių paketų. Taip pat labai praverčia norint atnaujinti Slackware į naujesnę versiją bei diegiant minimalią sistemą. Be to, šis įrankis dirba taip patikimai, kad yra įtrauktas ir į oficialų Slackware paketų medį, todėl šiuo metu priskiriamas prie oficialių Slackware paketų valdymo įrankių.

SBopkg

Šis įrankis nėra skirtas darbui su oficialiais paketais, tačiau yra labai populiarus Slackware naudotojų tarpe. sbopkg yra nedidelė programa - įrankis, skirtas SlackBuild skriptų parsiuntimui iš Slackbuilds.org skriptų repozitorijos, kurioje yra laikomi visi neoficialūs SlackBuild skriptai, skirti įvairiausioms programoms, kurios nepatenką į oficialų Slackware programų rinkinį. Kadangi SlackBuild skriptai naudojami oficialių paketų gavimui, tai kodėl jų nepanaudojus ir papildomų programų paketams gauti?

Diegimas

Turint sustyguotą Slackware sistemą, galima pradėti pritaikyti ją savo poreikiams. Diegti papildomas programas, atsikratyti nereikalingomis programomis. Dar labiau optimizuoti sistemos greitaveiką, gražinti grafinę aplinką ir šitaip susikurti sau tobulą darbo ir pramogų įrankį!

Pirmiausia, reikėtų įsidiegti sbopkg programėlę, kadangi, tai labai šaunus įrankis automatizuotai kompiliuoti ir diegti programas iš Slackbuilds.org repozitorijos. Parsisiunčiame ir diegiame sbopkg:

# wget http://sbopkg.googlecode.com/files/sbopkg-0.37.0-noarch-1_cng.tgz && installpkg sbopkg-0.37.0-noarch-1_cng.tgz

Sinchronizuojame:

# sbopkg -r

Nuo šiol susiradę norimą programą (pvz.: slim) Slackbuilds.org galėsite lengvai ją sukompiliuoti ir įsidiegti:

# sbopkg -i slim

Prieš tai rekomenduojama susirasti programą svetainėje ir perskaityti informaciją apie priklausomybes, patarimus ir pan.

Daugiau informacijos apie sbopkg galimybes:

$ info sbopkg

Taip pat yra keletas patikimų ir naudingų repozitorijų gataviems programų paketams:

Tarnybinė stotis

Dėl savo patikimumo, paprastumo, bei nesudėtingo palaikymo, Slackware dažnai naudojama kaip tarnybinė stotis (server). Tai įvairios paskirties aptarnaujantysis kompiuteris, į kurį kreipiasi kiti kompiuteriai (client) norėdami gauti tam tikros informacijos ar paslaugų, kurias suteikia tam tikros tarnybos. Labiausiai paplitusios yra http, mysql, ftp, bei samba tarnybos, tačiau tai tik maža dalis Slackware tarnybinės stoties galimybių.

DHCP tarnyba

Gana paplitęs Linux kompiuterių panaudojimo būdas yra serveris-maršrutizatorius. Tokie kompiuteriai ne tik aptarnauja jūsų svetaines, saugo jūsų failus, bet ir dalina internetą namams. O koks gi maršrutizatorius be DHCP paslaugos? Juk niekam nesinori suvedinėti IP adresų rankiniu būdu. Laimė, Slackware pagal nutylėjimą siūlo net dvi galimas DHCP tarnybas: dhcpd, bei dnsmasq. Pastaroji yra labiau DNS tarnyba su dhcpd galimybėmis, tuo tarpu dhcpd yra paprasta, maža, lengvai valdoma DHCP tarnyba visiškai UNIX dvasioje (rašyk programą vienai paskirčiai, kurią atliktų gerai).

Nustatymai

Dhcpd nustatymai nuskaitomi iš /etc/dhcpd.conf bylos. Pagal nutylėjimą ši byla esti visiškai tuščia. Visi galimi nustatymai su aprašymais yra surašyti pavyzdinėje byloje /etc/dhcpd.conf.example. Kaip ir visose Slackware bylose, gausūs ir aiškūs komentarai padeda susigaudyti net ir neskaičiusiam dokumentacijos naudotojui. Taigi, peržiūrėję minėtą bylą, išsirinktus nustatymus dedame į /etc/dhcpd.conf:

# nano /etc/dhcpd.conf

# dhcpd.conf
#
# Configuration file for ISC dhcpd (see 'man dhcpd.conf')
#

# Pagrindinis DHCP serveris vietiniame tinkle
authoritative;

# Nurodome tinklus ir potinklius kuriuose veiks
# DHCPD serveris. Taip pat laisvai išduodamų IP
# ruožą.
subnet 192.168.1.0 netmask 255.255.255.0 {
option broadcast-address 192.168.1.255;
option domain-name-servers 212.59.1.1;
option subnet-mask 255.255.255.0;
option routers 192.168.1.1;
range 192.168.1.50 192.168.1.150;
default-lease-time 600;
max-lease-time 7200;
}

# Priskiriame tam tikrus IP adresus kompiuteriams pagal mac adresus.
# IP adresai turi būti už numatyto ruožo (range) ribų.
host direktorius {
  hardware ethernet 00:21:6a:3b:35:6e;
  fixed-address 192.168.1.2;
}

Paleistis

Norint paleisti dhcpd, reikia susikurti paleisties skriptą /etc/rc.d/rc.dhcpd:

# nano /etc/rc.d/rc.dhcpd

Užpildome šiuo turiniu:

#
# /etc/rc.d/rc.dhcpd
# This shell script takes care of starting and stopping
# the ISC DHCPD service
#

# Put the command line options here that you want to pass to dhcpd:
DHCPD_OPTIONS="-q eth1"

[ -x /usr/sbin/dhcpd ] || exit 0

[ -f /etc/dhcpd.conf ] || exit 0

start() {
# Start daemons.
echo -n "Starting dhcpd: /usr/sbin/dhcpd $DHCPD_OPTIONS "
/usr/sbin/dhcpd $DHCPD_OPTIONS
echo
}
stop() {
# Stop daemons.
echo -n "Shutting down dhcpd: "
killall -TERM dhcpd
echo
}
status() {
PIDS=$(pidof dhcpd)
if [ "$PIDS" == "" ]; then
echo "dhcpd is not running!"
else
echo "dhcpd is running at pid(s) ${PIDS}."
fi
}
restart() {
stop
start
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
;;
esac
exit 0
Nepamirškite nurodyti savo tinklo plokštės, kurios klausys dhcpd tarnyba. Eilutė: DHCPD_OPTIONS="-q eth1

Nustatome paleisties leidimą:

# chmod +x /etc/rc.d/rc.dhcpd

Dabar redaguojame failą /etc/rc.d/rc.local ir pridedame eilutes reikalingas rc.dhcpd paleidimui:

# nano /etc/rc.d/rc.local

# Paleidžiam DHCP tarnybą
if [ -x /etc/rc.d/rc.dhcpd ]; then
/etc/rc.d/rc.dhcpd start
f

Kompiuteriui kraunantis, bus patikrinta ar byla /etc/rc.d/rc.dhcpd turi vykdymo leidimą, jei turi, dhcpd tarnyba bus paleista.

Dabar galima paleisti dhcpd rankiniu būdu:

# /etc/rc.d/rc.dhcpd start

Taip pat galima stabdyti (stop), patikrinti būseną (status), paleisti iš naujo (restart).

Štai ir viskas, galima mėgautis patogiu gyvenimu.

FTP tarnyba

Ftp tarnyba leidžia susikurti failų keitimosi stotį. Slackware pagal nutylėjimą pateikia vsftpd, bei proftpd ftp programas šiai tarnybai atlikti.

VSFTPD

Very Secure FTP Daemon - maža, lengva ir paprasta FTP tarnyba. Dėl savo paprastumo puikiai tinka asmeninėms, bei mažai naudotojų turinčioms FTP talpykloms.

Nustatymai

Vsftpd darbo ypatumai nustatomi keičiant /etc/vsftp.conf failo turinį:

# nano /etc/vsftpd.conf

Slackware sistemoje ši byla gausiai aprašyta, todėl patariu pasidaryti jos kopiją, o tada susikurti tuščią, švarią bylą:

# mv /etc/vsftpd.conf /etc/vsftpd.conf.orig && nano /etc/vsftpd.conf

Šio failo turinys, nurodantis drausti viešus prisijungimus, leisti vietinių naudotojų prisijungimus, bei įjungti žurnalo vedimą į /var/log/vsftpd.log bylą:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
connect_from_port_20=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
nopriv_user=ftp
ftpd_banner=Šaunusis FTP Serveris!
chroot_local_user=YES
ls_recurse_enable=YES
listen=NO

pasv_promiscuous=YES
pasv_enable=YES
pasv_min_port=62000
pasv_max_port=64000
pasv_addr_resolve=NO
pasv_address=jūsų serverio IP
Reikės pasirūpinti, kad prievadų ruožas nuo 6200 iki 6400 būtų atidarytas (arba peradresuotas) vsftpd tarnybinei stočiai.
Paleistis

Slackware sistemoje, vsftpd, bei proftpd tarnybos paleidžiamos per inetd tarnybą. Atkomentuojam vsftpd eilutę /etc/inetd.conf byloje:

# nano /etc/inetd.conf

# Very Secure File Transfer Protocol (FTP) server.
ftp     stream  tcp     nowait  root    /usr/sbin/tcpd  vsftpd

Paleidžiam VSFTPD:

# /etc/rc.d/rc.inetd start

Naudotojai

Jeigu yra nustatymas local_enable=YES tuomet vsftpd nuskaito /etc/passwd, reiškia jungtis prie FTP tarnybos gali visi šios sistemos naudotojai.

Kūrimas

Šiokio tokio saugumo vardan, būtų protinga kurti naudotojus be privilegijų:

# useradd -b /srv/ftp -m -k /etc/fskel -s /bin/false -N -g ftp petras

Bus sukurtas naudotojas petras, kurio komandų eilutė yra fiktyvi (-s /bin/false), namų aplankas /srv/ftp/petras (-b /srv/ftp -m), į namų aplanką perkeliamas turinys iš /etc/fskel. Naudotojas priskiriamas ftp grupei (-g ftp), o naudotojo grupė petras nesukuriama (-N).

Patogu įtraukti šią komandą į apvalkalą, pridedant alias eilutę į /root/.bashrc bylą:

# alias ftpuseradd='useradd -b /srv/ftp -m -k /etc/fskel -s /bin/false -N -g ftp'

Nuo šiol, ftp naudotojus galima kurti tiesiog ftpuseradd komandos pagalba:

# ftpuseradd jonas

Sukurtiems naudotojams reikia uždėti slaptažodžius:

# passwd jonas

Tam, kad vsftpd suprastų fiktyvius naudotojus, reikia pridėti /bin/false į apvalkalų sąrašą:

# nano /etc/shells

/bin/bash
/bin/tcsh
/bin/csh
/bin/ash
/bin/ksh
/bin/zsh
/bin/false

Valdymas

Vsftpd palaiko ir naudotojų valdymo galimybę. Galima sudaryti sąrašą naudotojų, kuriems leidžiama, arba neleidžiama naudotis ftp tarnyba. Pirmiausia, reikia įjungti šį valdymą vsftpd.conf byloje:

# nano /etc/vsftpd.conf

Reikia pridėti eilutes userlist_enable=YES, bei userlist_deny=NO

userlist_enable=YES
userlist_deny=NO
userlist_deny=NO nurodo, jog sąraše esantys naudotojai, bus tie, kuriems leidžiama naudotis ftp tarnyba. Pakeitus reikšme į YES, sąrašas tampa tų, kuriems neleidžiama naudotis ftp tarnyba

Belieka sukurti bylą vsftpd.user_list ir joje įrašyti naudotojus, kuriems bus leista jungtis prie ftp tarnybos:

# nano /etc/vsftpd.user_list

jonas
petras
ftp
aulas
batsiuvys

Šifravimas

Turint SSL liudijimą galima šifruoti ftp prisijungimus, bei srautą. Tereikia įjungti šią paslaugą vsftpd nustatymuose, pridedant SSL nuostatas:

# nano /etc/vsftpd.conf

# SSL šifravimas
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=NO

ssl_tlsv1=NO
ssl_sslv2=NO
ssl_sslv3=YES

rsa_cert_file=/etc/liudijimai/liudijimas.pem
rsa_private_key_file=/etc/liudijimai/liudijimas.key
ssl_ciphers=HIGH
ssl_request_cert=NO
require_ssl_reuse=NO

Užrašai

Vienoda pelytės išvaizda QT programoms GTK terpėje

Sistemos mąstu:

# mkdir  /usr/share/icons/default
# nano /usr/share/icons/default/index.theme

Naudotojo mąstu:

$ mkdir ~/.icons/default
$ nano ~/.icons/default/index.theme

index.theme turinys:

[Icon Theme]
Inherits=HaikuHand # arba jūsų temos pavadinimas

Naudingos nuorodos

Naudingos nuorodos anglų kalba, apie Slackware operacijų sistemą:

  • SlackDocs - Oficiali wiki svetainė, kurioje gausu dokumentacijos, gidų ir naudingos informacijos.

  • LQ Slackware - Aktyviausias Slackware forumas, čia didžiausia tikimybė rasti pagalbos įvairiais Slackware kasdienybės klausimais.

  • SlackBook - Slackware knyga, rekomenduojamas skaitinys ne tik šviežiam Slackware naudotojui, bet ir žmogui, norinčiam artimiau susipažinti su Linux sistemomis.

  • SlackBuilds - SlackBuild skriptų repozitorija, puikus papildomos programinės įrangos šaltinis.

  • Third party package managers - Plačiau apie neoficialias paketų valdymo sistemas.