source: liacs/os/assignment6/README@ 395

Last change on this file since 395 was 2, checked in by Rick van der Zwet, 15 years ago

Initial import of data of old repository ('data') worth keeping (e.g. tracking
means of URL access statistics)

File size: 1.4 KB
RevLine 
[2]1# OS Assignment 6
2# Rick van der Zwet - 0433373
3# $Id: README.txt 619 2008-05-19 19:35:46Z rick $
4
5# Please let me know if you are also interested in the actual diff of
6# the files if those brief outputs are not sufficient
7
8# WARNING: Using different system, Ubuntu Linux under Parallels, kernel
9# version 2.6.24.3 on a x86 system
10$ cd /usr/src/linux/kernel
11$ vim sys.c
12
13# Syscall lives in different location
14$ vim arch/x86/kernel/syscall_table_32.S
15code: .long sys_multiply /* 325 *
16
17# __NR_syscall_max has been replaced by NR_syscalls in file
18$ vim include/asm/unistd_32.h
19
20# include/linux/syscalls.h does not need to be altered anymore, as it
21# directly links to include/asm/unistd_32.h
22
23# Build new kernel
24
25#Code used:
26=== BEGIN CODE ===
27#include <stdio.h>
28#include <sysexits.h>
29#include <unistd.h>
30int main() {
31 printf("6 * 7 = %li\n", syscall(325, 6, 7));
32 return(EX_OK);
33}
34=== END CODE ===
35$ gcc -Wall -o syscall-test syscall-test.c
36$ ./syscall-test
37# When calling it on original kernel the output is `6 * 7 = -1', the
38# `-1' is in fact syscall error return code, due the fact the syscall
39# does not exists yet
40
41# Install new kernel and reboot
42$ ./syscall-test
43# After rebooting the output is set to be `6 * 7 = 42`
44$ time ./syscall-test
45# when using larger numbers and `time' to measure output it will become
46# clear the program is spending almost all of his time in sys(tem) mode.
47
48
49
50
51
52
53
Note: See TracBrowser for help on using the repository browser.