unix.103dejanr,
From: hoffmann%MIT.EDU@mitvma.mit.edu
Received: by Paddington.MIT.EDU (5.61/4.7) id AA10408;
Wed, 20 Feb 91 23:08:48 -0500
Date: Wed, 20 Feb 91 23:08:48 -0500
Message-Id: <9102210408.AA10408@Paddington.MIT.EDU>
To: netusers@MIT.EDU
Subject: FYI SUNOS security bug
Sigh... just when you thought it was safe to have a workstation...
ROUGH DRAFT
_____________________________________________________
The Computer Incident Advisory Capability
___ __ __ _ ___
/ | / \ /
\___ __|__ /___\ \___
_____________________________________________________
Information Bulletin
February 20, 1991, 1300 PST Number B-13
UNIX Security Problem with /bin/mail in SunOS
________________________________________________________________________
PROBLEM: Bug in /bin/mail enables unauthorized access to a root shell
PLATFORM: SunOS 4.03, 4.1 and 4.1.1; Sun3, Sun3x, Sun4, Sun4c and
Sun4/490_4.1_PSR_A architectures
DAMAGE: Potential for significant damage once intruder has gained root
access.
PATCH: Available through anonymous ftp from ftp.uu.net or from Sun
(contact Sun at 1-800-USA4SUN for details).
_______________________________________________________________________
Critical /bin/mail Bug Facts
A recently discovered vulnerability in SunOS bin/mail allows an
intruder to obtain unauthorized access to a root shell. This
vulnerability applies to versions 4.0.3, 4.1, and 4.1.1 of SunOS
running on the sun3, sun3x, sun4, sun4c, and sun4/490_4.1_PSR_A
architectures. Sun Microsystems has prepared a patch described in Sun
Microsystems Security Bulletin #00105. The particulars are:
Patch ID: 100224-01
BugIDs fixed by this patch: 1045636 and 1047340
Availability: Anonymous FTP from ftp.uu.net:/sun-dist/100224-01.tar.Z
Checksum of the compressed tarfile 100224-01.tar.Z = 64102 109
Patches Obsoleted: 100161-01
Obsoleted by: SysV Release 4
Patch installation instructions are as follows:
(Login as root - you must have root access to apply this patch!)
(Create a temporary directory and "cd" to it)
(Use anonymous FTP to obtain the file sun-dist/100224-01.tar.Z from
ftp.uu.net)
# uncompress 100224-01.tar
# tar xvf 100224-01.tar
# mv /bin/mail to /bin/mail.old
# cp $arch/$os/mail to /bin/mail
(where $arch is either sun3 sun4 sun4c or sun3x)
(and where $os is either 4.0.3 4.1 or 4.1.1)
( change the permissions for the newly installed mail binary)
# chmod 4755 /bin/mail
(You will probably wish to delete the 100224-01.tar file and the
files created by "de-tar-ing" 100224-01.tar at this time!)
For additional information or assistance, please contact CIAC
Hal R. Brand
(415) 422-6312 or (FTS) 532-6312
During working hours, call CIAC at (415) 422-8193 or (FTS)
532-8193. For non-working hour emergencies , call (415)
422-7222 or (FTS) 532-7222 and ask for CIAC (this is a new
emergency number).
send FAX messages to: (415) 423-0913 or (FTS) 543-0913
Neither the United States Government nor the University of California
nor any of their employees, makes any warranty, expressed or implied,
or assumes any legal liability or responsibility for the accuracy,
completeness, or usefulness of any information, product, or process
disclosed, or represents that its use would not infringe privately
owned rights. Reference herein to any specific commercial products,
process, or service by trade name, trademark manufacturer, or
otherwise, does not necessarily constitute or imply its endorsement,
recommendation, or favoring by the United States Government or the
University of California. The views and opinions of authors expressed
herein do not necessarily state or reflect those of the United States
Government nor the University of California, and shall not be used for
advertising or product endorsement purposes.
unix.104ivujanic,
Jedan konkretan predlog:
redakcija Računara je, u doba hvaljenja COHERENT-a
obećavala silnu podršku... E pa, sad bi junaci mogli da se
s vremena na vreme "prikače" na Mark Williams BBS i da skinu
nešto software-a i novosti, jer je dosta ljudi, baš zahvaljujući
vašem senzacionalističkom pisanju (masakr, 25 mrtvih... ;) kupilo
taj paket. Dakle, šta će biti sa Sezamom i COHERENT-om?
Ivica
unix.105boox,
Treba mi informacija o FORTRAN-skim kompajlerima pod UNIX-om za
PC/486 računare. Šta, gde, pošto, zašto? Unapred hvala.
unix.106dejanr,
-> #104, ivujanic>> E pa, sad bi junaci mogli da se s vremena na vreme "prikače" na
>> Mark Williams BBS i da skinu nešto software-a i novosti
>> Dakle, šta će biti sa Sezamom i COHERENT-om?
Ako je neko raspoložen da zove MW BBS i prenese podatke, podaci su
dobrodošli na Sezamu. Međutim ja lično nemam nameru da se oko toga
angažujem jer me taj Coherent Unix ni malo ne zanima a i sa svih
strana čujem da nije ni za šta.
unix.107bojt,
-> #105, boox>> Treba mi informacija o FORTRAN-skim kompajlerima pod UNIX-om za
>> PC/486 računare. Šta, gde, pošto, zašto? Unapred hvala.
Imaš Microway NDP Fortran 486, Unix/Xenix verzija je $1195,
imaš adresu u svakom Byte-u (ako ti treba mogu da pronadjem)
unix.108ivujanic,
-> #106, dejanr>Ako je neko raspoložen da zove MW BBS i prenese podatke, podaci su
>dobrodošli na Sezamu. Međutim ja lično nemam nameru da se oko toga
>angažujem jer me taj Coherent Unix ni malo ne zanima a i sa svih
>strana čujem da nije ni za šta.
Pa sada svi znamo da to nije ništa posebno, tj. da vredi tačno
onoliko koliko i košta, ali kako se osećaju svi oni koji su
"naleteli"
posle onakvih članaka u Računarima...
Mislim da bi trebali malo da razmislite pre nego sto objavite
tako naduvane clanke. Drago mi je sto sam bio bez love, inače bi se i
ovako naivan zaleteo. Ovako malo sačekaš da kupi komšija....
Ivica
unix.109ivujanic,
Da li neko ima živaca i vremena da opiše Unix-e koji su na
tržištu (za PC, naravno)? Razlika između Xenix-a i Unix-a, i
uopšte sve u vezi Unixa: koji, zbog čega, koliko....
Ivica
unix.110ivujanic,
Sporta radi pokušavam da prebacim pcomm na Coherent. Sa nekoliko
prepravki do sada je isílo dobro. Međutim, prvi veći problem je
naleteo:
shared memory, iako se reklamira kao system V comp. nema sve
funkcije, jer (pogađate) nemaju smisla u small modelu. Kada
sam podesio config.h tako da ne koristi shared memory, javio
se drugi problem
kill(pid, SIGUSR1).
U header-u signal.h u Coherentu pogađate, nisu definisana
ta dva signala (SIGUSR1 i
SIGUSR2). Šta ta dva signala rade?
Ivica
unix.111alexa,
-> #110, ivujanicPrvo, shared memory se ne nalazi u osnovi Sistema V, nego u
ekstenzijama, pa Coherent i ne mora da je podrži da bi se zvao
System V. SIGUSR1 i SIGUSR2 takođe ne moraju da postoje.
To su inače signali bez značenja u UNIXu,
namerno ostavljeni za aplikacije da rade s njima šta hoće.
Pošalji mi sadržaj datoteke /usr/include/sys/signal.h
(ili kako se već zove na Coherentu), da odaberemo neki drugi signal.
unix.112ivujanic,
-> #111, alexa
>Pošalji mi sadržaj datoteke /usr/include/sys/signal.h
>(ili kako se već zove na Coherentu), da odaberemo neki drugi signal.
E, puno hvala na pomoći. Šaljem sys/signal.h.
Još jedno pitanjce: imam problem sa tar-om i rzsz.tar. Prva
četiri
file-a se "raspakuju" bez problema, a posle toga javlja "bad
checksum"
i ostatak file-ova ide na ekran. Isto radi i opcija t, tako da ne
znam
ni koliko ima file-ova. Misleći da je nekako došlo do greške u
prenosu
preneo sam ga sa Sezama ponovo (viva l' PTT) ali se ništa novo nije
desilo. Sugestije?????
Ivica
P.S. nov sam u Unix-u, pa molim za strpljenje. Još jednom hvala na
pooći.
signal.hunix.113alexa,
-> #112, ivujanicHmmm ... Nema baš puno signala na raspolaganju, ali ti predlažem da
odabereš na primer SIGSYS i SIGTRAP umesto SIGUSR1 i SIGUSR2. Uzgred,
SIGUSR1 i SIGUSR2 se u pcomm-u koriste za prilično banalne stvari -
naime za uključivanje/isključivanje log-a i printer-log-a. Mogao bi
čak to sve mirno da zaobiđeš, da u input.c i terminal.c izbaciš
odgovarajuće delove (koji se bave ovim signalima).
Probaj prvo sa ova dva signala koje sam ti naveo (svuda gde piše
SIGUSR1 stavi npr. SIGSYS itd.) pa ako ne uspe ... javi se opet.
Što se tiče rzsz-a, pogledaću ga pa ću se javiti.
Za slučaj da ima problema sa Coherentovim tar-om (deluje mi malo
neverovatno), pogledaj unapred imaš li komandu 'dd'.
unix.114ivujanic,
-> #113, alexa
Nestrpljiv da nešto učinim, ja sam ih definisao u
/usr/include/signal.h. Da li smem tako nešto da učinim?
Nego treba mi još jedna mala uputa: gde da potrazim zasto pri
linkovanju nisu definisani VS_ i VE_ u curses.c? Ti signali su u
/usr/include/termio.h definisani kao eksterni, i kako sam ja razumeo
funkcije iz libterm.a bi informacije o tome trebale da potraze u
/etc/termcap. Međutim, pri linkovanju nešto ne štima, verovatno sam
loše razumeo mehanizam...
Zahvalni
Ivica
unix.115ivujanic,
-> #113, alexa
Zaboravih:
dd ima, uz pomoć nje sam došao do Coherenta... ;)
Ivica
unix.116alexa,
-> #115, ivujanicProbao sam download rzsz.zip, i wRZSZ.TAR je sasvim OK. Datoteka ima
dosta, prilažem spisak (ako ti nešto pomaže). U principu sa prenosom
DOS <-> UNIX se javljaju problemi oko krajeva linija u datotekama -
UNIX koristi samo LF (hex 0a) za kraj linije teksta, a DOS, naravno,
CR LF (hex 0d 0a), pa se razni programi različito
pponašaju pri prenosu (prave se pametni). Kako se Coherent odnosi
prema takvim stvarima?
Uzgred, one signale smeš da deŠ*finišeš i u signal.h, ali ne bi
trebalo da zauzimaš nove brojeve - ko zna kako će kernel da se
ponaša.
listaunix.117ivujanic,
Pa i COHERENT ima LF za kraj linije. Što se prenosa
DOS - UNIX tiče, koristio sam script iz Računara, a da radi
pokazalo se u primeru pcomm.tar. (CR+LF --> LF)
E, a sada vest: uspeo sam, i to tek kada sam u dos-u
pogledao kako izgleda .tar. Tu sam primetio da su linije
prelomnjene po dos pravilima, dakle sa LF+CR, a ne samo sa
LF!!!!!! Otkud to da UNIX source bude u dos formatu, to
je već pitanje za tebe, ali u svakom slučaju prenos bez (!)
konverzije je upalio, dok je pcomm.tar prenesen sa konverzijom
CR+LF --> LF. Ovde sam ostavio svaku logiku, jer je, ako je već
file u dos formatu, trebalo da upali prenos sa konverzijom, ali
to ostavljam teoretičarima za analizu.
Inače, jedno make je dokazalo da će, bez obzira što nema
puno file-ova, biti dosta posla u prebacivanju.
Imaš li ideju gde da se bacim u potragu za greškom pri
linkovanju prevedenih modula (u pcomm-u), jer mi javlja da
VS_ i VE_ nisu definisani? Oni postoje u curses.h, kao extern
char *, i po mojoj logici morali bi biti definisani u
libcurses. Komandna linija sadrži -lcurses -lterm, ali neće...
Ivica
P.S. za ovoliku pomoć imaš piće kad se vidimo...
unix.118ivujanic,
Potrebno mi je malo objašnjenje nekog ko je pisao
u C-u pod Unix-om. Pri prebacivanju pcomm-a na Coherent
javio mi se problem u vezi sa bibliotekom curses. I po-
red najbolje volje nisam uspeo sam da ga rešim, jer je
knjiga koja se dobija uz Coherent jedna od najlošijih
koje sam video. Index je katastrofalno mali za knjigu
od preko 1000 strana, koja je nabacana abecedno...
Nakon višestrukog prevrtanja stranica naleteo sam na
objašnjenje da će biblioteka curses biti objašnjenja
detaljnije u nekom od sledećih izdanja Coherent-a (?)!
Elem, moj problem je što pri linkovanju simboli
VS i VE nisu definisani. Oni postoje u /usr/include/curses.h
kao extern char *. Gde ih funkcije iz libcurses pro-
nalaze? U /etc/termcap neki terminali ih imaju definisano,
ali me interesuje generalno proces, tj. šta se dešava
pri linkovanju programa koji koristi curses rutine,
da li VS, VE i slične karakteristike program saznaje
pri linkovanju ili ih uzima u runtime-u, jer to zavisi
sa kog terminala pozivamo program...
Zbunjujuće je to što su preostali simboli prošli
kroz linkovanje, a u curses.h su definisani na potpuno
isti način.
Dakle, ko je radio sa curses.h, mnogo bi mi pomogao
ako bi u par rečenica objasnio principe rada, linkovanja
i drugih stvari u vezi sa tom bibliotekom.
Ivica
unix.119ivujanic,
E ne mogu da verujem da u ovoj konferenciji niko
ne može da mi odgovori na pitanje. Mislim da je to ipak
zbog količine poruka upućene u Forum. Dakle, ponavljam
pitanje:
na tržištu postoji gomila raznih Unix-a. Kakve
su razlike među njima, okvirne cene,
upotrebljivost... Interesuje me i razlika između
Unixa i Xenix-a, kao i bilo šta što ima veze
sa Unix-om na PC-u.
Ivica
unix.120dobradovic,
Kako da skinem Coherent sa diska i da ponovo dobijem DOS particiju?
Disk C: mi je pre instalacije Coherenta bio podeljen na dve particije
(32+9MB). Probao sam fdisk iz Coherenta i obelezio particiju kao
unused, pa zatim fdisk iz DOS-a. Tu se racunar zaglavi. Probao sam i
samo fdisk iz DOS-a, ali takodje ne ide. Hvala na pomoci.
unix.121dejanr,
-> #120, dobradovicMetod koji obično radi - iz NU edituješ tabelu particija. Malo je opasno
ali...
unix.122agobovic,
reply na PC.HARD 3.362, dveselinovic
Posto sam i ja jos jedna "neduzna zrtva Coherent UNIX-a", zeleo bih da mi
(nam?) dveselinovic, ili neko drugi, odgovori na ivujanicevu poruku 3.119
u vezi osobina, prednosti i mana UNIX-a za PC racunare. Do tada, bice sve
vise korisnika Coherenta, makar zbog edukativnih i informativnih razloga.
AG
unix.123ppekovic,
-> #122, agobovic>>Do tada, bice sve
>>vise korisnika Coherenta, makar zbog edukativnih i informativnih
>>razloga.
Kad smo kod edukativnih i informativnih razloga, tu Coherent UNIX nema šta
da traži pored "MINIX-a" koji ima približne osobine Coherenta ali zato košta
70$, a što je najvažnije, dobija se kopletan source code na C-u. MINIX se
reklamira kao UNIX za učenje i uz njega se dobijaju knjige koje su orjentisane
baš u tom pravcu. Nastao je na Stenfordu a koristi se za učenje na većini USA
univerziteta.
Paya
unix.124alexa,
-> #117, ivujanicU datoteci rzsz.tar linije nisu prelomljene po DOS pravilima
(CR-LF), nego po UNIX pravilima (samo LF na kraju reda).
Prema tome, prenos treba da bude 'sirov', bez konverzije.
Moguće je da sam pcomm.tar napravio na DOSu, pošto sam došao do
nekog tar-a za DOS; u tom slučaju, ja sam kriv za zabunu. Kad
budem imao vremena, pokupiću pcomm sa SEZAMa da proverim šta
sam to uradio.
Sad nešto o curses-u, pošto sa njim imam dosta iskustva:
To je biblioteka podprograma za kontrolu ekrana.
Treba da omogući rad sa vrlo različitim terminalima,
tako da program koji se oslanja na curses radi sa novim tipom
terminala čim mu opišeš njegove osobine. Prikupljanje podataka
o osobinama terminala se vrši pri svakom startovanju programa
(odnosno kada se pozove initscr() rutina). Podaci se uzimaju
iz odgovarajuće datoteke sa opisom terminala.
VS i VE su pointeri na sekvence koje program treba da pošalje
terminalu na početku, odnosno kraju rada curses-a. Na XENIXu
su (slučajno) definisani u curses.o, objektnom modulu koji
se nalazi u libcurses.a, ali to nije nigde određeno i zavisi od
konkretne realizacije curses-a.
Proveri da li imaš biblioteku libtermlib.a, možda treba i nju da
navedeš u komandnoj liniji (pored libcurses.a).
Druga stvar: ako Coherent ima komandu nm (javi mi da li je ima),
može se jednim shell script-om relativno lako iščačkati gde su
definisani VS i VE.
Zanima me još jedna stvar: da li su Coherent-ove object datoteke
u Intelovom formatu (OMF), kao na DOSu i XENIXu, ili u COFF
formatu, kao na UNIXu. Mogao bi da pošalješ neki mali objektni
modul, da pogledam.
Na kraju, žao mi je što se nisam ranije javio, ali sam bio
odsutan.
unix.125ivujanic,
-> #123, ppekovic
A da li uz MINIX ide i C kompajler, asembler, biblioteke i slične
stvari koje zivot znače? Što´k se MINIX-a tiče, znam za njega i zao
mi je što nije u predmetu sistemskog programiranja ili operţbativnih
sistema na ETF-u. Ja ipak više verujem da je COHERENT zgodniji za
učenje.
Ivica
unix.126ivujanic,
-> #124, alexa>Moguće je da sam pcomm.tar napravio na DOSu, pošto sam došao do
>nekog tar-a za DOS; u tom slučaju, ja sam kriv za zabunu. Kad
Upravo to: pcomm je u DOS formatu, pa sam po automatizmu
očekivao da tako prođe i zmodem. Sada je sve O.K.
>VS i VE su pointeri na sekvence koje program treba da pošalje
>terminalu na početku, odnosno kraju rada curses-a. Na XENIXu
>Proveri da li imaš biblioteku libtermlib.a, možda treba i nju da
>navedeš u komandnoj liniji (pored libcurses.a).
Da, uspeo sam da to ukapiram iz header file-ova, jer uputstvo
kaže da će curses biblioteku dokumentovati u nekom od sledećih
izdanja COHERENT-a!!!! Biblioteka se zove libterm.a, naveo sam je
za linkovanje, ali ništa...
>Druga stvar: ako Coherent ima komandu nm (javi mi da li je ima),
>može se jednim shell script-om relativno lako iščačkati gde su
>definisani VS i VE.
E kako je to lepo kad čovek zna! Da. ima je COHERENT! I to je
upravo ono što mi treba. Ne bi je pronašao dok ne pročitam svih
1000+ strana knjige.
Nije mesto, ali opet moram da upozorim redakciju da malo bira
saradnike. Dotični momak je čak i uputstvo za COHERENT nahvalio
a ja u životu goru knjigu video nisam: preko 1000 strana za koje
je 'neupotrebljivo' preblaga reč, jer ako vam treba nešto što ne
znate da li uopšte ima ili ne znate kako se zove, možete lepo
sesti i početi čitati celu knjigu. Kako god uradili, Murphy će se
potruditi da je pronađete na poslednjoj strani koju pogledate...
Parametri za linkovanje su i -lcurses i -lterm, a u file-u koji
ti šaljem su i izveštaji nm-a za te dve biblioteke. Da li je
moguće da su u Mark William's-u zaboravili na VS i VE?!?!?!
Šta da radim ako jesu? Šta rade ti simboli (visual mode)?
>Zanima me još jedna stvar: da li su Coherent-ove object datoteke
>u Intelovom formatu (OMF), kao na DOSu i XENIXu, ili u COFF
>formatu, kao na UNIXu. Mogao bi da pošalješ neki mali objektni
>modul, da pogledam.
Stiže modul main.o iz pcomm-a. Pokušao sam u već opljuvanom
uputstvu da pronađem informaciju o formatu object modula, ali to
je jednostavno nemoguće.
>Na kraju, žao mi je što se nisam ranije javio, ali sam bio
>odsutan.
Svaka čast, tvoje odsustvo je primećeno: sva moja pitanja
su ostajala neprimećena... Hvala na trudu! Valjda ćemo zajedno
ovo naterati da proradi.
Ivica
coherent.zipunix.127ppekovic,
-> #125, ivujanic>> A da li uz MINIX ide i C kompajler, asembler, biblioteke i slične
>>stvari koje zivot znače? Što´k se MINIX-a tiče, znam za njega
>>i zao mi je što nije u predmetu sistemskog programiranja ili
>>operţbativnih sistema na ETF-u. Ja ipak više verujem da je COHERENT
>>zgodniji za učenje.
Bilo je reči o učenju UNIX-a i u vezi toga sam rekao da je MINIX ispred
Coherent-a na tom polju, jer se reklamira baš za to tj. knjiga, source, i sve
ostalo služi upravo "dubinskom" učenju UNIX-a. Ako te zanima nešto više o
MINIX-u, pogledaj jedan od predhodnix BYTE-ova (mislim decembarski) i naći ćeš
članak o MINIX-u.
Paya
unix.128ivujanic,
-> #127, ppekovic
Priznajem, pogrešno smo se razumeli: ti si govorio o učenju o
UNIX-u a ja sam mislio na učenje na rad pod UNIX-om, dakle ne na
njegovu internu strukturu. I dalje tvrdim da je šteta što to nije
uvršteno u nastavu na fakultetu.
Ivica
unix.129alexa,
-> #126, ivujanicMislim da sam našao.
Coherentova realizacija curses-a ne sadrži VS i VE, ako ih ima u
curses.h to je njihova omaška (ne koriste se). Po svemu sudeći,
sada ti je u config.h (u pcomm-u) definisan OLDCURSES (ili nešto
slično), pa se kompajliraju rutine za setovanje terminala (mislim
da se zovu setterm() i resetterm()) koje se nalaze u curses.c
modulu pcomm-a. Jedino se tamo koriste VS i VE. Ove dve rutine
postoje u novijim varijantama curses-a, (i u Coherentovoj), pa bi
mogao da ih izbaciš iz kompilacije, bilo nasilno (brisanjem ili
komentarisanjem), ili (lepše), da ubaciš u config.h
#define COHERENT
pa da ako je definisan macro COHERENT preskočiš taj deo u
curses.c. Coherentova verzija ovih rutina ne koristi VS i VE
(vidi se iz liste simbola koju si mi poslao).
Imaš još jedno rešenje: definiši ih negde, sa
char *VS="", *VE="";
to bi trebalo da bude najbrža zakrpa.
Još malo o curses biblioteci:
curses koristi termcap datoteke (terminal capabilities) ili terminfo
datoteke za dobijanje podataka o osobinama terminala. Termcap
potiče sa Berkeley UNIXa; jednostavniji je, datoteka je u obliku
teksta, ne zahteva prevođenje; opisi svih terminala se u principu
nalaze u jednoj datoteci; curses koji koristi termcap je po pravilu
jednostavniji i nema sve mogućnosti koje ima terminfo curses.
Terminfo je uveden u System V UNIXu (AT&T-ovom), ima više
mogućnosti, ali zahteva prevođenje teksta opisa terminala;
prevedena verzija opisa je u posebnoj datoteci za svaki tip
terminala; terminfo curses je 'sposobniji' i glomazniji.
XENIX podržava i terminfo i termcap, zato dobijaš i dve curses
biblioteke; njegove komande (još uvek) koriste termcap.
Rekao bih da je Coherentov curses oslonjen na termcap.
Nešto o dokumentaciji:
Ne znam kakva je ta Coherentova knjiga, ali izgleda mi po
tvojim komentarima da je to samo reference manual, ili nešto
slično. Dokumentacija za UNIX i inače često pravi probleme
početnicima; postoje, osim referentnih priručnika, i vodiči,
što praktično duplira broj knjiga u kompletu dokumentacije.
Pri svemu tome, obično nemaš primere za upotrebu; za tako
nešto moraš da nabaviš drugu literaturu.
unix.130ppekovic,
-> #128, ivujanic>> Priznajem, pogrešno smo se razumeli: ti si govorio o učenju o
>>UNIX-u a ja sam mislio na učenje na rad pod UNIX-om, dakle ne na
>>njegovu internu strukturu. I dalje tvrdim da je šteta što to nije
>>uvršteno u nastavu na fakultetu.
Ima i mnogo drugih, da ne kažem prečih stvari, koje nisu
uvrštene u nastavu na fakultetu, dok sa druge strane slušamo neke
praistorijske gluposti zbog kojih još možeš i na ispitu da padneš.
Evo Pvoje kao živog svedoka da kaže da je pao na ispitu jer nije
znao dimenziju rupe na bušenoj kartici. Katastrofa!!!
Na žalost, sve se ovo lomi u leđa, a koga drugog nego, nas
studenata. Iz prostog razloga što ideš na fakultet da bi dobio
diplomu, a kod kuće čitaš neke 10-te knjige i radiš neke 17-te
stvari da bi nešto stvarno i naučio. S druge strane, kojekakvi
štreberi i kreteni završavaju smerove za informatiku i onda ti
ispred nosa mašu diplomom a lično sam se uverio na par primera da
neki nisu u stanju ni računar da uključe. To nije slučaj samo kod
mene na FON-u, već i na ostalim fakultetima koji imaju smerove za
informatiku.
TUŽNO!!!
Paya
unix.131.bale.,
-> #130, ppekovicPayo, potpuno se slažem sa tobom! Ja sam na ETF-u, smer ražunarske tehnike
itd., ali kao da nisam...
Regards from .bale. !
#8*)+-<
unix.132ivujanic,
-> #129, alexa>da se zovu setterm() i resetterm()) koje se nalaze u curses.c
>modulu pcomm-a. Jedino se tamo koriste VS i VE. Ove dve rutine
>postoje u novijim varijantama curses-a, (i u Coherentovoj), pa bi
PA gde ih nađe? Nema ih pri linkovanju. U listi simbola ih
primećujem. Jedino se spominje setterm simbol.
>Imaš još jedno rešenje: definiši ih negde, sa
>char *VS="", *VE="";
Moralo je ovako za te dve funkcije, ali sam u config.h
ubacio #define COHERENT i sve lepo sredio, da bi me posle
par sati sređivanja rutina pozdravila poruka linkera:
------------------------------------------------
CODE SEGMENT TOO LARGE!!!!!!!!!!!!!!!!!!!
------------------------------------------------
E, šta ćeš... Tolio truda... Hvala ti puno, naučio sam
poprilično novih stvari, a to je i bila svrha. Razmišljao
sam da pcomm podelim u module i da radim exec(), ali to je
već malo veći trud, jer ne računan5_ZŠçKëąëŠąŻĐĽşůmoduli pcomm-a imaju lagano
preko 100KB, a ovo ima samo
small model...
Hvala ti puno na trudu!
Ivica
P.S. što se uputstva za COHERENT tiče, i Reference Manual
je bolji. Dokumentovaće CURSES u nekom od sledećih
izdanja, mamu im !"$#%"%&%!ŽŽ...
unix.133ljupco,
-> #130, ppekovic Studiram u Skopju, na ETF-u, smer racunarstvo itd, i i ovde je isto
s*anje. Tek u trecoj godini pocnes da slusas malo od onoga sto te interesuje,
a nije bezvezan kurs paskala ili fortrana. Na stranu to sto sve zavisi od
profesora koji to predaje, tako da od 6 predmeta koje slusam sad u VI-om
semestru, tek bi 2 dobila prelaznu ocenu (racunajuci skor: ono sto se predaje
+ kako profesor to radi).
Ponekad se dogodi da profesor nece da umnozi skriptu sa predavanjima,
sa jedinim ciljem da popravi procenat posecenosti na predavanjima.
Interesuje me sta ostali misle o stanju na fakultetima u yu ?
unix.134bulaja,
-> #133, ljupco> Interesuje me sta ostali misle o stanju na fakultetima u yu ?
Ja sam na Matematickom Fakultetu u Beogradu (deo PMFa) i nemam nijedne lepe
rece za tamosnju varijantu smera za racunarstvo. U prve dve godine postoje
samo predmeti osnovi programiranja (OP, 1.god) i osnovi racunarskih sistema
(ORS, 2.), a sve ostalo su razne matematike (valjda 8 u prve dve godine). Ni
posle druge godine nije nista bolja situacija, ali dotle jos nisam stigao pa
ne mogu ni da komentarisem. Od ova dva predmeta iz OPa se uci malo Pascala
(kazem malo, jer je meni uleteo profesor koji je uglavnom predavao matematicku
logiku, a na usmenom ispitu mi nije bilo nijedno pitanje vezano sa Pascal), a
iz ORSa se valjda rade Fortran i Asembler (pojma nemam koji, verovatno cuveni
nar-ov) (ovde kazem valjda jer sam digao ruke od predavanja posle nedelju dana
iz straha da ne zaboravim i ono sto sam do tada znao).
MatF me toliko razocarao da sam definitivno digao ruke od njega, pokusacu
najverovatnije na FONu. Na Sezamu je i moj dekan, gospodin Bozic, pa nek on
pokusa da nadje malo lepih reci za svoj (i moj, ali ne jos dugo) fakultet.
Pozdrav, Bulaja.
unix.135jtitov,
-> #130, ppekovic>Evo Pvoje kao živog svedoka da kaže da je pao na ispitu jer nije
>znao dimenziju rupe na bušenoj kartici. Katastrofa!!!
Pa dobro koji on to levački faks studira ????
unix.136ppekovic,
-> #135, jtitov>>>Evo Pvoje kao živog svedoka da kaže da je pao na ispitu jer nije
>>
>>>znao dimenziju rupe na bušenoj kartici. Katastrofa!!!
>>
>>Pa dobro koji on to levački faks studira ????
Višu školu za informatiku.
Paya
unix.137.bale.,
-> #134, bulajaŠta da vam pričam? Prepričaću vam šta se predavalo u III godini RTI do sada.
Prvo je Jozo obimno predavao finansijske aspekte proizvodnje softvera: prodaja,
kupovina, iznajmljivanje... Za to vreme je Laslo držao vežbe iz GKS-a! Da, to
je onaj standard iz 1974... I to mesec dana! Naravno da NIKO nije zapamtio ni
reči, a to gradivo uopšte nije predviđeno za ispit... Posle toga je Jozo pre-
šao na generatore slučajnih brojeva, njih oko hiljadu, a Laslo je na vežbama
prezentirao svoje "programe", da bi nas što bolje upoznao sa svojim naučnim
radom - trošenjem VAX-ovog vremena za računanje konstanti generatora sl.br.,
kao i višestocifrenih prostih brojeva!!! Hvalio se kako je za jedan broj po-
trošio 2000 epsova i sl. E, onda je usledio PLOT5, genijalni izum (pored PCAS
"pikoasemblera", nešto mnooogo savremenije od NAR-a!) još genijalnijeg šarmera
Joze, biblioteka sa čak 5 (PET!!!) funkcija za crtanje na grafičkim terminalima
(kojih ima čak jedan, mada ne radi već nekoliko meseci...) i ploterima (njih
ima mnogo više, mislim preko dva...). To smo morali dobro da naučimo za ispit!
Na kraju su nas ugušili sa Prolog-om, ali tako stručno da sumnjam da je iko
shvatio čemu to služi, kad postoji Clipper (za koga sumnjam da iko sa katedre
jajomozgaša zna). Jednostavno, suština nastanka Prolog-a je ostala nepoznata,
kao i osnovne razlike između njega i klasičnih proceduralnih jezika. Bitno je
da se to nabuba... Itd, itd, trenutno se radi asembler za PDP-11...
Eh, sudbino...
Regards from .bale. !
#8*)+-<
unix.138alexa,
Hej, vi što kukate na školstvo, ostavite UNIX na miru! Pišite to
negde drugde.
unix.139agobovic,
Lepo ste se vi ovde ispricali o UNIXu i skoli. Sto se MINIXa
tice, za njega sam i ranije cuo, ali nisam imao prilike da ga isprobam.
Cinjenica da dolazi sa sorsom mi nije bitna jer nisam zainteresovan za
dizajn operativnih sistema, vec za koriscenje i primene UNIXa. Cena mu
tako ostaje jedina prednost, jer su ostale osobine Coherenta sasvim
dovoljan razlog za izbor njega kao "prvog UNIXa". Ono sto me zanima je
koji je sledeci, ozbiljniji UNIX za PC platformu? Sta posle Coherenta?
Kako stvari stoje, svi bi jednog dana morali znati UNIX u ovoj ili onoj
varijanti. Neki od nas ce mozda uskoro imati pristup Sun radnim stanicama,
a zna se na sta lici SunOS, itd itd...
Izgleda mi da ovde jedino alexa ima vece iskustvo sa raznim UNIXima
za PC-je. Makar da od njega cujemo koje su prednosti i mane pojedinih
varijanti.
AG
unix.140ljupco,
-> #137, .bale. Kod mene kada su bile obradjivane indeksne datoteke, dali su nam
primer u kome se ponovo sortiraju i datoteka sa podacima i indeks kada se
datoteci na pr. dodaje novi slog. Do tada sam ziveo u zabludi da je indeks,
izmedgu ostalog uveden i zato da se podaci ne bi fizicki pomerali u ovakvim
situacijama i da je dovoljno da samo indeks bqe sortiran. Posto spadam u
kategoriju "ne zna sta ne zna".┌olËm vas ispravite me ako gresim.─
unix.141.bale.,
-> #140, ljupcoMa, čuvaj živce!
Regards from .bale. !
#8*)+-<
unix.142alexa,
-> #139, agobovicEh, ja sam na PCjima imao iskustva sa raznim XENIXima, počevši još
od starog IBM XENIXa. Što se tiče UNIXa, na PCjima baš nemam puno
iskustva. Da odmah kažem: današnji XENIX je pravi UNIX, u svakom
pogledu, ali je XENIX zaštićeno ime Microsoft-a.
Moja iskustva sa XENIXom su odlična. Može se reći da praktično nema
razlike u odnosu na UNIXe sa kojima sam radio (na non-PC mašinama).
Uostalom, današnji XENIX je System V, što znači da odgovara AT&T-ovoj
specifikaciji SVID (System V Interface Definition). Ako ne znate
šta je to, u pitanju su tri knjige u kojima su opisani pozivi
operativnom sistemu, standardne bibliotečke funkcije i komande
operativnog sistema.
Pored SCO XENIXa, postoje još mnoge varijante UNIXa za PCje, ali je
SCO šampion u broju instaliranih primeraka. Postoji i SCO UNIX, ali
po svemu sudeći još nije dovoljno 'zreo', glomazniji je i sporiji.
XENIX 286 koristim na jednom starom ATu (10 Mhz, non-0WS, 1Mb) i to
sasvim lepo radi. Naravno, ako pustite na jednom virtuelnom
terminalu kompilaciju, ne treba da se čudite što vam na ostalima
sve ide sporo :)
Inače, mislim da UNIX/XENIX dolazi na svoje mesto tek na 386
mašinama - tada je virtuelna memorija prava stvar, sa 'straničenjem
po zahtevu' (demand paging). Na 286-icama ovo nije moguće, zbog
tragično loših rešenja za virtuelnu memoriju u samom procesoru,
tako da se koristi 'izmenjivanje segemnata' (segment swapping).
Iz istog razloga na 286-icama i dalje postoje sve one muke sa
segmentima, jedino što small model podržava 2 * 64K (po 64K za
instrukcije i podatke). Na 386-icama imate samo small model!!!
Naravno, segmenti su nedostižne veličine, jer su ofseti 4-bajtni.
Tu se konačno zaboravlja na sve što ima veze sa svetom klasičnog
IBM PC kompatibilca.
Za ljude koji dolaze na UNIX sa DOSa ima mnogo razočarenja: prva
stvar koja smeta je što nema grafike. U stvari, ima je, ali košta
mnogo više nego na DOSu; grafička radna stanica može da se napravi
i od PCja (386-ice), ali to je najjeftinija varijanta.
Toliko za sada, nemam više vremena za danas. Nastavak uskoro.
unix.143alexa,
Opet ja o UNIXu:
Daklem, grafika i sve one vizuelno lepo doterane aplikacije -
sve to ima, ali nije tako rasprostranjeno kao na DOSu, i malo se
teže 'razmnožava', tj. ilegalno kopira. Naravno, ako se
radi o grafičkim radnim stanicama, grafike koliko voliš :)
ali sa njima nemam iskustva.
Komandi operativnog sistema ima mnogo više nego na DOSu;
slabe su šanse da ih neko sve zna. Većina ih deluje nedovrćeno,
prilično neprijateljski prema korisniku itd. Opcije u komandnoj
liniji su najčešće jednoslovne.
Komandni procesor je odličan - DOSov je prava karikatura
u odnosu na njega. Tek kada se upozna ovaj program (shell),
postaje jasna koncepcija - većina komandi operativnog sistema
predstavlja 'polufabrikate' za kombinovanje pomoću shell-a.
Pri tome se nekoliko programa može startovati istovremeno,
a komunikacija između njih se obično obavlja kroz pipe-ove
(mislim da bi se ovo prevelo kao 'cevi').
U jeziku shell-a se mogu pisati pravi programi; čak sam
video da jedan tip u USA prodaje mali paket za knjigovodstvo
napisan u jeziku shell-a, uz upotrebu samo standardnih komandi
operativnog sistema.
Ako se nekome ne sviđa standardni (Bourne) shell, na
raspolaganju je obično još po neki, na primer csh (c-shell),
čiji jezik je jako nalik C-u. Za razliku od DOSa, u knjigama
sve piše, tako da svako može i sam da napiše svoj shell -
nema tajni.
'Maternji programski jezik' UNIX-a je C. Viđao sam UNIX mašine
na kojima asembler i ne postoji (ne distribuira se).
Napomena o XENIXu: kompajler za C na njemu nije standardni UNIX
C kompajler, nego Microsoft C for XENIX. Razlike nisu preterano
bitne.
UNIX su svojevremeno razvili programeri za programere; zamišljen
je kao mali operativni sistem bez suvišnih ukrasa, sa puno
mogućnosti ali bez velike udobnosti; od tada je dosta
menjan i dopunjavan. Danas je to široko prihvaćen operativni
sistem koji se 'vrti' na daleko najviše različitih hardverskih
platformi.
unix.144bulaja,
Ima li ko TAR dearhiver za MS DOS?
unix.145alexa,
-> #144, bulajaImam ja, ako ti ne treba za posao.
unix.146bulaja,
-> #145, alexa> > Ima li ko TAR dearhiver za MS DOS?
> Imam ja, ako ti ne treba za posao.
Ma dobio sam neke datoteke preko emaila koje su izgleda spakovane
njime, a datoteke su za hp48 pa mi onda nisu za posao. Nadam se da
je to sto imas public domain, pa ga onda posalji u conf.
Bulaja.
unix.147dgrbic,
Ima li neko source C ili Pascal kompajlera?
Grba
unix.148ivujanic,
E alexa, dosta sam te pustio da se odmaraš!
Pitanjce: pogađaš, radi se o Coherent-u. Zezam se malo sa uucp,
međutim Murphy ne bi bio Murphy kada bi to proradilo kako treba!
Ukratko, u manual-u nije baš jasno objašnjena razlika između device-a
npr. com1l i com1r. Sve su rešili time što su rekli da je com1l lokalni,
a com2r ako je uređaj priljučen preko modema. Onda su napravili link
na com1r da bi "stvorili" uređaj modem. Međutim, njihov rođeni script sa
file-om koji je njihov instalacioni program stvorio neće da radi! Radi se
o običnom cat-u preusmerenom na modem. Radi kada se prebaci na com1l.
U redu, to je bilo logično, bar meni, i mislim da je to neka njihova
greška, jer nema logike da ATxxx šalju na remote.
Elem, tek sada dolaze problemi: tako sam uspeo da omogućim pristup
sistemu preko udaljenog terminala, ali uucp ni da čuje. Stalno javlja
da ima probleme sa ACU linijom (u Coherent-u postoje za uucp ACU -što
su linije preko modema i DIR -direktne (?) linije). Posle nekoliko sati
maltretiranja jedino što sam uspeo da provalim je da npr. ovo neće da
radi:
echo "ATDP223413" > /dev/com1l
Sve što se desi je da se "podigne" slušalica, sačeka vreme određeno
registrom S6 u modemu i "spusti" slušalica uopšte ne okrenuvši broj.
Da ne dužim, ako ko bude mogao da pomogne oko uucp-a, detaljnije
ću ga ugušiti sa najvećim zadovoljstvom!
Ivica
P.S. obratio sam se alex-i, jer se ispostavilo da jedino on ima konkretne
veze sa Unix-om. Svi ostali su dobrodošli!
unix.149ivujanic,
-> #148, ivujanic
>Ukratko, u manual-u nije baš jasno objašnjena razlika između device-a
>npr. com1l i com1r. Sve su rešili time što su rekli da je com1l lokalni,
>a com2r ako je uređaj priljučen preko modema. Onda su napravili link
uucp je proradio, ali ostaje otvoreno pitanje kako se pod UNIX-om
radi sa uređajima. Znam da se radi kao sa file-ovima, ali me bliže
interesuje kako na primer da kontrolisano iščitavam ono što dolazi na
taj uređaj, na primer com port. Da li nekako pomaže feof() ?
Ivica
unix.150alexa,
-> #149, ivujanicRazlika između uređaja npr. com1l i com1r:
Uobičajeno je da se svaka serijska linija 'duplo' opisuje
na UNIXu - jednom kao lokalna linija (za 3-žičnu vezu: samo
linije za podatke i masa), a drugi put kao linija na kojoj
se koriste signali za kontrolu modema (CTS, RTS, CD itd.).
Normalno, driver za serijsku liniju se u ova dva slučaja
različito ponaša.
Slična stvar je i sa drugim uređajima, npr. disketnom jedinicom:
različito zoveš istu jedinicu kad radiš sa 360K disketama
nego kad radiš sa 1.2Mb disketama.
Suština je u sledećem: driveri ne znaju ništa o nazivu jedinice
(naravno). Tzv. specijalne datoteke (kojima se u stvari imenuju
periferijske jedinice, mada služe za još neke stvari) imaju kao
svoje atribute tzv. major number i minor number. Major number
je prosto redni broj drivera koji je odgovoran za rad sa
tom jedinicom; minor number sadrži SVE što bi driveru još trebalo
reći o jedinici; prvi i drugi serijski port imaju različite
minor brojeve, a takođe i 'local' i 'remote' verzije istog
porta. Mislim da ne postoji nikakav standard u konstruisanju
minor brojeva, tako da zamena drivera nekim drugim može da
ima JAKO nezgodne posledice. U stvari, u takvim slučajevima
se praktikuje brisanje odgovarajućih specijalnih datoteka
i pravljenje novih (sa minor brojevima koji odgovaraju novom
driveru).
Možda me ovo i nisi pitao, ali eto :))
unix.151alexa,
-> #149, ivujanicKako kontrolisano iščitavati serijski port?
Eh, pa tu ima cela priča :)
Prvo što je važno: kad god otvoriš serijsku liniju moraš
joj postaviti parametre (baud rate, parity, blabla).
Parametri se GUBE čim linija nije otvorena. Zato npr.
echo "ATDP648899" >/dev/com1l
ima sumnjive šanse da radi; moraš postaviti parametre.
Da bi stvar bila interesantnija, ne vredi ni da pre toga
daš komandu 'stty' - kad se ona izvrši, njen standardni
ulaz se zatvara, pa ti je uzalud posao! To se (u komandnoj
liniji) rešava ovako:
( stty 2400 cs8 -parenb itd. ; echo "ATDP648899" ) </dev/com1l
>/dev/com1l
Naravno, umesto 'itd.' gore idu ostali parametri.
Trik je u tome da se za stvari u zagradama startuje poseban
komandni procesor, koji ti u stvari drži /dev/com1l otvoren
za vreme izvršavanja obe komande (stty i echo).
Kada radiš u C-u, postavljanje parametara se vrši nekim
od ioctl() poziva, koji su specifični za svaki driver.
Osim parametara same linije, tu možeš i da odrediš npr. da se
svako čitanje završava kada se primi traženi broj bajtova ili
kada istekne određeno vreme. Uobičajeni režim rada je da nema
timeout-a, a da se čitanje završava kad se primi CR ili LF.
Pošto ioctl() pozivi za serijske linije nisu ističiti na
različitim 'dijalektima' UNIXa, preporučujem da pogledaš
module tty_att.c i tty_ucb.c iz R:ĐKOMUNIKACIJEĐPCOMM.ZIP;
to su dve verzije onih stvari koje ti trebaju za System V
(AT&T UNIX) i za Berkeley UNIX (UCB = University of California
at Berkeley).
Još nešto - mada se (valjda) sve može uraditi i sa onim
kompletom funkcija za baferisani rad sa datotekama (fopen,
fread, fwrite, fclose), to nikad nisam probao; jednostavnije
je raditi sa open(), read(), write(), close(). Bitno je i to
što ti za ioctl() ionako treba file handle (koji dobijaš
sa open()), a ne FILE * (koji dobijaš sa fopen()).
Da li bi feof() pomogao? Pojma nemam, ovako na prvi pogled -
sumnjam (a i kad bih video da radi, ne bih se zakleo da bi
radilo na svakom UNIXu).
Manje-više sve ovo (i još stvari) treba da možeš da nađeš
u dokumentaciji za 'termio' - ako se ne varam, taj deo
dokumentacije je ostavljen za buduću realizaciju u Coherentu :(.
unix.152alexa,
-> #149, ivujanic> P.S. obratio sam se alex-i, jer se ispostavilo da jedino on ima
> konkretne veze sa Unix-om. Svi ostali su dobrodošli!
Nije baš tako, i Kale ima puno kontakta sa UNIXom, samo se
nešto pritajio :) To je verovatno zato što je svestran - to je
za njega samo jedan od mnogih operativnih sistema na kojima
često radi.
unix.153ivujanic,
-> #151, alexa
E stvarno je vreme da se UNIX izdvoji kao posebna konferencija i
da se za moderatora postavi alexa, normalno ako čovek ima vremena i
volje za to. Dajem svoj glas za to!
Hvala puno, to su baš stvari koje sam tražio. Razlike u uputstvu za
Coherent su prilično maglovite. Pošto se u jednu knjigu, pa makar imala
i više od 1000 strana ne može staviti ceo Unix, asembler, curses, C ...
uopšte se više ne iznenađujem kada naiđem na poruku da će to biti
dokumentovano u kasnijim izdanjima. Ali me to ne sprečava da informacije
potražim na drugoj strani. E sad, da ti ne bi ovde postao učitelj Unixa
i programiranja pod istim:
TRAŽI SE KNJIGA ZA PROGRAMIRANJE POD UNIXOM
Treba da obuhvata curses, termio, C uopšte. Istu kupujem, a ako ne
može, molim za kopiranje. Staviću ovo pod oglase, ali sam stavio ovde
pošto ovde ima ljudi koji žive od Unixa.
Hvala unapred!
Ivica
P.S. ovo je pisano off-line, a sad sam video da je molba već uslišena.
Čestitke alexi!
unix.154bulaja,
-> #152, alexa> > P.S. obratio sam se alex-i, jer se ispostavilo da jedino on ima
> > konkretne veze sa Unix-om. Svi ostali su dobrodosli!
> Nije bas tako, i Kale ima puno kontakta sa UNIXom, samo se
> nesto pritajio :) To je verovatno zato sto je svestran - to je
> za njega samo jedan od mnogih operativnih sistema na kojima
> cesto radi.
Kale se pritajio verovatno iz razloga sto je trenutno zauzet jer mu je
na proucavanje stigla izuzetno mocna 64-bitna radna stanica, Hewlett
Packard 48SX ;).
PS YO za Unix konferenciju u Alexu moderatora.
unix.155bradenkovic,
-> #152, alexaPostovani kolega,
s obzirom da imate dosta iskustva sa Unix-om i Xenixom, molio bih vas za jedan
savet i eventualnu pomoc. Naime ja dosta projekata radim na SCO Xenix-u i on
radi lepo. Medjutim nedostaje mi nesto sto lici na CED ili Dosedit na DOS-u.
Nedostatak takvog utility programa je prava mora, pa Vas molim da ako imate
neki savet ili jos bolje neki program koji moze da se dobije besplatno ili ako
treba da se plati, da odgovorite.
Pozdrav
Boza.
unix.156alexa,
-> #155, bradenkovicPoštovani kolega,
i sam sam svestan potrebe za jednim ovakvim utility programom,
pa ako naiđete na njega, javite mi :))
Iz više razloga, u koje ne bih ovom prilikom ulazio, jedino
pravo mesto za realizaciju ove funkcije je sam shell program.
Mislim da na nekim verzijama UNIXa ovo već postoji -
ne mogu da se setim koji shell program je u pitanju (možda
ksh - Korn shell?). Moguće je da se izvorni kod jednog
ovakvog shella može negde dobiti.
Pozdrav, alexa
unix.157.bale.,
Jedan moj drug je razmišljao o tome da napravi jedan takav program,
pomoću još jednog "shell"-a, koji bi pozivao pravi shell kao child
process i prosleđivao mu komande iz "ced"-a. Videćemo kad će to biti,
ako bude. Inače, on (i ja) ima Coherent, ali valjda može da bude
korisno i za druge Unix-e... (Ja sam daleko od nekog eksperta ;)
Regards from .bale. !
#8*)+-<
unix.158mirkot,
-> #155, bradenkovicKoliko se ja secam svojih seansi sa UNIX-om, u C-Shell-u postoji
komanda HISTORY koja pamti zadnjih N komandnih linija. Kucanjem
samo
komande HISTORY (ili samo H) dobijate spisak zadnjih zapamcenih komandi.
Komande su numerisane i sa !xx pozivate xx komandnu liniju sa spiska.
Mislim da je bilo otprilike tako. Ako vas inetersuju detalji, prekopacu
po svojoj dokumentaciji.
Nadam se da sam pomogao.
Pozdrav,
Mirko
unix.159alexa,
-> #157, .bale.> Jedan moj drug je razmišljao o tome da napravi jedan takav program,
> pomoću još jednog "shell"-a, koji bi pozivao pravi shell kao child
> process i prosleđivao mu komande iz "ced"-a.
I ja sam pomišljao na ovakvo rešenje, ali ima tu jedan mali
problem. Prosleđivanje komandi bi se verovatno rešilo
tako što bi "ced" slao učitane komande u neki pipe, koji
bi bio standardni ulaz jednog shella. Naravno, procesi
koje ovaj shell startuje bi imali isti standardni ulaz, tj.
ovaj pipe (ovo zvuči zgodno, jer isti mehanizam onda može
da radi ne samo za shell, nego i za druge programe).
MEĐUTIM: neki programi se ponašaju različito zavisno od toga
da li im je standardni ulaz terminal. Neki bi mogli i da
odbiju da rade. Neki hoće da menjaju parametre terminalske
linije itd.
Da ne razglabam dalje, stvar može da se komplikuje, ali
u jednom trenutku se ne može izbeći zaključak da je lakše
napisati novi shell sa "ubačenim" editorom nalik na ced.
unix.160mirr,
Mozda ova primedba nije na mestu ali da probam .. Na VAX-u na ETF-u (koji je
doduse pod VMS-om koliko je meni poznato) se u shell-u kursori za gore-dole
ponasaju kao CED na PC-u. Hocu da kazem da oni imaju CED za VMS. Ako to mozda
moze da pomogne pa da se pitaju ti ljudi tamo?
Pozdrav,
mirr
unix.161dejanr,
-> #160, mirr>> Na VAX-u na ETF-u (koji je doduse pod VMS-om koliko je meni poznato)
>> se u shell-u kursori za gore-dole ponasaju kao CED na PC-u. Hocu da
>> kazem da oni imaju CED za VMS.
Nije to CED neko je takav komandni editor ugrađen u VMS počevši mislim
od verzije 4. Dakle, nikakva "domaća" intervencija.
unix.162alexa,
-> #160, mirrRadi se o rešenju koje se verovatno oslanja na činjenicu da su
svi 'zakačeni' terminali nalik VT100 terminalima, tj. zna se
kakve su escape sekvence koje šalju tasteri sa strelicama.
Pretpostavljam da je ovaj 'editor' zakopan negde u samom operativnom
sistemu. Na UNIXu se ne prave ovakve pretpostavke o terminalima,
a jezgro operativnog sistema ne zna kakav terminal je priključen na
liniju.
Ipak je jedino pravo rešenje novi shell.
unix.163ivujanic,
Opet ja:
opšte je poznata stvar da je curses u Coherentu skoro nedokumentovan.
Zbog toga imama par pitanja.
1. kakva je praktična razlika u radu sa prozorima koji su kreirani
pomoću subwin() i newwin()? Ovde se spominje samo to da prvi
koristi istu "video" memoriju. Da li to znači da je ono što se
zatekne ispod njega zauvek prepisano?
2. kako prozor otvoren pomoću newwin() prokazati? Sad mi pade na pamet
overlay() i overwrite()... da li je to način? ili touchwin()?
3. čemu služi clear flag, a samim tim i clearok()?
Ivica
P.S. neću više, majke mi...
unix.164alexa,
-> #163, ivujanicImam utisak da treba da objasnim neke osnovne koncepte u cursesu.
Curses je paket za, recimo, formatizaciju ekrana na klasičnim,
alfanumeričkim terminalima, povezanim serijskom vezom sa računarom.
Jedna od njegovih osnovnih odlika je da INTENZIVNO optimizuje
saobraćaj na serijskoj liniji, tj. trudi se da traženi izgled
ekrana postigne sa što manjim brojem poslatih karaktera, koristeći
pri tom podatke o prethodnom sadržaju ekrana i, naravno, podatke
o osobinama terminala. Imao sam prilike da vidim jednu
realizaciju curses-a koja je u toj optimizaciji preterivala, i
trošila na nju silno procesorsko vreme (i to na mašini sa
MOTOROLA 68020 procesorom!) tako da je konačni efekat bio
usporenje rada sa ekranom!
Koncept 'prozora' je dosta specifičan. Svaki prozor je prostor
po kome pišeš i koji ima svoje mesto na ekranu.
Međutim, promene u prozoru se na ekranu prikazuju tek kada se
izvrši funkcija wrefresh() za taj prozor. Tada se čitav njegov
sadržaj prikazuje na ekranu; ne postoji koncept međusobnog
'zaklanjanja' prozora.
Prozor kreiran sa subwin() je deo nekog većeg prozora; sve što
pišeš po njemu istovremeno pišeš i po većem ('nadređenom')
prozoru. Naravno, rezultat promena videćeš tek kad izvršiš
wrefresh() za taj prozor, ili za 'nadređeni' prozor.
Prozor kreiran sa newwin() nije deo nijednog drugog prozora.
Kada se izvršava wrefresh(), na ekranu će se 'osvežiti' samo
oni delovi prozora koji su menjani od poslednjeg njegovog
osvežavanja. Ako je (osvežavanjem nekog drugog prozora, čije
se područje na ekranu delimično preklapa sa prvim) izmenjen
sadržaj ekrana tamo gde prvi prozor nije menjan, doći će do
greške. Zato pri upotrebi prozora koji se preklapaju treba
pre wrefresh() izvršiti touchwin(), da bi curses 'mislio' da
je ceo prozor koji treba osvežiti menjan.
clear flag (postoji za svaki prozor) služi da kaže curses-u
da sme da obriše ekran kada vrši sledeći wrefresh().
Po mom iskustvu, on ovo dopuštenje uvek iskoristi :))
Curses, zavisno od sistema, može da koristi podatke o
terminalima u termcap formatu (potiču sa Berkeley UNIXa)
ili u terminfo formatu (potiču sa AT&T UNIXa). Tzv.
terminfo curses je noviji i ima znatno više mogućnosti.
Na SCO XENIXu postoje dve curses biblioteke - i za termcap
i za terminfo.
unix.165ivujanic,
-> #163, ivujanic
U međuvremenu sam pronašao, posle mnogo prevođenja (hvala bogu što u
MWC C kompajler ne rade ljudi iz MicroSoft-a, inače bi to trajalo danima)
pronašao da je wrefresh() ono što mi treba.
Međutim, i dalje ostaje nejasno korišćenje subwin(), jer mi tako
"otvoren" prozor bude deformisan ako mu širina nije full screen, dakle 80?!
Deformiše se, gledano odozgo na dole, "šiftujući" se u desno. Takođe ne
reaguje na mvwin()...
Druga nejasna stvar je da nakon mvwin() "stari" prozor ostaje gde je i
bio?! Kako ga ukloniti? Ovo se odnosi na prozor kreiran pomoću newwin(), jer
na drugi način, kako sam već rekao, ne reaguje na mvwin(). Ono što sam, čisto
empirijski dobio bi izgledalo otrpilike ovako:
mvwin(novi_prozor);
touchwin(donji_prozor);
refresh();
wrefresh(novi_prozor);
Da li je to način na koji se radi? Nije mi ni malo elegantan, pa rekoh
bolje da pitam...
Ono što mi je najbitinije je pitanje kakva je razlika između prozora
kreiranih na dva moguća načina, dakle subwin() i newwin()?
Ivica
unix.166alexa,
-> #165, ivujanic> i dalje ostaje nejasno korišćenje subwin(), jer mi tako "otvoren"
> prozor bude deformisan ako mu širina nije full screen, dakle 80?!
> Deformiše se, gledano odozgo na dole, "šiftujući" se u desno.
> Takođe ne reaguje na mvwin()...
Pa, ne bi trebalo da se deformiše. Moguće je da je Coherentov
curses 'faličan' (molim, bez asocijacija na latinski). Od čega
si pravio subwin() (od kog prozora)?
Pošto je u pitanju deo većeg prozora, logično je da i ne možeš da
ga pomeraš (tj. da ne reagije na mvwin()). Uzgred, mvwin() ti je
verovatno vratio rezultat -1.
> mvwin(novi_prozor);
> touchwin(donji_prozor);
> refresh();
> wrefresh(novi_prozor);
Jeste, to je pravi način, osim što bi umesto refresh() trebalo
pozvati wrefresh(donji_prozor). Da nije elegantno, nije.
> ... kakva je razlika između prozora kreiranih na dva moguća
> načina, dakle subwin() i newwin()?
Za svaki prozor se odvaja tabela sa njegovom 'slikom'; po
ovoj tabeli se u stvari 'piše' kada se 'piše' po prozoru.
Posle wrefresh() tekući sadržaj ove tabele se nalazi i na
ekranu. Kada se prozor kreira sa newwin(), alocira se tabela
za njega. Kada se kreira sa subwin(), koristi se odgovarajući
deo tabele nadređenog prozora; on je tada deo nadređenog
prozora - nije samostalan.
unix.167mirr,
Evo sta mi je odgovorio ortak iz US na moje pitanje. Ako nekome nesto
od ovoga pomaze ...
*********************************************************************
>> Da li ti je dostupan neko sorce koji bi na UNIX sistemu trebalo da
>> omoguci nesto kao CED na PC-u. To je onaj command history stos koji
>> se dobija na kursor gore-dole dok si u DOS shellu. Taj za UNIX bi
>> zapravo takodje trebalo da bude u UNIX -ovom shellu.
U Unix-u imash neshto shto se zove shell shto ti omoguchava da
interact with operating system. Kada ti neko da Unix raccun obiccno
ti daju `csh' (C shell) kao shell. csh ima history-ju, ali ne kao u
VMS-u da idesh kroz nju sa cursor keys. Say `man csh' on Unix for
more details...
Pored csh postoji brdo drugih shellova. Ja koristim tcsh koji uz sve
features of csh ima browsing through history by the means of cursor
keys, as well as many other nice features. Jedna od nice features je
name completion---ako je recc koju trenutno kucash nedvosmislena iz
kontexta ostatka linije, tcsh otkuca ostatak recci... (dodushe ovo
imash i u csh ali u primitivnijem obliku.)
Da vidish da li tcsh vech postoji na systemu kazzi `man tcsh' ili
pogledaj u /bin, /usr/bin, /usr/local/bin da nije tamo. Kazzi:
find / -name 'tcsh' -print
da pretrazzish ceo file system...
Da promenish shell to, say tcsh koji se nalazi u /usr/local/bin,
kazzesh:
chsh voja /usr/local/bin/tcsh
^^^^ tvoj login name
Sledechi put kad se logujesh imash tcsh umesto csh.
Najbolji shell koji postoji je bash (Bourne Again SHell). Kao shto je
GNU emacs bez sumnje najbolji editor (bez obzira na operativni
system), tako je bash najbolji shell. Bash je takodje GNU program...
Ovako, da bi kompajlirao tcsh trebaju ti sourceovi od csh---tcsh
koristi dosta stvari iz csh. Da bi kompajlirao bash trebati samo GNU
distribucija njega. Da bi instalirao shell na system da i drugi mogu
da ga koriste trbaju ti root priviledges.
Anyhow, ako nemash neki `zadovoljavajuchi' shell, i ako hochesh da
idesh kroz trouble of installing it, kazzi mi shta ochesh da ti
shaljem (tcsh/bash).
Mozzda tu postoji neki drugi shell (e.g., bourne shell, ksh) koji ti
je zadovoljavajuchi. Na vechini Unix systema file /etc/shells sadrzzi
listu allowed shells, i.e., shell koje mozzesh da promenish sa `chsh'
komandom...
Pedja
***********************************************************************
mirr
unix.168ivujanic,
-> #164, alexa Hvala puno!
To su otprilike stvari kako sam ih i ja razumeo, ali nije zgoreg pitati,
jer je uputstvo stvarno siromašno u vezi s curses-om.
I dalje me muči deformisan prozor kreiran sa subwin() i ako u svetlu
novih činjenica (kako lepo kažu naši političari) ne provalim o čemu se radi,
poslaću ti pomenuti primer da vidimo gde sam to glup :)
Ivica
unix.169alexa,
Evo, za novopečene UNIX programere, kako se realizuje nešto
nalik na getch() iz DOSa.
NAPOMENA: AKo koristite curses, već imate getch(), ali ovo
je varijanta bez curses-a.
getch.cunix.170ivujanic,
-> #167, mirr
>Anyhow, ako nemash neki žzadovoljavajuchi' shell, i ako hochesh da
>idesh kroz trouble of installing it, kazzi mi shta ochesh da ti
>shaljem (tcsh/bash).
To, pa traži taj bash da vidimo kakav je!
Ivica
unix.171ivujanic,
-> #166, alexa
>Pa, ne bi trebalo da se deformiše. Moguće je da je Coherentov
>curses 'faličan' (molim, bez asocijacija na latinski). Od čega
>si pravio subwin() (od kog prozora)?
prozor1=initscr();
prozor2=subwin(....);
Inače, ono prvo mi je palo na pamet kad sam video da initscr()
vraća WINDOW *. Možda je u tome stvar. Probaću neke stvari čim stignem,
a to će biti u petak.
Ivica
P.S. čisto sumnjam da je falično. Uputstvo nije prva liga, ali software
radi sasvim O.K. Da ne radi na terminalu, onda bi i poverovao da
su "folirali". Videćemo!
unix.172mirr,
Uskoro ce stici taj bash. Obavesticu siroki auditorijum o tome.
mirr
unix.173alexa,
-> #171, ivujanic > prozor1=initscr();
> prozor2=subwin(....);
Hmmm, ne znam šta vraća initscr() - nisam ovako nešto nikad probao.
Umesto da praviš subwin() od toga, pravi ga od stdscr (to je prozor
koji odmah postoji, pokriva ceo ekran) ili od nekog prozora koji
si ranije napravio sa newwin() ili subwin().
unix.174ivujanic,
-> #171, ivujanic
>Pa, ne bi trebalo da se deformiše. Moguće je da je Coherentov
>curses 'faličan' (molim, bez asocijacija na latinski). Od čega
Evo ga program, ne mož' biti gluplji. Neka zakonitost krivljenja
prozora je otprilike da zavisi upravo proporcionalno od veličine prozora
i obrnuto srazmerno blizini ivicama prozora, bar levoj, gornja je O.K. Za
ostale nisam proveravao, izgubio sam živce. Izgleda da je Coherent-ov
curses ipak faličan ;)).
#include <curses.h>
void main(argc,argv)
int argc;
char *argvŠĆ;
š
WINDOW *prozor, *prozor1;
char stringŠ100Ć;
int x,y,x1,y1;
x=atoi(argvŠ1Ć);
y=atoi(argvŠ2Ć);
x1=atoi(argvŠ3Ć);
y1=atoi(argvŠ4Ć);
clear();
initscr();
prozor=newwin(20,79,1,1);
box(prozor,'đ','-');
wrefresh(prozor);
getstr(string);
prozor1=subwin(prozor,y,x,y1,x1);
box(prozor1,'*','*');
wrefresh(prozor1);
getstr(string);
mvwaddstr(prozor1,3,2,string);
wrefresh(prozor1);
mvwaddstr(prozor,1,1,"Radim, ovo je prvi prozor!");
wrefresh(prozor);
getstr(string);
endwin();
exit(0);
ć
Nego, ako imaš vremena i živaca, da se dogovorimo da ti doturim kopiju
pa da vidiš vredi li da se zezam sa tim. Čisto hoću malo da programiram
pod Unixom, ali ipak nisam mazohista.
Ivica
P.S. živeo YUSCII + C ;)))))))
unix.175ivujanic,
E da ne bude da samo pitam, evo i mog priloga UNIX konferenciji.
Dobio sam katalog SCO, istini za volju štampan početkom 1990, ali
izgleda da još uvek važi, jer sam ga dobio od dilera.
Prvo šta je šta:
****************************************************************
SCO UNIX System V/386 and SCO XENIX 386 take full 32 bit advantage
of all 386 and 486-based computers based on Industry Standard Architecture
(ISA), Extended Industry Standard Architecture (EISA), or Micro Channel
Architecture (MCA). Applications that run on SCO UNIX System V/386 are fully
binary compatible with AT&T UNIX System V/386.
SCO UNIX System V/386 provides state-of-the-art UNIX System features,
such as an SCO Portofolio-style, manu-based, set-up and administration shell,
plus the ACER Fast File System (AFS) and AT&T File System Switch (FSS).
SCO's device drivers support dozens of standard peripherals as well as
hig-performance SCSI peripherals. In addition, SCO's unique modulare
extensible console driver supports standard and non-standard consoles. SCO
UNIX System V/386 supports all major international standards including the
Federal Information Processing Standard (FIPS) 151.1 (IEEE POSIX 1003.1 with
all extensions) and the ANSI X3J11 C language standard, and is designed to
meet the Department of Defence National Computer Security Center (NCSC) C2
Trusted Cumputing Base criteria.
SCO XENIX 386 offers full 32-bit performance and support for the widest
range of peripherals in a compact, cost-effective implementation of the UNIX
System. Applications that run on SCO UNIX System V/386 and SCO XENIX 386 are
fully binary compatible with AT&T UNIX System V/386. The high-perfomance
GT version supports SCSI peripherals, and is configured for larger systems.
SCO XENIX 286 makes full use of all 286-based, ISA and MCA computers. As
the most widely used UNIX System for 286-based machines, SCO XENIX 286
represents SCO's continued commitment to offer UNIX System V for 286
architecture. It is also the ONLY UNIX System avaliable for 286-based IBM
PS/2 computers and compatibles.
The SCO XENIX System V Development System includes SCO CGI, the Microsoft
C Compiler, MS-DOS cross-development tools, source-code debbugers,
source-code control, the Microsoft Macro Assembler(MASM), ANSI X3J11- and
X/Open-conforming libraries, and much more.
SCO CGI, a graphics development environment, provides graphics
capabilities for 286-, 386-, and 486-based systems.
The SCO UNIX System V/386 Development System also includes CodeView, an
interactive source-code debugger; OS/2 cross-development tools; and built-in
SCO Streams protocols, which include support for the Transport Layer
Interface (TLI) to run networking applications. SCO Streams Runtime is
available as an option for SCO XENIX System V.
****************************************************************
Ostale stvari su preširoke za prekucavanje, ali ukratko divne stvari
postoje za SCO UNIX/XENIX, kao na primer:
SCO VP/ix, neka vrsta interface-a UNIX-DOS, a može između ostalog i
sledeće:
Under SCO VP/ix, multiple MS-DOS applications can run concurrently
with convenctional XENIX and UNIX System processes in a fully paged, virtual
environment... Users may invoke either MS-DOS programs from an SCO System V
session or SCO System V programs from an MS-DOS session. MS-DOS programs can
run as background tasks under SCO System V for convinient multitasking
operation.
SCO Multiview
User-friendly interface. Pull-down manus. Multitasking windows for both
consoles adn dumb terminals. ...multiple concurent windows, each running a
separate task or application simultaneously. And data from each window can
be cut and pasted to another application running in any other window!...
JSB Multiview DeskTop
...provides windowing, graphical interface that integrates MS-DOS and
UNIX System application on an MS-DOS machine running MS Windows...
...copy-and-paste between MS-DOS and UNIX System applications...direct or
networked connections to remote systems...
Open Desktop
Open Desktop turns 386- or 486-based PC into a full-fledged graphical
workstation. (šteta što ne možete da vidite kako to izgleda u prospektu)
Od ostalih stvari tu su još:
X Window System
SCO uniPATH SNA-3270 The Multiuser Micro-to-Mainframe Connection
SCO XENIX-NET Microsoft Networks for XENIX Systems
SCO Portofolio Integrates Full-Featured Business Applications
-Lyrix Word Processing For All Business Requirements
-Professional The Lotus 1-2-3 Release 2.01 Workalike
-Integra SQL-based Relational Database Management System
-MasterPlan Project and Resource Menager
-ImageBuilder Presentation and Freehand Graphics
-Statistician Statistical Analysis Application
-ACCELL Itegrated Development System
-MicroSoft Word
-Multiplan Electronic Worksheet
-SCO FoxBASE+
Micro Focus Cobol
MicroSoft C with cross-development on the VAX
Basic interpreter
Basic compiler
Pascal
Fortran
LPI Fortran
Basic
Cobol
Pascal
PL/1
RPG II
DEBUG
Dakle, software-a ima, samo treba sačekati malo da padnu cene. One su
prča za sebe, kod nas još smatraju da je UNIX egzotika, pa porudžba treba
da se čeka iz USA, i to SCO UNIX ako sam dobro video je koštao oko $3000
za development version, bar duplo više nego napolju!
Ivica
unix.176balexov,
-> #155, bradenkovic
Mozda ce biti interesantan (u nedostatku novorodjenog Bourn Shella :)
deo man stranice o 'tcsh'
DESCRIPTION
Tcsh is an enhanced version of the Berkeley UNIX C shell csh(1).
It behaves exactly like C shell, except for the added utilities of:
1) Command line editing using Emacs-style commands.
2) Visual step up/down through the history list.
3) Terminal mode sanity checking and reseting.
4) Interactive command, file name and user name completion.
5) File/directory/user list in the middle of a typed command.
6) Spelling correction of command, file and users.
7) Lookup of command documentation in the middle of a typed command.
8) History saved between logouts.
9) Automatic logout after long period of idle time.
10) Automatic execution of a single command prior to printing
each prompt.
11) Automatic periodic command execution.
12) A new syntax for the prompt, and ability to set the prompt
for "while" and "for" loops.
13) Time stamps in the history list.
14) An addition to the syntax of filenames to access entries
in the directory stack.
15) The ability to watch for logins and logouts by user or
terminal on the machine.
16) A scheduled event list, which specifies commands which are
to be executed at given times.
17) A new builtin that does a subset of ls(1).
18) An addition to the file expression syntax for a character
not in a set of characters.
19) New automaticaly initialized environment variables HOST and
HOSTTYPE.
20) Commands for debugging terminal capabilities.
21) Searching for the visual history mechanism.
22) A new builtin for the which(1) command.
23) Restarting a stopped editor with two keystrokes.
24) Status line support
25) Automatic execution of a command when the current working
directory is changed.
26) Native Language System support
27) Automatic process time reporting.
28) Transparent Computing Facility support.
....
...
4th Berkeley distribution 7 Dec 1990
Ako neko vec ima tcsh nek' se javi! Moj prijatelj iz USA mi je poslao
disketu na kojoj je bilo raznih stvari, ali ne i (greskom) tcsh.tar
Jedino mogu da ponudim 25 str. manual page-sa o tcsh.
Pozdrav, boris
unix.177dgrbic,
Moze li mi neko objasniti, cemu sluzi YACC ?
I ima li neko source nekog PASCAL kompajlera (moze i P-code, svejedno)
Grba.
unix.178djelovic,
-> #177, dgrbic YACC = Yet Another Compile Compiler je "jezik"
za pravljenje kompajlera.
unix.179alexa,
-> #177, dgrbicYACC je generator parsera. Prema ulaznoj specifikaciji gramatike
jezika (specifikacija liči na Backus-Naur notaciju) formira
izvorni kod parsera u C-u. Naravno, najveći deo posla (za kompajler)
nije ni načet, ali yacc bar olakšava onaj 'fizički' deo posla.
unix.180alexa,
Stigao je program patch za UNIX (nalazi se u odgovarajućem
direktorijumu). Oni koji pokupe program imaće priliku da vide
kako se vodi računa o prenosivosti programa - procedura za
konfiguraciju se trudi da uzme u obzir veliki broj specifičnosti
raznih operativnih sistema i mašina (naravno, radi se, sve
vreme, o UNIXu i sličnim OS).
Program patch radi upravo suprotno od programa diff, koji je
standardna komanda UNIX-a: za zadatu 'staru verziju' i spisak
izmena (izlaz programa diff), formira novu verziju izvornog
koda programa. Interesantan je jer se izgleda često ispravke
u programima mogu dobiti upravo u tom formatu (diff, odnosno
patch).
Uskoro će biti 'spušten' i compress, za koji vam može trebati
patch.
unix.181alexa,
Stigao je i compress (u dir. UNIX). Imao sam malo muke da ga
nateram da proradi i na XENIX-u za 286, ali je sada sve u redu.
Po mom iskustvu, daje u proseku upola manju datoteku nego pack.
unix.182balexov,
Da li je neko imao problema sa vi editorom pod XENIXom SysV ?
Konkretno problem sa kojim se ja (povremeno) susrecem se sastoji
u tome sto ako (opet napominjem: ponekad) zelim da 'insertujem'
nesto usred texta, prvi karakter koji se nalazi iza kursora u desno,
se ponavlja onoliko puta koliko karaktera ubacim. Ova pojava se
odvija samo na ekranu -> kada u komandnom modu uradim Ctrl-L 'novi'
karakteri nestanu. Elem, ako bih zeleo u prvu recenicu da ubacim
rec 'ikad' ispred imao, to bi izgledalo ovako:
>> Da li je neko ikad iiiiimao problema .. itd.
Najvecu muku zadaje nedoslednost problema, u svakom slucaju ja
nisam primetio nikakvu pravilnost. Nisam siguran da li je u pitanju
linija u .profile [eval 'tset -m ansi ....] ili mozda cinjenica da
je na pomenutom sistemu instaliran i VP/ix koji ima neku svoju
bazicu o terminalima koja se mesa sa termcap.
Kako god svaki savet je dobrodosao.
Pozdrav, ba
unix.183alexa,
-> #182, balexovU vezi problema sa vi editorom:
Takve stvari se desavaju zbog pogresnog sadrzaja termcap-a
(najverovatnije). To sto se greska ne javlja stalno nije nista
cudno - curses (koji, naravno, koristi i vi) na osnovu optimizacije
broja bajtova koji treba da odu na serijsku liniju odlucuje
na koji nacin ce dobiti zeljenu sliku na ekranu. Ako zelis
da saznas sta je tacno vi slao terminalu za vreme editovanja,
uradi sledece:
vi DATOTEKA | tee log
Trebalo bi da se u datoteci 'log' po izlasku iz vi-ja nadju svi
bajtovi koji su poslati na ekran. To ce ti (uz upotrebu 'hd'
programa ili nekog slicnog) mozda pomoci da otkrijes koji deo
termcap opisa nije istinit.
(uh, zbog onog jednog pipe-znaka morao sam da suskam u celoj
poruci :)
unix.184balexov,
-> #183, alexa Probao sam razne trikove (cak i zmirkanje na jedno oko i izgovaranje
magicnih reci tiho u pravcu istoka :), kao i razvodjenje u log file, ali
nemam hrabrosti da trosim vreme gledajuci hexove. Problem je postojao i
kada sam koristio terminfo, a ni termcap ni terminfo nisu bili menjani.
Resenje je uvek bilo jedino u reboot-u.
Ono sto me stalno muci je sto nemogu da se setim da li je tih
problema bilo i pre instaliranja VPix-a. Skoro sam siguran da termcap
koji ide uz njega se koristi samo kada se pozove vpix, ali ...
Inace problem se javlja na konzoli (Hercules kartica) koja je uvek
podesena kao TERM = (ansi)
unix.185alexa,
U dir. UNIX se nalaze screen.zip i tar.zip.
screen (navodno) obezbeđuje startovanje više programa sa istog
terminala, uz mogućnost prebacivanja između njih (to mi liči na ono
što daje shl, tamo gde ga ima). Nažalost, traži BSD UNIX (sockets).
tar je, naravno, source programa tar. Ako nemate nikakav tar, neće
vam puno pomoći, jer je u tar.zip datoteka tar.tar :)
unix.186kvelkovski,
-> #182, balexov>> Da li je neko imao problema sa vi editorom pod XENIXom SysV ?
>>Konkretno problem sa kojim se ja (povremeno) susrecem se sastoji u
>>tome sto ako (opet napominjem: ponekad) zelim da 'insertujem' nesto
>>usred texta, prvi karakter koji se nalazi iza kursora u desno, se
>>ponavlja onoliko puta koliko karaktera ubacim. ...
Ja sam imao isti problem (ali sa LYRIX-om) i cak sam zbog toga skinuo
XENIX sa diska. Posto sam ga pre par nedelja opet instalirao, ali bez
LYRIX-a, pojavise se isti problemi sa vi. Posto sam (slucajno) primetio
da se pri butovanju menja tip konzole, t.j jedanput dobijam type=3, a
drugi put type=2, zakljucio sam da je uzrok svemu taj type=3. Zato sada
prvo ukljucujem XENIX, pa ga odmah haltsys, i sledeci put je sve u redu.
O tom type=3 nisam nasao *nikakve* informacije u uputstvima za XENIX,
pa je li neko uopste zna sta je to, i kako se to moze odmah posle
bootovanja promeniti (postaviti na 2)? Sada mi je sinula ideja: da to
nema veze sa brojom stranica na Herculesu (3-dve stranice, 2-jedna) ?!?
Kupe
P.S. Kod mene se pojavljivao i Memory fault - core dumped .
P.P.S. Uopste ne koristim VP/ix.
P.P.S.S. Izvini zbog zakasnjenja, nisam se ovde javljao 5 dana.
unix.187alexa,
-> #186, kvelkovskiJa nisam nikad imao ovakvih problema. Dajte, ljudi, pokušajte da
nađete jedan primer gde se to dešav (ubeđen sam da je situacija
sasvim ponovljiva), onda to sve ponovite uz upotrebu tee, pa
ako vas mrzi da sami kužite, pošaljite mi sadržaj takvog log-a
da pogledam (kao mail, a ne u conf, naravno).
unix.188balexov,
-> #186, kvelkovski Moram priznati da je moja moc opservacije izgleda mala! Posle tvoje
poruke pogledao sam file /usr/adm/messages, i ustanovio da se u zadnjih
par nedelja sistem dizao prepoznavsi konzolu nekad kao tip 3, a nekad
kao tip 2. Izgleda da je problem u tom 'tipovanju', a vrlo mi verovatno
zvuci i tvoja pretpostavka da je u pitanju broj stranica na herkulesu.
Proverio sam u Release Notes za OS poglavlje o video karticama gde
se pominju izmedju ostalih :
Hercules mono
Hercules+ mono (text mode only)
Koliko je meni poznato vecina Tajvanskih herkules kartica je u stvari
bas 'Hercules plus compatible'! Ono plus se, pretpostavljam, odnosi
upravo na postojanje dve graficke stranice. Na mojoj herkules kartici
ima nekoliko kratkospojnika, ali iz obimne dokumentacije :( nisam saznao
da li, i koji od njih iskljucuje jednu stranicu. Ako ti mozes da uradis
tako nesto javi rezultate.
Posto sada mogu ( zahvaljujuci tvom ostrom oku ) da konkretnije
formulisem pitanje, prosledicu ga u USA da bi prijatelj mogao ugnjaviti
ljude iz 'SCO Technical Support' (trebaju i oni da odrade svoje :). Cim
budem nesto saznao prosledicu javnosti.
Sto se tice tvog P.S.a, poruka Memory fault - core dumped ne bi trebala
biti previse ucestala (ustvari trebala bi biti retka). Ona moze biti
posledica korumpiranih fajlova i sl.
Pozdrav, ba
P.S.
Inace poslusao sam alexu, ali log fileovi koji se dobiju u oba slucaja
(tj. i kada postoje problemi i kada ih nema) su *identicni* ! Sta sad?
unix.189alexa,
-> #188, balexov > Inace poslusao sam alexu, ali log fileovi koji se dobiju u oba
> slucaja (tj. i kada postoje problemi i kada ih nema) su
> *identicni* ! Sta sad?
Ako si u to siguran, onda nema druge - konzola se u različitim
situacijama različito ponaša, što navodi na zaključak da postoji
bug u kernelu, u ansi drajveru za hercules. Moram priznati da
mi ovo izgleda *jako* čudno, pošto sam video (i koristio)
XENIX na mnogim mašinama, i nigde se nešto slično nije desilo.
Kakva je mašina (286, 386), koja je verzija XENIXa u pitanju?
unix.190alexa,
Bash je stigao, i proradio je (uz dosta muke) na XENIXu 386.
Ima samo jedan mali problem: ZIPovani bash.tar ima negde oko 540Kb
(možda nešto manje). Dajte predloge kako da ovo uploadujem -
da li da cepam ZIP datoteku, ili tar datoteku, pa da posle svaki deo
ZIPujem?
Bash, inače, ima ono što je kolega bradenkovic želeo, a to je
mogućnost editovanja komandne linije. Inače vrlo liči na bourne
shell, uz neka poboljšanja.
unix.191balexov,
-> #189, alexa╦Ý> Kakva je masina (286, 386), koja je verzija XENIXa u pitanju?
$ uname -a
sysname=XENIX
nodename=(empty)
release=2.3.3
version=SysV
machine=i80386
origin=3
oem=3000
serial#=šă{
> ..., sto navodi na zakljucak da postoji bug u kernelu, ...
Ja ne bih isao tako daleko, kao sto sam naveo u Release Notes-u stoji
da ova verzija XENIXa radi sa Hercules+ ali samo u text nacinu rada.
Sad bi bilo zgodno da neko objasni razliku izmedju Hercules i Hercules+
kartice. Inace ja sam pozajmio jednu MGP karticu za koju stoji da je
'Hercules compatible' (nista plus !), i koja za sad nepravi probleme.
Sistem se uvek dize sa konzolom tip 3. Da bi stvar bila zanimljivija do
sada konzola je bila ili tip 2 ili tip 3, a problemi su bili kada je
bila tip 3 !!
Verovatno je problem u *kompatibilnim* tajvanskim karticama. Moja
kartica (ie. ona koja zna biti depresivna :) je od proizvodjaca PROTECH
ima prikljucke za stampac, light-pen i monitor.
Toliko, ako dobijem odgovor iz SCOa okacicu ga negde nize!
unix.192alexa,
-> #191, balexovIpak mislim da je problem u 'terminalu', a to je u ovom slučaju
deo kernela koji 'tumači' ESC sekvence (ANSI terminal simulator).
unix.193alexa,
Isprobao sam unzip41 koji nam je paya (ppekovic) ostavio, i radi
baš kako treba na XENIXu (i na 286). Payo, ima li nade da dobijemo
zip?
unix.194ppekovic,
-> #193, alexa>>Isprobao sam unzip41 koji nam je paya (ppekovic) ostavio, i
>>radi baš kako treba na XENIXu (i na 286). Payo, ima li nade
>>da dobijemo zip?
Na BIX-u nisam video zip i bilo mi je vrlo čudno kako
ima unzip a zip-a nema, ali eto ... ako ga bude, stiže u
najkraćem mogućem roku.
Paya
unix.195kvelkovski,
-> #187, alexa>>Ja nisam nikad imao ovakvih problema. Dajte, ljudi, pokusajte da
>>nadete jedan primer gde se to desav (ubeden sam da je situacija
>>sasvim ponovljiva), onda to sve ponovite uz upotrebu tee, ...
Jeste ponovljiva, ali ko voli da mu pada sistem :)
Kupe
unix.196kvelkovski,
-> #188, balexov>> Posto sada mogu ( zahvaljujuci tvom ostrom oku ) ...
Xe, xe, xe, zovite me special agent.
Kupe
P.S. Ako doznas bilo sta - javljaj, a dotad idemo boot, sync,
haltsys, reboot.
P.P.S. Sto se tice Memory fault - core dumped, to se javlja samo kad
je pogresan tip konzole.
unix.197kvelkovski,
-> #189, alexa>>Kakva je masina (286, 386), koja je verzija XENIXa u pitanju?
386 na 20MHz.Trenutno ne mogu da vidim koja je verzija XENIX-a
(cini mi se 2.3.2), ali prvom prilikom javljam.
unix.198alexa,
-> #195, kvelkovski > Jeste ponovljiva, ali ko voli da mu pada sistem :)
Kako pada sistem, pa to je samo bug u prikazu na ekranu?
unix.199alexa,
Bash (born again shell) je konačno u direktorijumu UNIX.
Podeljen je u 6 delova, radi lakšeg prenosa; kad ih spojite, treba da
dobijete datoteku bash.zip. U njoj se nalazi samo jedna datoteka,
bash.tar (velika je oko 1.8Mb).
Bash je nalik bourne shell-u, ali ima dosta lepih dodataka; među
njima su mogućnost editovanja komandne linije, mogućnost pozivanja
prethodnih komandnih linija (slično CED-u pod MS-DOSom),
kompletiranje naziva komande ili datoteke itd.
Pa, ko voli, nek' izvoli. Ako bude problema, javite se.
Meni je bash proradio na XENIXu 386; oko XENIXa 286 još nisam imao
vremena da se pozabavim.
unix.200alexa,
Vidim da ste počeli DL bash-a. Javite o svojim iskustvima, i ne
zaboravite da napomenete na kakvom sistemu radite.
unix.201alexa,
Počeo sam sa trickle servera u Beču (trickleŽawiwuw11) da 'dovlačim'
izvorni kod emacs-a - čuvenog editora za UNIX. Cela arhiva je
podeljena u blokove od po 100000 bajtova. Problem je u tome
što ovih blokova ima 40 (!) a ja sam ih do sada 'pokupio' svega 6.
Ima li nekog da je zainteresovan da mi pomogne, pa da to sve
spustimo na SEZAM?
unix.202ppekovic,
-> #201, alexa>>Ima li nekog da je zainteresovan da mi pomogne, pa da to sve
>>spustimo na SEZAM?
Može, samo mi napiši proceduru kako se to radi.
Paya