lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <m28uejaqyn.wl@wide.ad.jp>
Date:	Fri, 27 Mar 2015 15:34:40 +0900
From:	Hajime Tazaki <tazaki@...e.ad.jp>
To:	richard@....at
Cc:	linux-arch@...r.kernel.org, arnd@...db.de, corbet@....net,
	cl@...ux.com, penberg@...nel.org, rientjes@...gle.com,
	iamjoonsoo.kim@....com, akpm@...ux-foundation.org,
	linux-kernel@...r.kernel.org, linux-doc@...r.kernel.org,
	netdev@...r.kernel.org, linux-mm@...ck.org, jdike@...toit.com,
	rusty@...tcorp.com.au, mathieu.lacage@...il.com
Subject: Re: [RFC PATCH 00/11] an introduction of library operating system for Linux (LibOS)


Hi Richard,

At Thu, 26 Mar 2015 19:55:06 +0100,
Richard Weinberger wrote:

> >> feeling that "lib" is the wrong name.
> >> It has not much do to with an architecture.
> > 
> > could you care to elaborate your feeling more explicitly ?
> > 
> > what is an architecture here and what is _not_ an
> > architecture ? 
> > is UML an architecture in your sense (probably yes, but why)?
> 
> UML is an architecture as it binds the whole kernel to a computer
> interface. Linux userspace in that case.
> 
> > and what is arch/lib missing for an architecture ?
> 
> Your arch/lib does not bind the Linux kernel to an interface.
> It takes some part of Linux and duplicates kernel core subsystems
> to make that part work on its own.
> For example arch/lib contains a stub implementation of core VFS
> functions like register_filesystem().
> Also it does not seem to use the kernel scheduler, you have your own.

the scheduler is the part of which a library user (NUSE or
DCE) should implement.

> This also infers that arch/lib will be broken most of the time as
> every time the networking stack references a new symbol it
> has to be duplicated into arch/lib.
> 
> But this does not mean that your idea is bad, all I want to say that
> I'm not sure whether arch/lib is the right approach.
> Maybe Arnd has a better idea.

one way to avoid the duplication is: to put our
libos-specific implementation to the kernel core
subsystem. Maybe this will introduce a bunch of #ifdefs
(ifdef CONFIG_LIB) into cores, which I don't know it's okay
or not.

for example, add_timer() is implemented in arch/lib/timer.c
while in kernel/time/timer.c in kernel core.

# [04/11] to [08/11] of my RFC patches are these parts.

We've been implemented these stubs (we call 'kernel glue
code') into arch/lib because 1) we were in out-of-tree and
2) this won't disturb kernel core.


OTOH, [03/11] (and [09/11] and [10/11]) is an original part
of libos, which probably have no conflict (in terms of the
concept) to the others. I'm still thinking arch/lib is an
appropriate place.


> >> You don't implement an architecture, you take some part of Linux
> >> (the networking stack) and create stubs around it to make it work.
> >> That means that we'd also have to duplicate kernel functions into
> >> arch/lib to keep it running.
> > 
> > again, the above same questions.
> > 
> > it (arch/lib) is a hardware-independent architecture which
> > provides necessary features to the remainder of kernel code,
> > isn't it ?
> 
> The stuff in arch/ is the code to glue the kernel to
> a specific piece of hardware.
> Your code does something between. You duplicate kernel core features
> to make a specific piece of code work in userland.

indeed, 'something between' would be an appropriate word.

thank you for your comment.

-- Hajime
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