thumbnail

#10 PB152 - C a POSIX

Prehľad desiatej kapitoly z PB152
Quiz by Pistachios
Rate:
Last updated: May 18, 2024
You have not attempted this quiz yet.
First submittedMay 8, 2024
Times taken4
Average score100.0%
Report this quizReport
5:00
Enter answer here
0
 / 27 guessed
The quiz is paused. You have remaining.
Scoring
You scored / = %
This beats or equals % of test takers also scored 100%
The average score is
Your high score is
Your fastest time is
Keep scrolling down for answers and more stats ...
Hint
Answer
Rieši symboly a relokácie dynamických knižníc priamo pri spustení programu alebo až pri použití daného symbolu
Runtime Linker
Typ socketu, ktorý umožňuje klientovi pripojiť sa na jeden konkrétny server
Netransportuje dáta, len umožňuje pripojenie
Listening socket
Typ socketu, ktorý funguje ako obojsmerná trubka (pipe)
Jedna pre každé prepojenie
Transportuje dáta
Connected socket
Popisuje čo funkcia robí, jednotlivé kroky/operácie
Definícia
Sekcia obsahujúca dáta určené len na čítanie
.rodata
Popisuje meno, vstupy a výstup funkcie
Deklarácia
Typ knižnice, ktorá sa spúšťa spolu s programom
Obsah nie je prekopírovaný - v programe sa odkazuje na knižnicu
Jednoduchšia údržba - pri úprave knižnice netreba upravovať všetky programy
Problémy s kompatibilitou
Dynamické knižnice
Typ socketu, ktorý slúži na lokálnu komunikáciu medzi programami a 'serverom'
V podstate pomenovaná trubka (pipe)
UNIX Domain socket
Nástroj, ktorý zkombinuje všetky potrebné objektové súbory do jedného spustiteľného programu
Priame objektové súbory sú pridané vždy
Knižnicové len ak obsahujú potrebné symboly
Linker
Poskytuje funkcie schopné prevádzať systémové volania
POSIX
Dáta, popisujúce obsah súboru a informácie o ňom
Obsahuje symbolovú tabuľku
Metadata
Prirodzené číslo, ktoré odkazuje na index v tabuľke otvorených súborov
Permanentne spojené s daným súborom (aj keď sa zmení meno/lokácia...)
File descriptor
Polovične dokončený binárny kód
Obsahuje statické dáta rozdelené do sémantických sekcií
Neobsahuje adresy
Môže obsahovať funkcie, ktoré sú definované inde
Objektový súbor
Typ socketu, ktorý slúži na medzi-počítačovú komunikáciu cez TCP/IP
Internet socket
Sekcia obsahujúca staticky inicializované premenné
.data
Obsahujú popis rozhrania (API), prototypy funkcií, definície dátových štruktúr
Do programu načítané pri kompilácii
Hlavičkové súbory
Nástroj, ktorý transformuje textový súbor na objektový
Compiler
Skladajú sa z hlavičkových súborov a zkompilovaného kódu
Poskytujú funkcionalitu základných funkcií
Knižnice
Typ knižnice, ktorá sa prekopíruje do finálneho spustiteľného (executable) programu
Po linkovaní už nie je potrebná, všetko užitočné je v programe
Vzniká veľa duplikácií - každý program, ktorý používa danú knižnicu = ďalšia kópia
Nevýhodné pre RAM, ale ľahšie sa s tým pracuje
Často nie sú predinštalované
Statické knižnice
Miesto v súborovom systéme kam napasujeme podstrom iného súborového systému (napr. z iného hard drive)
Mount point
Pri zavolaní funkcie sa cez túto štruktúru odkazujeme na miesto, kde začína definícia danej funkcie/symbolu
Vzťahujú sa len na aktuálny objektový súbor
Mapujú sa do finálnej symbolovej tabuľky
Po dokončení linkovania väčšinou zahodené
Relokačná tabuľka
Typ socketu, ktorý dokáže posielať dáta bez nastolenia spojenia
Používa špeciálne API pre odosielanie a prijímanie dát
Nefunguje ako pipe, posiela individuálne správy
Datagram socket
Generalizácia trubiek (pipes)
Reprezentujú sieťové pripojenia
Komplikovanejšie ako bežné súbory
Každý má vlastný file descriptor
Vieme z nich čítať a do nich písať
Socket
Programovací jazyk OS
C
Štruktúra, ktorá obsahuje adresy definície funkcií v objektovom súbore
Symbolová tabuľka
Kolekcia objektových súborov uložená ako jeden súbor
Obsahuje extra symbolovú tabuľku, ktorá vie v ktorých súboroch sa nachádzajú ktoré funkcie
Statické knižnice na UNIXových systémoch
V podstate zip file objektových súborov plus symbolová tabuľka
Archív
Sekcia obsahujúca strojový kód
.text
Comments
No comments yet