I gave a presentation about SerenityOS, and system calls at a local tech meetup last week.
It took about 20 hours to prepare for the presentation. The original plan was to discuss also subjects other than system calls, but I quickly realized I ought to shave off most of those. KISS, you know, better to focus on one thing.
I needed to dive deep into the nitty-gritty details of how system calls work in Linux. I had to spend some time refreshing my memory by re-reading the Linux Insides book, just to make sure I got the comparison right between SerenityOS syscalls and Linux kernel syscalls. I took a good look at the sysinfo system call Linux kernel code and peeked at its syscall table. It was some intense stuff!
When I started preparing the presentation, Serenity still supported i686 (32-bit Intel) CPU architecture and the system calls used the interrupt-based invocation. That changed just in time for my talk, which was fantastic for my presentation since fast system calls are easier to explain on the Kernel side.
I could undoubtedly be a more articulate presenter; thus, I did ramble through the script some ten times, much to the annoyance of my GF. It helped, but only up to a point, so I absolutely need to practice more for my next talk.
And, of course, I spent a surprisingly long time interrogating ChatGPT. It produces consistent, well-written answers to questions I knew (mostly) the answer to. Yet that was of great help to me in writing the talk script. The answer texts it generated did help me break down the esoteric systems programming concepts into something I can explain to someone less familiar with OS terminology.
The talk has, of course, mistakes in it. The most fundamental is the part where I say that the kernel can do anything, including manipulating user-space memory. Well, it sort of can, but it can do it but only after copying it unless the user-space memory is explicitly shared with the kernel.
Comments
Post a Comment