Driver laboratory classes on university
Hi I'm working on own phd thesis. It includes some kernel hacking for practical application of my research. I wish to make some progress with programming classes on my university. We have a lot of high level programing like object oriented languages but none on low level and kernel programing. I wish to know how other universities run classes on operating systems. I have named this topic about drivers because I think this will be most fun for the students. But fell free to give me any advices. I have more than one year to write conspect and get the required hardware. But first I need to learn myself all I can. I don't know where to start. Do I need to know electronic and physics good? Is there some easy to program hardware but at the same time easy to show how this is done from scratch? At first this would be an optional classes but I know there are a lot of interested students in this subjects soo this may become a part of operating systems laboratory classes. They are as you may expect - mandatory. I wish to give them a least a good start. This isn't as simple as decide what I need to know for my thesis... Links for articles, hardware on some stores or just it's prod. Id will be helpful. Thanks for help Gregory
On Wed, Aug 7, 2013 at 12:09 AM, Grzegorz Dwornicki <gd1100@gmail.com>wrote:
Hi
I'm working on own phd thesis. It includes some kernel hacking for practical application of my research. I wish to make some progress with programming classes on my university. We have a lot of high level programing like object oriented languages but none on low level and kernel programing.
I wish to know how other universities run classes on operating systems. I have named this topic about drivers because I think this will be most fun for the students. But fell free to give me any advices. I have more than one year to write conspect and get the required hardware. But first I need to learn myself all I can.
I don't know where to start. Do I need to know electronic and physics good? Is there some easy to program hardware but at the same time easy to show how this is done from scratch? At first this would be an optional classes but I know there are a lot of interested students in this subjects soo this may become a part of operating systems laboratory classes. They are as you may expect - mandatory. I wish to give them a least a good start.
This isn't as simple as decide what I need to know for my thesis... Links for articles, hardware on some stores or just it's prod. Id will be helpful.
Thanks for help Gregory
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Hi Gregory, The one which I know and really like personally is OS by Prof Remzi Arpaci-Dusseau at University of wisconsin. The reference material the book written by the Prof. himself is available on his website for free download. His webpage is pages.cs.wisc.edu/~*remzi*/. They use the xv6 operating system (unix like) link http://pdos.csail.mit.edu/6.828/2012/xv6.html developed at MIT. - Rohan
Thank you all for this materials. I will read them all. As for grading students for fixing bug or writing a driver. This looks reasonable. The only problem is with bugs. I am not aware of any bug needed to fix list on Linux. As for drivers for new devices. This will require constant amount of money from University. This may be a problem in the long run. 7 sie 2013 11:22, "Rohan Puri" <rohan.puri15@gmail.com> napisał(a):
On Wed, Aug 7, 2013 at 12:09 AM, Grzegorz Dwornicki <gd1100@gmail.com>wrote:
Hi
I'm working on own phd thesis. It includes some kernel hacking for practical application of my research. I wish to make some progress with programming classes on my university. We have a lot of high level programing like object oriented languages but none on low level and kernel programing.
I wish to know how other universities run classes on operating systems. I have named this topic about drivers because I think this will be most fun for the students. But fell free to give me any advices. I have more than one year to write conspect and get the required hardware. But first I need to learn myself all I can.
I don't know where to start. Do I need to know electronic and physics good? Is there some easy to program hardware but at the same time easy to show how this is done from scratch? At first this would be an optional classes but I know there are a lot of interested students in this subjects soo this may become a part of operating systems laboratory classes. They are as you may expect - mandatory. I wish to give them a least a good start.
This isn't as simple as decide what I need to know for my thesis... Links for articles, hardware on some stores or just it's prod. Id will be helpful.
Thanks for help Gregory
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Hi Gregory,
The one which I know and really like personally is OS by Prof Remzi Arpaci-Dusseau at University of wisconsin. The reference material the book written by the Prof. himself is available on his website for free download. His webpage is pages.cs.wisc.edu/~*remzi*/. They use the xv6 operating system (unix like) link http://pdos.csail.mit.edu/6.828/2012/xv6.html developed at MIT.
- Rohan
On Thu, Aug 8, 2013 at 1:51 AM, Grzegorz Dwornicki <gd1100@gmail.com> wrote:
Thank you all for this materials. I will read them all.
As for grading students for fixing bug or writing a driver. This looks reasonable. The only problem is with bugs. I am not aware of any bug needed to fix list on Linux. As for drivers for new devices. This will require constant amount of money from University. This may be a problem in the long run. 7 sie 2013 11:22, "Rohan Puri" <rohan.puri15@gmail.com> napisał(a):
On Wed, Aug 7, 2013 at 12:09 AM, Grzegorz Dwornicki <gd1100@gmail.com>wrote:
Hi
I'm working on own phd thesis. It includes some kernel hacking for practical application of my research. I wish to make some progress with programming classes on my university. We have a lot of high level programing like object oriented languages but none on low level and kernel programing.
I wish to know how other universities run classes on operating systems. I have named this topic about drivers because I think this will be most fun for the students. But fell free to give me any advices. I have more than one year to write conspect and get the required hardware. But first I need to learn myself all I can.
I don't know where to start. Do I need to know electronic and physics good? Is there some easy to program hardware but at the same time easy to show how this is done from scratch? At first this would be an optional classes but I know there are a lot of interested students in this subjects soo this may become a part of operating systems laboratory classes. They are as you may expect - mandatory. I wish to give them a least a good start.
This isn't as simple as decide what I need to know for my thesis... Links for articles, hardware on some stores or just it's prod. Id will be helpful.
Thanks for help Gregory
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Hi Gregory,
The one which I know and really like personally is OS by Prof Remzi Arpaci-Dusseau at University of wisconsin. The reference material the book written by the Prof. himself is available on his website for free download. His webpage is pages.cs.wisc.edu/~*remzi*/. They use the xv6 operating system (unix like) link http://pdos.csail.mit.edu/6.828/2012/xv6.html developed at MIT.
- Rohan
One way to look for bugs is go through the list in bugzilla. link https://bugzilla.kernel.org/ - Rohan
On Thu, 08 Aug 2013 10:52:27 +0530, Rohan Puri said:
One way to look for bugs is go through the list in bugzilla. link https://bugzilla.kernel.org/
That may not be the best place to find bugs suitable for a university class. Quite often, a bug is opened in bugzilla only because it's a particularly hard one that even the guy who originally wrote the code involved hasn't been able to figure out in several days of trying. If it's in the bugzilla, it's probably relating to a problem with specific hardware/BIOS levels, or it's a *very* subtle bug involving race/locking conditions or lifetime/refcount issues or similar problems.
I did a operating system laboratory class at BarcelonaTech. It consists in adding basic functionality to an existing OS (it was based on Linux 2.4). This included adding system call table, process scheduling and semaphore support (as far as I remember). As a second part we had to implement a kernel module which these days was able to count several system calls before executing them. I have the source code, you can find it on my blog (see below) but I'm not sure if I have the instructions for the assignments... Cheers, Matthias 2013/8/8 <Valdis.Kletnieks@vt.edu>:
On Thu, 08 Aug 2013 10:52:27 +0530, Rohan Puri said:
One way to look for bugs is go through the list in bugzilla. link https://bugzilla.kernel.org/
That may not be the best place to find bugs suitable for a university class. Quite often, a bug is opened in bugzilla only because it's a particularly hard one that even the guy who originally wrote the code involved hasn't been able to figure out in several days of trying.
If it's in the bugzilla, it's probably relating to a problem with specific hardware/BIOS levels, or it's a *very* subtle bug involving race/locking conditions or lifetime/refcount issues or similar problems.
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- motzblog.wordpress.com
Please have a look at OS 161 from Harward. http://www.eecs.harvard.edu/~syrah/os161/ On Fri, Aug 9, 2013 at 4:31 PM, Matthias Brugger <matthias.bgg@gmail.com>wrote:
I did a operating system laboratory class at BarcelonaTech. It consists in adding basic functionality to an existing OS (it was based on Linux 2.4). This included adding system call table, process scheduling and semaphore support (as far as I remember).
As a second part we had to implement a kernel module which these days was able to count several system calls before executing them. I have the source code, you can find it on my blog (see below) but I'm not sure if I have the instructions for the assignments...
Cheers, Matthias
2013/8/8 <Valdis.Kletnieks@vt.edu>:
On Thu, 08 Aug 2013 10:52:27 +0530, Rohan Puri said:
One way to look for bugs is go through the list in bugzilla. link https://bugzilla.kernel.org/
That may not be the best place to find bugs suitable for a university class. Quite often, a bug is opened in bugzilla only because it's a particularly hard one that even the guy who originally wrote the code involved hasn't been able to figure out in several days of trying.
If it's in the bugzilla, it's probably relating to a problem with specific hardware/BIOS levels, or it's a *very* subtle bug involving race/locking conditions or lifetime/refcount issues or similar problems.
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- motzblog.wordpress.com
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
On Thu, Aug 8, 2013 at 3:21 AM, Grzegorz Dwornicki <gd1100@gmail.com> wrote:
Thank you all for this materials. I will read them all.
As for grading students for fixing bug or writing a driver. This looks reasonable. The only problem is with bugs. I am not aware of any bug needed to fix list on Linux. As for drivers for new devices. This will require constant amount of money from University. This may be a problem in the long run.
Just to share some thoughts: I was managing operating system lab in a university in Indonesia. At that time, I decided to take "experiment approach". For example, to understand about scheduling priority effect, I told them to run scripts that basically write to single file in alternating fashion. By changing priorities in between, the order will get vary from time to time. I took this approach so that the students get the general understanding on how OS works (particularly Linux and Windows), while not getting too deep. For now, I decided not to do module programming, since the students are not fluent in C (they are more adept to Visual Basic and Java). -- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com
participants (6)
-
Grzegorz Dwornicki -
Matthias Brugger -
Mrunal Gawade -
Mulyadi Santosa -
Rohan Puri -
Valdis.Kletnieks@vt.edu