wek-endovka: Ďalšia kapitola z počítačovo/programovacej archeológie
1. časť wekových weekendových zamyslení
wek, 13.05.2010-00:00

Ale chápem, ako to vzniká: na začiatku bola skupina úzko špecializovaných odborníkov, ktorí sa viacmenej navzájom poznali a vytvárali terminológiu a postupy atď. podľa dennej potreby. Potom bola prvá generácia žiakov, ktorí tie postupy a terminológiu prevzali akosi prirodzene, spolu aj s tým podhubím. Potom prišla druhá generácia, ktorým už to podhubie nebolo dožičené a tak bola terminológia a postupy odtrhnuté od ich pôvodného koreňa. A keďže nie tá priekopnícka, nultá , ale až prvá a častokrát až tá druhá generácia pocítila potrebu tie znalosti spísať, ono sa to nejako zakonzervovalo a ostalo to tak.

V poslednom čase som sa stretol s dvomi konkretnymi prikladmi:

1. Ked som sa prvykrat stretol blizsie s hlbinami postupu prekladu C, narazil som aj na skratku .bss (trocha mi to vtedy pripominalo BSE, chorobu "sialenych krav" ), co je oblast v pamati vyhradena pre staticke (globalne) neinicializovane data, ktore su pri spusteni programu automaticky vynulovane. Ta skratka sa mi zdala nelogicka - a kolega mi aj povedal, ze je to "Block Started by Symbol" - zdalo sa mi to blbost, preco sa to nevola uninit.data alebo data.uninit alebo tak nejak?

Historicke vysvetlenie sa da najst (spolu s niekolkymi dalsimi podobnymi) napriklad tu, a pochadza z pravekeho asembleru doprevadzajuceho FORTRAN (prvy vyssi programovaci jazyk, mimochodom), kde to predstavovalo pseudoinstrukciu, ktore vyhradilo miesto (blok) pre premenne a priradilo na jeho zaciatok navestie (t.j. symbol).

2. UNIXovsky prikaz ls sluziaci na vypisanie zoznamu suborov v adresari - vzdy som si myslel, ze to je z list - ono tie UNIXovske prikazy su vsetky az chorobne skratene, nebudeme teraz rozoberat, ci to bol nasledok setrenia miestom a prenosovymi linkami, alebo skor neschopnosti UNIXakov pisat dlhsie slova Lenze ono je to inak, a nazov ls ma ovela hlbsie korene, presne tak hlboke ako samotny UNIX... Povodny autor UNIXu Ken Thompson (spolu aj s autorom jazyka C, Denisom Ritchiem a mnozstvom inych ludi, co sa okolo C/UNIXu tmolili) pracovali na projekte MULTICS, seriozneho a rozsiahleho operacneho systemu, ktory mal v sebe zahnrnut vsetky dovtedajsie poznatky a poziadavky na OS (bavime sa o strede 60tych rokov). MULTICS specifikoval aj poziadavky na hardware, z coho jedna bola taka, ze z pohladu programu bol jednotny pristup k operacnej pamati aj disku - navonok to vyzeralo ako jedna velka pamat (pocitac s MULTICSom sa nikdy nevypinal, naopak, OS mal zabudovanu podporu na pridavanie a odoberanie hardwaru - pamate, disku, procesorov(!) - za jazdy). No a v tej "jednotnej" pamati boli jedotlive "kusy" dat, programov atd. umiestnene v logickych nazvanych "segment". Program, ktory vypisal zoznam segmentov v urcitom adresari (ano, aj hierarchicky strom adresarov pochadza z MULTICSu), sa volal "list segments", skratene "ls".

Ked Thompsonov zamestnavatel, AT&T/Bell Labs, odskocili od projektu MULTICS (ktory bol sice dokonceny ale velkej slavy sa nedozil, napriek obrovskemu vlyvu na rozvoj pocitacov a programovania - je to tiez velmi poucna historka o ambicioznych projektoch), Thompson jednak prisiel o konkretny ciel prace, ale aj o pristup k modernemu a vykonnemu, i ked pomerne jednoucelovemu a unikatnemu, pocitacu, na ktorom MULTICS sucasne vyvijali aj testovali (nie, vtedy nemal kazdy na stole pisicko ). A tak, plny inspiracie, na omnoho jednoduchsom a mensom pocitaci, ktory mali k dispozicii, zbastlil akusi parodiu na MULTICS (ono aj meno UNIX je vlastne parodia na meno MULTICS). No a kedze jednym z potrebnych nastrojov bola utilitka na vypis suborov v adresari, pouzil meno, ktore predtym tak casto pouzival na tento ucel: ls.


Pekny vikend!

wek


Diskusia k článku

2. časť ->



tento článok je z mikroZONE
( https://mikrozone.sk/pluginy/content/content.php?content.67 )