Re: Kernel development using linux containers (LXC ) ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux