System Call \"Hello World\" on Mac OS X. Please tell me how to do it in my mac,
ID: 3915766 • Letter: S
Question
System Call "Hello World" on Mac OS X. Please tell me how to do it in my mac, I've tried so many things.
Incorporate a new system call into the kernel thereby expanding the functionality of the operating system.
Step 1: Build the environment (Mac OS)
Step 2: Building a new kernel (Learn how to configure, compile, and install the kernel binary.)
Step 3: Extending the Kernel Source
Step 4: Adding a System Call to the Kernel
include <linuxllinkage.h>
include <linuxlkernel.h>
asmlinkage int sysJhelloworld() { printk(KERN_EMERG "hello world!"); return 1; }
Step 5: Using the System Call from a User Program
include <linux/errno.h>
include <sys/syscall.h>
include <linux/unistd.h>
_syscallO(int, helloworld); main() { helloworld(); }
Explanation / Answer
.data
hello: .ascii "Hello, World! "
len: .short len - hello
.text
.globl _start
_start:
mov $4,%eax # system call number (sys_write)
mov $1,%ebx # first argument: file handle (stdout)
lea hello,%ecx # second argument: pointer to message to write
mov len,%edx # third argument: message length
int $0x80 # call kernel
mov $1,%eax # system call number (sys_exit)
mov $0,%ebx # first argument: exit code
int $0x80 # call kernel
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.