bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Student for GSoC 2008 - procfs


From: Madhusudan C.S
Subject: Re: Student for GSoC 2008 - procfs
Date: Mon, 24 Mar 2008 09:11:20 +0530

Hi,
 
Hi,You aren't late at all -- official application period is starting only on monday :-)

     First of all thanks a lot in spending your invaluable time to read such a long mail I have sent. Somehow I dont want to delay submitting application to the last day. So I though posting after such a long time was late. Before that I wanted to have a small discussion about this project on the group, taking inputs from others, what they would like to see as a part of procfs on Hurd. Since this takes quite some time, I thought it was late. Anyhow thanks a lot for inducing confidence in me.

Indeed, we don't need all features -- only what's needed for procfs, top and similar tools.

/proc/<pid>/mem is problematic. Do we really need it for procps etc?

     After a bit of googling I found that /proc/<pid>/mem was considered a problem due to the vulnarability it poses in allowing other user processes to change the process map of other process which consequently may crash the system requiring a reboot. Since this happened in 2.2.x series of Linux kernel, the feature was totally disabled in 2.4.x series. But there are some patches submitted by third party developers[1].I think those patches will help us in designing the whole solution itself in a different way when we start designing.
  
     If this was not the problem you were trying to mention please tell me what it was.

I don't know enough about the others -- what they do, what they are needed for. Could you give a short summary, why you think each one important?

     Yeah sure, I will try to tell you what each of those features do, but I am working on why each of them are needed for. I will be posting on them in the subsequent mails. 

/proc/<pid>/cpu  -  Contains CPU state information of the process <pid> and exactly contains
                            Current and last cpu in which it was executed.
/proc/<pid>/cwd -   Its a symlink which points to the current working directory of the process
correcting the problems in /proc/<pid>/environ
                        -   This contains values of Environment variables for that process. But the
                             procfs doc in Hurd says it always fails. And the author says he doesn't 
                             know why. Have to work on it and fix it.
completing /proc/<pid>/stat
                        -    This gives the process status in a form not legible to humans. And the
                              need of this is just this. Let me try to give an example thats given in the
                              Nirendra's blog I had linked earlier.
                              The 8th attribute in Linux's /proc/<pid>/stat is a per process flag which
                              gives personal information of process. By doing a logical AND of per
                              process flag and with the following values we can obtain the information
                              thats given next to the values:
                              0x00000002 Process being created
                              0x00000004 Exiting
                              0x00000008 Dead
                              0x00000040 Process using super user privilage
                              0x00000200 Process dumping core
                              0x00000400 Process received some signal
                              0x00000800 Process allocating memory
                              0x00001000 Killed for out-of-memory

    And so are attributes.


/proc/cmdline   -   Contains the command line arguments passed to Kernel
/proc/swaps     -    Contains swap space utilization function.

     Also from additional searching and a bit of researching I have found that it would be nice if I do include these features in the list.

/proc/stat        -  Overall statistics about the system, such as the number of page faults
                         since the system was booted.
/proc/version   -   In the current implementation only gives the result of uname. But it would
                         be nice if we provide other details provided by Linux versions such as gcc
                         version used to compile the kernel and the uptime.
/proc/uptime   -   It already seems to be implemented by looking at the code. If there are any 
                         problems and additional requirements I would consider it again
It would also be nice if we can provide
/proc/sys/* features like
/proc/sys/kernel/* - which reflects general kernel behaviors.
/proc/sys/net/*  - which contains all the network related information on the system.

One more important feature that would be desirable is
/proc/<pid>/fd -  which contain the symlinks to all the files the process has opened

    I would like to have the suggestions of all you people in working out what features are needed and what are really not necessary for Hurd. I request all of you to give your invaluable suggestions so that it will help me to come up with a good proposal.

I will only be online again Wednesday evening. But most of the time, someone else should be on IRC -- just keep in mind that people sometimes need quite long before they can reply :-)

Most people are online during the day and evening in european timezones -- roughly 12:00 to 24:00 UTC or so...

     Ok fine thanks. I am used to #hurd IRC. I will be there most of the time I am online. And also I have spoken to most of the guys there.

All in all, what you wrote above sounds quite promising -- I'm sure you will be able to hand in a very good application :-)

     Thanks a lot for the compliments.

     Can any of you please give me the contacts of the authors of procfs which currently exists in the hurdextras repo viz. Jonathan Arney and James Morrison, so I can discuss with those people too.

[1] http://lkml.org/lkml/2006/3/10/224
--
Thanks and regards,
Madhusudan.C.S


reply via email to

[Prev in Thread] Current Thread [Next in Thread]