A nap képe: Linux és (egykori) barátai

Indítsuk a napot egy vidám morbid képpel ...

Hozzászólások

Vajon a BSD 20 év múlva közöttük lesz? 
 

Amit nem lehet megirni assemblyben, azt nem lehet megirni.

Az megvan, hogy a junipernel a junis evolved már linux?

(rég használtam, ha már linkelted, beleneztem, hogy mizu, és meglepődve láttam)

Egyébként bsd, bsd, de azért  emlékszem, volt ott valami arcán pörgő process, ami idle ette a cput, a guin meg nem látszott a grafikonon, és nehéz volt nem arra tippelni, hogy ez van a bsd irq handlingja helyett :-)

Sony olyan OS-t akart a Playstation 4-től a konzoljai alá ami stabil, robosztus, nem rá hárul a teljes rendszer minden elemének a fejlesztése nulláról, de azért hagyományos módon teljesen zárt formában terjesztheti. Ott például máig jó szolgálatot tesz a FreeBSD. Kár, hogy nem sok fejlesztés jut vissza a Sony-tól. De pont ezért választott BSD-t és nem Linuxot a Playstation alá. 

AIX még él...  Na nem virgonc, de él!

Nem. A Linux mindig is egy Unix-klón volt, de nyilván Unixnak nem hirdethette magát, mert pert akasztottak volna a nyakukba. Ezért csak unixlike, ahogy még a BSD-k és Illumnos rendszerrek is, minden, ami nem hivatalosan Unixként licencelt, csak azok használhatták ezt a nevet. Nem mintha jelentősége lenne. Ez az „eredeti” Unix eleve hülyeség, mára már ezek a modern rendszerek annyira komplexek lettek, hogy ha még volt is  valamelyikben eredeti Unix-kód, az már mára semmit nem számít, elenyészik a sok millió új kódsor között, elveszik a sok új fejlesztés, driver, optimalizáció, biztonsági folt között.

Ezek a rekurzív, * is not * elnevezések se tévesszenek meg, ezek is csak csel kategória. Pl. a GNU's not Unix, LAME ain't an mp3 encoder, Wine is not an emulator, stb., mert ezek éppenséggel hogy azok, amik a not szócska után állnak. Épp ez a lényege, szemtelenség, utalnak arra, amik igazából, de közben meg kimondják, hogy nem azok, ez ilyen gyakorlatilag igen is, hivatalosan meg nem is.

Én nem siratom ezeket a régi Unixokat. Azóta túl sok fejlődés volt, na meg túl drágák is voltak, magánembernek nem hozzáférhető. Saját maguknak köszönhették, hogy kihaltak, sok pénzéhes, szabadalomtroll cég állt mögöttük, és ez a vesztük okozta, a névből akartak megélni, nem fejlesztettek kellő ütemben, a világ elhaladt mellettük, az ingyenes klónok fejlődtek, lehagyták őket, elterjedtek, nem volt visszaút. Valahogy nem értették a PC-s forradalmat, a modern időket, mikor ma már mindenkinek van gépe, akár a zsebében is. Ma már úgyis a Linux ural mindent, annyira kinőtte magát, a BSD-k és az Illumnos-alapú megoldások max. csak amolyan pótlék, szerverekre, meg olyan megoldásokhoz, amikhez a GPL-es, linuxos lincenc nem lenne jó. Ennek ellenére még olyan régiségek is élőnek tekintettek, mint a 2.11BSD, persze sok sikert hozzá, hogy modern hardveren is kezdeni tudj vele valamit.

Ez a folyamat egyébként elkerülhetetlen volt, és a Unix sajátosságaiból ered. Jól volt dokumentálva, forráskód, kernelhívások, man pages, egyszerű alapelvek, stb., ezért könnyű volt újraimplementálni, a userland toolok is általában nagyon egyszerűek a Unix-filozófia miatt, egyszerű CLI programok kapcsolókkal, man pages-ben minden jól dokumentálva, a legtöbb annyira egyszerű, hogy programozási gyakorlatként se nehéz egy kezdőnek újraírnia teljesen a 0-ról (lásd azóta is a sok másik klón, nem csak a GNU, de a busybox, meg az új rust-os átiratok). Így meg szépen klónozták is mint az állat, és ha a kód nem volt konrétan másolva, meg nem volt Unixként nevezve, nem lehetett jogilag megfogni.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Nem mondod! Azon mondjuk nem lepődtem meg, hogy ennyire nem akarja senki érteni a viccet, de, hogy mindjárt egy komplett monográfiát írjon rá válasznak?! Azér' ez nem semmi. :P

