Mit jelent számodra/szerinted a UNIX filozófia?

 ( pehsa | 2018. november 17., szombat - 9:08 )
Egy program / programrészlet CSAK EGY dolgot csináljon. Komplexebb megoldás moduláris felépítéssel. (lsd. Git, Linux)
70% (163 szavazat)
Egy program / programrészlet TÖBB dolgot is csinálhat, de azokat a lehető legjobban. (lsd. Fossil, BusyBox / ToyBox)
3% (8 szavazat)
Egyéb leírom
5% (11 szavazat)
Nem tudom mi az a UNIX filozófia / Nem érdekel
22% (51 szavazat)
Összes szavazat: 233

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

a wikipedián massziv mennyiségű infó van összeszedve, hogy mit is gondoltak a UNIX megalkotói a UNIX filozofiáról

Ken Thompson and Dennis Ritchie, key proponents of the Unix philosophy
The Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to minimalist, modular software development. It is based on the experience of leading developers of the Unix operating system. Early Unix developers were important in bringing the concepts of modularity and reusability into software engineering practice, spawning a "software tools" movement. Over time, the leading developers of Unix (and programs that ran on it) established a set of cultural norms for developing software, norms which became as important and influential as the technology of Unix itself; this has been termed the "Unix philosophy."

The Unix philosophy emphasizes building simple, short, clear, modular, and extensible code that can be easily maintained and repurposed by developers other than its creators. The Unix philosophy favors composability as opposed to monolithic design.

https://en.wikipedia.org/wiki/Unix_philosophy

6 Eric Raymond’s 17 Unix Rules
6.1 Rule of Modularity
6.2 Rule of Clarity
6.3 Rule of Composition
6.4 Rule of Separation
6.5 Rule of Simplicity
6.6 Rule of Parsimony
6.7 Rule of Transparency
6.8 Rule of Robustness
6.9 Rule of Representation
6.10 Rule of Least Surprise
6.11 Rule of Silence
6.12 Rule of Repair
6.13 Rule of Economy
6.14 Rule of Generation
6.15 Rule of Optimization
6.16 Rule of Diversity
6.17 Rule of Extensibility

--
Live free, or I f'ing kill you.

+1 :)

köszi

+1

"6.16 Rule of Diversity"

Elnezegetve a 2018-ban megjeleno Code of Conductokat ezt a szabalyt ugy tunik, hogy sokan felreertik.

Nem tudom mit jelent.

Ha a második pontnál fontosnak érezted leírni, hogy a „lehető legjobban”, akkor ez miért nem volt fontos az elsőnél?

Eddigi tapasztalatom: Ilyen módszerekkel a marketingesek szoktak élni. Valahova odatesznek egy pozitív kicsengésű félmondatot, ezzel ösztönözve a kitöltőt, hogy azt a választ jelöljék be.

Csak ennek most semmi értelme, mert bármilyen eredménye is lesz a szavazásnak, nem valószínű, hogy hasznod származik belőle.

Őszintén egy dolog miatt írtam úgy a második pontot és az pedig a systemd. A systemd a második ponthoz tartozna, de személy szerint eddig több problémám volt vele, mint hasznom. Azért nem is írtam példának oda.

systemd, ami az un. tobb dolgot a leheto legjobban oldja meg? Muhahalol...

--
"dolgozni mar reg nem akarok" - HZuid_7086 'iddqd' zoli berserk mode-ba kapcsol

Ha erre vagy kíváncsi, akkor a válaszom: A unix filozófia legvisszataszítóbb szembeköpésére a legjobb példa a systemd.
Ha olyat keresel, ami teljesen és minden szempontból szembemegy vele, akkor a systemd a te nyertesed!

Sosem értettem ezt az EGY vagy TÖBB dolgot. Hol húzzuk meg a határt? Kötve hiszem, hogy bármilyen mérce szerint például a BusyBox többféle dolgot csinálna, mint a Linux kernel.

Az "ls" parancs az 50 kapcsolójával csak EGY dolgot csinál, de az "ls" meg a "stat" együtt már TÖBBet? És ha a kettő funkciója össze lenne olvasztva eggyé?

Miért tud rendezni az "ls", ha lehet pipe-olni is egy jó bonyolultan felparaméterezett "sort" parancsba?

Ha egy webböngésző meg tud jeleníteni PDF-et is, akkor már TÖBBféle dolgot csinál? Ha az "mc" fájlkezelő, fájlnézegető és szövegszerkesztő is egyben, akkor az TÖBBnek számít?

Az egyik terminál emulátornak még scrollback buffere sincs, azt mondják, használj tmux-ot. A másik meg tucatnyi egyéni kiegészítéssel enged ugrálni a korábbi parancsok kimeneteinek kezdetére, highlight-olni regex találatokat, rakat egyéb feature mellett speciel még tmux integrációja is van, bármit is jelentsen. Akkor ez az utóbbi jócskán TÖBB dolgot csinál?

Tényleg, komolyan kérdezem: mi az "egy dolog" legalább hozzávetőleges definíciója?

Milyen bölcs megfigyelés! :)

"Ha az "mc" fájlkezelő, fájlnézegető és szövegszerkesztő is egyben"

