30 lines
920 B
Markdown
30 lines
920 B
Markdown
---
|
|
title: "What executing an executable means"
|
|
|
|
description: ""
|
|
|
|
date: "2025-02-02"
|
|
|
|
draft: true
|
|
|
|
tags: []
|
|
---
|
|
|
|
So from various places for various reasons I've learned a bit about how process spawning on Linux works.
|
|
So I thought I'd write it all down to clarify what I know and maybe do some research in the process.
|
|
|
|
## Scope
|
|
|
|
This post is focused on what happens when a process wants to make another process.
|
|
It will not cover how shells parse out commands, how init systems work etc.
|
|
|
|
## Choose Your Syscall(s)
|
|
|
|

|
|
|
|
When it comes to spawning a child process on Linux there are two general ways of doing it.
|
|
|
|
- call `fork` and then call `exec` in the child process
|
|
- call `clone`
|
|
|
|
Generally speaking you want to use `clone` due to `clone` being more flexible and allowing you to use fewer syscalls to achieve what you want.
|