Как се програмира за linux

24 отговора 0 прегледа
#1

Как се програмира за linux

Искам да се науча да програмирам за linux. Става въпрос за асемблер(TASM). Аз знам вградените функции но се интересувам и от архитектурата на linux. Знае ли някой от къде мога да намеря такива документи.

Отговор
в отговор на program #2

Re: Как се програмира за linux

[линк]

hehehe ne viarvah che vse oste ima entusiasti da pishat na ASM :-))
uspeh.

Дишайте лепило - хиляди GNU/Linux юзери не могат да грешат !

DrFrancky
Отговор
в отговор на DrFrancky #3

Re: Как се програмира за linux

Mnogo ti blagodarja. Shte mi svarshi chudesna rabota.

Отговор
в отговор на program #4

Re: Как се програмира за linux

Би трябвало да избягваш програмиране на асемблер, щото трудно се портва за други архитектури.

Отговор
в отговор на Пeшo #5

Re: Как се програмира за linux

ti vobste zamislial li si se koga se pishe na ASM ?

Дишайте лепило - хиляди GNU/Linux юзери не могат да грешат !
DrFrancky
Отговор
в отговор на DrFrancky #6

Re: Как се програмира за linux

Кога се пише на asm? :)

Отговор
в отговор на | #7

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
Отговор
в отговор на DrFrancky #8

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-та при нас.

Отговор
в отговор на | #9

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!
Отговор
в отговор на devnul #10

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
Отговор
в отговор на DrFrancky #11

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!
Отговор
в отговор на | #12

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
Отговор
в отговор на devnul #13

Re: off

OK . sorry .

Дишайте лепило - хиляди GNU/Linux юзери не могат да грешат !
DrFrancky
Отговор
в отговор на DrFrancky #14

Re: off

Няма нищо.

Green Peas!
Отговор
в отговор на DrFrancky #15

Re: Как се програмира за linux

Аз пък си мислех, че точно абстракцията от хардуера е духа на юниксите, но щом ни светваш веднага ще си вземем забележка и ще пренапишем всичко на асемблер. Между другото пиша програми и драйвери само за ембедед платформи и много отдавна не ми се е налагало да пиша и един ред на асемблер. Да го чета да, но да го пиша не. Най-голямата тъпотия която съм виждал е някоя библиотека с част от кода писан на асемблер и то само за FPU-то. Предполагам че е просто защото компилаторът не го поддържа много добре. Из драйверите на Линукса които съм разглеждал никъде не съм видял и ред на асемблер.

Отговор
в отговор на Пeшo #16

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
Отговор
в отговор на DrFrancky #17

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.
*/

Това май беше няква голяма простотия

Отговор
в отговор на Пeшo #18

Re: Как се програмира за linux

Драйвърите за линукс не се пишат на асемблер защото за линукс стандарта е С
и за да може кода да се подържа от всички разработчици се ползва един език.
Това не означава че под линукс нямаш възможност да си напишеи каквото искаш на асемблер вътре в компилатора на С.
Що се отнася до това дали си програмист на ембедед платформи ако смяташ някое ПС с П2 за такова си далече от истината.
Що ли навремето някой като тебе не беше дошъл да се изфърли като Ч**** на мокър песък, че трябва да се пише на език от високо ниво за НС11 или Моторола 32000. На флаш 64кб трябваше да събереш програмата и картинките за покер машина.

Отговор
в отговор на por4e2 #19

Re: Как се програмира за linux

Ти па какво рабираш от драйвъри за линукс та се обаждаш.
Драйвърите за линукс в 70% от случайте се пишат с ревърс инженеринг без никаква информация от производителя ще ми се да видя уиндоуски драйвър на какво щеше да прилича ако беше писан така. А то всъщност няма нужда Бил Гатес включва принтер в Уиндоус и веднага син екран е още със скапаните драйвъри на линукс не ми се е случвало принтер да ми успи системата.

Отговор
в отговор на adm #20

Re: Как се програмира за linux

e PC104 си се води за embedded формат. а пък никъде не съм чул,че С е стандарт за линукс.

Отговор