Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

3rd year project

Options
  • 30-10-2007 11:04pm
    #1
    Registered Users Posts: 427 ✭✭


    Hey
    A friend and I are planning on writing a program which will graphically represents all processes currently running on a linux machine.
    We will do this by writing a kernel module which will scan the scheduler and output process information to a file in userland. Information such as the state of the process and the queue in which it resides will also be recorded.
    Then a program running in userland will access this file and graphically display the information contained within it.

    The problem is I don't know if it is feasible. I'm a good programmer but I have never undertook a project this big before. I also will need to learn c which will make it even harder.

    Do you think it possible to complete a project like this within about 2 months(ignoring the time it will take to learn c)?

    Would it be possible to do this on a distro such as ubuntu? I have been looking at educational versions of linux such as minix2 and nachos but I'd rather do it on ubuntu or something similar.
    Thanks


Comments

  • Closed Accounts Posts: 1,806 ✭✭✭i71jskz5xu42pb


    Kevo wrote: »
    Hey
    A friend and I are planning on writing a program which will graphically represents all processes currently running on a linux machine.
    Have a look at the Windows sysinternals Process Explorer for a good implementation of this (from a windows perspective obviously). I'm sure there are similar implementations for Linux.
    Kevo wrote: »
    We will do this by writing a kernel module which will scan the scheduler and output process information to a file in userland.
    Information such as the state of the process and the queue in which it resides will also be recorded.
    Most (all?) of this information will be available in the /proc directory
    try ls /proc/<pid>/* to see what is available. (where <pid> is a process id)

    You'll have to find the docs for each file in /proc/<pid>/* to see the format etc but I'm sure it is out there.
    Kevo wrote: »
    Then a program running in userland will access this file and graphically display the information contained within it.
    This would appear to be where most of your work will be
    Kevo wrote: »
    The problem is I don't know if it is feasible. I'm a good programmer but I have never undertook a project this big before. I also will need to learn c which will make it even harder.

    Do you think it possible to complete a project like this within about 2 months(ignoring the time it will take to learn c)?
    If all you are going to do is the graphical display side C might not be the best chance.
    Kevo wrote: »
    Would it be possible to do this on a distro such as ubuntu? I have been looking at educational versions of linux such as minix2 and nachos but I'd rather do it on ubuntu or something similar.
    Thanks
    No idea about minix2 or nachos but my guess is that there will be more support out there for the main distros


  • Moderators, Science, Health & Environment Moderators Posts: 10,079 Mod ✭✭✭✭marco_polo


    Kevo wrote: »
    Hey
    A friend and I are planning on writing a program which will graphically represents all processes currently running on a linux machine.
    We will do this by writing a kernel module which will scan the scheduler and output process information to a file in userland. Information such as the state of the process and the queue in which it resides will also be recorded.
    Then a program running in userland will access this file and graphically display the information contained within it.

    The problem is I don't know if it is feasible. I'm a good programmer but I have never undertook a project this big before. I also will need to learn c which will make it even harder.

    Do you think it possible to complete a project like this within about 2 months(ignoring the time it will take to learn c)?

    Would it be possible to do this on a distro such as ubuntu? I have been looking at educational versions of linux such as minix2 and nachos but I'd rather do it on ubuntu or something similar.
    Thanks

    Since the GUI will be reading the information from a file it would probably be far easier to write this part using Java and the Swing libraries, while still using C to generate the process information file. I don't think it would be feasible to learn UI programming in C in the space of two months from scratch.


  • Registered Users Posts: 427 ✭✭Kevo


    Thanks for the replies.

    I intend to write the kernel module in c but I haven't decided which language I will choose for the graphical display. It's between c++ and Java. Based on what you said, I'l probably go for Java.


  • Moderators, Science, Health & Environment Moderators, Social & Fun Moderators, Society & Culture Moderators Posts: 60,098 Mod ✭✭✭✭Tar.Aldarion


    Definitely go for java.


  • Registered Users Posts: 378 ✭✭sicruise


    Have a look at http://sourceforge.net/projects/unixtop source code...


  • Advertisement
  • Closed Accounts Posts: 583 ✭✭✭monkey tennis


    A good programmer that doesn't know C? Isn't that an oxymoron?? :p
    PaschalNee wrote: »
    If all you are going to do is the graphical display side C might not be the best chance.

    Check out SDL for fairly easy cross-platform GUI stuff with C (although if you already know C++, you can use this library with it)


  • Closed Accounts Posts: 1,806 ✭✭✭i71jskz5xu42pb


    A good programmer that doesn't know C? Isn't that an oxymoron?? :p
    While Java would be my language of choice for am implementation, I'd have to agree with you/Joel that a grounding in C is vital.
    I guess for a 3rd year project learning not implementing should be the focus.


Advertisement