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 :-)