From: [email protected] 
[mailto:[email protected]] On Behalf Of Facundo Viale
Sent: Friday, August 26, 2011 11:19 AM
To: [email protected]
Subject: I need suggestions for a practical work related with KernelDevelopment

 

Hi! I'm new here and i what to introduce myself i'm teacher in a University in 
the course Operation Systems. During the course the students learn some 
Operatyng Systems concepts, specially everything relating to the Kernel. As a 
practice task, they also have to use C to make a program with some Kernel 
functionalities. This year this task consists on programming a File System (I 
chose FAT32 since I thought it was the easiest one to implement) using FUSE and 
simulating a Hard Disk and a RAID behavior.

 

Since I'm not a Kernel expert I'm looking for some advice and ideas. The aim of 
the practice task I'm creating is to help the students make a program that 
simulates the behavior and functionalities of a Kernel (such as a File System, 
Memory Administrator, Planner, etc.), but at the same I would like those 
programs to really interact with the Kernel, being not only ideal simulation 
cases (like FUSE). But, as I said, I don't know that much to have a good idea 
of what can I use to make the most from the Kernel in the task.

 

I could really use some ideas!

 

Some of the things I have in mind:

 

- Use netlinks

- Build a kernel module 

- I'm also interested in the /dev/mem

 

¡Thanks a lot in advance! 

 

I would think if the goal is to teach them about kernel development, then 
having them write an actual kernel module would be more to the point than some 
user space application accessing a netlink socket or peeking and poking RAM 
with /dev/mem.

 

In a module you are running in kernel context so you have all the issues of 
memory management, different execution contexts (task context, IRQ context, 
soft IRQ context), synchronization to deal with that aren't issues when running 
some user space simulator.

 

PCs are cheap these days. I assume each of your students would have access to 
his own so if his module panics the kernel of the machine he's debugging his 
module on, it won't affect the work of other students. If that's not the case 
maybe my advice is not so applicable, though even if they have to share systems 
they could each run their own kernel in their own virtual machine and the 
hypervisor would keep them out of each other's way. Actually, maybe that would 
be better since then they get a chance to learn a little about hypervisors too.

 

Jeff Haran

 


_______________________________________________
Kernelnewbies mailing list
[email protected]
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to