Pa, s obzirom na sjajan prijem mog prethodnog posta, došao sam vam reći malo više o svojoj omiljenoj distribuciji, Gentoo Linuxu. Obećavam da će ovaj post sadržavati zabavne informacije koje će vam pomoći da razumijete malo o mitovima koji se pojavljuju pred strašnim kompilacija softvera. Također obećavam da će ove informacije biti korisne za sljedeći vodič za instalaciju Gentoo Linuxa u ~ 20 koraka (još ih nisam dobro izbrojao, ali mislim da su još manje). Bez daljnjega, krenimo:
Što je sastavljanje?
To je postupak koji program (koji se obično naziva kompajlerom) izvodi za pretvaranje koda napisanog na ljudskom jeziku (datoteke C, C ++, itd.) U kôd koji stroj može razumjeti (binarni kod). Pogledajmo sljedeći primjer:
Ovo je naš mali C program (ako kasnije želite druge C vodiče, također ću vam rado pokazati ono malo što sam naučio u ovom trenutku). Sada da vidimo kako izgleda izlaz nakon sastavljanja.
Prelijepo, zar ne? To je ono što naš stroj razumije kako bi mogao napisati ono malo "Hello" u našem terminalu svaki put kada se program pokrene.
Postupak izrade:
Kako je beskorisno imati program koji na zaslon ispisuje jednostavno "Zdravo", jer .c i .h datoteke obiluju projektima (kao u svim programskim jezicima). Kako bi postupak kompilacije bio malo lakši, pojavili su se novi alati, najreprezentativnija od svih je naredba napraviti.
Make uzmi datoteku Makefile kao početnu točku i prikuplja ono što je potrebno za stvaranje konačne izvršne datoteke, u nekim slučajevima ovaj korak zahtijeva izvršavanje datoteke zvane configure kako bi mogao dodijeliti nekoliko varijabli neophodnih kompajleru za sastavljanje (oprostite suvišnosti) korisne datoteke.
Zbog toga ćemo u mnogim tutorijalima pronaći sljedeće korake:
Čarolija ./configure:
Da bismo vam pokazali jednu od najskrivenijih i najzabavnijih tajni izvornog koda, idemo na izvorni kod programa kojeg svi savršeno znamo, sudo. Prvo uobičajeni koraci, ali zaustavit ću se na tome . / Konfiguracija da im pokažem nešto posebno.
To će vam vratiti dugački popis opcija, među kojima ću vam pokazati onu koja najviše privlači moju pažnju.
--with-insults... kao što naziv govori, kompajlira sudo sa zlostavljanje je zabavna značajka koja vam omogućuje da vrijeđate korisnika svaki put kada pogrešno unese lozinku. čemu služi Pa, ne čini puno ali razjašnjava poantu. Postoje tisuće opcija koje nisu uključene u većinu distribucija.
Kao i vi, postoje mnogi drugi koji mogu biti aktivni u distribuciji binarnog koda i koje nikada nećete koristiti, ili će biti nekih koji će vam trebati, ali oni neće doći s vašim službenim distribuiranim binarnim kodom, što znači da će svako ažuriranje biti priručnik.
Započnite zabavu na Gentoo-u:
Već smo vidjeli koliko opcija može propustiti ili povući s unaprijed sastavljenim programima. No, usredotočimo se sada na unaprijed sastavljeni problem.
Performance:
Jeste li se ikad zapitali zašto novi strojevi izgledaju samo nešto brže u usporedbi s ne tako modernim? Ako je procesor bolji, ima više RAM-a, sve je bolje, zašto ne ići brže? Odgovor je jednostavan ... kompilacija.
Uzmimo vrlo praktičan primjer.
Moji programi su sastavljeni s opcijom --march=broadwell... to je zato što je moj procesor broadwell (intel i7). Loša strana ovog? nijedan procesor prije Broadwella nije u stanju prepoznati ovu binarnu datoteku. U ovom trenutku trebali biste to vrlo jasno vidjeti ako kompiliram s a -Ožujak specifično, sve gore navedeno neće raditi... kako onda binarni paketi podržavaju toliko vrsta hardvera? Jednostavno, kompajliraju s najmanjom mogućom opcijom ovo jamči da će sve vrste hardvera moći čitati (barem zbog kompatibilnosti).
Pravi problem... ako koristite programe koji su kompajlirani za i3... Sva snaga vašeg i7 (ili njegovih odgovarajućih AMD analoga) je uzalud potrošena!! Nije li to tužno?
fleksibilnost:
Budući da su programeri Gentoo vrlo pametni, cijeli ovaj postupak tar, ./configure, make, itd ... zamijenjen je snagom prevoženje. Sve ove znatiželjne postavke preimenovane su u USE zastave, pa ako želite određenu postavku, ne trebate unositi izvorni kod, samo postavite varijablu. Evo primjera kako se to radi sa sudo u portageu. Prvo ćemo vidjeti s kojim opcijama imamo u našoj trenutnoj konfiguraciji ujednačenost.
Kao što vidimo, crvene opcije su aktivirane, plave nisu, pa… legendu može pročitati svatko
recimo da želim dodati opciju ...
Jednostavno kao dodavanje retka u datoteku pod nazivom sudo (naziv je referencijalni) unutar /etc/portage/package.use/. Ovim će nam sljedeći put kada instaliramo sudo reći da će se prekompajlirati s aktiviranom opcijom.
Ako damo, DA, sve što trebate učiniti je malo pričekati i to je to ovako jednostavno.
Završne misli:
Pa, već smo vidjeli kako je lako rukovati dodatnim funkcijama u Gentoo-u, što nam omogućuje dodavanje, uklanjanje ili izmjenu opcija u našim omiljenim programima. Također smo vidjeli kako izvedba naših programa uvelike ovisi o varijablama s kojima smo ih sastavili. Ako imate vrlo novi stroj, Gentoo je vaša najbolja opcija. Ako imate vrlo stari stroj, Gentoo je također vaša opcija (iako treba neko vrijeme za sastavljanje, konačni će programi biti puno lakši).
Uskoro ću napisati svoj Gentoo vodič za instalaciju, kako za ljubitelje SystemD-a, tako i za OpenRC avanturiste (koristim systemd s GNOME-om). Usput, još jedna velika prednost Gentoo-a je sposobnost da izabrati sve u vašem sustavu, i kad kažem da je sve SVE.
Ako ste propustili moj prvi post, evo poveznice:
pozdrav,