[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Outreachy Round 13 .Reg
On 26/09/16 13:59, Harini V Reddy wrote: > Hi, > > I am Harini, an undergraduate pursuing Bachelors Of Engineering > in Information Science having some prior experience with coding > in C and Golang. > > I am interested in applying for Outreachy Round 13 in golang bindings > for libxl project. > > Can I know the first contributions to be made for the same? > > I would really appreciate it if you could give some insights in this regard Harini, Thanks for your interest in the Xen Project! First, I want to emphasize that Outreachy internships should be considered a full-time job. As part of the application process you will be asked to confirm that you will not be taking any classes, nor have any other significant commitments (such as another job) during the period of the internship. Now on to the bite-sized task. We've actually found that one of the difficult parts of getting going with our project is making sure that you understand how to get your whole system and environment set up. And another thing we want to see is to what degree you can balance figuring things out, finding the answers on the web, and asking for help when you need it. So with that in mind, we've started experimenting with tasks which don't contribute very much to the project directly, but provide a really solid base of knowledge to do further contributions. So here's my challenge for you. ------- OUTCOME Attached is the very beginnings of a set of golang bindings that I wrote for a project of my own. They contain an implementation of Context.Open() and Context.ListCpupool(), along with a structure called Bitmap. Bitmap is used to store an array of bits in eight-bit chunks. So bits 0-7 are bits 0-7 of Bitmap.bitmap[0]; bits 8-15 are bits 0-7 of Bitmap.bitmap[1], and so on. On this structure, there are three "stub" methods defined -- Test(), Set(), and Clear(). (These have labeled with comments which contain "TODO".) Please implement these methods, so that the main() function at the bottom of the file runs properly. You can refer to the C versions of these functions in xen.git/tools/libxl/libxl_utils.c. The function names are libxl_bitmap_test(), libxl_bitmap_set(), and libxl_bitmap_reset(). ("reset" in this case is the same as "Clear" in the methods I've defined.) Please post a copy of your .go program with these functions implemented, along with the results of output, to xen-devel. STEPS 1. Set up a system running Linux If you don't have one, Ubuntu, Fedora, or Debian should all be fine. 2. Download, build, and install the latest development version of Xen. The following page should be useful: https://wiki.xenproject.org/wiki/Compiling_Xen_From_Source I would recommend using "make debball" or "make rpmball" over the "make install". 3. You'll need to build an image for at least one guest VM. There are tons of options here, but one really simple thing would be to follow this HOWTO from a previous OPW intern: https://umasharma17.wordpress.com/2015/02/13/creating-guests-using-xl-in-xen/ 4. Implement the stub methods for Bitmap. The go program will need to Open() the context, then call DomainInfo() on the target domain ID, and output the required info based on "xl list". libxl.go uses cgo to compile a library against C. If you have the libraries set up properly, the current version should just work. ------ That's it! Remember that the goal of this is to see how well you balance figuring things out on your own vs asking questions. So try to figure things out on your own, but when you run into a bit of difficultly, don't hesitate to ask questions or clarification -- particularly at the beginning. You can ask questions either here on xen-devel or on the #xendevel or #xen-opw channels on freenode IRC. Good luck, and look forward to hearing from you! -George Attachment:
libxl.go _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |