setala icon

SM4DOCS.LST

setala | PRO | 04/29/21 11:32:27 AM UTC | 0 ⭐ | 10522 👁️ | Never ⏰ | []
Tera Term |

0 B

|

None

|

0 👍

/

0 👎

cat *
TKK/Tietojenk{sittelyopin lab.
3.76.127 Assembler
Kalle Hukkinen                                          04.03.1982
 
 
        Joitakin assembler-ohjelmointiin liittyvi{ vihjeit{:
 
 
Viitteiden k{yt|st{
 
        --[l{ k{yt{ viitteennimi{, jotka ovat samoja kuin esimerkiksi
          jotkin konek{skyt.
        --[l{ k{yt{ pitempi{ viitteit{, kuin mit{ assembler tunnistaa.
        --K{yt{ viitteiss{ vain kirjain- ja numeromerkkej{.
          Aloita viite kirjaimella.
        --K{yt{ viitteit{, jotka kuvaavat merkityst{{n, siis
          esim. 'addword' eik{ 'xxx'.
        
 
Vakiot ja lausekkeet
        
        --K{yt{ vakioissa selkeint{ lukuj{rjestelm{{,
          esim. laskurit desimaalisina, maskit oktaalisina
          tai hexana, ASCII-merkit merkkivakioina jne.
        --Erota data ja osoitteet.
        --Pid{ lausekkeet mahdollisimman yksinkertaisina.
        
 
Kommentoinnista
        
        --Kommentin tulisi kertoa miten joku k{sky vaikuttaa
          teht{v{n suoritukseen eik{ miten se vaikuttaa keskusyksik|n
          toimintaan, siis EI n{in: "add 1 to accumulator"
          tai "hyp{t{{n alkuun", vaan n{in:
          "line feed to tty" tai "joko l{mp|tila ylitti raja-arvon?".
        --Kommentin on oltava lyhyt ja selke{
        --[l{ k{yt{ eriskummallisia lyhenteit{.
        --Kommentoi kaikki vakio- ja muuttujam{{rittelyt.
        --Kommentoi kunkin modulin tai aliohjelman toiminta,
          parametrinv{litys sek{ rekisterien k{ytt|.
        --Pid{ k{ytt{m{si terminologia yhten{isen{.
          Kommentoidessa ei tarvitse pel{t{ toistoa.
.pl 66
.ll 70
.he 'TKK/Tietojenk{sittelyopin lab.''DOKUMENTOINTIOHJE'
.fo ''-%-''
.m2 0
3.76.127 Assembler
.br
Kalle Hukkinen                                              20.01.1982
.m2 2
.in 18
.bl 4
.ti 0
Dokumentointiohjeet:
 
 
 
.ti16
1.Ohjelmadokumentti on perusrakenteeltaan samanlainen
kuin korkean tason kielill{ kirjoitettujen ohjelmien
dokumentit.
 
.ti16
2.Mit{{n erityist{ dokumentointilomakkeistoa ei tarvitse
k{ytt{{. Suosittelen tutustumista UNIXin roff ja nroff
tekstinmuokkausohjelmistoihin. Lyhyt kuvaus l|ytyy
artikkelista 'UNIX For Beginners', ja 
enemm{n tietoja on manuaaleissa 'UNIX Programmer's Manual' sek{
'NROFF User's Manual'.
 
.ti16
3.Dokumentin tulee selke{sti kuvata ohjelman rakenne
modulikuvauksin, sek{ eri aliohjelmien parametriv{litys.
 
.ti16
4.Varatut muuttuja-alueet sek{ niiden k{ytt| on selostettava.
 
.ti16
5.Ohjelmasta tulee olla algoritmikuvaus jollain korkean
tason kielell{ (Pascal, Simula, Algol, mutta EI Fortran)
tai pseudokielell{. Kuvausta ei tarvitse testata tai
k{{nt{{.
 
.ti16
6.Hyvin kommentoitu ohjelmalistaus liitet{{n dokumenttiin.
Assembler-ohjelmoinnissa kommentointi on ehdottomuus.
Kommentoinnin on oltava toimenpiteit{ selkiytt{v{{,
ei siis pid{ kertoa, ett{ siirret{{n ykk|nen rekisteriin
nolla, vaan miksi n{in tehd{{n!
 
.ti16
7.K{ytt|ohjeet ja esimerkit
 
                     UNIX V6 boottaus AMPEX levylt{
                     =----------------------------=
 
      Kaada kone HALLITUSTI, eli anna sync komento kun olet logannut
      sis{{n. Tai loggaa sis{{n projectille sync.
      HETI kun saat uudestaan promptin, ('#' tai '%')  paina
      HALT nappula alas. (Valkoinen nappula prosessorissa)
 
      T{m{n j{lkeen pit{{ harrastaa hieman koneen ohjelmoimista
      keinukytkimilt{: Sy|tet{{n oktaalinen osoite (esim) 001000
      antamalla se keinukytkimilt{ (Nappula 9 alhaalla, muut ylh{{ll{).
 
      Tee seuraavan ohjeen mukaan:
      (Kaikki esiintyv{t luvut ovat OKTAALILUKUJA !!!)
 
        001000 LOAD ADDRS        (Lataa osoitteen 001000)
        012737 DEP               (Painetaan KERRAN punaista DEP nappulaa)
        000013 DEP
        176306 DEP
        000001 DEP
        001000 LOAD ADDRS        (Lataa uudestaan osoite 001000)
               HALT -> ENABLE    (Painettaessa alhaalla olevaa HALT nappulaa
                                  se nousee yl|s ENABLE asentoon.)
               START             (Paina ja p{{st{ irti, kone k{ynnistyy
                                  ja j{{ ikuiseen silmukkaan)
               ENABLE -> HALT    (Pys{ytt{{ koneen)
        000000 LOAD ADDRS        (Lataa osoitteen 000000)
               HALT -> ENABLE    (HALT nappula ENABLE asentoon)
               START             (K{ynnist{{ koneen)
 
        Konsolina olevalle p{{tteelle ilmestyy ( -tynee?) '@', johon
        kirjoitetaan unix ja RETURN (ilman v{lily|ntej{!)
 
        T{m{n j{lkeen kone k{ynnistynee normaalisti, ja kysyy
        p{iv{m{{r{n/kellonajan, jonka j{lkeen se hoitaa itse loput.
 
        Jos esiintyy ongelmia (esim. root device corrupted),
        ota yhteytt{ Jukiin.
 
                  Jukka Virtanen,  TeKoLa,  451-2624,  U249
                  Puhelin Kotiin   522558
 
 
Levynpaikkailuesimerkki
Kalle Hukkinen  10.03.1982
 
 
# dcheck /dev/rrk0
/dev/rrk0:
entries link cnt
561     1       0
565     1       0
584     1       0
# icheck /dev/rrk0
/dev/rrk0:
 3096 dup; inode=0, class=free
 3102 dup; inode=0, class=free
 1266 dup; inode=0, class=free
3 dups in free
spcl      31
files    423
large    127
direc     35
indir    127
used    3701
free     215
# ncheck -i 561 565 584 /dev/rrk0
/dev/rrk0:
584     /tmp/atm1a
565     /tmp/atm2a
561     /tmp/atm3a
# rm /tmp/atm*
/tmp/atm1a (0 mode)?y
/tmp/atm2a (0 mode)?y
/tmp/atm3a (0 mode)?y
/tmp/e00117 (600 mode)?
/tmp/e00235 (600 mode)?
# icheck -s /dev/rrk0
/dev/rrk0:
#
#
# dcheck /dev/rrk1
/dev/rrk1:
#
# icheck /dev/rrk1
/dev/rrk1:
missing    4
spcl       0
files    631
large    128
direc    144
indir    128
used    3813
free     968
# icheck -s /dev/rrk1
/dev/rrk1:
#
/ T{m{ pieni esimerkkiohjelma k{{nt{{ p{{ttelt{ annetun
/ tekstirivin merkit k{{nteiseen j{rjestykseen
 
/ Kalle Hukkinen   26.11.1981
 
buflen  = 80.           /puskurin pituus m{{ritell{{n vakioksi
cr      = 15            /carriage return
lf      = 12            /line feed
 
        .text
main:
        mov     $1,r0           /r0 sis{lt{{ nyt tiedostonumeron write-kutsua
        sys     write;info;infolen / varten  (tty kuvaputki = 1)
        clr     r0              /r0 sis{lt{{ systeemikutsua read varten
        sys     read;iobuf;buflen / tiedostonumeron (tty n{pp{imist| = 0)
        bcs     ex              /read-virhetilanteessa carry asettuu
        mov     r0,r2           /read palauttaa r0:ssa luettujen merk. m{{r{n
        beq     ex              /jos se oli 0, poistutaan
        mov     $iobuf,r1       /puskurin alkuosoite rekisteriin r1
1:      movb    (r1)+,-(sp)     /siirret{{n merkit puskurista pinoon
        dec     r0              /merkkien m{{r{n laskuri
        bne     1b              /joko siirrettiin kaikki ??
 
        mov     $iobuf,r1       /puskurin alkuosoite
        mov     r2,r0           /merkkien m{{r{ oli muistissa r2:ssa
2:      movb    (sp)+,(r1)+     /siirret{{n merkit nyt k{{nteisess{
        dec     r0              /  j{rjestyksess{ pinosta puskuriin
        bne     2b              /joko siirrettiin ?
        movb    $cr,(r1)+       /pannaan puskuriin viel{ return
        movb    $lf,(r1)+       /  ja linefeed
        clrb    (r1)+           /  sek{ loppuun nul
 
        mov     $1,r0           /r0:ssa tiedostonumero (tty kuvaputki = 1)
        sys     write;iobuf;buflen  /puskurin tulostus
ex:     sys     exit
 
        .data
info:   <K{{nnet{{np{ rivin merkit v{{rinp{in \nAnna jokin teksti!\n\0>
infolen =.-info
 
        .bss
iobuf:  .=.+buflen              /puskurin koko on buflen merkki{
 
 
TKK/TeKoLa                                      UNIX-k{ytt|j{rjestelm{
Kalle Hukkinen                                              17.11.1981
 
 
 
 
Floating-point lukujen laskutoimitukset SM-4:n UNIX-assemblerilla
 
 
                  Floating-point lukujen formaatti on sama kuin PDP-11
                  formaatti, joka ei kuitenkaan ole yksityiskohdiltaan
                  aivan sama kuin IEEE:n  standardi  minitietokoneiden
                  floating-point esitysmuodosta.  PDP-11 koneessa flo-
                  tari on kaksi sanaa  (32  bitti{).   Ylin  bitti  on
                  merkkibitti,  kahdeksan  seuraavaa  ovat eksponentti
                  excess-128 muodossa,  ja  mantissa  on  normalisoitu
                  (ylin  bitti  on  aina  1 ja siten n{kym{t|n) siten,
                  ett{ bin{{ripiste on  koko  mantissan  edess{,  siis
                  n{kym{tt|m{n bitin edess{!
                  (0.5 <= mantissa < 1.0)
 
                  K{ytett{viss{  ovat kaikki nelj{ peruslaskutoimitus-
                  ta.   UNIX-assembler  ei  kuitenkaan   tunne   n{it{
                  nimenomaisia flotarik{skyj{, vaan generoi koodia ns.
                  PDP-11 floating-point- prosessoria varten, jota taas
                  ei  SM-4 laitteistossa ole.  Niinp{ k{skyt joudutaan
                  kirjoittamaan oktaalisessa muodossa  assemblerkoodin
                  sekaan:
                          07500r          / fadd  r
                          07501r          / fsub  r
                          07502r          / fmul  r
                          07503r          / fdiv  r
                  joissa  r  on  siis  jokin  osoitinrekisteri,  jonka
                  osoittamassa muistipaikassa operandit ovat:
                          (r)             high source
                                                  (eniten merk. osa)
                          (r)+2           low  source
                          (r)+4           high destination
                          (r)+6           low  destination
                  Vastaus tulee dest. operandiin (r)+4 ja (r)+6 , joka
                  siis tuhoutuu.
 
                  Esim.
                          .text
                          mov     $oprnds,r1
                          075021                  /fmul   r1
                          sys     exit
 
                          .data
                   oprnds:047700
                          000000
                          047640
                          000000
 
                  T{m{ pieni ohjelmaesimerkki kertoo kesken{{n flotar-
                  it 047700000000 ja 047640000000,  ja  vastaus  tulee
                  j{lkimm{isen  p{{lle  muistipaikkaan oprnds+4, johon
                  my|s r1 laskutoimituksen j{lkeen osoittaa.
 
 
                                 -1-
 
 
 
.pl 66
.ll 70
.he 'TKK/TeKoLa''UNIX-k{ytt|j{rjestelm{'
.fo ''-%-''
.m2 0
Kalle Hukkinen                                              17.11.1981
.br
.m2 2
.in 18
.bl 4
.ti 0
Floating-point lukujen laskutoimitukset SM-4:n UNIX-assemblerilla
 
 
Floating-point lukujen formaatti on sama kuin PDP-11 formaatti, joka
ei kuitenkaan ole yksityiskohdiltaan aivan sama kuin
IEEE:n standardi minitietokoneiden floating-point esitysmuodosta.
PDP-11 koneessa flotari on kaksi sanaa (32 bitti{).
Ylin bitti on merkkibitti, kahdeksan seuraavaa ovat eksponentti
excess-128 muodossa, ja mantissa on normalisoitu (ylin bitti on aina 1 ja
siten n{kym{t|n) siten, ett{ bin{{ripiste on koko mantissan
edess{, siis n{kym{tt|m{n bitin edess{!
.br
(0.5 <= mantissa < 1.0)
 
K{ytett{viss{ ovat kaikki nelj{ peruslaskutoimitusta.
UNIX-assembler ei kuitenkaan tunne n{it{ nimenomaisia
flotarik{skyj{, vaan generoi koodia ns. PDP-11 floating-point-
prosessoria varten, jota taas ei SM-4 laitteistossa ole.
Niinp{ k{skyt joudutaan kirjoittamaan oktaalisessa muodossa
assemblerkoodin sekaan:
        07500r          / fadd  r
        07501r          / fsub  r
        07502r          / fmul  r
        07503r          / fdiv  r
.br
joissa r on siis jokin osoitinrekisteri, jonka osoittamassa
muistipaikassa operandit ovat:
        (r)             high source
                                (eniten merk. osa)
        (r)+2           low  source
        (r)+4           high destination
        (r)+6           low  destination
.br
Vastaus tulee dest. operandiin (r)+4 ja (r)+6 , joka siis tuhoutuu.
 
Esim.
        .text
        mov     $oprnds,r1
        075021                  /fmul   r1
        sys     exit
 
        .data
 oprnds:047700
        000000
        047640
        000000
 
T{m{ pieni ohjelmaesimerkki kertoo kesken{{n flotarit
047700000000 ja 047640000000, ja vastaus tulee j{lkimm{isen
p{{lle muistipaikkaan oprnds+4, johon my|s r1 laskutoimituksen
j{lkeen osoittaa.
.pl 66
.ll 70
.he 'TKK/TeKoLa''UNIX-k{ytt|j{rjestelm{'
.fo ''-%-''
.m2 0
Kalle Hukkinen                                              18.12.1981
.br
.m2 2
.in 18
.bl 4
.ti 0
OTSIKKO
 
 
 
 
.ti 0
Johdanto
 
 
        SM4 - UNIX Helppi (14.01-83 Juki)
 
 
        Olet Tkk/LK UNIX V6 :ssa.
 
        K{yt|ss{si on csh niminen ohjelmoitava komentotulkki.
        Koneesta p{{set ulos kirjoittamalla logout
        tai painamalla CONTROL-D :t{.
 
        (Muista, ett{ UNIX:issa isot ja pienet kirjaimet ovat
         eri asioita !!!)
 
 
        Yleisi{ komentoja:
 
        man komento
        l -l            listaa hakemiston tiedostojen nimet
        pwd             present working directory (nykyinen ty|hakemisto)
        who             ketk{ muut seikkailevat koneessa
        ps              omat ajossa olevat ohjelmat (ja PID niille)
        kill PID        murhaa ohjelman (PID:in saa esim ps komennolla)
        <break>         painamalla break nappulaa, siirrat
                        nykyisen ohjelmasi n{enn{isesti taustalle.
                        (SILTI katkeaa RUBOUT:illa !!!)
                        Uusi <break> siirtyy takaisin ohjelman prosessiin.
        ^D              Logout
        ed file         editoi tiedostoa file
        cd dir          vaihda hakemistoa 
        cd ..           siirry hakemistopuussa ylosp{in
 
 
        SM4 - UNIX Helppi (14.01-83 Juki)
 
 
        Olet Tkk/LK UNIX:issa. 
        Jos haluat p{{st{ ulos, paina CONTROL-D :t{.
 
        (Muista, ett{ UNIX:issa isot ja pienet kirjaimet ovat
         eri asioita !!!)
 
 
        Yleisi{ komentoja:
 
        l -l            listaa hakemiston tiedostojen nimet
        pwd             present working directory (nykyinen ty|hakemisto)
        who             ketk{ muut seikkailevat koneessa
        ps              omat ajossa olevat ohjelmat (ja PID niille)
        kill PID        murhaa ohjelman (PID:in saa esim ps komennolla)
        <break>         painamalla break nappulaa, siirrat
                        nykyisen ohjelmasi n{enn{isesti taustalle.
                        (SILTI katkeaa RUBOUT:illa !!!)
                        Uusi <break> siirtyy takaisin ohjelman prosessiin.
        ^D              Logout
        ed file         editoi tiedostoa file
        cd dir          vaihda hakemistoa 
        cd ..           siirry hakemistopuussa ylosp{in
 
 
TKK/TeKoLa                                      UNIX-k{ytt|j{rjestelm{
Kalle Hukkinen                                              18.12.1981
 
 
 
 
UNIXIN K[YT\N ALKEET
 
 
 
 
Johdanto
 
                  T{m{n paperin tarkoitus on olla ensimm{inen johdatus
                  TKK/TeKoLan SM-4  -tietokoneessa  k{ytett{v{n  UNIX-
                  k{ytt|j{restelm{n  ominaisuuksiin.   T{ss{ esitet{{n
                  erityisesti paikallisen TKK UNIXin  erityispiirteit{
                  sek{   k{ytt|{   korkeakoulun  datavaihteen  kautta.
                  T{ydent{vi{ esityksi{ ovat Bell Laboratorion toimit-
                  tamat  artikkelit 'UNIX for Beginners', joka on pal-
                  jolti t{m{n esityksen l{hde ja  siis  p{{llekk{inen,
                  sek{  'A Tutorial Introduction to the UNIX Text Edi-
                  tor' ja 'Programming in C - A Tutorial'.
 
 
Login
 
                  Datavaihde tunnistaa ison N-kirjaimen  UNIX-kutsuksi
                  ja   kytkee   yhden  SM-4  tietokoneeseen  menevist{
                  kahdeksasta  datavaihdelinjasta  p{{tteeseen.   UNIX
                  vastaa kirjoittamalla:
 
                          login:
 
                  johon   vastataan  omalla  k{ytt{j{tunnuksella.  Jos
                  k{ytt{j{ on m{{ritellyt itselleen salasanan (mik{ on
                  toivottavaa), kysyy UNIX sen kirjoittamalla:
 
                          password:
 
                  Jos  salasana  oli  oikea, tulostaa UNIX jonkin sys-
                  teemitiedoituksen sek{ promptaa prosenttimerkill{  %
                  tiedoksi  siit{,  ett{  j{rjestelm{  on  valmis vas-
                  taanottamaan komentoja.
 
 
Salasana
 
                  Salasanan voi itselleen m{{ritell{ komennolla:
 
                          % passwd k{ytt{j{tunnus salasana
 
                  Samalla komennolla sit{ voi my|s muuttaa.
 
 
 
 
 
 
 
                                 -1-
 
 
 
 
 
TKK/TeKoLa                                      UNIX-k{ytt|j{rjestelm{
 
 
Logout
 
                  P{{teistunnon  lopetus   tapahtuu   yksinkertaisesti
                  Ctrl-D merkill{, jolloin systeemi kirjoittaa:
 
                          logged out
 
 
P{{tenopeus
 
                  Jos p{{tteess{ on nopeus 2400, voidaan  loggattaessa
                  sis{{n  muuttaa  k{tev{sti  nopeutta.  Kun shift-N:n
                  j{lkeen tulostuu 'login:', vaihdetaan heti  p{{tteen
                  nopeus  2400:an  ja  sen  j{lkeen  painetaan  BREAK-
                  n{pp{int{.  T{ll|in 'login:' tulostuu  uudelleen  ja
                  voidaan kirjoittaa k{ytt{j{tunnus.  Muuksi nopeudek-
                  si vaihtaminen k{y stty-komennolla.
 
 
Erikoismerkit
 
                  UNIX k{ytt{{ hieman erikoisia merkkej{ sy|tteen kor-
                  jailumerkkein{.     Edellisen   kirjoitetun   merkin
                  pyyhkii  'risuaita'  #  ja  koko  kirjoitetun  rivin
                  tuhoaa  'miumau'  @.  Jos n{it{ merkkej{ haluaa kir-
                  joittaa tekstin sekaan (esim. editorilla), on  niit{
                  edelt{v{n  merkin  oltava 'backslash' \, siis \# tai
                  \@.
 
                  Suoritettavan   ohjelman   keskeytt{{  RUB  eli  DEL
                  n{pp{in, siis ei Break. BREAK:n painaminen  ohjelman
                  suorituksen aikana aiheuttaa sen, ett{ suoritus jat-
                  kuu tausta-ajona ja itse  p{{st{{n  UNIXin  komento-
                  tasolle.
 
                  K{yt|ss{ olevassa  TKK-UNIXissa  ovat  k{ytett{viss{
                  my|s  DECist{  tutut  Ctrl-S  ja  Ctrl-Q tulostuksen
                  tilap{ist{  pys{ytyst{  varten,  sek{  Ctrl-R   kir-
                  joitetun  (ja mahdollisesti korjaillun) komentorivin
                  uudelleentulostusta varten.  Edellisen komennon  voi
                  toista kirjoittamalla 'miinus'-merkin:  -<CR>
 
 
Komento
 
                  Komennot  UNIXille  annetaan  promptin  %  per{{n ja
                  p{{tet{{n RETURN tai LINEFEED n{pp{imell{.  UNIXille
                  voidaan  kirjoittaa  seuraavia  komentoja my|s edel-
                  lisen komennon suorituksen aikana  (kuten  DECille),
                  mutta  ero DECiin verrattuna on se, ett{ UNIX kaiut-
                  taa kirjaimet v{litt|m{sti.  UNIX-komennon tulkitsee
                  ohjelma nimelt{ shell, ja siirt{{ suorituksen komen-
                  non      toteuttavalle      ohjelmalle.       UNIXin
                  k{ytt|j{rjestelm{komennot ovat siis tavallisia suor-
                  itettavia ohjelmia.
 
 
                                 -2-
 
 
 
 
 
TKK/TeKoLa                                      UNIX-k{ytt|j{rjestelm{
 
 
Tiedostoj{rjestelm{
 
                  UNIXin tiedostoj{rjestelm{ on  puhtaan  hierarkinen.
                  Sen  juuri  on hakemisto nimelt{ root, joka jakautuu
                  tiedostoiksi ja hakemistoiksi. Kukin  hakemisto  voi
                  edelleen sis{lt{{ tiedostoja ja alihakemistoja, jne.
                  Ainoa ero tiedostojen ja hakemistojen v{lill{ on se,
                  ett{  hakemistoa voi muuttaa vain systeemi.  Tiedos-
                  toilla ei ole mit{{n typpi{ tai sis{ist{ rakennetta,
                  ne   ovat   yksinkertaisesti   tavujonoja.   Kaikkia
                  tiedostoja, ohjelmia  ja  I/O-laitteita  k{sitell{{n
                  homogeenisesti,  siis  laitteelle  tulostetaan kuten
                  tiedostoon.
 
                  Omassa  hakemistossa  (tarkemmin siin{ hakemistossa,
                  jossa parhaillaan ty|skentelee) voi tiedostoon  vii-
                  tata  suoraan  tiedostonimell{.  T{ydellisen tiedos-
                  tonimen muodostaa  kuitenkin  tiedostopolku  l{htien
                  juuresta.  Juureen (root) voi viitata symbolilla / ,
                  ja siit{ edelleen esim. k{ytt{j{ virtasen tiedostoon
                  zap  voi  viitata  polulla  /usr/virtanen/zap.   zap
                  kuuluu siis hakemistoon /usr/virtanen, joka  puoles-
                  taan  on  hakemiston  /usr  alihakemisto.   /usr  on
                  suoraan  juurihakemiston  /   (=root)  alihakemisto.
                  Jos   k{ytt{j{  virtasella  on  alihakemisto,  jonka
                  t{ydellinen (polku)nimi on /usr/virtanen/subdir,  ja
                  siell{ tiedosto data, voi h{n ty|skennelless{{n hak-
                  emistossa /usr/virtanen viitata kyseiseen tiedostoon
                  nimell{    subdir/data.    Puuhierarkiassa  alasp{in
                  viitattaessa ei siis tarvitse  k{ytt{{  koko  polun-
                  nime{ (mutta nime{ ei my|sk{{n t{ll|in pid{ aloittaa
                  juuren symbolilla / )
 
 
 
Shell
 
                  Shell on  UNIXin  komentotulkki.  Se  on  itsen{inen
                  ohjelma (ei siis osa k{ytt|j{rjestelm{{), joka tulk-
                  itsee k{ytt|j{rjestelm{lle annetut komennot  ja  luo
                  niiden  mukaan  komennon  suorittavat prosessit. Jos
                  halutaan suorittaa komento tai ohjelma taustaproses-
                  sina  siten,  ett{  ei  odoteta ohjelman suorituksen
                  p{{ttymist{  ennenkuin  palataan  shellin   komento-
                  tasolle, voidaan komento p{{tt{{ merkkiin &. T{ll|in
                  voidaan v{litt|m{sti jatkaa  p{{tety|skentely{.  Jos
                  taustalla  ajettavassa ohjelmassa on tulostuksia, ne
                  ohjautuvat kuitenkin normaalisti p{{tteelle.
 
                  Shelliss{ on mahdollisuus muuttaa ohjelman sy|t|n ja
                  tulostuksen   oletustiedostoa   (=p{{te).   Se   k{y
                  operaattoreilla  <  ja  >,  joista < tiedoston nimen
                  edess{ aiheuttaa sy|t|n kyseisest{ tiedostosta ja  >
                  tulostuksen tiedostoon.  Esimerkiksi kun komento:
 
                          cat file
 
                                 -3-
 
 
 
 
 
TKK/TeKoLa                                      UNIX-k{ytt|j{rjestelm{
 
 
                  aiheuttaa  tiedoston  file  tulostuksen  p{{tteelle,
                  niin komento:
 
                          cat file1 >file2
 
                  aiheuttaa  tiedoston  file1  tulostuksen  tiedostoon
                  file2.   Lis{ksi  voidaan  tiedoston loppuun liitt{{
                  tulostusta operaattorilla >>, t{ll|in  siis  tiedos-
                  tossa aiemmin ollut tieto ei tuhoudu.
 
                  Shellin  er{s  erikoisuus  ovat  ns.  putket,  joita
                  merkit{{n   operaattorilla  |  (pystyviiva).   Putki
                  poistaa   usein    v{liaikaistiedostojen    tarpeen.
                  Esimerkki:   ls   tulostaa  hakemistolistauksen,  wc
                  laskee tiedostossa olevien rivien ja sanojen m{{r{n,
                  rm  tuhoaa tiedoston, ja haluamme tiet{{ tiedostojen
                  m{{r{n hakemistollamme.  Voisimme tehd{ n{in:
 
                          ls >temp
                          wc temp
                          rm temp
 
                  mutta kauniimmin asia hoidetaan n{in:
 
                          ls | wc
 
                  jolloin ls:n tulostus on wc:n sy|te,  eik{  tarvittu
                  v{liaikaistiedostoa temp.
 
                  Useille shellin komennoille voi antaa  argumentteja,
                  jotka  tarkemmin  m{{rittelev{t suoritettavaa komen-
                  toa.   Ne  ovat  yksikirjaimisia  ja  niit{  edelt{{
                  'miinus' - .  Esim.:
 
                          ls -lat
 
                  tulostaa      t{ydellisemm{n     hakemistolistauksen
                  aikaj{rjestyksess{ (l = long, a = all, t = time)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                 -4-
 
 
 
 
 
TKK/TeKoLa                                      UNIX-k{ytt|j{rjestelm{
 
 
KOMENTOJA
 
                  Seuraavassa er{it{ useimmin  tarvittavia  komentoja.
                  Kaikista  komennoista  on  t{ydellisempi kuvaus jul-
                  kaisussa 'UNIX Programmer's Manual'.
 
 
 
as (-) (-o objectfile) name ...
                   Assembler-k{{nt{j{,  josta  l|ytyy  tarkka   kuvaus
                  artikkelissa 'UNIX Assembler Reference Manual'.
 
cat file ...
                   Tulostaa mainitut tiedostot per{kk{in (katenoi).
 
cc (-c) (-p) (-f) (-O) (-S) (-P) file ...
                   C-kielen k{{nt{j{, josta on olemassa mm. artikkelit
                  'Programming in C - A Tutorial'  sek{  'C  Reference
                  Manual'.
 
chdir directory         (TKK-UNIXissa my|s:  cd)
                   Siirryt{{n toiseen hakemistoon.
 
chmod octal file ...
                   Muuttaa tiedoston suojauslukua.
                   (esim. -rw-rw-rw-  annetaan oktaalisena 666
                          -rwxr-xr-x  annetaan oktaalisena 755)
 
cp (-iIvVupn) file1 file2
cp (-riIvVupn) file ... (directory)
                   Kopioi tiedoston file1 sis{ll|n  tiedostoon  file2,
                  tai     tiedoston     file    sis{ll|n    tiedostoon
                  directory/file.
 
date
                   Tulostaa p{iv{yksen ja kellonajan.
 
db
                   'Debuggeri'  assemblerohjelmien   virheenselvityst{
                  varten.
 
diff (-) name1 name2
                   Vertaa kahta tiedostoa ja tulostaa rivit, joissa on
                  eroja.
 
du (-s) (-a) (name ...)
                   Tulostaa hakemiston k{ytt{m{n  levytilan  lohkoissa
                  (=512 tavua).
 
ed (name)
                   Tekstintoimitin,  'editori',  josta  on  kuvaus mm.
                  artikkelissa 'A Tutorial Introduction  to  the  UNIX
                  Text Editor'.
 
 
 
 
                                 -5-
 
 
 
 
 
TKK/TeKoLa                                      UNIX-k{ytt|j{rjestelm{
 
 
kill processid ...
                   Tuhoaa  prosessin,  joka  on esim. taustaprosessina
                  j{{nyt  ikuiseen  silmukkaan.  Tarvittavan   proses-
                  sinumeron saa selville ps-komennolla.  Tavallisen (=
                  ei tausta-)  prosessin  saa  helpoimmin  pys{ytetty{
                  n{pp{imell{ RUB eli DEL.
 
ld (-sulr) (-o outfile)  name ...
                   Lataaja, jolla useita k{{nnettyj{ objektitiedostoja
                  voidaan linkitt{{ ja ladata  ajokelpoiseksi  tiedos-
                  toksi.
 
login (username)
                   login-komennolla     voidaan     suoraan    vaihtaa
                  k{ytt{j{tunnusta ('logaamatta'  v{lill{  ulos  Ctrl-
                  D:ll{).
 
ls (-ltasdruifgzL) name ...     (TKK-UNIXissa my|s:  l)
                   Tulostaa hakemistolistauksen.
 
mail (-y) (-n) (person ...)
                   Lukee tai l{hett{{ postia muille k{ytt{jille.
 
mesg (n) (y)
                   Kielt{{  tai sallii toisille k{ytt{jille puheyhtey-
                  den write-komennolla.
 
mkdir dirname ...
                   Luo uuden alihakemiston.
 
mv (-iIvVupn) file1 file2
mv (-riIvVupn) file ... (directory)
                   Antaa  tiedostolle  file1  uuden  nimen  file2, tai
                  tiedostolle file nimen directory/file.
 
nroff file ...
                   Tekstinmuotoiluohjelma,  josta  on  lis{tietoa  ar-
                  tikkelissa 'NROFF User's Manual'.  Kts. my|s roff.
 
opr file &
                   Rivikirjoitintulostus  DECsystem-20:n  rivikirjoit-
                  timelle (Tulostuksen k{ytt{j{tunnus on TKO.UNIX).
 
passwd name password
                   Asettaa ja  muuttaa  salasanaksi  k{ytt{j{lle  name
                  sanan password.
 
pr (-h header) name ...
                   Tulostaa tiedoston siten, ett{ jokaisen sivun alus-
                  sa on p{iv{ys ja tiedostonimi sek{  mahdollinen  ot-
                  sikko header.
 
ps (alxk) (namelist)
                   Tulostaa tietoa k{ynniss{ olevista prosesseista.
 
 
 
                                 -6-
 
 
 
 
 
TKK/TeKoLa                                      UNIX-k{ytt|j{rjestelm{
 
 
pwd
                   Kertoo     hakemistonimen,     jossa    parhaillaan
                  ty|skennell{{n.
 
rm (-iIvVfdr) name ...
                   Tuhoaa (lopullisesti) tiedostoja.
 
rmdir directory ...
                   Tuhoaa hakemistoja, joiden tulee olla tyhji{.
 
roff file ...
                   Tekstinmuotoiluohjelma, joka  on  kehittym{tt|m{mpi
                  kuin nroff, mutta my|s helpompi k{ytt{{.
 
sh (-t) (-c) (name (arg1 ...(arg9)))
                   Komentotulkki shell, joka on my|s ohjelmoitavissa
                   (if, goto, echo, exit, shift, sleep).
 
size (object ...)
                   Tulostaa objekti-tyyppisen tiedoston  text-,  data-
                  ja bss-sektioiden koot tavuissa.
 
sleep time
                   Suoritus odottaa time sekuntia
                   (Esim.  (sleep 120; ld file1 file2)&  ).
 
stty (option ...)
                   Tulostaa tai asettaa p{{tteen moodin.
 
tty
                   Tulostaa k{ytt{j{n p{{telinjan numeron
 
wc (name ...)
                   Laskee  tiedostossa  olevien  rivien   ja   sanojen
                  lukum{{r{n.
 
view (-oa) (-screenlength) (-wscreenwidth) (file ...)
                   N{ytt|p{{tetulostus   kuvaruudullinen   kerrallaan.
                  Tulostus jatkuu RETURN-n{pp{imell{.
 
who (am i)
                   Kertoo UNIXin t{m{nhetkiset k{ytt{j{t
 
write user (ttyno)
                   Muodostaa  yksisuuntaisen  puheyhteyden  k{ytt{j{{n
                  user.   Jotta  yhteys  olisi  kaksisuuntainen, tulee
                  my|s vastaanottajan antaa write-komento.
 
 
 
 
 
 
 
 
 
 
                                 -7-
 
 
 
.pi /usr/bin/col
.TM 1982-9x9 99999  99999-11
.TL
TKK/TeKoLa - UNIX-k{ytt|j{rjestelm{ 
.AU
Kalle Hukkinen
.AI
Helsingin teknillinen korkeakoulu
.OK
K{ytt|j{rjestelm{t
UNIX
.AB
T{m{ paperi on UNIX-k{ytt|j{rjestelm{n
esittely aloitteleville j{rjestelm{{n tutustujille.
.AE
.CS 10 2 12 5 6 7
.2C
.PP
UNIXIN K[YT\\N ALKEET
 
Johdanto
 
T{m{n paperin tarkoitus on olla ensimm{inen johdatus
TKK/TeKoLan SM-4 -tietokoneessa k{ytett{v{n UNIX-k{ytt|j{restelm{n
ominaisuuksiin.
T{ss{ esitet{{n erityisesti paikallisen TKK UNIXin erityispiirteit{
sek{ k{ytt|{ korkeakoulun datavaihteen kautta.
T{ydent{vi{ esityksi{ ovat Bell Laboratorion toimittamat
artikkelit 'UNIX for Beginners', joka on paljolti t{m{n esityksen
l{hde ja siis p{{llekk{inen, sek{ 'A Tutorial Introduction
to the UNIX Text Editor' ja 'Programming in C - A Tutorial'.
 
 
.PP
Login
 
Datavaihde tunnistaa ison N-kirjaimen UNIX-kutsuksi ja
kytkee yhden SM-4 tietokoneeseen menevist{ kahdeksasta
datavaihdelinjasta p{{tteeseen.
UNIX vastaa kirjoittamalla:
 
.nf
        login:
.fi
 
johon vastataan omalla k{ytt{j{tunnuksella. Jos k{ytt{j{
on m{{ritellyt itselleen salasanan (mik{ on toivottavaa),
kysyy UNIX sen kirjoittamalla:
 
.nf
        password:
.fi
 
Jos salasana oli oikea, tulostaa UNIX jonkin systeemitiedoituksen
sek{ promptaa prosenttimerkill{ % tiedoksi siit{, ett{ j{rjestelm{
on valmis vastaanottamaan komentoja.
 
 
.PP
Salasana
 
Salasanan voi itselleen m{{ritell{ komennolla:
 
        % passwd k{ytt{j{tunnus salasana
 
Samalla komennolla sit{ voi my|s muuttaa.
.pa
 
 
.PP
Logout
 
P{{teistunnon lopetus tapahtuu yksinkertaisesti
Ctrl-D merkill{, jolloin systeemi kirjoittaa:
 
        logged out
 
 
.PP
P{{tenopeus
 
Jos p{{tteess{ on nopeus 2400, voidaan loggattaessa sis{{n
muuttaa k{tev{sti nopeutta. Kun shift-N:n j{lkeen
tulostuu 'login:', vaihdetaan heti p{{tteen nopeus 2400:an ja
sen j{lkeen painetaan BREAK-n{pp{int{.
T{ll|in 'login:' tulostuu uudelleen ja voidaan kirjoittaa
k{ytt{j{tunnus.
Muuksi nopeudeksi vaihtaminen k{y stty-komennolla.
 
 
.PP
Erikoismerkit
 
UNIX k{ytt{{ hieman erikoisia merkkej{ sy|tteen korjailumerkkein{.
Edellisen kirjoitetun merkin pyyhkii 'risuaita' \# ja koko
kirjoitetun rivin tuhoaa 'miumau' @. Jos n{it{ merkkej{ haluaa
kirjoittaa tekstin sekaan (esim. editorilla), on niit{ edelt{v{n
merkin oltava 'backslash' \\, siis \\# tai \\@.
 
Suoritettavan ohjelman keskeytt{{ RUB eli DEL n{pp{in,
siis ei Break. BREAK:n painaminen ohjelman suorituksen
aikana aiheuttaa sen, ett{ suoritus jatkuu tausta-ajona
ja itse p{{st{{n UNIXin komentotasolle.
 
K{yt|ss{ olevassa TKK-UNIXissa ovat k{ytett{viss{ my|s
DECist{ tutut Ctrl-S ja Ctrl-Q tulostuksen tilap{ist{
pys{ytyst{ varten, sek{ Ctrl-R kirjoitetun (ja mahdollisesti
korjaillun) komentorivin uudelleentulostusta varten.
Edellisen komennon voi toista kirjoittamalla
\&'miinus'-merkin:  -<CR>
 
 
.PP
Komento
 
Komennot UNIXille annetaan promptin % per{{n ja
p{{tet{{n RETURN tai LINEFEED n{pp{imell{.
UNIXille voidaan kirjoittaa seuraavia komentoja my|s
edellisen komennon suorituksen aikana (kuten DECille),
mutta ero DECiin verrattuna on se, ett{ UNIX
kaiuttaa kirjaimet v{litt|m{sti.
UNIX-komennon tulkitsee ohjelma nimelt{ shell,
ja siirt{{ suorituksen komennon toteuttavalle ohjelmalle.
UNIXin k{ytt|j{rjestelm{komennot ovat siis tavallisia
suoritettavia ohjelmia.
 
 
.PP
Tiedostoj{rjestelm{
 
UNIXin tiedostoj{rjestelm{ on puhtaan hierarkinen.
Sen juuri on hakemisto nimelt{ root, joka jakautuu
tiedostoiksi ja hakemistoiksi. Kukin hakemisto voi
edelleen sis{lt{{ tiedostoja ja alihakemistoja, jne.
Ainoa ero tiedostojen ja hakemistojen v{lill{ on se,
ett{ hakemistoa voi muuttaa vain systeemi.
Tiedostoilla ei ole mit{{n typpi{ tai sis{ist{ rakennetta,
ne ovat yksinkertaisesti tavujonoja.
Kaikkia tiedostoja, ohjelmia ja I/O-laitteita k{sitell{{n
homogeenisesti, siis laitteelle tulostetaan kuten tiedostoon.
 
Omassa hakemistossa (tarkemmin siin{ hakemistossa, jossa
parhaillaan ty|skentelee) voi tiedostoon viitata suoraan
tiedostonimell{. T{ydellisen tiedostonimen muodostaa kuitenkin
tiedostopolku l{htien juuresta. Juureen (root) voi viitata
symbolilla / , ja siit{ edelleen esim. k{ytt{j{ virtasen
tiedostoon zap voi viitata polulla /usr/virtanen/zap.
zap kuuluu siis hakemistoon /usr/virtanen, joka puolestaan
on hakemiston /usr alihakemisto.
/usr on suoraan juurihakemiston /  (=root) alihakemisto.
Jos k{ytt{j{ virtasella on alihakemisto, jonka t{ydellinen
(polku)nimi on /usr/virtanen/subdir, ja siell{ tiedosto
data, voi h{n ty|skennelless{{n hakemistossa /usr/virtanen
viitata kyseiseen tiedostoon nimell{  subdir/data.
Puuhierarkiassa alasp{in viitattaessa
ei siis tarvitse k{ytt{{ koko polunnime{
(mutta nime{ ei my|sk{{n t{ll|in pid{ aloittaa juuren symbolilla / )
 
 
.PP
Shell
 
Shell on UNIXin komentotulkki. Se on itsen{inen ohjelma (ei siis
osa k{ytt|j{rjestelm{{), joka tulkitsee k{ytt|j{rjestelm{lle
annetut komennot ja luo niiden mukaan komennon suorittavat
prosessit. Jos halutaan suorittaa komento tai ohjelma
taustaprosessina siten, ett{ ei odoteta ohjelman suorituksen
p{{ttymist{ ennenkuin palataan shellin komentotasolle,
voidaan komento p{{tt{{ merkkiin &. T{ll|in voidaan
v{litt|m{sti jatkaa p{{tety|skentely{. Jos taustalla ajettavassa
ohjelmassa on tulostuksia, ne ohjautuvat kuitenkin normaalisti
p{{tteelle.
 
Shelliss{ on mahdollisuus muuttaa ohjelman sy|t|n ja tulostuksen
oletustiedostoa (=p{{te). Se k{y operaattoreilla < ja >,
joista < tiedoston nimen edess{ aiheuttaa sy|t|n kyseisest{
tiedostosta ja > tulostuksen tiedostoon.
Esimerkiksi kun komento:
 
.nf
        cat file
.fi
 
aiheuttaa tiedoston file tulostuksen p{{tteelle, niin komento:
 
.nf
        cat file1 >file2
.fi
 
aiheuttaa tiedoston file1 tulostuksen tiedostoon file2.
Lis{ksi voidaan tiedoston loppuun liitt{{ tulostusta
operaattorilla >>, t{ll|in siis tiedostossa aiemmin
ollut tieto ei tuhoudu.
 
Shellin er{s erikoisuus ovat ns. putket, joita merkit{{n
operaattorilla | (pystyviiva).
Putki poistaa usein v{liaikaistiedostojen tarpeen.
Esimerkki:
ls tulostaa hakemistolistauksen,
wc laskee tiedostossa olevien rivien ja sanojen m{{r{n,
rm tuhoaa tiedoston,
ja haluamme tiet{{ tiedostojen m{{r{n hakemistollamme.
Voisimme tehd{ n{in:
 
.nf
        ls >temp
        wc temp
        rm temp
.fi
 
mutta kauniimmin asia hoidetaan n{in:
 
.nf
        ls | wc
.fi
 
jolloin ls:n tulostus on wc:n sy|te,
eik{ tarvittu v{liaikaistiedostoa temp.
 
Useille shellin komennoille voi antaa argumentteja,
jotka tarkemmin m{{rittelev{t suoritettavaa komentoa.
Ne ovat yksikirjaimisia ja niit{ edelt{{ 'miinus' - .
Esim.:
 
.nf
        ls -lat
.fi
 
tulostaa t{ydellisemm{n hakemistolistauksen aikaj{rjestyksess{
(l = long, a = all, t = time)
 
 
.PP
KOMENTOJA
 
Seuraavassa er{it{ useimmin tarvittavia komentoja.
Kaikista komennoista on t{ydellisempi kuvaus julkaisussa
\&'UNIX Programmer's Manual'.
 
 
 
.PP
as (-) (-o objectfile) name ...
 
 Assembler-k{{nt{j{, josta l|ytyy tarkka kuvaus artikkelissa
\&'UNIX Assembler Reference Manual'.
 
.PP
cat file ...
 
 Tulostaa mainitut tiedostot per{kk{in (katenoi).
 
.PP
cc (-c) (-p) (-f) (-O) (-S) (-P) file ...
 C-kielen k{{nt{j{, josta on olemassa mm. artikkelit
\&'Programming in C - A Tutorial' sek{ 'C Reference Manual'.
 
.PP
chdir directory         (TKK-UNIXissa my|s:  cd)
 Siirryt{{n toiseen hakemistoon.
 
.PP
chmod octal file ...
 
 Muuttaa tiedoston suojauslukua.
 (esim. -rw-rw-rw-  annetaan oktaalisena 666
        -rwxr-xr-x  annetaan oktaalisena 755)
 
.PP
cp (-iIvVupn) file1 file2
 
.PP
cp (-riIvVupn) file ... (directory)
 
 Kopioi tiedoston file1 sis{ll|n tiedostoon file2,
tai tiedoston file sis{ll|n tiedostoon directory/file.
 
.PP
date
 
 Tulostaa p{iv{yksen ja kellonajan.
 
.PP
db
 
 'Debuggeri' assemblerohjelmien virheenselvityst{ varten.
 
.PP
diff (-) name1 name2
 
 Vertaa kahta tiedostoa ja tulostaa rivit, joissa on eroja.
 
.PP
du (-s) (-a) (name ...)
 
 Tulostaa hakemiston k{ytt{m{n levytilan lohkoissa (=512 tavua).
 
.PP
ed (name)
 
 Tekstintoimitin, 'editori', josta on kuvaus mm. artikkelissa
\&'A Tutorial Introduction to the UNIX Text Editor'.
 
.PP
kill processid ...
 
 Tuhoaa prosessin, joka on esim. taustaprosessina
j{{nyt ikuiseen silmukkaan. Tarvittavan prosessinumeron
saa selville ps-komennolla.
Tavallisen (= ei tausta-) prosessin saa helpoimmin
pys{ytetty{ n{pp{imell{ RUB eli DEL.
 
.PP
ld (-sulr) (-o outfile)  name ...
 
 Lataaja, jolla useita k{{nnettyj{ objektitiedostoja
voidaan linkitt{{ ja ladata ajokelpoiseksi tiedostoksi.
 
.PP
login (username)
 
 login-komennolla voidaan suoraan vaihtaa k{ytt{j{tunnusta
('logaamatta' v{lill{ ulos Ctrl-D:ll{).
 
.PP
ls (-ltasdruifgzL) name ...     (TKK-UNIXissa my|s:  l)
 
 Tulostaa hakemistolistauksen.
 
.PP
mail (-y) (-n) (person ...)
 
 Lukee tai l{hett{{ postia muille k{ytt{jille.
 
.PP
mesg (n) (y)
 
 Kielt{{ tai sallii toisille k{ytt{jille puheyhteyden
write-komennolla.
 
.PP
mkdir dirname ...
 
 Luo uuden alihakemiston.
 
.PP
mv (-iIvVupn) file1 file2
 
.PP
mv (-riIvVupn) file ... (directory)
 
 Antaa tiedostolle file1 uuden nimen file2,
tai tiedostolle file nimen directory/file.
 
.PP
nroff file ...
 
 Tekstinmuotoiluohjelma, josta on lis{tietoa artikkelissa
\&'NROFF User's Manual'.
Kts. my|s roff.
 
.PP
opr file &
 
 Rivikirjoitintulostus DECsystem-20:n rivikirjoittimelle
(Tulostuksen k{ytt{j{tunnus on TKO.UNIX).
 
.PP
passwd name password
 
 Asettaa ja muuttaa salasanaksi k{ytt{j{lle name
sanan password.
 
.PP
pr (-h header) name ...
 
 Tulostaa tiedoston siten, ett{ jokaisen sivun alussa
on p{iv{ys ja tiedostonimi sek{ mahdollinen otsikko header.
 
.PP
ps (alxk) (namelist)
 
 Tulostaa tietoa k{ynniss{ olevista prosesseista.
 
.PP
pwd
 
 Kertoo hakemistonimen, jossa parhaillaan ty|skennell{{n.
 
.PP
rm (-iIvVfdr) name ...
 
 Tuhoaa (lopullisesti) tiedostoja.
 
.PP
rmdir directory ...
 
 Tuhoaa hakemistoja, joiden tulee olla tyhji{.
 
.PP
roff file ...
 
 Tekstinmuotoiluohjelma, joka on kehittym{tt|m{mpi kuin
nroff, mutta my|s helpompi k{ytt{{.
 
.PP
sh (-t) (-c) (name (arg1 ...(arg9)))
 
 Komentotulkki shell, joka on my|s ohjelmoitavissa
 (if, goto, echo, exit, shift, sleep).
 
.PP
size (object ...)
 
 Tulostaa objekti-tyyppisen tiedoston text-, data-
ja bss-sektioiden koot tavuissa.
 
.PP
sleep time
 
 Suoritus odottaa time sekuntia
 (Esim.  (sleep 120; ld file1 file2)&  ).
 
.PP
stty (option ...)
 
 Tulostaa tai asettaa p{{tteen moodin.
 
.PP
tty
 
 Tulostaa k{ytt{j{n p{{telinjan numeron
 
.PP
wc (name ...)
 
 Laskee tiedostossa olevien rivien ja sanojen lukum{{r{n.
 
.PP
view (-oa) (-screenlength) (-wscreenwidth) (file ...)
 
 N{ytt|p{{tetulostus kuvaruudullinen kerrallaan.
Tulostus jatkuu RETURN-n{pp{imell{.
 
.PP
who (am i)
 
 Kertoo UNIXin t{m{nhetkiset k{ytt{j{t
 
.PP
write user (ttyno)
 
 Muodostaa yksisuuntaisen puheyhteyden k{ytt{j{{n user.
Jotta yhteys olisi kaksisuuntainen, tulee
my|s vastaanottajan antaa write-komento.
 
.pl 66
.ll 70
.he 'TKK/TeKoLa''UNIX-k{ytt|j{rjestelm{'
.fo ''-%-''
.m2 0
Kalle Hukkinen                                              18.12.1981
.br
.m2 2
.in 18
.bl 4
.ti 0
UNIXIN K[YT\\N ALKEET
 
 
 
 
.ti 0
Johdanto
 
T{m{n paperin tarkoitus on olla ensimm{inen johdatus
TKK/TeKoLan SM-4 -tietokoneessa k{ytett{v{n UNIX-k{ytt|j{restelm{n
ominaisuuksiin.
T{ss{ esitet{{n erityisesti paikallisen TKK UNIXin erityispiirteit{
sek{ k{ytt|{ korkeakoulun datavaihteen kautta.
T{ydent{vi{ esityksi{ ovat Bell Laboratorion toimittamat
artikkelit 'UNIX for Beginners', joka on paljolti t{m{n esityksen
l{hde ja siis p{{llekk{inen, sek{ 'A Tutorial Introduction
to the UNIX Text Editor' ja 'Programming in C - A Tutorial'.
 
 
.ti 0
Login
 
Datavaihde tunnistaa ison N-kirjaimen UNIX-kutsuksi ja
kytkee yhden SM-4 tietokoneeseen menevist{ kahdeksasta
datavaihdelinjasta p{{tteeseen.
UNIX vastaa kirjoittamalla:
 
        login:
 
johon vastataan omalla k{ytt{j{tunnuksella. Jos k{ytt{j{
on m{{ritellyt itselleen salasanan (mik{ on toivottavaa),
kysyy UNIX sen kirjoittamalla:
 
        password:
 
Jos salasana oli oikea, tulostaa UNIX jonkin systeemitiedoituksen
sek{ promptaa prosenttimerkill{ % tiedoksi siit{, ett{ j{rjestelm{
on valmis vastaanottamaan komentoja.
 
 
.ti 0
Salasana
 
Salasanan voi itselleen m{{ritell{ komennolla:
 
        % passwd k{ytt{j{tunnus salasana
 
Samalla komennolla sit{ voi my|s muuttaa.
.pa
 
 
.ti 0
Logout
 
P{{teistunnon lopetus tapahtuu yksinkertaisesti
Ctrl-D merkill{, jolloin systeemi kirjoittaa:
 
        logged out
 
 
.ti0
P{{tenopeus
 
Jos p{{tteess{ on nopeus 2400, voidaan loggattaessa sis{{n
muuttaa k{tev{sti nopeutta. Kun shift-N:n j{lkeen
tulostuu 'login:', vaihdetaan heti p{{tteen nopeus 2400:an ja
sen j{lkeen painetaan BREAK-n{pp{int{.
T{ll|in 'login:' tulostuu uudelleen ja voidaan kirjoittaa
k{ytt{j{tunnus.
Muuksi nopeudeksi vaihtaminen k{y stty-komennolla.
 
 
.ti 0
Erikoismerkit
 
UNIX k{ytt{{ hieman erikoisia merkkej{ sy|tteen korjailumerkkein{.
Edellisen kirjoitetun merkin pyyhkii 'risuaita' \# ja koko
kirjoitetun rivin tuhoaa 'miumau' @. Jos n{it{ merkkej{ haluaa
kirjoittaa tekstin sekaan (esim. editorilla), on niit{ edelt{v{n
merkin oltava 'backslash' \\, siis \\# tai \\@.
 
Suoritettavan ohjelman keskeytt{{ RUB eli DEL n{pp{in,
siis ei Break. BREAK:n painaminen ohjelman suorituksen
aikana aiheuttaa sen, ett{ suoritus jatkuu tausta-ajona
ja itse p{{st{{n UNIXin komentotasolle.
 
K{yt|ss{ olevassa TKK-UNIXissa ovat k{ytett{viss{ my|s
DECist{ tutut Ctrl-S ja Ctrl-Q tulostuksen tilap{ist{
pys{ytyst{ varten, sek{ Ctrl-R kirjoitetun (ja mahdollisesti
korjaillun) komentorivin uudelleentulostusta varten.
Edellisen komennon voi toista kirjoittamalla
'miinus'-merkin:  -<CR>
 
 
.ti 0
Komento
 
Komennot UNIXille annetaan promptin % per{{n ja
p{{tet{{n RETURN tai LINEFEED n{pp{imell{.
UNIXille voidaan kirjoittaa seuraavia komentoja my|s
edellisen komennon suorituksen aikana (kuten DECille),
mutta ero DECiin verrattuna on se, ett{ UNIX
kaiuttaa kirjaimet v{litt|m{sti.
UNIX-komennon tulkitsee ohjelma nimelt{ shell,
ja siirt{{ suorituksen komennon toteuttavalle ohjelmalle.
UNIXin k{ytt|j{rjestelm{komennot ovat siis tavallisia
suoritettavia ohjelmia.
 
 
.ti 0
Tiedostoj{rjestelm{
 
UNIXin tiedostoj{rjestelm{ on puhtaan hierarkinen.
Sen juuri on hakemisto nimelt{ root, joka jakautuu
tiedostoiksi ja hakemistoiksi. Kukin hakemisto voi
edelleen sis{lt{{ tiedostoja ja alihakemistoja, jne.
Ainoa ero tiedostojen ja hakemistojen v{lill{ on se,
ett{ hakemistoa voi muuttaa vain systeemi.
Tiedostoilla ei ole mit{{n typpi{ tai sis{ist{ rakennetta,
ne ovat yksinkertaisesti tavujonoja.
Kaikkia tiedostoja, ohjelmia ja I/O-laitteita k{sitell{{n
homogeenisesti, siis laitteelle tulostetaan kuten tiedostoon.
 
Omassa hakemistossa (tarkemmin siin{ hakemistossa, jossa
parhaillaan ty|skentelee) voi tiedostoon viitata suoraan
tiedostonimell{. T{ydellisen tiedostonimen muodostaa kuitenkin
tiedostopolku l{htien juuresta. Juureen (root) voi viitata
symbolilla / , ja siit{ edelleen esim. k{ytt{j{ virtasen
tiedostoon zap voi viitata polulla /usr/virtanen/zap.
zap kuuluu siis hakemistoon /usr/virtanen, joka puolestaan
on hakemiston /usr alihakemisto.
/usr on suoraan juurihakemiston /  (=root) alihakemisto.
Jos k{ytt{j{ virtasella on alihakemisto, jonka t{ydellinen
(polku)nimi on /usr/virtanen/subdir, ja siell{ tiedosto
data, voi h{n ty|skennelless{{n hakemistossa /usr/virtanen
viitata kyseiseen tiedostoon nimell{  subdir/data.
Puuhierarkiassa alasp{in viitattaessa
ei siis tarvitse k{ytt{{ koko polunnime{
(mutta nime{ ei my|sk{{n t{ll|in pid{ aloittaa juuren symbolilla / )
 
 
.ti 0
 
Shell
 
Shell on UNIXin komentotulkki. Se on itsen{inen ohjelma (ei siis
osa k{ytt|j{rjestelm{{), joka tulkitsee k{ytt|j{rjestelm{lle
annetut komennot ja luo niiden mukaan komennon suorittavat
prosessit. Jos halutaan suorittaa komento tai ohjelma
taustaprosessina siten, ett{ ei odoteta ohjelman suorituksen
p{{ttymist{ ennenkuin palataan shellin komentotasolle,
voidaan komento p{{tt{{ merkkiin &. T{ll|in voidaan
v{litt|m{sti jatkaa p{{tety|skentely{. Jos taustalla ajettavassa
ohjelmassa on tulostuksia, ne ohjautuvat kuitenkin normaalisti
p{{tteelle.
 
Shelliss{ on mahdollisuus muuttaa ohjelman sy|t|n ja tulostuksen
oletustiedostoa (=p{{te). Se k{y operaattoreilla < ja >,
joista < tiedoston nimen edess{ aiheuttaa sy|t|n kyseisest{
tiedostosta ja > tulostuksen tiedostoon.
Esimerkiksi kun komento:
 
        cat file
 
aiheuttaa tiedoston file tulostuksen p{{tteelle, niin komento:
 
        cat file1 >file2
 
aiheuttaa tiedoston file1 tulostuksen tiedostoon file2.
Lis{ksi voidaan tiedoston loppuun liitt{{ tulostusta
operaattorilla >>, t{ll|in siis tiedostossa aiemmin
ollut tieto ei tuhoudu.
 
Shellin er{s erikoisuus ovat ns. putket, joita merkit{{n
operaattorilla | (pystyviiva).
Putki poistaa usein v{liaikaistiedostojen tarpeen.
Esimerkki:
ls tulostaa hakemistolistauksen,
wc laskee tiedostossa olevien rivien ja sanojen m{{r{n,
rm tuhoaa tiedoston,
ja haluamme tiet{{ tiedostojen m{{r{n hakemistollamme.
Voisimme tehd{ n{in:
 
        ls >temp
        wc temp
        rm temp
 
mutta kauniimmin asia hoidetaan n{in:
 
        ls | wc
 
jolloin ls:n tulostus on wc:n sy|te,
eik{ tarvittu v{liaikaistiedostoa temp.
 
Useille shellin komennoille voi antaa argumentteja,
jotka tarkemmin m{{rittelev{t suoritettavaa komentoa.
Ne ovat yksikirjaimisia ja niit{ edelt{{ 'miinus' - .
Esim.:
 
        ls -lat
 
tulostaa t{ydellisemm{n hakemistolistauksen aikaj{rjestyksess{
(l = long, a = all, t = time)
.pa
 
 
.ti 0
KOMENTOJA
 
Seuraavassa er{it{ useimmin tarvittavia komentoja.
Kaikista komennoista on t{ydellisempi kuvaus julkaisussa
'UNIX Programmer's Manual'.
 
 
 
.ti 0
as (-) (-o objectfile) name ...
 Assembler-k{{nt{j{, josta l|ytyy tarkka kuvaus artikkelissa
'UNIX Assembler Reference Manual'.
 
.ti 0
cat file ...
 Tulostaa mainitut tiedostot per{kk{in (katenoi).
 
.ti 0
cc (-c) (-p) (-f) (-O) (-S) (-P) file ...
 C-kielen k{{nt{j{, josta on olemassa mm. artikkelit
'Programming in C - A Tutorial' sek{ 'C Reference Manual'.
 
.ti 0
chdir directory         (TKK-UNIXissa my|s:  cd)
 Siirryt{{n toiseen hakemistoon.
 
.ti 0
chmod octal file ...
 Muuttaa tiedoston suojauslukua.
 (esim. -rw-rw-rw-  annetaan oktaalisena 666
        -rwxr-xr-x  annetaan oktaalisena 755)
 
.ti 0
cp (-iIvVupn) file1 file2
.ti 0
cp (-riIvVupn) file ... (directory)
 Kopioi tiedoston file1 sis{ll|n tiedostoon file2,
tai tiedoston file sis{ll|n tiedostoon directory/file.
 
.ti 0
date
 Tulostaa p{iv{yksen ja kellonajan.
 
.ti 0
db
 'Debuggeri' assemblerohjelmien virheenselvityst{ varten.
 
.ti 0
diff (-) name1 name2
 Vertaa kahta tiedostoa ja tulostaa rivit, joissa on eroja.
 
.ti 0
du (-s) (-a) (name ...)
 Tulostaa hakemiston k{ytt{m{n levytilan lohkoissa (=512 tavua).
 
.ti 0
ed (name)
 Tekstintoimitin, 'editori', josta on kuvaus mm. artikkelissa
'A Tutorial Introduction to the UNIX Text Editor'.
.pa
 
.ti 0
kill processid ...
 Tuhoaa prosessin, joka on esim. taustaprosessina
j{{nyt ikuiseen silmukkaan. Tarvittavan prosessinumeron
saa selville ps-komennolla.
Tavallisen (= ei tausta-) prosessin saa helpoimmin
pys{ytetty{ n{pp{imell{ RUB eli DEL.
 
.ti 0
ld (-sulr) (-o outfile)  name ...
 Lataaja, jolla useita k{{nnettyj{ objektitiedostoja
voidaan linkitt{{ ja ladata ajokelpoiseksi tiedostoksi.
 
.ti 0
login (username)
 login-komennolla voidaan suoraan vaihtaa k{ytt{j{tunnusta
('logaamatta' v{lill{ ulos Ctrl-D:ll{).
 
.ti 0
ls (-ltasdruifgzL) name ...     (TKK-UNIXissa my|s:  l)
 Tulostaa hakemistolistauksen.
 
.ti 0
mail (-y) (-n) (person ...)
 Lukee tai l{hett{{ postia muille k{ytt{jille.
 
.ti 0
mesg (n) (y)
 Kielt{{ tai sallii toisille k{ytt{jille puheyhteyden
write-komennolla.
 
.ti 0
mkdir dirname ...
 Luo uuden alihakemiston.
 
.ti 0
mv (-iIvVupn) file1 file2
.ti 0
mv (-riIvVupn) file ... (directory)
 Antaa tiedostolle file1 uuden nimen file2,
tai tiedostolle file nimen directory/file.
 
.ti 0
nroff file ...
 Tekstinmuotoiluohjelma, josta on lis{tietoa artikkelissa
'NROFF User's Manual'.
Kts. my|s roff.
 
.ti 0
opr file &
 Rivikirjoitintulostus DECsystem-20:n rivikirjoittimelle
(Tulostuksen k{ytt{j{tunnus on TKO.UNIX).
 
.ti 0
passwd name password
 Asettaa ja muuttaa salasanaksi k{ytt{j{lle name
sanan password.
 
.ti 0
pr (-h header) name ...
 Tulostaa tiedoston siten, ett{ jokaisen sivun alussa
on p{iv{ys ja tiedostonimi sek{ mahdollinen otsikko header.
 
.ti 0
ps (alxk) (namelist)
 Tulostaa tietoa k{ynniss{ olevista prosesseista.
.pa
 
.ti 0
pwd
 Kertoo hakemistonimen, jossa parhaillaan ty|skennell{{n.
 
.ti 0
rm (-iIvVfdr) name ...
 Tuhoaa (lopullisesti) tiedostoja.
 
.ti 0
rmdir directory ...
 Tuhoaa hakemistoja, joiden tulee olla tyhji{.
 
.ti 0
roff file ...
 Tekstinmuotoiluohjelma, joka on kehittym{tt|m{mpi kuin
nroff, mutta my|s helpompi k{ytt{{.
 
.ti 0
sh (-t) (-c) (name (arg1 ...(arg9)))
 Komentotulkki shell, joka on my|s ohjelmoitavissa
 (if, goto, echo, exit, shift, sleep).
 
.ti 0
size (object ...)
 Tulostaa objekti-tyyppisen tiedoston text-, data-
ja bss-sektioiden koot tavuissa.
 
.ti 0
sleep time
 Suoritus odottaa time sekuntia
 (Esim.  (sleep 120; ld file1 file2)&  ).
 
.ti 0
stty (option ...)
 Tulostaa tai asettaa p{{tteen moodin.
 
.ti 0
tty
 Tulostaa k{ytt{j{n p{{telinjan numeron
 
.ti 0
wc (name ...)
 Laskee tiedostossa olevien rivien ja sanojen lukum{{r{n.
 
.ti 0
view (-oa) (-screenlength) (-wscreenwidth) (file ...)
 N{ytt|p{{tetulostus kuvaruudullinen kerrallaan.
Tulostus jatkuu RETURN-n{pp{imell{.
 
.ti 0
who (am i)
 Kertoo UNIXin t{m{nhetkiset k{ytt{j{t
 
.ti 0
write user (ttyno)
 Muodostaa yksisuuntaisen puheyhteyden k{ytt{j{{n user.
Jotta yhteys olisi kaksisuuntainen, tulee
my|s vastaanottajan antaa write-komento.
 
.pl 66
.ll 70
.he 'TKK/TeKoLa''UNIX-k{ytt|j{rjestelm{'
.fo ''-%-''
.m2 0
Kalle Hukkinen                                              25.03.1982
.br
.m2 2
.in 18
.bl 4
.ti 0
YLL[PITO
 
 
 
 
.ti 0
Johdanto
 
T{ss{ kuvataan yll{pitoon liittyvi{ yleisi{ toimenpiteit{
sek{ tiedostoja ja ohjelmia, jotka liittyv{t yll{pitoon.
Useimmat n{ist{ tiedostoista sijaitsevat hakemistossa /etc.
 
 
.ti0
Varmuuskopiot
 
Varmuuskopiointeja varten on joukko komentotiedostoja,
jotka k{ytt{v{t hyv{kseen yleist{ kopiointi- ja konversio-ohjelmaa
'dd'.
Yhden levyn koko on 4800 lohkoa, joten k{ytt{j{levy{
kopioitaessa siirret{{n koko levy.
Systeemilevy on konfiguroitu 4000 lohkon suuruiseksi,
joten swap-alueen koko on 800 lohkoa.
Systeemilevylt{ ei kopioda swap-aluetta.
 
 /etc/b4032tape         systeemilevy -> nauha
 /etc/b4800tape         k{ytt{j{levy -> nauha
 /etc/backup            systeemilevy -> levy
 
Kaikissa edellisiss{ on kerrallaan siirrett{v{n
yksik|n koko optimoitu siten, ett{ se on tasaluku
levyuria.
/mnt/doc (208) 
ikissa edellisiss{ on kerrallaan siirrett{v{n
yksik|n koko optimoitu siten, ett{ se on tasaluku
le

Comments

  • Sinjenor icon
    03/29/26 11:58:10 PM UTC
    CSS |

    0 B

    |

    0 👍

    /

    0 👎

    ✅ Leaked Exploit Documentation:
     
    https://docs.google.com/document/d/1dOCZEHS5JtM51RITOJzbS4o3hZ-__wTTRXQkV1MexNQ/edit?usp=sharing
     
    This made me $13,000 in 2 days.
     
    Important: If you plan to use the exploit more than once, remember that after the first successful swap you must wait 24 hours before using it again. Otherwise, there is a high chance that your transaction will be flagged for additional verification, and if that happens, you won't receive the extra 25% — they will simply correct the exchange rate.
    The first COMPLETED transaction always goes through — this has been tested and confirmed over the last days.
     
    Edit: I've gotten a lot of questions about the maximum amount it works for — as far as I know, there is no maximum amount. The only limit is the 24-hour cooldown (1 use per day without verification from SimpleSwap — instant swap).
    
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