From mboxrd@z Thu Jan 1 00:00:00 1970 From: mkatiyar@gmail.com (Manish Katiyar) Date: Wed, 29 Jul 2015 14:03:54 -0700 Subject: Kernel development using linux containers (LXC ) ? In-Reply-To: References: <4E5779AD88B2F040B8A7E83ECF544D1A61365D@SJCPEX01CL03.citrite.net> Message-ID: To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org On Wed, Jul 29, 2015 at 1:49 PM, Greg Freemyer wrote: > On Wed, Jul 29, 2015 at 4:23 PM, Manish Katiyar wrote: >> On Wed, Jul 29, 2015 at 1:07 PM, Jeff Haran wrote: >>>>-----Original Message----- >>>>From: kernelnewbies-bounces at kernelnewbies.org [mailto:kernelnewbies- >>>>bounces at kernelnewbies.org] On Behalf Of Manish Katiyar >>>>Sent: Wednesday, July 29, 2015 11:51 AM >>>>To: kernelnewbies >>>>Subject: Kernel development using linux containers (LXC ) ? >>>> >>>>Hi, >>>> >>>>I've been playing and reading about control groups and linux containers >>>>recently and was wondering if there are any existing recipes on how to setup >>>>a kernel environment in containers. Google hasn't been helpful so far (or >>>>maybe I'm not searching properly). >>>> >>>>I've used VMs for dev in past (Qemu, uml etc.), but looks like it may be >>>>interesting to have it in containers. Given that they share they same OS image >>>>as host, I'm not sure if its possible without making the host OS crash. >>>> >>>>Any suggestions. >>>> >>>>Thanks - >>>>Manish >>> >>> I'm not sure what your goal is here, but it sounds to me like you might want to be googling for "linux namespaces". >> >> I'm sorry. I see that my previous mail had a key word "development" >> missing. What I was trying to find out was that is it possible to >> setup and use linux containers/cgroups to do kernel development. >> Things like writing and test kernel modules, debugging kernel, >> attaching gdb etc. etc. which normally require Qemu, busybox or other >> VM techniques since containers are much lightweight and if anyone has >> recipes for that setup to do development without crashing the host OS. >> >> Any hints appreciated. I looked for "linux namespaces" but it doesn't >> give me what I want. >> > > I have no first hand experience, but I don't think containers have the > flexibility you need. Docker in particular shares the kernel with the > host OS as far as I know, so it would not be of any value that I can > see. > > I think a unikernel may be what you are looking for: > > http://www.linux.com/news/enterprise/cloud-computing/821243-unikernel-use-cases-containers > > My understanding is that with a unikernel you can move targeted > portions of the Hypervisor kernel up into the unikernel. Thus if you > wanted to work on a network driver, you could implement it in a > unikernel. Then if it blew up you would fall back to the hypervisor > level, kill the unikernel and try again. > > The Rump kernel (a unikernel) in particular might be a good option: > > == > Rump Kernels ?? provide free, portable, componentized, kernel quality > drivers such as file systems, POSIX system call handlers, PCI device > drivers, a SCSI protocol stack, virtio and a TCP/IP stack. These > drivers may be integrated into existing systems, or run as stand-alone > unikernels on cloud hypervisors and embedded systems. > == > > I have no first hand experience with the Rump Kernel, so I don't know > if it would work as a way to do linux kernel development or not. It > certainly seems like a great environment for generic kernel > development. Thanks a lot GregF/GregKH, That's what I suspected, that it might not be possible because of both sharing the same OS. I'll have a look at Rump Kernels and see how far it goes. Thanks for the pointers !