.bss

컴퓨터 프로그래밍에서 .bss 또는 bss는 수많은 컴파일러와 링커가 처음에 0 값의 비트로 표현되는 정적으로 할당된 변수를 포함하는 데이터 세그먼트의 한 부분으로 사용한다. "bss 섹션"(bss section), "bss 세그먼트"(bss segment)라고도 부른다.

일반적으로 데이터가 없는 bss 섹션의 길이만이 오브젝트 파일에 저장된다. 프로그램 로더는 프로그램을 로드할 때 bss 섹션을 위한 메모리를 할당하고 초기화한다. 운영 체제는 zero-fill-on-demand라는 기술을 사용하여 bss 세그먼트를 효율적으로 구현한다. (McKusick & Karels 1986) 임베디드 소프트웨어에서 bss 세그먼트는 main()에 들어가기 전에 C 런타임 시스템에 의해 0으로 초기화되는 메모리로 매핑된다.

일부 컴퓨터 아키텍처에서 ABI 또한 조그마한 데이터에 대한 sbss 세그먼트를 지원한다. 일반적으로 이러한 데이터 항목들은 특정한 범위의 주소에만 접근할 수 있는 더 짧은 명령을 이용하여 접근할 수 있다.

기원 
역사적으로 BSS(Block Started by Symbol)는 유나이티드 에어크래프트의 로이 넛(Roy Nutt), 램셔(Ramshaw) 등이 IBM 704용으로 1950년대 중반에 개발한 어셈블러인 UA-SAP (United Aircraft Symbolic Assembly Program)에서의 의사 동작이다.

각주 

 
 
 

실행 파일 포맷
메모리 관리
어셈블리어
프로그래밍 언어 구현