On Wed, Jul 29, 2015 at 4:23 PM, Manish Katiyar <mkatiyar@xxxxxxxxx> wrote: > On Wed, Jul 29, 2015 at 1:07 PM, Jeff Haran <Jeff.Haran@xxxxxxxxxx> wrote: >>>-----Original Message----- >>>From: kernelnewbies-bounces@xxxxxxxxxxxxxxxxx [mailto:kernelnewbies- >>>bounces@xxxxxxxxxxxxxxxxx] 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. Hope that helps Greg _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies