Как се програмира за linux
24 отговора
0 прегледа
Как се програмира за linux
Искам да се науча да програмирам за linux. Става въпрос за асемблер(TASM). Аз знам вградените функции но се интересувам и от архитектурата на linux. Знае ли някой от къде мога да намеря такива документи.
Re: Как се програмира за linux
[линк]
hehehe ne viarvah che vse oste ima entusiasti da pishat na ASM :-))
uspeh.
Дишайте лепило - хиляди GNU/Linux юзери не могат да грешат !
DrFrancky
hehehe ne viarvah che vse oste ima entusiasti da pishat na ASM :-))
uspeh.
Дишайте лепило - хиляди GNU/Linux юзери не могат да грешат !
DrFrancky
Re: Как се програмира за linux
Mnogo ti blagodarja. Shte mi svarshi chudesna rabota.
Re: Как се програмира за linux
Би трябвало да избягваш програмиране на асемблер, щото трудно се портва за други архитектури.
Re: Как се програмира за linux
ti vobste zamislial li si se koga se pishe na ASM ?
Дишайте лепило - хиляди GNU/Linux юзери не могат да грешат !
DrFrancky
Дишайте лепило - хиляди GNU/Linux юзери не могат да грешат !
DrFrancky
Re: Как се програмира за linux
microcode , hw inicializacia.
high timing i response
performance critical nesta (niakoi put se ispolzva pri algoritmi natovarvasti CPU/GPU/etc.)
limited resources i maximalna optimizacia
kogato ezik ot visoko nivo ne poddurza instruction set za konkretnia HW. (primer GPU). vse pak ezicite ot visoko nivo sa abstrakcia na arhitekturata za koiato pishes. ASM x86 i negovite I/O instrukcii ti pozvoliava da dostigas opredelen device direktno koeto vodi do po goliama proizvoditelnost. ako ne se luza C (ne che C e portable de) se hvali s tova che ne poddurza nikakvi specifichni I/O instrukcii.
kogato pishes za niakoi now HW ili specializiran takuv.
kogato ne iskas da si zavisim ot vunsni biblioteki susto mozes da go polzvas. (viarno e che e prilozimo za malki tools)
kogato izuchavas daden HW kak tochno raboti.
no vsichko tova se postiga kogato si HW zavisim. NE E CEL NA ASM DA E PORTABLE.
v dnesno vreme ASM se polzva TOCHNO S IDEATA DA SI HW ZAVISM.
e mozes da polzvas ASM i za reverse engineering i byte patches.
za fun - menuetOS enyone ?
Дишайте лепило - хиляди GNU/Linux юзери не могат да грешат !
DrFrancky
high timing i response
performance critical nesta (niakoi put se ispolzva pri algoritmi natovarvasti CPU/GPU/etc.)
limited resources i maximalna optimizacia
kogato ezik ot visoko nivo ne poddurza instruction set za konkretnia HW. (primer GPU). vse pak ezicite ot visoko nivo sa abstrakcia na arhitekturata za koiato pishes. ASM x86 i negovite I/O instrukcii ti pozvoliava da dostigas opredelen device direktno koeto vodi do po goliama proizvoditelnost. ako ne se luza C (ne che C e portable de) se hvali s tova che ne poddurza nikakvi specifichni I/O instrukcii.
kogato pishes za niakoi now HW ili specializiran takuv.
kogato ne iskas da si zavisim ot vunsni biblioteki susto mozes da go polzvas. (viarno e che e prilozimo za malki tools)
kogato izuchavas daden HW kak tochno raboti.
no vsichko tova se postiga kogato si HW zavisim. NE E CEL NA ASM DA E PORTABLE.
v dnesno vreme ASM se polzva TOCHNO S IDEATA DA SI HW ZAVISM.
e mozes da polzvas ASM i za reverse engineering i byte patches.
za fun - menuetOS enyone ?
Дишайте лепило - хиляди GNU/Linux юзери не могат да грешат !
DrFrancky
Re: Как се програмира за linux
> performance critical nesta (niakoi put se ispolzva pri algoritmi natovarvasti CPU/GPU/
> etc.)
> limited resources i maximalna optimizacia
За това не съм съгласен. Паралелизацията в съвременните процесори е толкова шантава, че обикновено е по-добре да се остави компилатора да направи оптимизацията. Наскоро гледах ръчно оптимизиран код на асемблер, който имплементираше setjmp/longjmp (на някакъв странен процесор) -- беше много забавно как инструкциите са разхвърляни и за се сглоби какво точно става трябва да знаеш кои юнити в процесора могат да работят паралелно.
Доколкото знам за GPU-та се пише предимно на език от високо ниво (Cg или нещо подобно). Поне това използват хората занимаващи се с GPU-та при нас.
> etc.)
> limited resources i maximalna optimizacia
За това не съм съгласен. Паралелизацията в съвременните процесори е толкова шантава, че обикновено е по-добре да се остави компилатора да направи оптимизацията. Наскоро гледах ръчно оптимизиран код на асемблер, който имплементираше setjmp/longjmp (на някакъв странен процесор) -- беше много забавно как инструкциите са разхвърляни и за се сглоби какво точно става трябва да знаеш кои юнити в процесора могат да работят паралелно.
Доколкото знам за GPU-та се пише предимно на език от високо ниво (Cg или нещо подобно). Поне това използват хората занимаващи се с GPU-та при нас.
off
[линк]
"GPU computing with CUDA technology is an innovative combination of computing features in next generation NVIDIA GPUs that are accessed through a standard ‘C’ language."
Green Peas!
"GPU computing with CUDA technology is an innovative combination of computing features in next generation NVIDIA GPUs that are accessed through a standard ‘C’ language."
Green Peas!
Re: off
zasto si mislis che govorim za PC ? zasto si mislis che govorim za Nvidia i to za poslednite i modeli ? GPU ima ot 1970-ta.
Дишайте лепило - хиляди GNU/Linux юзери не могат да грешат !
DrFrancky
Дишайте лепило - хиляди GNU/Linux юзери не могат да грешат !
DrFrancky
Re: off
zasto si mislis che govorim za PC ? - нищо не си мисля.
zasto si mislis che govorim za Nvidia i to za poslednite i modeli ? - погледни по-горе. не вие говорите за Nvidia, аз говоря за тях. болдът беше с цел, но явно не това, което ти си помислил.
GPU ima ot 1970-ta. - изобщо не коментирам от кога има gpu.
постът ми е в отговор на последния пост на Пайп и е предназначен основно за него. off = off topic. линкът по разни поводи може да е любопитен, за някои хора.
Green Peas!
zasto si mislis che govorim za Nvidia i to za poslednite i modeli ? - погледни по-горе. не вие говорите за Nvidia, аз говоря за тях. болдът беше с цел, но явно не това, което ти си помислил.
GPU ima ot 1970-ta. - изобщо не коментирам от кога има gpu.
постът ми е в отговор на последния пост на Пайп и е предназначен основно за него. off = off topic. линкът по разни поводи може да е любопитен, за някои хора.
Green Peas!
Re: Как се програмира за linux
ako ne razbiras arhitekturata e pochti nevazmozno da optimiziras nesto s ASM.... daze moze da napravis i po baven kod :-))
za limited resources imam predvid razni embeded ultra thin nesta... primerno pacemaker.
razbirase za general purpose ASM ne e nikak podhodiast.
Дишайте лепило - хиляди GNU/Linux юзери не могат да грешат !
DrFrancky
za limited resources imam predvid razni embeded ultra thin nesta... primerno pacemaker.
razbirase za general purpose ASM ne e nikak podhodiast.
Дишайте лепило - хиляди GNU/Linux юзери не могат да грешат !
DrFrancky
Re: off
OK . sorry .
Дишайте лепило - хиляди GNU/Linux юзери не могат да грешат !
DrFrancky
Дишайте лепило - хиляди GNU/Linux юзери не могат да грешат !
DrFrancky
Re: Как се програмира за linux
Аз пък си мислех, че точно абстракцията от хардуера е духа на юниксите, но щом ни светваш веднага ще си вземем забележка и ще пренапишем всичко на асемблер. Между другото пиша програми и драйвери само за ембедед платформи и много отдавна не ми се е налагало да пиша и един ред на асемблер. Да го чета да, но да го пиша не. Най-голямата тъпотия която съм виждал е някоя библиотека с част от кода писан на асемблер и то само за FPU-то. Предполагам че е просто защото компилаторът не го поддържа много добре. Из драйверите на Линукса които съм разглеждал никъде не съм видял и ред на асемблер.
Re: Как се програмира за linux
/*
Аз пък си мислех, че точно абстракцията от хардуера е духа на юниксите, но щом ни светваш веднага ще си вземем забележка и ще пренапишем всичко на асемблер
*/
sus sarkazam niama da postignes nisto .... nai mnogo niakoi druga psuvnia
/*
Между другото пиша програми и драйвери само за ембедед платформи и много отдавна не ми се е налагало да пиша и един ред на асемблер.
*/
tova che ti ne polzvas ASM ne znachi che drugi ne go polzvat.
a i ia definirai embeded ... embeded e i mini PC s p4 , 512MB ram primerno.
/*
Да го чета да, но да го пиша не.
*/
cheteneto e edno .... razbiraneto e drugo .. kak go razbiras ako ne si go uchil ? (tova koeto iskase choveka)
/*
Най-голямата тъпотия която съм виждал е някоя библиотека с част от кода писан на асемблер и то само за FPU-то.
*/
tupotia vikas ? ... aide sega se vgledai v sledvastoto si izrechenie:
/*
Предполагам че е просто защото компилаторът не го поддържа много добре
*/
Tochno i za tova se polzva ASM.
/*
Из драйверите на Линукса които съм разглеждал никъде не съм видял и ред на асемблер
*/
draiverite za linux ne sa primer za dobur code. driverite za linux sa primer za NAI skapano napisan code. te se pishat kolkoto da rabotiat.
Дишайте лепило - хиляди GNU/Linux юзери не могат да грешат !
DrFrancky
Аз пък си мислех, че точно абстракцията от хардуера е духа на юниксите, но щом ни светваш веднага ще си вземем забележка и ще пренапишем всичко на асемблер
*/
sus sarkazam niama da postignes nisto .... nai mnogo niakoi druga psuvnia
/*
Между другото пиша програми и драйвери само за ембедед платформи и много отдавна не ми се е налагало да пиша и един ред на асемблер.
*/
tova che ti ne polzvas ASM ne znachi che drugi ne go polzvat.
a i ia definirai embeded ... embeded e i mini PC s p4 , 512MB ram primerno.
/*
Да го чета да, но да го пиша не.
*/
cheteneto e edno .... razbiraneto e drugo .. kak go razbiras ako ne si go uchil ? (tova koeto iskase choveka)
/*
Най-голямата тъпотия която съм виждал е някоя библиотека с част от кода писан на асемблер и то само за FPU-то.
*/
tupotia vikas ? ... aide sega se vgledai v sledvastoto si izrechenie:
/*
Предполагам че е просто защото компилаторът не го поддържа много добре
*/
Tochno i za tova se polzva ASM.
/*
Из драйверите на Линукса които съм разглеждал никъде не съм видял и ред на асемблер
*/
draiverite za linux ne sa primer za dobur code. driverite za linux sa primer za NAI skapano napisan code. te se pishat kolkoto da rabotiat.
Дишайте лепило - хиляди GNU/Linux юзери не могат да грешат !
DrFrancky
Re: Как се програмира за linux
Из драйверите на Линукса които съм разглеждал никъде не съм видял и ред на асемблер
/*
draiverite za linux ne sa primer za dobur code. driverite za linux sa primer za NAI skapano napisan code. te se pishat kolkoto da rabotiat.
*/
Това май беше няква голяма простотия

/*
draiverite za linux ne sa primer za dobur code. driverite za linux sa primer za NAI skapano napisan code. te se pishat kolkoto da rabotiat.
*/
Това май беше няква голяма простотия
Re: Как се програмира за linux
Драйвърите за линукс не се пишат на асемблер защото за линукс стандарта е С
и за да може кода да се подържа от всички разработчици се ползва един език.
Това не означава че под линукс нямаш възможност да си напишеи каквото искаш на асемблер вътре в компилатора на С.
Що се отнася до това дали си програмист на ембедед платформи ако смяташ някое ПС с П2 за такова си далече от истината.
Що ли навремето някой като тебе не беше дошъл да се изфърли като Ч**** на мокър песък, че трябва да се пише на език от високо ниво за НС11 или Моторола 32000. На флаш 64кб трябваше да събереш програмата и картинките за покер машина.
и за да може кода да се подържа от всички разработчици се ползва един език.
Това не означава че под линукс нямаш възможност да си напишеи каквото искаш на асемблер вътре в компилатора на С.
Що се отнася до това дали си програмист на ембедед платформи ако смяташ някое ПС с П2 за такова си далече от истината.
Що ли навремето някой като тебе не беше дошъл да се изфърли като Ч**** на мокър песък, че трябва да се пише на език от високо ниво за НС11 или Моторола 32000. На флаш 64кб трябваше да събереш програмата и картинките за покер машина.
Re: Как се програмира за linux
Ти па какво рабираш от драйвъри за линукс та се обаждаш.
Драйвърите за линукс в 70% от случайте се пишат с ревърс инженеринг без никаква информация от производителя ще ми се да видя уиндоуски драйвър на какво щеше да прилича ако беше писан така. А то всъщност няма нужда Бил Гатес включва принтер в Уиндоус и веднага син екран е още със скапаните драйвъри на линукс не ми се е случвало принтер да ми успи системата.
Драйвърите за линукс в 70% от случайте се пишат с ревърс инженеринг без никаква информация от производителя ще ми се да видя уиндоуски драйвър на какво щеше да прилича ако беше писан така. А то всъщност няма нужда Бил Гатес включва принтер в Уиндоус и веднага син екран е още със скапаните драйвъри на линукс не ми се е случвало принтер да ми успи системата.
Re: Как се програмира за linux
e PC104 си се води за embedded формат. а пък никъде не съм чул,че С е стандарт за линукс.