Någon som har lust att förklara för mig vad som händer?

Allt om hård- och mjukvara samt övriga it-relaterade diskussioner.

 Moderatorer: Alien, atoms

Någon som har lust att förklara för mig vad som händer?

Inläggav Meliza » 2015-09-11 13:38:34

Hej! Om någon kan tycka att det är roligt att dela med sig av sin kunskap till någon som inte är något vidare bra på datorer (men jobbar på det) så skulle jag bli jätteglad!

Bakgrund: jag jobbar en del med bioinformatiska verktyg, och följer mest manualer och ibland går det till så som jag beskriver nedan. Jag vill gärna veta vad man egentligen gör i varje steg!

1. Man laddar hem en källfil som heter typ fil.tar.gz.
Om jag jobbar mot ett kluster så gör jag det via linux och wget.
Om jag jobbar på min mac så dubbelklickar jag och sparar ned den på hårddisken.
FRÅGA: Vad är egentligen en "source file?"

2. Man packar upp sin fil med tar -lämplig-flag fil.tar.gz
FRÅGA: Jag antar att den är komprimerad både med tar och gzip för att minimera dess storlek?
FRÅGA: Vad är skillnaden mellan tar och gz?

3. Jag konfirmerar att jag har en GCC-kompilerare med >which gcc
FRÅGA: En "compiler" är alltså ett program som omvandlar en sorts kod till en annan. Men hur hänger det ihop? Från vilken kod till vilken? (Från C-kod till binär?) Är det bara för C?

4. Jag går till sourcemappen och skriver >./configure
FRÅGA: Vad händer? Jag har även sett att man här kan ge alternativ, vart man vill installera programmen, eller om man vill installera en multi-thread version etc. Vilka alternativ finns?
Hamnar programmet per default annars alltid så att man kan nå det utan att vara i rätt mapp?

5. I förra steget skapades en make-file så nu kan jag skriva >make
FRÅGA: Vad händer? Eller jag inser att det är nu det skapas en körbar fil, men varför i så många steg? Varför kan man inte bara packa upp en körbar fil redan från början?

6. Jag har även sett alternativet >make check
FRÅGA: är det helt enkelt en kontroll på att en körbar fil har skapats?

7. Ibland verkar man även ha ett första steg >autoconfig för att ens skapa konfigureringsfilen för att kunna göra ./configure
FRÅGA: Stämmer det? Varför? Vad händer?

8. FRÅGA: vad betyder >make install och vad skiljer detta från bara "make"?

9. FRÅGA: vad händer om man skriver >clean
Meliza
 
Inlägg: 114
Anslöt: 2013-05-30

Någon som har lust att förklara för mig vad som händer?

Inläggav plåtmonster » 2015-09-11 19:10:44

Meliza skrev:1. Man laddar hem en källfil som heter typ fil.tar.gz.
Om jag jobbar mot ett kluster så gör jag det via linux och wget.
Om jag jobbar på min mac så dubbelklickar jag och sparar ned den på hårddisken.
FRÅGA: Vad är egentligen en "source file?"

"source file" är en källkodsfil. Ett text med programinstruktioner helt enkelt. Som detta:
int main(){ printf("Hej hej\n"); return 0; }

Meliza skrev:2. Man packar upp sin fil med tar -lämplig-flag fil.tar.gz
FRÅGA: Jag antar att den är komprimerad både med tar och gzip för att minimera dess storlek?
FRÅGA: Vad är skillnaden mellan tar och gz?

"tar" buntar ihop flera filer till en stor fil. "gz" är filändelsen för filer som är komprimerade med "gzip".

Meliza skrev:3. Jag konfirmerar att jag har en GCC-kompilerare med >which gcc
FRÅGA: En "compiler" är alltså ett program som omvandlar en sorts kod till en annan. Men hur hänger det ihop? Från vilken kod till vilken? (Från C-kod till binär?) Är det bara för C?

En kompilator gör om källkoden till en fil som kan utföras direkt av processorn i datorn. Det finns flera programspråk som kan användas som indata till kompilatorn. Såsom C, Pascal, Assembler, osv.

Det finns dessutom programspråk som interpreteras alltså utförs direkt av en tolk såsom Basic, Javascript, Perl osv. Eller sådant som konfigurerar FPGA då man använder VHDL och Verilog.

Meliza skrev:4. Jag går till sourcemappen och skriver >./configure
FRÅGA: Vad händer? Jag har även sett att man här kan ge alternativ, vart man vill installera programmen, eller om man vill installera en multi-thread version etc. Vilka alternativ finns?
Hamnar programmet per default annars alltid så att man kan nå det utan att vara i rätt mapp?

Vilka alternativ som finns beror på configure. Så du får skriva "configure -help" eller liknande för att få en lista med möjliga val. "multi-thread" skall bara väljas om datorn och operativsystemet är stödjer detta.

Meliza skrev:5. I förra steget skapades en make-file så nu kan jag skriva >make
FRÅGA: Vad händer? Eller jag inser att det är nu det skapas en körbar fil, men varför i så många steg? Varför kan man inte bara packa upp en körbar fil redan från början?

Det är många steg för att det är en komplicerad process att göra om källkod till maskinkod som datorn kan köra.

Med "C" så preprocessas filer så att t.ex "#define" hanteras och "#include" mm. Sedan görs källkoden om till objektfiler som i sin tur länkas ihop till en körbar fil. Det finns dessutom olika kompilatorer som är olika bra t.ex GCC vs LLVM.

Meliza skrev:6. Jag har även sett alternativet >make check
FRÅGA: är det helt enkelt en kontroll på att en körbar fil har skapats?

Det är någon slags kontroll. Du måste läsa den specifika dokumentationen för att få reda på exakt vad som kontrolleras.

Meliza skrev:7. Ibland verkar man även ha ett första steg >autoconfig för att ens skapa konfigureringsfilen för att kunna göra ./configure
FRÅGA: Stämmer det? Varför? Vad händer?

För att olika datormiljöer kan behöva speciella hänsyn.

Meliza skrev:8. FRÅGA: vad betyder >make install och vad skiljer detta från bara "make"?

"make install" lägger de körbara filerna direkt på de platser som behövs för att kunna köra programmet utan att veta var det ligger. Det kan också strula till ens installation om man har otur.

Meliza skrev:9. FRÅGA: vad händer om man skriver >clean

Då rensas alla filer som skapats vid kompileringen och man kan börja om med t.ex andra inställningar för t.ex trådad version.
plåtmonster
 
Inlägg: 15480
Anslöt: 2010-03-23
Ort: Nära havet

Återgå till IT-forum



Logga in