<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Syscalls on Prepakis Georgios | Kernelstub | Security Researcher</title><link>https://blog.kernelstub.dev/tags/syscalls/</link><description>Recent content in Syscalls on Prepakis Georgios | Kernelstub | Security Researcher</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Fri, 13 Sep 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.kernelstub.dev/tags/syscalls/index.xml" rel="self" type="application/rss+xml"/><item><title>Linux Syscalls Table (x86-64)</title><link>https://blog.kernelstub.dev/posts/linux-syscalls-table-x86-64/</link><pubDate>Fri, 13 Sep 2024 00:00:00 +0000</pubDate><guid>https://blog.kernelstub.dev/posts/linux-syscalls-table-x86-64/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;Every time a program on Linux does something that touches the outside world, reading a file, allocating memory, sending a packet, spawning another process, it eventually has to ask the kernel to do it. User space code can&amp;rsquo;t just reach into the kernel&amp;rsquo;s data structures and start editing process tables or filesystem metadata; that would be a security and stability nightmare. Instead, it has to go through a narrow, well-defined door: the system call interface. This post is a reference table for that door on x86-64 Linux, listing every syscall number, its libc-facing name, its man page, and the kernel function that actually handles it once your program&amp;rsquo;s request lands.&lt;/p&gt;</description></item></channel></rss>