Sz*rk: Egyébként a WINE speciel megállja a helyét, mert a WINE tényleg nem emulátor, hanem API-wrapper.

Simán emulátor az. Az teljesen mindegy, ha nem natív, és nem virtuális gép, akkor emulátor. Az már részletkérdés, hogy hogyan emulál, hardvert is, vagy csak OS-t, vagy csak API wrapper. Egyébként én sose szerettem ezeket a hülye rekurzív neveket, hála istennek ma már nem divat.

A másik részét illetően akkor félreértettelek. Mentségemre legyen mondva, hogy utána még pár kolléga szintén félreértette. Egyébként még pár gondolat: a Linuxnak szerintem két okból lett elsöprőbb sikere, mint a többi rendszernek. Ez pedig nem az ingyenesség, mert a BSD-k is ingyenesek, hanem 1) a GPL / copyleft licenc, ami nyitva tartja a kódot később is, ez nagyon jó taktikának bizonyult, 2) a Linux pont jó időben született, mikor még az AT&T perelte a BSD-t, és emiatt sok ember félt használni, hogy majd megszűnik, jogi baj lesz belőle. Nem lett, de mire ez tisztázódott (1994-ben), addigra a kár megvolt, a Linux tarolt. A hagyományosabb Unix-vonal csak úgy élt volna tovább, ha a gyártók összefognak, a Linuxszal egyidőben FOSS licencessé teszik, közös erővel támogattak volna egy közös rendszert, talán sokkal szorosabb lenne a verseny.

Plusz még a képen lévőkön is maradtak életben Unix-variánsok, pl. Minix, QNX. Az ne tévesszen meg senkit, hogy ezek nem desktop / szerver OS-ek, hanem embedded kategóriában indulnak, abban viszont elég sikeresen, pl. a Minix már jó pár éve minden Intel prociban ott van, Management Engine (sajnos) hajtására, a QNX meg az autóiparban népszerű. Még a FreeBSD is ott ketyeg konzolokon, NAS-okon, tűzfalakon. Szóval az nem igaz, hogy a Linux mindent kinyírt, de tény, hogy erősen marginális szerepkörre szorított minden másik unixos, unixlike rendszert, sőt, a nem unixosakat is, a Windows kivételével. Ráadásul ha csak a mobil vonalát nézzük, ott az Androidnak, iOS-nek sokkal erősebbek az állásai, mint a Linuxnak (és nem, az Android nem Linux, hanem egy teljesen egyedi gányolású, java-s rendszer, hiába hajtja erősen módosított Linux kernel).

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Nem, nem emulátor, mert nem emulál semmit sem. https://en.wikipedia.org/wiki/Wine_(software)

No code emulation or virtualization occurs when running a Windows application under Wine.[17] "Emulation" usually would refer to execution of compiled code intended for one processor (such as x86) by interpreting/recompiling software running on a different processor (such as PowerPC).

Amig a GPL-t illeti, azt inkább hagyjuk...

Ez így van, nem processzort emulál, hanem OS-t. A DOSBox is ezt teszi, ott sem virtualizálsz, meg nem futtatsz másik architektúrát, mégis emuláció. Épp úgy van overheadje is, mint az emulációnak. Lehet ezen vitatkozni, talán értelem sincs, de akkor is emuláció. Mondom, ez igazából jogi okból került be ezekbe a not a blabla nevekbe. Ahogy Windows akárminek meg emulátornak nevezed, onnan várhatod, hogy a MS beperel névhasználat miatt. Így hogy not van benne, így nincs támadási felület.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Ez így van, nem processzort emulál, hanem OS-t.

Nem, az OS-t sem emulálja. Futtatja talán a windows-t? Nem.

A DOSBox is ezt teszi, ott sem virtualizálsz, meg nem futtatsz másik architektúrát, mégis emuláció.

Ezt nem tudom, hogy hogy jött ki neked, mert de. A DOSBox-nál nagyon is virtualizálsz, egy komplett régi PC-t. Szerinted ott az architektúra "futtatása" nélkül hogy működhetne egy POWER, vagy ARM gépen?

Az OS-t az API hívásai lévén emulálja. Nem komplett Windowst futtat, ez igaz. DOSBox talán így visszagondolva nem a legjobb példa, mert ott van egy kis hardveremuláció is de nagyrészt az is inkább OS emuláció. A 86box, PCem, qemu (kvm, stb nélkül) viszont tisztán emuláció, hardvert is teljes egészében, még a procit is.

