def __init__(self, program, argv=None, envp=None, disasm='<STR_LIT>', **kwargs):
super().__init__(path=program, **kwargs)<EOL>self.program = program<EOL>self.clocks = <NUM_LIT:0><EOL>self.files = []<EOL>self._closed_files = []<EOL>self.syscall_trace = []<EOL>self.programs = program<EOL>self.disasm = disasm<EOL>self.envp = envp<EOL>self.argv = argv<EOL>self._rlimits = {<EOL>resource.RLIMIT_NOFILE: (<NUM_LIT>, <NUM_LIT>),<EOL>resource.RLIMIT_STACK: (<NUM_LIT> * <NUM_LIT>, <NUM_LIT:0>)<EOL>}<EOL>if program is not None:<EOL><INDENT>self.elf = ELFFile(open(program, '<STR_LIT:rb>'))<EOL>self.arch = {'<STR_LIT>': '<STR_LIT>', '<STR_LIT>': '<STR_LIT>', '<STR_LIT>': '<STR_LIT>'}[self.elf.get_machine_arch()]<EOL>self._init_cpu(self.arch)<EOL>self._init_std_fds()<EOL>self._execve(program, argv, envp)<EOL><DEDENT>
Builds a Linux OS platform
:param string program: The path to ELF binary
:param string disasm: Disassembler to be used
:param list argv: The argv array; not including binary.
:param list envp: The ENV variables.
:ivar files: List of active file descriptors
:type files: list[Socket] or list[File]