.bss



Alla kunskaper som människor har samlat på sig under århundradena om .bss finns nu tillgängliga på internet, och vi har sammanställt och ordnat dem för dig på ett så lättillgängligt sätt som möjligt. Vi vill att du snabbt och effektivt ska kunna få tillgång till allt du vill veta om .bss, att din upplevelse ska vara trevlig och att du ska känna att du verkligen har hittat den information om .bss som du sökte.

För att uppnå våra mål har vi ansträngt oss inte bara för att få fram den mest uppdaterade, begripliga och sanningsenliga informationen om .bss, utan vi har också sett till att designen, läsbarheten, laddningshastigheten och användbarheten på sidan är så trevlig som möjligt, så att du kan fokusera på det väsentliga, att känna till alla uppgifter och all information som finns om .bss, utan att behöva oroa dig för något annat, vi har redan tagit hand om det åt dig. Vi hoppas att vi har uppnått vårt syfte och att du har hittat den information du ville ha om .bss. Vi välkomnar dig och uppmuntrar dig att fortsätta att njuta av att använda scientiasv.com .

I datorprogrammering , den blocket startsymbol (förkortat till .bss eller bss är) den del av ett objektfilen , körbar, eller assembler kod som innehåller statiskt allokerade variabler som deklareras men har inte tilldelats ett värde ännu. Det kallas ofta "bss -sektionen" eller "bss -segmentet".

Normalt lagras endast längden på bss -sektionen, men inga data, i objektfilen . Det program lastar allokerar minne för BSS sektionen när den laddar programmet. Genom att placera variabler utan värde i .bss -sektionen, i stället för sektionen .data eller .rodata som kräver initialvärdesdata, minskar objektfilens storlek.

På vissa plattformar initieras en del eller hela bss -sektionen till nollor. Unix-liknande system och Windows initierar bss-sektionen till noll, vilket gör att C och C ++ statiskt tilldelade variabler initieras till värden representerade med alla bitar noll att sättas i bss-segmentet. Operativsystem kan använda en teknik som kallas zero-fill-on-demand för att effektivt implementera bss-segmentet. I inbäddad programvara mappas bss-segmentet till minne som initieras till noll av C -körtidssystemet innan det main()matas in. Vissa C-körningssystem kan tillåta att en del av bss-segmentet inte initieras; C -variabler måste uttryckligen placeras i den delen av bss -segmentet.

På vissa datorarkitekturer , det Application Binary Interface stöder också en sbss segment för "små data". Vanligtvis kan dessa dataobjekt nås med kortare instruktioner som kanske bara kan komma åt ett visst antal adresser. Arkitekturer som stöder tråd-lokal lagring kan använda en tbss- sektion för oinitialiserade, statiska data markerade som tråd-lokala.

Ursprung

Historiskt sett är BSS (från Block Started by Symbol ) en pseudooperation i UA-SAP (United Aircraft Symbolic Assembly Program), monteraren som utvecklades i mitten av 1950-talet för IBM 704 av Roy Nutt, Walter Ramshaw och andra på United Aircraft Corporation . BSS -nyckelordet införlivades senare i FORTRAN Assembly Program (FAP) och Macro Assembly Program (MAP), IBM : s standardmonterare för sina 709- och 7090/94 -datorer . Den definierade en etikett (dvs symbol) och reserverade ett block av oinitialiserat utrymme för ett visst antal ord . I denna situation tjänade BSS som en stenografi istället för att individuellt reservera ett antal separata mindre dataplatser. Vissa montörer stöder ett kompletterande eller alternativt direktiv BES , för Block Ended by Symbol , där den angivna symbolen motsvarar slutet på det reserverade blocket.

BSS i C

I C initialiseras statiskt tilldelade objekt utan en explicit initialiserare till noll (för aritmetiska typer) eller en nollpekare (för pekartyper). Implementeringar av C representerar vanligtvis nollvärden och nollpekarvärden med ett bitmönster som enbart består av nollvärderade bitar (även om detta inte krävs av C-standarden). Därför innefattar BSS -segmentet vanligtvis alla oinitialiserade objekt (både variabler och konstanter ) som deklareras vid filomfång (dvs utanför någon funktion) samt oinitialiserade statiska lokala variabler ( lokala variabler som deklareras med static nyckelordet ); statiska lokala konstanter måste dock initialiseras vid deklarationen, eftersom de inte har en separat deklaration och därmed vanligtvis inte finns i BSS -sektionen, även om de implicit eller uttryckligen kan initialiseras till noll. En implementering kan också tilldela BSS-sektionen statiskt allokerade variabler och konstanter initierade med ett värde som enbart består av nollvärderade bitar.

Peter van der Linden , C -programmerare och författare, säger: "Vissa människor kommer ihåg det som" Better Save Space ". Eftersom BSS -segmentet bara innehåller variabler som inte har något värde ännu behöver det inte lagra bilden av dessa variabler. Storleken som BSS kommer att kräva vid körning registreras i objektfilen, men BSS (till skillnad från datasegment) tar inte upp något verkligt utrymme i objektfilen. "

BSS i Fortran

I Fortran tilldelas vanliga blockvariabler i detta segment. Vissa kompilatorer kan, för 64-bitars instruktionsuppsättningar, begränsa förskjutningar, i instruktioner som har åtkomst till detta segment, till 32 bitar, vilket begränsar dess storlek till 2 GB eller 4 GB. Observera också att Fortran inte kräver att statisk data initialiseras till noll. På de system där bss -segmentet initieras till noll, sätter vanliga blockvariabler och annan statisk data i det segmentet garanterar att det blir noll, men för portabilitet bör programmerare inte vara beroende av det.

Se även

Referenser

Opiniones de nuestros usuarios

Benny Gustavsson

Det är alltid bra att lära sig. Tack för artikeln om .bss.

Tore Wiklund

Min pappa utmanade mig att göra läxorna utan att använda något från Wikipedia, jag sa till honom att jag kunde göra det genom att söka på många andra webbplatser. Tur för mig att jag hittade den här webbplatsen och den här artikeln om .bss hjälpte mig att slutföra mina läxor. Jag nästan föll i jag blev frestad att gå till Wikipedia, för jag kunde inte hitta något om .bss, men som tur var hittade jag den här, för då kollade min pappa i webbhistoriken för att se var han hade varit. Kan ni föreställa er om jag kommer till gå till Wikipedia? Jag har tur att jag hittade den här webbplatsen och artikeln om .bss här. Det är därför jag ger dig mina fem stjärnor.

Stig Söderlund

Informationen som ges om .bss är sann och mycket användbar. Bra.

Ida Lindvall

Ibland när man letar efter information på internet om något så hittar man för långa artiklar som envisas med att prata om saker som inte intresserar en. Jag gillade den här artikeln om .bss eftersom den går rakt på sak och talar om precis vad jag vill, utan att gå vilse i information värdelös.