Ha megtanulnám a X86 Assembly-t, milyen munkakörökben venném hasznát?
"ASM nélkül nincs jó hang/video codec, nincs jó video lejátszó, nincs hatékony általános célú tömörítő program se." -> Különösen akkor hasznos ez ha ma már szinte minden ilyen programnál elvárás a platform függetlenség (főleg úgy, hogy már az ARM is terjed mint a pestis, ami egészen más architektúra, mint az x86). Az, hogy vannak még lusta emberek, akik ahelyett hogy gondolkodnának x86 ASM-ben írnak meg dolgokat, az nem azt jelenti, hogy ma ez egy kiemelten fontos irány.
"Lotus 123 táblázatkezelő"-mikor is jelent meg, és miért halt ki vajon? 1983-ban kezdték feljeszteni! Azért azóta eltelt 40 év! és végül 2002-ben 22 évvel ezelőtt be is fejezték a fejlesztését. Talán ez sem véletlen.
Szintén nem véletlen, hogy az 1970-ben kezdett unixot, amint a C stabil lett 1973-ban komplett újra írták C-ben. (Ez 50 éve történt).
Tehát 10-eske kb. 40 évvel vagy elmaradva a világtól. Nem azt mondom, hogy nem árt ismerni legalább egy proci ASM-jét alapszinte, de a mai világban teljesen feleslges. Én most nem látok sehol futó komolyabb fejlesztéseket (leszámítva amit fent már írt valaki, hogy beágyazott rendszerek, és néhány nagyon speciális terület) amik x86 ASM-ben történnek. Egy mai jó C fordító nagyon durván képes optimalizálni. OK, esetleg az a néhány ember aki ezekkel foglalkozik neki még érdemes az ASM-et ismerni.
11, a te szavaid buta, önigazolást kereső mondatok.
- Egy video lejátszó kodekje még 20 év múlva is natív lesz és a kopogó vason fog futni nem valami fos virtuális gépen.
- A lotus 123 az egyik példa volt arra, hogy történik 100 %-os ASM fejlesztés is. Mellesleg, a táblázatkezelő végét az jelentette, hogy DOS alkalmazás volt. Ezt írják róla:
"óriási népszerűségnek örvendett, és jelentősen hozzájárult az IBM PC-kompatibilis számítógépek sikeréhez az üzleti piacon."
- A Unixot soha nem írták "újra" C-ben, mivel eleve C-ben írták meg.
Akkoriban az oprendszereket, így a tervezett multics-ot is asm-ben fejlesztették. A nagygépre tervezett multi-useres, időosztásos multics speckója azonban nagyon durvára sikeredett, így azt a cégek által delegált szakemberek egyszerűen nem voltak képesek implementálni (Ugyanez történt később az ADA speckója esetében is). Ezért az erre megalakított munkaszövetség feloszlott. Ennek a kudarcnak ellenpontozásaként kezdte meg a két őshüllő (multics alapokon) megtervezni és megírni a UNIX-ot. Ezért is lett az a neve, hogy UNICS. Ehhez szülték meg az C nyelv ősét ami lényegében egy nagyon tömör makrónyelv volt, ami .asm kimenetet generált.
Ezt a tömörséget az indokolta, hogy a gép, amin elkezdték a UNIX fejlesztését, egy használaton kívüli pdp 11-es gép volt, mindössze négy vagy nyolc kiloszó (kWord) memóriával.
Neked láthatóan lövésed nincs arról, hogy mi megy programfejlesztés terén.
Ha egy komolyabb programnak vannak sebesség-kritikus részei, akkor azt assemblyben írják meg, ha tetszik ez neked, ha nem. Ha vannak benne időzítések, triggerek, akkor azokat a részeket szintén assemblyben fogják megírni.
A C "nagyon durva" optimalizációját meg akár fel is dughatod magadnak.
A C nem fog kódot írni, csak azt tudja optimalizálni, ami érkezik neki a bemeneten.
A C-ben szarul megírt kódon pedig hiába optimalizál a fordító akár 15 %-ot, ha ugyanaz a feladatrész asm-ben megírva fél-, harmadannyi idő alatt lefut.
Már pedig ez gyakori. C-ben nincsenek regisztereid és nincs sok más sem, ami assembly-ben nem csak hogy adott, de ki sem lehet kerülni.
Csak azt tudom megismételni, amit a kolléga már leírt, soha nem írtak annyi assembly kódot, mint manapság. Annak ellenére, hogy az applikációk száma iszonyat sebességgel nő, az assembly nyelv a stabil 12.-15. környéki helyet foglalja el a tiobe indexen, immár tizensok éve.
Az a baj, hogy nálad a sánta kutya effektus működik, mert ténybeli dolgokban hazudsz!
Az összes ezzel foglalkozó forrás szerint a Unixot (néhány forrás szerint a unix kernelt) 1972-1973 években újra(!!!) írták C-ben! És ez történelmi TÉNY nem VÉLEMÉNY hanem ellenőrizhető tény!
"Ken Thompson teamed up with Dennis Ritchie, who wrote the first C compiler. In 1973 they rewrote the Unix kernel in C. The following year a version of Unix known as the Fifth Edition was first licensed to universities. The Seventh Edition, released in 1978, served as a dividing point for two divergent lines of Unix development. These two branches are known as SVR4 (System V) and BSD. "
----
"Unix was firstly written in the low-level PDP-7 assembler language before it was rewritten in 1972 with the new C programming language."
---
A többi állításod is hasonlóan stabil alapokon nyugszik. Legalább olyat ne hazudj amit 10másodperc google-zás után ellenőrizni lehet, hogy HAZUGSÁG!
"A Unix operációs rendszer fejlesztése a Multics-szal (Multiplexed Operating and Computing System) kezdődött. A Multics projekt az 1960-as évek közepén indult, a General Electric, Massachusetts Institute for Technology és a Bell Laboratories együttműködésében. 1969-ben a Bell Laboratories kivonult a projektből.
A Bell Laboratories egyik munkatársa, Ken Thompson részt vett a Multics projektben. Szerette a Multicsot, de túl komplexnek találta. Thompson a Multics nyomdokain haladva egy PDP–7-esen egy hónap alatt megírta az első Unicsot. A UNICS jelentése „Uniplexed Operating and Computing System”. Ahogy az operációs rendszer változott, a nevét lerövidítették, és így született meg a rövidebb "Unix" név. A UNICS 1969 szeptemberében jelent meg.
A UNIX ******** rendszermagját ********* eleinte assembly segítségével készítették el, majd 1973-ban nagyrészt átírták C nyelvre, amely lehetővé tette az egyszerű portolást ******* a különböző hardverekre."
--
A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével 1969 és 1973 között a UNIX rendszerekre.
Az 1973-as évben a C nyelv elég hatékonnyá vált, így a UNIX rendszermag legnagyobb részét, melyek PDP-11/20 assembly nyelven íródtak, újraírták C-ben. Ez volt az egyik első operációs rendszer rendszermag, mely nem assembly nyelven íródott,
Tizenhármaska!
Tudod az úgy volt, hogy a Unixot felfejlesztették olyan szintre, hogy kereskedelmi termékként el lehessen adni. Ez meg is történt, de nem 1973-ra, hanem már 1972-re. A Unix kernele valóban portolva lett C-re, de erre azért volt szükség, hogy a Unixot le lehessen fordítani másféle géptipusokra is. A C fordítója is azért lett olyan, amilyen. Bármilyen processzor assembleréhez könnyen hozzá lehetett igazítani.
Ha eszed lenne, eltöprengenél azon, hogy vajon ki lenne olyan hülye, hogy egy asmben megírt kernelt C-re portol? Hacsak nincs a dologban üzleti megfontolás. Na de hát, volt.
A Unix úgy született, hogy a Multics fiaskója megfeküdte a két ember gyomrát. Kielemezték, hogy mi volt a Multics kudarcának a forrása és azokat kikapcsolták a projektből. Ezek a részek voltak, a teljesség igénye nélkül: a túlzott biztonságosság, az események túlnaplózása, a rendszer vég nélküli skálázhatósága és a bonyolult rendszerterv. Lényegében megritkították a Multics fájának lombkoronáját. Ez lett a Unix. Az egyszerűsítés abban állt még, hogy bizonyos részeket, főleg a file I/O-t és annak adminisztrációját nem assemblyben, hanem valamivel magasabb szintű nyelven, C-ben valósították meg. A PDP 7-es és az egy hónapos fejlesztési idő nem igaz. Megvan az eredeti forrás, egy hónap alatt senki nem képes ilyen volumenű munka elvégzésére. Ez csak a legendárium része. Ahogy a PDP-7 is. Ott van a forrásban, hogy PDP 11 volt a célgép.
Küzdesz, mint disznó a jégen, csak az a gond, hogy nincs elég eszed, és ezt a hiányosságodat nyers agresszióval próbálod pótolni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!