On lør, 2004-10-02 at 03:36 +0200, Eivind Tagseth wrote:
Og ja, det stemmer at jeg ikke synes at det engelske uttrykket er så godt i dagens moderne datamaskiner, men det er likevel et langt klarere og mer entydig uttrykk enn «Minnefeil».
ja, "Segmentation fault" er teknisk ordbruk, men engelskmennene klarer å leve med det. av og til treng vi teknisk ordbruk -- f.eks. for å gjere det mogleg å finne andre som har vore ute for same feilsituasjonen på Google.
den ekstreme varianten av dette er tradisjonen med å tilordne ein kode til alle feilsituasjonar. ein av dei mest frustrerande tinga med feilmeldingar eg får frå Windows-brukarar er at dei seier at dei har fått ein "10036"-feil. dette er forsåvidt svært presist -- viss du har tilgang til lista over alle feilsituasjonar som kan oppstå, i akkurat den klientapplikasjonen som brukaren nyttar. dette er spesielt frustrerande sidan vi har gjort oss flid med å la tenarane gi feilmeldingar som også inneheld URL-ar til informasjon med bakgrunnsinformasjon om problemet. men vår tekst vert kasta av klientprogrammet og erstatta av denne feilkoda som ikkje er forståeleg for nokon andre enn dei som utvikla klienten. dette er delvis eit sidespor, men...
eg vil ha ein mellomting. ei feilmelding som kanskje ikkje gir 100% meining for Børre Brukar, men som er klar og tydeleg nok til at Espen Ekspert kan forklare kva feilen er viss Børre ringer han opp og spør.
for å rekapitulere: SIGSEGV er namnet på signalet prosessen får. uttrykket på engelsk er "Segmentation fault". eg meiner det er hensiktsmessig at vi på norsk beheld ei språkleg kopling mot desse termane, anten dei no er forelda i henhold til moderne(?) maskinarkitekturar eller ikkje.
som Eivind seier, så er minnetilgang i Linux i dag basert på minnesider ("pages"), og ikkje "segment" slik "segment" er definert i Intel- arkitekturen. likevel så har ein på engelsk valt å halde seg til den tradisjonelle (i Unix) termen "Segmentation fault" når ein prøver å lese eller skrive til minne utanfor dei sidene ein har tilgang til. her kan ein merkje seg at t.d. ein SPARC- eller MIPS-prosessor ikkje kjenner til noko "segment"-omgrep, og det trur eg ikkje er heilt tilfeldig. "segmentation" tyder det same som "segmentering" på norsk, "å dele noko opp", i dette tilfellet minne. ein "segmentation fault" oppstår dermed når ein prosess prøver å trasse inndelinga av minnet mellom prosessar som OS-et har gjort.
termen "minnefeil" er for generisk for dette, vi treng noko som meir presist uttrykkjer kva feil som har oppstått. mitt forslag var "manglande segmenttilgang". dette kan heilt sikkert utbroderast eller forbetrast. eg synest det er viktig at uttrykkjet får klart fram at det er virtuelt tilgjenge til ein viss del av minnet som manglar. det vil vere positivt om ein Unix-brukar "intuitivt" forstår at omsetjinga faktisk tyder SIGSEGV. så vidt eg veit finnest det ikkje nokon etablert term for dette i det norske Unix-miljøet. mine kollegaer snakkar om at eit program har "seggfålta" eller "kårdompa" ("core"-minne har vi ikkje hatt sidan 60-talet, men termen lever vidare.) å innføre ein ny norsk tradisjon er vanskeleg, men for å lukkast trur eg ein må ha ein relativt eksakt parallell til originaluttrykkjet.
den andre vegen å gå er å sjå på kva som forårsakar ei slik melding. det vil alltid vere ein peikar som har fått korrupt verdi av ein eller annan grunn:
* programmet har iterert eit hakk for langt * kosmisk stråling har endra eit bit * ein _annan_ feil peikar har gjort at denne peikaren er skribla over med søppeldata * peikaren vart aldri initialisert, og hadde tilfeldig verdi heile tida. * ... fyll ut sjølv
dette gir den alternative omsetjinga "minnepeikarfeil".