Tvikanje Gnu/Linuxa

poruka: 171
|
čitano: 24.194
|
moderatori: pirat, Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
9 godina
neaktivan
offline
Re: Tvikanje Gnu/Linuxa
rustweaver kaže...

Ne. Kernel je statičan, učitan na svoju početnu adresu u kontinuiranom bloku i ne mrda odatle.

{#}

 

i kakve to ima veze ? statican ili ne kad je cijela fizicka memorija fragmentirana skupa sa blokom u kom je kernel

 

s tobom stvarno nesta nije u redu ? imas problema sa zakljucivanjem ?

Poruka je uređivana zadnji put uto 12.8.2014 17:44 (cowboy).
14 godina
neaktivan
offline
Re: Tvikanje Gnu/Linuxa
cowboy kaže...
i kakve to ima veze ? statican ili ne kad je cijela fizicka memorija fragmentirana skupa sa blokom u kom je kernel

Ima veze. Kernel okupira kontinuirani blok fizičkih memorijskih stranica, on dakle nije fragmentiran niti to može najednom postati.

A C program is like a fast dance on a newly waxed dance floor by people carrying razors.
15 godina
odjavljen
offline
Tvikanje Gnu/Linuxa

Kernel se nikad, ali nikad ne "šalta" po memorijskim adresama. Zapiše ga se u taj blok, on ostatak mapira u virtualnu memoriju i dalje po aplikacijama dodjeljuje koliko tko zatraži (ili odbije zahtjev). Tu idu u priču i NX, PAE...

 

A sad malo o toj nesretnoj fragmentaciji. Ako je nešto zauzelo prva 3 bloka, u 4. i 5. nešto drugo, naravno da će doć do fragmentacija kada aplikacija 1. (kojoj su blokovi 1-3 postali premali) zatraži još memorije (dakle 6 i dalje). To ne možeš izbjeć jer ako aplikaciji treba 8 MB za neki podatak, treba joj i dovoljno velik adresni prostor. Možeš smanjiti veličinu blokova i tako prividno smanjiti fragmentaciju (to je ona tvoja "manja" potrošnja) ili možeš ić seliti alocirane blokove naokolo što nije baš ok za performanse.

 

Ukratko - hrpetina gluposti. Super-optimizirani kernel za marginalne dobitke. BTW, živo me zanima kako bi se to sve pokazalo kad bi pokrenuo par većih aplikacija i krenuo "žonglirati" sa njima.

 

P.S. - Win8 ima genijalan memory management. VS2013, SMSS, virtualka sa XPom i Firefox sa 20ak tabova. Samo 4GB RAMa a radi kao zmaj!

My name is Legion... For we are many!
Poruka je uređivana zadnji put uto 12.8.2014 18:02 (Sum_of_all_fears).
Moj PC  
1 0 hvala 0
14 godina
neaktivan
offline
Re: Tvikanje Gnu/Linuxa

Pa fragmentacija memorije u praksi? Jako banalan primjer.

 

Recimo da imaš gigu virtualnog adresnog prostora. Alociraš 500 MB i popuniš ih, nakon toga 250 MB i popuniš ih. Zatim oslobodiš ovaj blok od 500 MB. Imaš sveukupno prazno 750 MB. Možeš li sada alocirati jedan kontinuirani blok od 750 MB? Ne, jer ovaj blok od 250 MB cijepa adresni prostor na jedan blok od 500 i jedan od 250 MB. I to je to. U stvarnosti se to još i više komplicira.

 

E sad, kad bi mogao seliti memoriju s jednog mjesta na drugo i pri tome automatski updateati sve pokazivače... To je upravo ono što exact stack rooting kod firefoxa pokušava postići. Postavlja temelje za budući dinamički defragmenter adresnog prostora.

A C program is like a fast dance on a newly waxed dance floor by people carrying razors.
9 godina
neaktivan
offline
Re: Tvikanje Gnu/Linuxa
rustweaver kaže...

Ima veze. Kernel okupira kontinuirani blok fizičkih memorijskih stranica, on dakle nije fragmentiran niti to može najednom postati.

{#}

 

Fragmentiran je iz samog starta kad se moduli linkaju u kernel, tj blok u kom je kernel

 

Sum_of_all_fears kaže...

Kernel se nikad, ali nikad ne "šalta" po memorijskim adresama. Zapiše ga se u taj blok, on ostatak mapira u virtualnu memoriju i dalje po aplikacijama dodjeljuje koliko tko zatraži (ili odbije zahtjev). Tu idu u priču i NX, PAE...

 

 

Jesi siguran ?

Kernel se moze saltati po adresama, kad ga budes kompajlirao vidit ces da i to mozes konfiguirati iako sumnjam da genericne distibucije to koriste ali sigurno su izgradjene sa podrskom za to.

 

P.S. - Win8 ima genijalan memory management. VS2013, SMSS, virtualka sa XPom i Firefox sa 20ak tabova. Samo 4GB RAMa a radi kao zmaj!

 

Onda bjezi iz teme u windows.

Ne tjeraj me da pokrenem virtualku i 20tabova u firefox na manje od 2 Gb rama od cega je 1 dodjeljeno virtualki

 

14 godina
neaktivan
offline
Re: Tvikanje Gnu/Linuxa
cowboy kaže...

Fragmentiran je iz samog starta kad se moduli linkaju u kernel, tj blok u kom je kernel

Koji sad moduli? S tobom čovjek nikad nije siguran o čemu točno pričaš. Govoriš li i dalje o ovim "vanjskim" modulima koji se naknadno učitavaju, ili si sada počeo pričati o "modulima" koji su kompajlirani skupa s kernelom. Ako da onda LOL. Hoćemo li sada raspravljati i o rasporedu objektnih datoteka unutar izvršne datoteke? Briješ na tešku ezoteriju.

A C program is like a fast dance on a newly waxed dance floor by people carrying razors.
10 godina
offline
Re: Tvikanje Gnu/Linuxa
cowboy kaže...

Bogami ima i fragmentacije, nisi ni svjestan koliko se linux fragmentira sto jedino mozes sprijeciti manualno konfiguracijom kernela

Samo sto to nije diskovna fragmentacija nego memorijska, sto je jos gore po preformanse samog sistema

 

Čak i shvaćam što je pjesnik ovdje htio reći. Da, učitavanje shared objecta, vanjskih kernel modula. Oni ostaju uvijek na istom adresnom prostoru dok god je system up jer inače ne bi radilo ništa. Isto kao i u windowsima sa dll-ovim. Istina. Ali to neće sprječiti niti tvoj super custom kernel ako počinješ dodavati aplikacije, module, library-e nakon kompilacije i instalacije. Taj problem nikada neće nestati zbog prirode samog OS-a i kernela, ali to je tako zanemarivo danas kada imamo gigabajte memorije, da ti kilobajti/megabajti ništa ne znače.

 

p.s. Slušaj kolegu Rust-a, ima više iskustva i znanja u tom području nego ti.

Samomrzeći hrvat
9 godina
neaktivan
offline
Re: Tvikanje Gnu/Linuxa
rustweaver kaže...

 Govoriš li i dalje o ovim "vanjskim" modulima koji se naknadno učitavaju, ili si sada počeo pričati o "modulima" koji su kompajlirani skupa s kernelom.

Moduli koji se kompajliraju skupa s kernelom ? {#}

Takvi moduli ne postoje lol jer to vise nije modul nego kernel (njegov dio). Vidim da ne razumijes sto je modul, ako se driver naknadno linka u kernel, on je modul. Ako je kompajliran sa kernelom to nije nikakav modul.

Ili ti mislis na GNU drivere ? Ne, to nisu linux moduli. Npr "modprobe vboxdrv" vboxdrv nije nikakav vanjski modul nego obican vbox driver koji se modprobe komandom nesto kao linka sa kernel driverom

Linux ili ima driver ili modul, ne postoje vanjski moduli, to su samo GNU driveri

 

Entry Point kaže...

 

p.s. Slušaj kolegu Rust-a, ima više iskustva i znanja u tom području nego ti.

hahaha

Da slusam njega koji kernel drivere naziva modulima i koji misli da linux radi u virtualnoj memoriji, da bios radi v memory za njega...

Prvo mu nije bilo jasno kako moze kompjaliranje smanjiti zauzece memorije, onda kad je nakon dva tjedna guglanja zakljucio da je ipak tako, kaze da je a razlika u memoriji zanemariva, a iz slika koje sam stavio usporedbe radi vidi se da je razlika skoro 30%.

Pa mu nije jasno kako debug kodovi utjecu na vece zauzece rama u aplikaciji, pa kad mu das link koji to potvrdi, onda te nazove klonom

Kroz cjelu temu samo prica o nekim GNU allocima a ja pricam o kernelu. Linux i Gnu su nebo i zemlja i ne treba brkati jedno pod drugo

Obican troll, koji mijenja pricu svako toliko nakon sto shvati da je u krivu

 

Zanimljivo je kako ste se urotil vas petorica protic mene i samo jedan drugom lupate TU, cak i kad rusty izvali glupost poput gore navedenih dobije TU, a kompajlirali ste kernel koliko ono puta ? - nula puta, vidim ne razumijete ni one osnove optimizacije aplikacija, ni osnove kernela, kad se koji driver naziva modulom i koji ring radi u kojoj memoriji

 

Modul kompajliran sa kernelom {#} jbt sta jos necu procitati na ovoj temi

Linux radi u virtualnoj memoriji pa to sto je fizicka fragmentirana nema nikakve veze - hahaha

 

Rusty ima znanja dosta, ali iskustvo i znanje nisu isto jer je ocito da covjek nikad nije kompajlirao kernel buduci da brka osnovne pojmove i treba mu cijela stranica da skuzi o cemu pricam.

Rekao sam vam vec ako vas zanima linux, manite se wikipedije i guglanja, proucavajte konfiguraciju kernela pa experimentirajte s njom, drugacije vam sve znanje wikipedije ne vrijedi nista jer cete ga brkati kao sto to i cinite.

Ja o kernelu i nacinu kako on mapira i alocira memoriju, on o glibc i mallocima. Ja o ringu nula, on o ringu 1... Ja o Linux modulima, on o Gnu driverima... Tip je uporan troll, razumjevanje linuxa mu necu ni komentirati

Poruka je uređivana zadnji put čet 14.8.2014 8:37 (cowboy).
9 godina
neaktivan
offline
Re: Tvikanje Gnu/Linuxa
Entry Point kaže...
Oni ostaju uvijek na istom adresnom prostoru dok god je system up jer inače ne bi radilo ništa.
Taj problem nikada neće nestati zbog prirode samog OS-a i kernela, ali to je tako zanemarivo danas kada imamo gigabajte memorije, da ti kilobajti/megabajti ništa ne znače.

Ne govorim o modulima i njihovom adresnom prostoru, jos ti nije jasno.

Govorim o samom kernelu i ring 0 koji se od samog starta nalaze i rade u fizickoj memoriji koja je fragmentirana.

(gledajte to kao da linux radi u fizickoj memoriji (ring 0), dok GNU radi u virtualnoj memoriju koju je mapirao linux za njega (ring 1+))

 

I to se, naravno, moze sprijeciti jer moduli su potrebni samo nubvima koji ne znaju ili ne zele kompajlirati si vlastiti kernel. Zato i postoje, da bi ti mogao kliknuti par puta i instalirati i da bi sve sto ukupcas proradilo out of the box, to nije problem linuxa nego genericnih distribucija.

Linux sam po sebi nema nikakvih problema sa fragmentacijom.

A koliko ta fragmentacija znaci za performanse, govori i cinjenica da postoje vec par godina projekti koji izmisljaju rijesenja da bi se to sredilo ali bez uspjeha. To se zove fragmentation penalty i jedan je od glavnih problema performansa genericnih kernela jer izuzetno je bitno za performanse (cak i stabilnost) cijelog boxa da memorija u kojoj radi ring 0 ostane sto bistrija, i nevezano sa trenutni kontekst: sto manje zauzeta

Poruka je uređivana zadnji put čet 14.8.2014 8:27 (cowboy).
16 godina
neaktivan
offline
Re: Tvikanje Gnu/Linuxa
cowboy kaže...

Govorim o samom kernelu i ring 0 koji se od samog starta nalaze i rade u fizickoj memoriji koja je fragmentirana.

(gledajte to kao da linux radi u fizickoj memoriji (ring 0), dok GNU radi u virtualnoj memoriju koju je mapirao linux za njega (ring 1+))

 

I to se, naravno, moze sprijeciti jer moduli su potrebni samo nubvima koji ne znaju ili ne zele kompajlirati si vlastiti kernel. Zato i postoje, da bi ti mogao kliknuti par puta i instalirati i da bi sve sto ukupcas proradilo out of the box, to nije problem linuxa nego genericnih distribucija.

Linux sam po sebi nema nikakvih problema sa fragmentacijom.

A koliko ta fragmentacija znaci za performanse, govori i cinjenica da postoje vec par godina projekti koji izmisljaju rijesenja da bi se to sredilo ali bez uspjeha. To se zove fragmentation penalty i jedan je od glavnih problema performansa genericnih kernela jer izuzetno je bitno za performanse (cak i stabilnost) cijelog boxa da memorija u kojoj radi ring 0 ostane sto bistrija, i nevezano sa trenutni kontekst: sto manje zauzeta

Linux nema nikakvih problema sa fragmentacijom, ali fragmentacija je jedan od glavnih izuzetno bitnih problema? Zašto boot ne bi loadao kernel u jednom nefragmentiranom komadu, kad ima na raspolaganju cijelu nefragmentiranu memoriju?

 

16 godina
offline
Re: Tvikanje Gnu/Linuxa
To i mene zanima, kako memorija postane fragmentirana tijekom tog početnog boota, što ju to točno fragmentira da se ne može kernel učitati koji ima koliko ono, 20 megabajta?
Living on my planet is so easy; there is peace, there is love and there is ecstasy.
14 godina
neaktivan
offline
Re: Tvikanje Gnu/Linuxa
cowboy kaže...

Moduli koji se kompajliraju skupa s kernelom ? {#}

Takvi moduli ne postoje lol jer to vise nije modul nego kernel (njegov dio). Vidim da ne razumijes sto je modul, ako se driver naknadno linka u kernel, on je modul. Ako je kompajliran sa kernelom to nije nikakav modul.

Zato sam i stavio navodnike i razlikuj "module" od "loadable module". Razni projekti koriste različitu terminologiju, u nedostatku boljeg izraza i ovo je poslužilo (nisam jedini). Eto ti sitna "pobjeda" da se možeš sablažnjavati i zgražati nad mojim očiglednim ogromnim neznanjem {#}

 

Sad kad si raščistio na što si točno mislio. Onda je odgovor veliko NE. Moduli nikako ne fragmentiraju kernel. Da bi to postigli morali bi ga premještati uokolo, usred rada. A to bi bilo jako, jako loše. Ono što moduli *mogu* napraviti je fragmentirati neku od memorijskih zona iz kojih sav ring 0 kod alocira memoriju za svoje potrebe, ali po tom pitanju nisu ništa drukčiji od bilo kojeg drugog ring 0 koda.

 

cowboy kaže...

Ne govorim o modulima i njihovom adresnom prostoru, jos ti nije jasno.

Govorim o samom kernelu i ring 0 koji se od samog starta nalaze i rade u fizickoj memoriji koja je fragmentirana.

E nije fragmentirana. Memorija ne može biti fragmentirana sama po sebi, nego samo njen sadržaj. A budući da je u početku efektivno prazna, kompletan se kernel učita u kontinuiran blok (ne postoji razlog zašto ne bi bio kontinuiran blok), a kad je u jednom komadu onda nikako nije fragmentiran.

 

Ponovno, kad već meni ne vjeruješ, tvoj izvor:

"The memory where an LKM resides is a little different from that where the base kernel resides. The base kernel is always loaded into one big contiguous area of real memory, whose real addresses are equal to its virtual addresses. That's possible because the base kernel is the first thing ever to get loaded (besides the loader) -- it has a wide open empty space in which to load. And since the Linux kernel is not pageable, it stays in its homestead forever."

 

Ono o čemu ti vjerojatno pokušavaš pričati je fragmentacija DMA memorijske zone i tzv. normalne memorijske zone (dvije zone iz kojih kernel alocira memoriju za svoje potrebe), a koje se fragmentiraju jednostavnom uporabom (alloc, free, alloc, free...). A to predstavlja problem jer bi neki driveri doista željeli puno više od jedne kontinuirane stranice (order 0) za svoje potrebe, što je problem dobiti kada je memorija fragmentirana.

 

To nije fragmentacija kernela, nego memorijskih zona koje isti koristi, a to nikako nije jedno te isto. Fragmentacija kernela bi podrazumijevala komadanje samog imagea i razbacivanje njegovih dijelova na sve strane po memoriji. Da nisi potencirao tu nemoguću ideju ranije bi došli do ovoga.

 

Sa problemom fragmentacije memorijskih zona (kao i sa problemom fragmentacije bilo čega drugoga) se možeš učinkovito boriti samo programatski (mijenjanjem samih algoritama) i kad smo već kod toga ti su algoritmi vidjeli drastična poboljšanja zadnjih godina. Črčkanje sa postavkama kod kompajliranja u pokušaju da se taj aspekt popravi je kao kap vode na šumski požar. Budimo realni, koliko uopće možeš ublažiti problem fragmentacije na taj način?

 

Fragmentacija je funkcija količine alokacija različitih veličina memorije, odnosno vremena i količine aktivnosti (ako uzmemo u obzir da će alokacije u praksi jednostavno biti različitih veličina).

A C program is like a fast dance on a newly waxed dance floor by people carrying razors.
Poruka je uređivana zadnji put pet 15.8.2014 6:23 (rustweaver).
14 godina
neaktivan
offline
Tvikanje Gnu/Linuxa
cowboy kaže...
Prvo mu nije bilo jasno kako moze kompjaliranje smanjiti zauzece memorije, onda kad je nakon dva tjedna guglanja zakljucio da je ipak tako, kaze da je a razlika u memoriji zanemariva, a iz slika koje sam stavio usporedbe radi vidi se da je razlika skoro 30%.

Kada odbacuješ čiste memorijske stranice efektivno ništa ne dobivaš, budući da ih sistem tretira kao da i ne postoje. Bilo koji kernel to radi. Jedina je razlika što tvoj "optimizirani" kernel to radi odmah, pa vidiš nižu brojku. "Neoptimizirani" kernel će ih po defaultu ostaviti pa zatim pobacati van u roku odmah čim neka aplikacija zatraži još memorije (uvijek prvo čiste stranice idu na panj). Dakle jedina je razlika KADA će se to dogoditi, ne kako, niti koliko će vremena biti potrebno da se te stranice pobacaju.

 

Prljave memorijske stranice (one sa podatcima), ne možeš samo tako odbacivati. Možeš ih samo seliti u neku drugu memoriju (swap datoteku recimo).

 

Memorijski gledano ništa nisi dobio. A to što se i dalje nakon toga pozivaš na htop brojke je pokazatelj da ne razumiješ sam koncept čistih i prljavih memorijskih stranica, i razlog zašto jedne možeš odbacivati a druge ne. Evo ti pa čitaj (3.1.2 Swapping).

 

memorijska stranica = komad memorije čija je veličina u bajtima rezultat potenciranja s bazom 2 (najčešće 4096 ili 8192, ovisno o sustavu), predstavlja osnovni i najmanji blok logičke organizacije memorije u sustavu virtualne memorije. Svakoj memorijskoj stranici je dodjeljena fizička memorijska adresa za što se brine VMM, a procesorov MMU je zadužen za dinamičko prevođenje iz virtualnih u fizičke adrese.

čista memorijska stranica = ona u koju aplikacija još nije ništa pisala

prljava memorijska stranica = ona u koju je aplikacija nešto zapisala (sadrži neke podatke, a ne nasumično smeće)

 

I nisam ništa "zaključio". Raditi straw man argument ne pridonosi kvaliteti rasprave.

 

cowboy kaže...
Pa mu nije jasno kako debug kodovi utjecu na vece zauzece rama u aplikaciji, pa kad mu das link koji to potvrdi, onda te nazove klonom

Debug simboli sami po sebi:

  • predstavljaju jako mali učinak na zauzeće memorije nekog procesa, sve da ti se i executable utrostruči u veličini, u prosjeku je to zanemarivo uzevši u obzir kako lako i brzo i najmanje (fizički) aplikacije mogu alocirati ogromne količine memorije, dakle ovisi od slučaja do slučaja. U jednom Firefoxu koji regularno može raditi sa gigabajtima, prisutnost debugging simbola predstavlja samo beznačajnu brojčicu povrh već ogromne alokacije memorije.
  • se lako uklanjaju koristeći strip
  • ne moraju nužno biti učitani u RAM sa ostatkom izvršne datoteke (nalaze se u vlastitom odjeljenju), a i kada jesu u pravilu brzo završe u swapu (ili ih se samo čita iz izvršne datoteke budući da je cijela datoteka memorijski mapirana). Odnosno prelako ih se odbacuje, vjerojatno druge najlakše odbacive stranice nakon čistih stranica.
  • predstavljaju manji problem po perfomanse. Prisutnost debugging simbola implicira debug build, što implicira build bez ikakvih optimizacija. A odsutnost optimizacija predstavlja kudikamo veći problem od nešto memorije što su simboli pojeli.

 

Možemo mi i dalje o debug simbolima, tu sam domaći, pa da vidimo kako stojiš{#}

A C program is like a fast dance on a newly waxed dance floor by people carrying razors.
Poruka je uređivana zadnji put čet 14.8.2014 19:15 (rustweaver).
 
0 0 hvala 2
9 godina
neaktivan
offline
Re: Tvikanje Gnu/Linuxa
rustweaver kaže...

E nije fragmentirana. Memorija ne može biti fragmentirana sama po sebi, nego samo njen sadržaj. A budući da je u početku efektivno prazna, kompletan se kernel učita u kontinuiran blok (ne postoji razlog zašto ne bi bio kontinuiran blok), a kad je u jednom komadu onda nikako nije fragmentiran.

 

Ti ne znas jos sta su moduli o kojima pricamo. Vidim ne razumijes niti boot proces jer kernel nije u jednom komadu kad postoje moduli.

Moduli su dijelovi kernela koji se stapaju s njim nakon sto se je on vec startao u odredjenom memorijskom bloku.

Prva faza boota je kad se sam kernel dekompresira u memorijski blok i kernel nije fragmentiran. U drugoj fazi kernel ucita particiju diska i datotecne sustave, zatim mounta root na njih. Mora mapirati memoriju za ring 1 i ostale, u tom trenutku kernel je vec potpuno loundan u svoj blok ali tu pocinje startanje modula, oni nisu vanjski procesi da bi kernel ostao kakav je bio nego se nadovezuju na kernel i to mijenja njegovu prvotnu formu u bloku gdje se je vec loudao.

 

Cak mora i remapirati ring 0 jer je prije mountanja roota oslobodio odredjenu kolicinu memorijskog prostora o kom ti nemas pojima

..jer kernel se ne dekompresira koliko hoce i kako hoce, ogranicen je. Postoji konstantna velicina bloka u koji se on dekompresira i nakon toga ako ostane razlike u velicini, kernel visak memorije u tom bloku oslobadja prije mountanja roota

Nakon sto se moduli pokrenu, oni postaju dijelom kernela i on ponovo uzima memoriju koja mu treba jer ju je kao visak predhodno oslobodio. Ne da se ponovo s njima ucitava u blok, nego su mu dijelovi ne redom razbacani (u segmentalnom smislu) po memoriji jer su loudani nakon mapiranja i virtualizacije high memorije pa se kernel operacije (pogotovo one vezane za dijelove koji su startani kao moduli) izvrsavaju neoptimiziranije sto usporava ring 0, ...i sve ostale negativne strane fragmentacije

 

Poruka je uređivana zadnji put pet 15.8.2014 15:24 (cowboy).
9 godina
neaktivan
offline
Re: Tvikanje Gnu/Linuxa
rustweaver kaže...
Evo ti pa čitaj (3.1.2 Swapping).

 

memorijska stranica = komad memorije čija je veličina u bajtima rezultat potenciranja s bazom 2 (najčešće 4096 ili 8192, ovisno o sustavu), predstavlja osnovni i najmanji blok logičke organizacije memorije u sustavu virtualne memorije. Svakoj memorijskoj stranici je dodjeljena fizička memorijska adresa za što se brine VMM, a procesorov MMU je zadužen za dinamičko prevođenje iz virtualnih u fizičke adrese.

čista memorijska stranica = ona u koju aplikacija još nije ništa pisala

prljava memorijska stranica = ona u koju je aplikacija nešto zapisala (sadrži neke podatke, a ne nasumično smeće)

 

To si naucio. Super

Ali moras jos puno uciti o OS-u (linuxu)

 

Reci mi koliko koristis linux i koju distribuciju ?

14 godina
neaktivan
offline
Re: Tvikanje Gnu/Linuxa
cowboy kaže...
ali tu pocinje startanje modula, oni nisu vanjski procesi da bi kernel ostao kakav je bio nego se nadovezuju na kernel i to mijenja njegovu prvotnu formu u bloku gdje se je vec loudao.

Ne mijenjaju mu formu. Osnovni image je tu gdje je i ništa njega ne mijenja. Možeš reći da su moduli dio kernela, štoviše može se složiti argument da je sav ring 0 kod dio kernela. Ali fizički nikako nisu ista cjelina, jer, kako si i sam rekao, učitavaju se naknadno i budu porazbacani.

 

cowboy kaže...

To si naucio. Super

Nemam riječi... {#}

A C program is like a fast dance on a newly waxed dance floor by people carrying razors.
Poruka je uređivana zadnji put pet 15.8.2014 23:27 (rustweaver).
9 godina
neaktivan
offline
Re: Tvikanje Gnu/Linuxa
rustweaver kaže...

Ne mijenjaju mu formu. Osnovni image je tu gdje je i ništa njega ne mijenja. Možeš reći da su moduli dio kernela, štoviše može se složiti argument da je sav ring 0 kod dio kernela. Ali fizički nikako nisu ista cjelina, jer, kako si i sam rekao, učitavaju se naknadno i budu porazbacani.

Osnovni image nije kernel, zar i to ne znas ?

To je samo kernel konfiguracija kompresirana u neki image format, dok je kernel sadrzaj koji se iz te slike dekompresira u memoriju, a taj sadrzaj i image slika nisu isto jer ti mozes obrisati svoj kernel image a sustav ce i dalje raditi jer mu nisi  mogao obrisati kernel u memoriji.

A moduli kojih u genericnim distribucijama ima brdo aktivnih svakim startom sustava rade fragment jer se razbacaju, kernel zbog toga usporava jer zamisljaj ti to kako hoces ali fizicki sve je to ista cjelina schedulerima i ostalim kernel operaterima koji vec nekako uspore operaciju koja se sastoji od stotine koraka jer 20 puta preskacu blokve u operacijama sa razbacanim ringom 0

Cijeli ring 0 je razbacan (fragmentiran) zbog toga sto su fragmentirane sve kernel operacije sa hardwareom iz razloga sto je sve sto se tice hardware-a u racunalu vecinom pokrenuto kao modul u neoptimiziranom bloku

 

Eto, sad si i naucio da osnovni image nema veze s jezgrom koja radi u memoriji pa ces morat pronaci drugi argument {#}

Poruka je uređivana zadnji put pet 22.8.2014 22:59 (cowboy).
13 godina
offline
Re: Tvikanje Gnu/Linuxa
cowboy kaže...

Čemu podgrijavati juhu staru 7 dana. Skuhaj (kompajliraj) novu.

Stručnjak za odmaganje...
15 godina
offline
Re: Tvikanje Gnu/Linuxa
mario.L_hr kaže...
cowboy kaže...

Čemu podgrijavati juhu staru 7 dana. Skuhaj (kompajliraj) novu.

uvjek se može još malo flamati optimizirati. Tako rade pravi majstori. Samo PC hitna služba sve rješava format C-om, kauboj je suprotnost.

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
13 godina
offline
Re: Tvikanje Gnu/Linuxa
ihush kaže...

uvjek se može još malo flamati optimizirati. Tako rade pravi majstori. Samo PC hitna služba sve rješava format C-om, kauboj je suprotnost.

Hebi ga, ljetne oluje haraju, dolazi do prekida u napajanju električnom energijom. UPS je luksuz kojeg si svatko ne može priuštiti još manje agregat a virtualna memorija ne pamti bez struje. Memorija a ne pamti??? To bi se moralo pod hitno optimizirati.

Stručnjak za odmaganje...
14 godina
neaktivan
offline
Re: Tvikanje Gnu/Linuxa
cowboy kaže...

Osnovni image nije kernel, zar i to ne znas ?

A ne, ne, ne. Nećeš mi to prodavati. Znaš ti jako dobro da sam mislio na sadržaj istoga. Cjepidlačiš u nedostatku argumenata, i nije ti prvi put.

 

cowboy kaže...
koji vec nekako uspore operaciju koja se sastoji od stotine koraka jer 20 puta preskacu blokve u operacijama sa razbacanim ringom 0

Jao! Ne znaš ni na koji način CPU dohvača instrukcije iz memorije i kako je programski kod poravnat u toj istoj memoriji, te kako se to sve uklapa u fizičku podjelu memorije na stranice i keš linije, količinu stupaca po retku memorije (logička organizacija memorijskog čipa), koliki su zapravo penali pri prelasku iz retka u redak u odnosu na čitanje iz istog retka...

 

Ali ono, "već nekako uspore", jel? Moja kristalna kugla kaže da mora nekako biti sporije, ne znam točno kako, ni koliko.

 

Već sam ti rekao koji je najveći problem fragmentiranosti adresnog prostora. A fragmentacija samog koda to zasigurno nije. Nemaš pojma koji je voodoo uopće pokušati ići slagati ikakav ne-trivijalni kod tako da ga read-ahead procesora uvijek dohvaća bez potrebe za "nasumičnim" skakanjem iz retka u redak. A kad već skačeš po redovima, onda stvarno nije bitno koliko su razmaknuti. Ti u biti zamišljaš nekakav linearni slijed izvršavanja programskog koda bez ikakvih skokova uokolo, eh kada bi to bilo tako...

 

A još se nisam dotakao ni hardverskih prekida, koji cijeli slijed izvršavanja programskog koda efektivno čine ne-determinističkim.

 

cowboy kaže...
Cijeli ring 0 je razbacan (fragmentiran) zbog toga sto su fragmentirane sve kernel operacije sa hardwareom

Što to zapravo znači fragmentirana operacija? Operacija podijeljena na više manjih. A to ti je, brat bratu, svaka imalo ne-trivijalnija funkcija u bilo kojem kodu ikada napisanom. Iz te perspektive je onda praktički svaka operacija fragmentirana, a to vjerojatno nije ono što si imao na umu.

 

Programski kod koji izvršava te operacije može biti adresno "fragmentiran" (iako je "porazbacan" vjerojatno bolji naziv, budući da tzv. fragmenti ne mogu nastajati na bilo kojem mjestu unutar koda), i to je ono na što ti misliš. Bilo kako bilo, cijela ova tvoja konstantacija je tamo negdje na razini "nepotrebnih instrukcija".

A C program is like a fast dance on a newly waxed dance floor by people carrying razors.
Poruka je uređivana zadnji put sub 23.8.2014 7:46 (rustweaver).
Nova poruka
E-mail:
Lozinka:
 
vrh stranice