mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-30 21:30:16 +00:00 
			
		
		
		
	The pause image is a 240KB image that simply pauses waiting on a signal. Use this for the net container which only needs to act as a placeholder. Current net image is ~2.5MB. From my tests, this reduces startup time for the net container from ~14s to ~6s.
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			NASM
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			NASM
		
	
	
	
	
	
| ; This is heavily based on https://github.com/tianon/dockerfiles/tree/master/true
 | |
| ; which is in turn especially thanks to:
 | |
| ; http://blog.markloiseau.com/2012/05/tiny-64-bit-elf-executables/
 | |
| 
 | |
| BITS 64
 | |
| 	org	0x00400000	; Program load offset
 | |
| 
 | |
| ; 64-bit ELF header
 | |
| ehdr:
 | |
| 	;  1), 0 (ABI ver.)
 | |
| 	db 0x7F, "ELF", 2, 1, 1, 0       ; e_ident
 | |
| 	times 8 db 0                     ; reserved (zeroes)
 | |
| 
 | |
| 	dw 2              ; e_type:	Executable file
 | |
| 	dw 0x3e           ; e_machine:	AMD64
 | |
| 	dd 1              ; e_version:	current version
 | |
| 	dq _start         ; e_entry:	program entry address (0x78)
 | |
| 	dq phdr - $$      ; e_phoff	program header offset (0x40)
 | |
| 	dq 0              ; e_shoff	no section headers
 | |
| 	dd 0              ; e_flags	no flags
 | |
| 	dw ehdrsize       ; e_ehsize:	ELF header size (0x40)
 | |
| 	dw phdrsize       ; e_phentsize:	program header size (0x38)
 | |
| 	dw 1              ; e_phnum:	one program header
 | |
| 	dw 0              ; e_shentsize
 | |
| 	dw 0              ; e_shnum
 | |
| 	dw 0              ; e_shstrndx
 | |
| 
 | |
| ehdrsize equ $ - ehdr
 | |
| 
 | |
| ; 64-bit ELF program header
 | |
| phdr:
 | |
| 	dd 1              ; p_type:	loadable segment
 | |
| 	dd 5              ; p_flags	read and execute
 | |
| 	dq 0              ; p_offset
 | |
| 	dq $$             ; p_vaddr:	start of the current section
 | |
| 	dq $$             ; p_paddr:	"		"
 | |
| 	dq filesize       ; p_filesz
 | |
| 	dq filesize       ; p_memsz
 | |
| 	dq 0x200000       ; p_align:	2^11=200000 = section alignment
 | |
| 
 | |
| ; program header size
 | |
| phdrsize equ $ - phdr
 | |
| 
 | |
| _start:
 | |
| 	; pause()
 | |
| 
 | |
| 	mov	al, 34	; pause syscall number
 | |
| 	syscall
 | |
| 
 | |
| 	; sys_exit(return_code)
 | |
| 
 | |
| 	mov	al, 60	; sys_exit syscall number
 | |
| 	cdq		; Sign-extend eax into edi to return 0 (success)
 | |
| 	syscall
 | |
| 
 | |
| ; File size calculation
 | |
| filesize equ $ - $$
 |