Kernel Mysyslog Project

by: burt rosenberg
at: university of miami
date: oct 2018
  
   
NAME
    my_syslog -- kernel syslog system call
    mysyslog -- command line interface to my_syslog
    
SYNOPSIS
    takes a string argument, and kernel syslogs th string

DESCRIPTION
    The my_syslog takes a string argument, and kernel syslogs the argument. 
    It always returns 0.
    
    The mysyslog command calls my_syslog on the first argument.

HISTORY
    Introduced as Project 2 in CSC521 session 131.
    Made a separate project in csc421 session 191.
	
BUGS

Goals

The goals of this project are:

Specific steps

  1. Build the linux kernel. Here are hints.
  2. Modify the kernel files to introduce the system calls. Here are hints.
  3. Rebuild and reboot on the new kernel.
  4. Using the given template files from the class/proj3 folder, you now should have a working my_syslog system call and mysyslog command line program. Test.

Notes about the syscall entries

When you modify the syscall table, the entire kernel will be rebuilt. This is because everything depends on the syscall table. I have shown modifications that in this iteration of kernel modification include four new syscalls, but we are right now only concerned with the first of these four. You can include all four now, saving a long kernel build later, but you must satisfy external dependencies by providing stub programs that have the name of the yet unimplemented syscalls, that just return with a default -1 value. Or you might ignore this for now, but do that consistently among all the files involved.

Testing and submission

Test-mysyslog sends the string "hello kernel!" to the system log. It then saves the return value of mysyslog and the most recent occurence of a syslog essage containing "hello kernel!" to a mysyslog.out file. Because the output can vary, there is no mysyslog.ref file. The file mysyslog.out will be judged informally.

You will submit "evidence" that your project ran, as well as the sources so that we can reproduce your project.

The makefile target evidence collects the evidence into an evidence.tar file, which you will add and commit to the repository. The evidence includes of the 5 kernel files and the output file:

You must add and commit the complete set of sources that built and tested your project:

Discussion

Please refer to the in-class discussion concerning this project.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

author: burton rosenberg
created: 27 sep 2015
update: 1 oct 2018