Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 10 Jan 2015 00:52:34 +0000 (UTC)
From:      Benjamin Kaduk <bjk@FreeBSD.org>
To:        doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org
Subject:   svn commit: r46183 - head/en_US.ISO8859-1/htdocs/news/status
Message-ID:  <201501100052.t0A0qY1N092745@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bjk
Date: Sat Jan 10 00:52:34 2015
New Revision: 46183
URL: https://svnweb.freebsd.org/changeset/doc/46183

Log:
  Add linuxulator
  
  Heavily edited by me and may have some content errors.
  
  Approved by:	hrs (mentor, blanket)

Modified:
  head/en_US.ISO8859-1/htdocs/news/status/report-2014-10-2014-12.xml

Modified: head/en_US.ISO8859-1/htdocs/news/status/report-2014-10-2014-12.xml
==============================================================================
--- head/en_US.ISO8859-1/htdocs/news/status/report-2014-10-2014-12.xml	Sat Jan 10 00:27:22 2015	(r46182)
+++ head/en_US.ISO8859-1/htdocs/news/status/report-2014-10-2014-12.xml	Sat Jan 10 00:52:34 2015	(r46183)
@@ -1788,4 +1788,82 @@
     </help>
   </project>
 
+  <project cat='kern'>
+    <title>Linux emulation layer a.k.a. Linuxulator</title>
+
+    <contact>
+      <person>
+	<name>
+	  <given>Dmitry</given>
+	  <common>Chagin</common>
+	</name>
+	<email>dchagin@FreeBSD.org</email>
+      </person>
+    </contact>
+
+    <body>
+      <p>The main goal of the lemul project is the execution of
+	multithreaded Linux applications, which requires the glibc library
+	version 2.20 or later to be available on &os;.  Glibc 2.20
+	requires a Linux kernel (or emulation thereof) of version 2.6.32
+	or later.  The main obstacle preventing this is that the current
+	Linuxulator uses native FreeBSD processes for emulating Linux
+	threads.  This leads to several problems, including problems with
+	process reparenting and dethreading, <tt>wait()</tt> and signal
+	handling.  It would be much better to reuse the FreeBSD kernel
+	code for thread management than to create a completely new
+	codebase for pseudothread management in the Linuxulator.</p>
+
+      <p>At present, the linux emulation layer project has
+	implemented all of the necessary system calls for supporting glibc
+	2.20, and more:</p>
+
+      <ul>
+	<li>Using native threads for emulating Linux threads</li>
+	<li>Implemented VDSO support, including DWARF for signal
+	  trampolines, which are needed for stack unwinding in
+	  <tt>pthread_cancel()</tt></li>
+	<li>Implemented the "vsyscall hack", used by some
+	  Linux-based distributions, including CentOS 6</li>
+	<li>Implemented the <tt>epoll()</tt> system call
+	  emulation</li>
+	<li>Many bugs were fixed</li>
+      </ul>
+
+      <p>The project's code is located in the FreeBSD Project's
+	Subversion repository, at <tt>base/user/dchagin/lemul</tt> (a
+	little bit old).  To facilitate merging the improvements back to
+	head, several patches have been placed on reviews.FreeBSD.org with
+	the tag <tt>#lemul</tt>.  Nearly half of the patches have already
+	been approved by &a.emaste; and &a.trasz;.</p>
+    </body>
+
+    <help>
+      <task>
+	<p>Review and merge the lemul branch to head within the next
+	  month or two.</p>
+      </task>
+
+      <task>
+	<p>Implement native and Linuxulator <tt>inotify()</tt>
+	  system calls.</p>
+      </task>
+
+      <task>
+	<p>Implement the <tt>ptrace()</tt> system call for the x86_64
+	  Linuxulator.</p>
+      </task>
+
+      <task>
+	<p>Implement the <tt>signalfd()</tt> and <tt>timerfd</tt>
+	  system calls for the Linuxulator.</p>
+      </task>
+
+      <task>
+	<p>Extend <tt>xucred</tt> support, which is required for
+	  many Linux applications.</p>
+      </task>
+    </help>
+  </project>
+
 </report>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201501100052.t0A0qY1N092745>