Maradjunk abban, hogy minden emuláció, ami nem natív futás. Igazából még a virtualizációs is ide sorolnám, mert az is emuláció, de egy speciális műfaj, amihez lehet használni hardveres gyorsítást, meg a gép eredeti hardvereit. A lényeg: a Wine is emulátor, ahogy a Proton is, meg a FreeBSD Linux kompatibilitási rétege, WSL1, és miegymás is. A WSL2 már virtualizáció. Igazából én még a hardveres emulációt is emulációnak tekintem, pl. mikor arm64 procik emulálnak x86-ot. Bár ez az érvelés vékony jég, mert a Pentium Pro óta az x86-os prociknál is azt lehet mondani, hogy csak emulációs réteg az x86, valójában azt lebontják RISC mikroutasításokra, és azt hajtják végre. Így szerintem még az is az a műfaj, ami emuláció, overheadje is van. Amin még el lehetne vitatkozni, az azok az FPGA implementációk, hogy az hardveres emuláció is, vagy hardveres natív futtatás, hajlok az utóbbi felé, de az előbbire is vannak érvek.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Nem komplett Windowst futtat, ez igaz.

Nem. Nem futtat semmit. Semmit sem.

Maradjunk abban, hogy minden emuláció, ami nem natív futás.

Csakhogy a WINE alatti programok natívan futnak. Teljesen natívan. A WINE csak annyit csinál, hogy ami API call van, azt wrappeli a Linux kernel és a library-k felé.

Wine (formerly a recursive backronym for Wine Is Not an Emulator, now just "Wine")
https://en.wikipedia.org/wiki/Wine_%28software%29

linux szempontjabol nem elf binaris formatum tamogatas (misc binary suppor https://www.kernel.org/doc/html/v5.9/admin-guide/binfmt-misc.htmlt) egy  non posix librarik elso kozeletesben.
Ez valoban nem emulacio.

codeweaver (crossover) ugy nevezte magat, hogy vilagon a masodik legnepszerubb win32 api providere (az MS utan).

Tisztesseges program nem szokott rendszerhivasokat kozvetlenul hivni windows vilagaban sem.

pl linux eseteben az open(2) egy fuggveny a libc -ben, programodban a library fugveny hivasa kerul nem egy rendszerhivas.

DRM es anti-cheat dolgok voltak azok amik rendetlenek:
https://linuxreviews.org/Linux_5.11_Supports_Syscall_User_Dispatch_Whic…

Ez az uj feature mar kicsit kozelebb all az emulaciohoz.

 

 

Amit nem lehet megirni assemblyben, azt nem lehet megirni.

Elég feltűnő, hogy nem áll erős lábakon az a Linux, ahogy a barátai sem. Véletlen? Szándékos?

A 2021-ről szóló képre már kerülhettek volna vastagabb lábak, 20 év alatt azért elég nagy erősödés történt, nem? :)

És azt is nézzük meg, hogy hány különböző hardverkörnyezet/architektúra pusztult ki ez alatt az idő alatt... "Hála" a nagyszerű és olcsó x86 vonalnak...

Persze, de nem pusztulnának meg a kommerciális UNIX-ok, ha nem lennének akkora idióták a mögöttük álló cégek, hogy semmi pénzért nem akarnak x86-os verziót csinálni a szipi-szupi UNIX-ukból... azt az egyet, amelyikből meg pont csináltak, azt meg nem vinné el Larry a sírba az idióta üzletpolitikájával.

Az x86 az nem csak a processzorban jelent különbséget, nagyon sok hardveres "okosság" volt/van akár a régi HP, akár az IBM nem x86-os vasaiban, amit "pécés" hardverben nem találsz meg. Plusz az is benne van a pakliban, hogy hardver mellé adták az OS-t - ez utóbbinak a fejlesztését döntően a vason keresett pénzből finanszírozták.

Persze, de ezzel a sémával az a gond, hogy ahogy az x86 világ nő fel, úgy zabálja fel ezeket a platformokat alulról.

2000-ben még nem volt niche market egy 8 CPU-val rendelkező RISC-es UNIX, mondjuk egy rajta futó RDBMS-sel.

A 2020-as évekre egy ilyen setup azzá vált, ma kb. mindenki x86-on futtat ekkora workloadokat (meg ennek a többszörösét is), hiszen már kb. egy laptop is tudja ezt a teljesítményt.