Az az mcedit.

Indítasz egy mc-t, beállítod hogy a saját editorát használja, nekiállsz szerkeszteni egy fájlt -> gyakorlatilag az mcedit jön fel, de nem külön programként, hanem a korábban futó mc kezdi el szerkeszteni a szöveget.

Amúgy meg az mcedit szimlink az mc-re.

Ha az mc windows alatt fut akkor nem unix?

Szerintem ne keverjük a felhasználói programokat a unix rendszerrel.
Az más kérdés, hogy a felhasználói programok fejlesztése során célszerű betartani a rendszerfilozófia szabályait. Célszerű, de nem kötelező.

> Sol omnibus lucet.

Na ez egy újabb érdekes felvetés. Hol a határ? Meddig tart a Unix, hol kezdődnek a felhasználói programok? Például a git az még Unix, de az mc már nem? Komolyan érdekelne.

az mcedit-nél új PID keletkezik, ha szerkesztek valamit. Az mcview-nél nem. ... és mind a kettő simlink az mc-re.
gondolom, takarékosabb volt argv[1] alapján eldönteni, hogy most fájlkezelőként, nézőként, vagy editorként fusson.

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.
/usr/lib/libasound.so --gágágágá --lilaliba

Az egyik terminál emulátornak még scrollback buffere sincs, azt mondják, használj tmux-ot.
Nem. Azt mondják, hogy terminal multiplexer kell :)

a scrollback buffer az nem a terminal része, az a getty-ben van... ott lehet beéllítani.

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.
/usr/lib/libasound.so --gágágágá --lilaliba

A Busybox mint svájci bicska több dolgot is csinálhat, pont ezért szeretjük. Egyébként meg az egy a nyerő :) De van létjogosultsága a többnek is, de nem a Systemdnek. Az elrettentésnek jó.

--
A főnököm mindig megtartja amit ígér, ha pénzt ígér azt is!

A Systemd anyázása már uncsi.

Hidd el, azok unjak a legjobban, akik utaljak hasznalni

Nem teljesen ertem eleve a kiirast. A linux kernel meg a git is egy csomo mindent csinal, a busybox meg attol hogy egy executable-be van beleforditva egy halom unix utility meg nem lesz kevesbe modularis mint egy .so+egy halom executable melle. Vagy ha a linux kernelben letiltom a module supportot es mindent statikusan beleforditok ami kell akkor mar magikusan atmegy a masodik kategoriaba?


I hate myself, because I'm not open-source.

egyiket se. A unix filozófia a többfelhasználós oprenccert jelenti. Ez kábé a 80-as évek végéig élt.

--
GPLv3-as hozzászólás.

Egy dolgot csináljon, de azt nagyon. Mint a klasszikus unix-os tool-ok. cat, ls, grep, stb.. Hogy hol a határ, jó kérdés.... Nos, azok a funkciók, amik a tool alap céljához kapcsolódik, belefér. Pl. ls-nél a kimenet rendezése. De amikor már tudna ls tud http directory listinget kiírni, rendezni, vagy még specifikusabban mittomén google találatokat, vagy facebook üzenőfalat, na ott már nemkicsit félrement a dolog.
--
"Sose a gép a hülye."

Nem tudnám pontosan megmondani, de valami olyat várok el egy "unixos" programtól, hogy
-jól definiált feladatot hajt végre
-parancssorból indítható, szkriptelhető
-sallangmentes

Ezt csak így itt hagyom: systemd

Köszönjük.

--
arch,ubuntu,windows,libreelec,omnirom,microg
zbook/elitebook/rpi3/motog4_athene

Számomra a unix:

1. Futási és fejlesztési környezet.
2. Csinálj egy jól definiálható dolgot és azt jól, optimalizáltan.
3. A rendszerelemek egységes koncepció mentén működnek.
pl#1: A rendszerelemek bemeneteket kezelnek és kimeneti értéket adnak vissza.
pl#2: A rendszerelemek csak akkor szólnak, ha baj van.

> Sol omnibus lucet.

Annak idején évtizedekkel ezelőtt jelentett valamit, amit a mai világban igen nehéz alkalmazni (k sok és k gyorsan változó igény).

--
arch,ubuntu,windows,libreelec,omnirom,microg
zbook/elitebook/rpi3/motog4_athene

Az unix filozófia elvileg az, hogy eszközöket fájlként használhatjuk. ... ugye a /dev könyvtár.

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.
/usr/lib/libasound.so --gágágágá --lilaliba

Az a UNIX-ok alap működése.

A UNIX filozófia a szoftver fejlesztést taglalja. Amire te gondolsz az "Everything is a file".

---
"Errors are red
My screen in blue
Someone help me
I've deleted Sys32"

Nekem azt jelenti, hogy jól működik, és azt tudja, amit ígér. Nem üres marketing, hanem ipari értelemben vett működés.

Plan9

~~~~~~~~
deb http://deb.uucp.hu/ wheezy yazzy repack

Én meg két percet dobtam rá, hogy mindkettőnél példaként szerepel valami lsd nevű program.... :-D
Próbáltam kirakni, hátha valami Linux System akármi, vagy Linux Service akármi....