Ha nincs "free x86" verzió valamiből, akkor nem kapsz ingyen bétatesztereket. Tehát vagy nem fejlesztesz, vagy fizetett bétatesztereket használsz, vagy az aranyárat fizető kuncsaftjaidat nézed bétateszternek. Szerintem mind a három opció zsákutca.

+1

Az x86 esetén a performance-per-watt jó sokáig lenyomott mindenkit, aki konkurencia volt (aztán most jön az ARM), nem véletlen, hogy a szuperszámítógépeknél is x86 a király már.

Az más kérdés, hogy a köré épített PC architektúra az milyen, szerintem zeller gondjai főleg ebből származnak, nem az x86-ból. A TOP500 csúcsgépe sem PC, hiába AMD x86.

Szerinted miért az x86 az egyeduralkodó a szuperszámítógépeknél?
https://www.top500.org/statistics/list/

Nézd meg a Processor Generation statisztikát.

Majd nézd meg a performance-per-watt statisztikát (Green500):

https://www.top500.org/lists/green500/2022/06/

A lista első 30 helyezettje AMD EPYC vagy Intel Xeon, a 31-ik egy Fujitsu-féle ARM-alapú gép, utána jön a POWER9.

Olcsóbb üzemeltetni ezt, mint más, adott számítási teljesítménynél.

Szerinted miért az x86 az egyeduralkodó a szuperszámítógépeknél?

Egyrészt ez azért van, mert a win95-nek köszönhetően ez lett a világ legnagyobb számban előállított és eladott, azaz a legolcsóbban előállítható és eladható CPU architektúrája, ergo a legelterjedtebb és a szoftverekkel legjobban ellátott is. Ennek megfelelően a baromi sok CPU-t használó szuperszámítógépekben ez a legolcsóbb opció, tehát ebből fogják építeni. Úgy mi más lehetne a lista élén, ha ebből építkeznek, mert ez van olcsón és ehhez optimalizálják a szoftvereket? Ennek semmi köze nincs a teljesítményhez.

Másrészt viszont, ennek semmi köze nincs az állításodhoz, mert te azt mondtad, hogy "x86 esetén a performance-per-watt jó sokáig lenyomott mindenkit", márpedig ennek - hogy régen mi volt - semmi köze nincs ahhoz, hogy most miből építenek szuperszámítógépet, pláne nem az előbbiek fényében.

A valóság az, hogy az x86-os architektúra egy übergagyi hulladék volt mindig is, amit a többi architektúra (POWER, Alpha, Sparc, 68k, whatever) ott gyalázott szét, ahol akart, mert, az intel a szemfényvesztéssel (órajellel, benchmarkokkal, megmagyarázással, tereléssel) volt elfoglalva (ld. még "MegaHertz mítosz", meg top500), nem a CPU-fejlesztéssel. Az AMD ugyan javított valamit a helyzeten, amikor a DEC egykori mérnökeinek segítségével kihozta az amd64-et, de ettől még maga az x86 továbbra is csak egy hulladék marad, ami továbbra is csak hurcolja az intel - már eredetileg is tervezési hibák garmadájától sújtott - 8, 16 és 32-bites CPU-inak örökölt defektusait és ezen nem segít semmiféle statisztika.

Csak egy kérdés a top500-zal kapcsolatban: az elmúlt 5 évben annyi CPU-sebezhetőséget fogtak az x86-os CPU-kban, hogy már összeszámolni is nehéz; vajon az ezekhez dukáló javításokat applikálták a top500-as gépekben? Vagy inkább mellőzték, mert belassítana mindent? Nagyon illékony dolog az a bizonyos performance/watt fölény...

A PC architektúra gyengeségeit a mai workloadok leszarják.

Eljött a cloud native világa, ami a lazán csatolt, elosztott rendszerekről szól - cserébe tessék sw oldalon workaroundolni a problémát. Ha ezt megtetted, akkor viszont semmi indokod nincs a drága, "okosságokat" tudó hw-t használni - helyette épitesz egy hálózatot sok, relatíve kicsi, és átlagosan megbízhatatlan gépből, sokkal kevesebb zsetonból (hiszen nem kézműves petek vannak itt, hanem tonnaszám tenyésztett cattle).

Az a kevés pár use-case, aminek meg kell a nagy, combos, megbízható gép, nos, ők meg fizetnek szépen, mint a katonatiszt. Mint 20-30 évvel ezelőtt a mainframe felhasználók.

Érdekes. Munkáim nagy részét még mindig AIX-en végzem. Még nem tűnik halottnak.

Nem tudom, a SCO Unix és a Unixware mikor volt barátja bárkinek is /o\