From: Jeff Dike <jdike@karaya.com>
To: torvalds@transmeta.com
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH] Allow UML kernel to run in a separate host address space
Date: Sat, 28 Dec 2002 10:47:10 -0500 [thread overview]
Message-ID: <200212281547.KAA02128@ccure.karaya.com> (raw)
Please pull either
http://uml.bkbits.net/skas-2.5
or http://jdike.stearns.org:5000/skas-2.5
This allows the UML kernel to run in a different address space from its
processes. The benefits include better security and much improved performance.
This is a large patch, but
it's all under arch/um and include/asm-um
a lot of it is code movement
This is described fairly completely in
http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&safe=off&selm=fa.ia69pmv.e4qnq1%40ifi.uio.no
Jeff
arch/um/Kconfig | 8
arch/um/Makefile | 77 ++--
arch/um/Makefile-i386 | 4
arch/um/drivers/chan_kern.c | 66 +++
arch/um/drivers/chan_user.c | 33 -
arch/um/drivers/fd.c | 6
arch/um/drivers/line.c | 108 +++++-
arch/um/drivers/mconsole_kern.c | 62 +++
arch/um/drivers/null.c | 5
arch/um/drivers/port_kern.c | 13
arch/um/drivers/port_user.c | 9
arch/um/drivers/pty.c | 19 -
arch/um/drivers/ssl.c | 36 +-
arch/um/drivers/stdio_console.c | 32 +
arch/um/drivers/tty.c | 8
arch/um/drivers/ubd_kern.c | 39 ++
arch/um/drivers/xterm.c | 4
arch/um/include/chan_kern.h | 3
arch/um/include/chan_user.h | 4
arch/um/include/choose-mode.h | 35 ++
arch/um/include/debug.h | 26 -
arch/um/include/frame.h | 18 -
arch/um/include/kern.h | 2
arch/um/include/kern_util.h | 28 -
arch/um/include/line.h | 11
arch/um/include/mconsole_kern.h | 16
arch/um/include/mem.h | 1
arch/um/include/mem_user.h | 12
arch/um/include/mode.h | 30 +
arch/um/include/mode_kern.h | 30 +
arch/um/include/os.h | 8
arch/um/include/sigcontext.h | 2
arch/um/include/syscall_user.h | 13
arch/um/include/sysdep-i386/checksum.h | 217 ++++++++++++
arch/um/include/sysdep-i386/frame_kern.h | 9
arch/um/include/sysdep-i386/ptrace.h | 109 ++++--
arch/um/include/sysdep-i386/sigcontext.h | 33 +
arch/um/include/time_user.h | 2
arch/um/include/um_mmu.h | 40 ++
arch/um/include/um_uaccess.h | 73 ++++
arch/um/include/user_util.h | 26 -
arch/um/kernel/Makefile | 58 +--
arch/um/kernel/checksum.c | 42 ++
arch/um/kernel/exec_kern.c | 64 ---
arch/um/kernel/exec_user.c | 49 --
arch/um/kernel/frame.c | 204 ++++++-----
arch/um/kernel/frame_kern.c | 85 +++-
arch/um/kernel/helper.c | 5
arch/um/kernel/init_task.c | 2
arch/um/kernel/ksyms.c | 17
arch/um/kernel/mem.c | 71 +---
arch/um/kernel/mem_user.c | 44 --
arch/um/kernel/process.c | 136 +++++--
arch/um/kernel/process_kern.c | 477 +--------------------------
arch/um/kernel/ptrace.c | 61 +++
arch/um/kernel/reboot.c | 25 -
arch/um/kernel/sigio_user.c | 13
arch/um/kernel/signal_kern.c | 19 -
arch/um/kernel/signal_user.c | 9
arch/um/kernel/skas/Makefile | 24 +
arch/um/kernel/skas/exec_kern.c | 41 ++
arch/um/kernel/skas/exec_user.c | 61 +++
arch/um/kernel/skas/include/mmu.h | 27 +
arch/um/kernel/skas/include/mode.h | 34 +
arch/um/kernel/skas/include/mode_kern.h | 52 +++
arch/um/kernel/skas/include/proc_mm.h | 55 +++
arch/um/kernel/skas/include/ptrace-skas.h | 57 +++
arch/um/kernel/skas/include/skas.h | 49 ++
arch/um/kernel/skas/include/skas_ptrace.h | 36 ++
arch/um/kernel/skas/include/uaccess.h | 236 +++++++++++++
arch/um/kernel/skas/mem.c | 35 ++
arch/um/kernel/skas/mem_user.c | 95 +++++
arch/um/kernel/skas/mmu.c | 46 ++
arch/um/kernel/skas/process.c | 386 ++++++++++++++++++++++
arch/um/kernel/skas/process_kern.c | 195 +++++++++++
arch/um/kernel/skas/sys-i386/Makefile | 14
arch/um/kernel/skas/sys-i386/sigcontext.c | 114 ++++++
arch/um/kernel/skas/syscall_kern.c | 42 ++
arch/um/kernel/skas/syscall_user.c | 47 ++
arch/um/kernel/skas/time.c | 30 +
arch/um/kernel/skas/tlb.c | 156 +++++++++
arch/um/kernel/skas/trap_user.c | 66 +++
arch/um/kernel/skas/util/Makefile | 10
arch/um/kernel/skas/util/mk_ptregs.c | 50 ++
arch/um/kernel/smp.c | 12
arch/um/kernel/sys_call_table.c | 15
arch/um/kernel/syscall_kern.c | 126 -------
arch/um/kernel/syscall_user.c | 79 ----
arch/um/kernel/sysrq.c | 8
arch/um/kernel/time.c | 22 -
arch/um/kernel/time_kern.c | 3
arch/um/kernel/tlb.c | 225 +------------
arch/um/kernel/trap_kern.c | 361 +++------------------
arch/um/kernel/trap_user.c | 492 +---------------------------
arch/um/kernel/tt/Makefile | 20 +
arch/um/kernel/tt/exec_kern.c | 84 ++++
arch/um/kernel/tt/exec_user.c | 49 ++
arch/um/kernel/tt/gdb.c | 278 ++++++++++++++++
arch/um/kernel/tt/gdb_kern.c | 40 ++
arch/um/kernel/tt/include/debug.h | 29 +
arch/um/kernel/tt/include/mmu.h | 23 +
arch/um/kernel/tt/include/mode.h | 35 ++
arch/um/kernel/tt/include/mode_kern.h | 53 +++
arch/um/kernel/tt/include/ptrace-tt.h | 26 +
arch/um/kernel/tt/include/tt.h | 45 ++
arch/um/kernel/tt/include/uaccess.h | 119 ++++++
arch/um/kernel/tt/ksyms.c | 28 +
arch/um/kernel/tt/mem.c | 77 ++++
arch/um/kernel/tt/process_kern.c | 513 ++++++++++++++++++++++++++++++
arch/um/kernel/tt/ptproxy/Makefile | 13
arch/um/kernel/tt/ptproxy/proxy.c | 370 +++++++++++++++++++++
arch/um/kernel/tt/ptproxy/ptproxy.h | 61 +++
arch/um/kernel/tt/ptproxy/ptrace.c | 239 +++++++++++++
arch/um/kernel/tt/ptproxy/sysdep.c | 71 ++++
arch/um/kernel/tt/ptproxy/sysdep.h | 25 +
arch/um/kernel/tt/ptproxy/wait.c | 86 +++++
arch/um/kernel/tt/ptproxy/wait.h | 15
arch/um/kernel/tt/sys-i386/Makefile | 14
arch/um/kernel/tt/sys-i386/sigcontext.c | 59 +++
arch/um/kernel/tt/syscall_kern.c | 140 ++++++++
arch/um/kernel/tt/syscall_user.c | 90 +++++
arch/um/kernel/tt/time.c | 28 +
arch/um/kernel/tt/tlb.c | 226 +++++++++++++
arch/um/kernel/tt/tracer.c | 466 +++++++++++++++++++++++++++
arch/um/kernel/tt/trap_user.c | 58 +++
arch/um/kernel/tt/uaccess_user.c | 126 +++++++
arch/um/kernel/uaccess_user.c | 126 -------
arch/um/kernel/um_arch.c | 119 +++---
arch/um/kernel/umid.c | 6
arch/um/main.c | 64 ---
arch/um/os-Linux/Makefile | 6
arch/um/os-Linux/drivers/Makefile | 3
arch/um/os-Linux/process.c | 42 ++
arch/um/os-Linux/tty.c | 2
arch/um/ptproxy/Makefile | 10
arch/um/ptproxy/proxy.c | 370 ---------------------
arch/um/ptproxy/ptproxy.h | 61 ---
arch/um/ptproxy/ptrace.c | 238 -------------
arch/um/ptproxy/sysdep.c | 71 ----
arch/um/ptproxy/sysdep.h | 25 -
arch/um/ptproxy/wait.c | 86 -----
arch/um/ptproxy/wait.h | 15
arch/um/sys-i386/Makefile | 36 --
arch/um/sys-i386/checksum.S | 460 ++++++++++++++++++++++++++
arch/um/sys-i386/ksyms.c | 3
arch/um/sys-i386/ldt.c | 69 +++-
arch/um/sys-i386/ptrace.c | 57 ++-
arch/um/sys-i386/ptrace_user.c | 2
arch/um/sys-i386/sigcontext.c | 39 --
arch/um/sys-i386/util/mk_thread_kern.c | 16
arch/um/sys-i386/util/mk_thread_user.c | 32 +
arch/um/uml.lds.S | 1
arch/um/util/Makefile | 11
arch/um/util/mk_constants_kern.c | 24 +
arch/um/util/mk_constants_user.c | 28 +
include/asm-um/a.out.h | 8
include/asm-um/checksum.h | 2
include/asm-um/mmu.h | 18 -
include/asm-um/mmu_context.h | 51 ++
include/asm-um/page.h | 2
include/asm-um/processor-generic.h | 39 +-
include/asm-um/ptrace-generic.h | 2
include/asm-um/uaccess.h | 100 -----
163 files changed, 8121 insertions(+), 3588 deletions(-)
ChangeSet@1.865.24.3, 2002-12-17 02:55:00-05:00, jdike@uml.karaya.com
Merge jdike.stearns.org:linux/skas-2.5
into uml.karaya.com:/home/jdike/linux/2.5/skas-2.5
ChangeSet@1.865.25.1, 2002-12-17 02:34:29-05:00, jdike@jdike.wstearns.org
Merge
ChangeSet@1.865.24.2, 2002-12-17 02:21:56-05:00, jdike@uml.karaya.com
Removed includes of Rules.mk.
ChangeSet@1.865.24.1, 2002-12-17 01:06:44-05:00, jdike@uml.karaya.com
Merged the 2.5.52 Makefile changes.
ChangeSet@1.797.203.3, 2002-12-06 21:30:55-05:00, jdike@uml.karaya.com
Merge jdike.stearns.org:linux/skas-2.5
into uml.karaya.com:/home/jdike/linux/2.5/skas-2.5
ChangeSet@1.797.203.2, 2002-12-06 21:25:54-05:00, jdike@uml.karaya.com
Added a couple of includes as part of the 2.5.50 update.
ChangeSet@1.797.204.1, 2002-12-06 19:04:22-05:00, jdike@jdike.wstearns.org
Merge jdike.wstearns.org:/home/jdike/linux/linus-2.5
into jdike.wstearns.org:/home/jdike/linux/skas-2.5
ChangeSet@1.797.203.1, 2002-12-06 18:14:59-05:00, jdike@uml.karaya.com
Merge uml.karaya.com:/home/jdike/linux/2.5/linus-2.5
into uml.karaya.com:/home/jdike/linux/2.5/skas-2.5
ChangeSet@1.797.139.7, 2002-11-25 22:07:47-05:00, jdike@uml.karaya.com
Fixed a stupid compile bug.
ChangeSet@1.797.139.6, 2002-11-25 21:03:24-05:00, jdike@uml.karaya.com
Small fixes to sync up the 2.4 and 2.5 pools.
Also fixed a stupid signal handling bug.
ChangeSet@1.797.139.5, 2002-11-25 13:41:02-05:00, jdike@uml.karaya.com
A whole lot of small changes to sync up the 2.4 and 2.5 pools
somewhat. Mostly whitespace changes, plus some code movement.
Also added checksum.S to the repository, which I had somehow
missed before.
ChangeSet@1.797.139.3, 2002-11-23 21:37:53-05:00, jdike@uml.karaya.com
Merge
ChangeSet@1.797.139.2, 2002-11-23 19:25:48-05:00, jdike@uml.karaya.com
Updated to 2.5.49, which involved fixing the calls to do_fork.
ChangeSet@1.797.72.14, 2002-11-23 16:49:59-05:00, jdike@uml.karaya.com
Finished the skas merge by eliminating a syntax error, fixing the
new compilation warnings, and fixing a call to handle_page_fault.
ChangeSet@1.797.72.13, 2002-11-22 21:47:15-05:00, jdike@uml.karaya.com
Merged the rest of the skas changes.
ChangeSet@1.797.72.12, 2002-11-22 21:22:57-05:00, jdike@uml.karaya.com
Fixed various build problems with the tlb.c merge.
ChangeSet@1.797.72.11, 2002-11-22 20:39:33-05:00, jdike@uml.karaya.com
Merged the tlb.c changes from the skas patch.
ChangeSet@1.797.72.10, 2002-11-22 14:27:24-05:00, jdike@uml.karaya.com
Minor build fixes to the last batch of skas merges.
ChangeSet@1.797.72.9, 2002-11-22 12:53:13-05:00, jdike@uml.karaya.com
Merged a number of small skas changes.
ChangeSet@1.797.72.8, 2002-11-21 23:22:43-05:00, jdike@uml.karaya.com
Some small build fixes to the IP checksum merge.
ChangeSet@1.797.71.4, 2002-11-21 23:21:41-05:00, jdike@uml.karaya.com
Removed the checksum.S symlink from arch/um/sys-i386/Makefile.
ChangeSet@1.797.72.7, 2002-11-21 22:30:24-05:00, jdike@uml.karaya.com
Merged the IP checksum changes from the skas code.
ChangeSet@1.797.72.6, 2002-11-21 22:26:06-05:00, jdike@uml.karaya.com
Some minor build and compilation fixes to the copy_sc merge.
ChangeSet@1.797.72.5, 2002-11-21 22:00:31-05:00, jdike@uml.karaya.com
Applied the sigcontext changes in the skas code.
ChangeSet@1.797.72.4, 2002-11-21 21:38:56-05:00, jdike@uml.karaya.com
A number of small fixes for the uaccess merge.
ChangeSet@1.797.72.3, 2002-11-21 18:54:16-05:00, jdike@uml.karaya.com
Added the uaccess changes from the skas merge.
ChangeSet@1.797.72.2, 2002-11-21 17:16:25-05:00, jdike@uml.karaya.com
Resolved the conflict between the skas and get_config changes in
line.h.
ChangeSet@1.797.80.17, 2002-11-21 14:59:43-05:00, jdike@uml.karaya.com
Added skas/mem_user.c and tt/gdb.c
ChangeSet@1.797.80.16, 2002-11-21 14:48:11-05:00, jdike@uml.karaya.com
Added a bunch of C files under arch/um/kernel/skas and
arch/um/kernel/tt.
ChangeSet@1.797.80.15, 2002-11-21 14:31:45-05:00, jdike@uml.karaya.com
Added a batch of files under arch/um/kernel/skas.
ChangeSet@1.797.80.14, 2002-11-21 14:09:26-05:00, jdike@uml.karaya.com
Added arch/um/include/mode_kern.h
ChangeSet@1.797.71.3, 2002-11-21 14:05:13-05:00, jdike@uml.karaya.com
Changed the config to pull in zlib.
ChangeSet@1.797.80.13, 2002-11-21 13:23:40-05:00, jdike@uml.karaya.com
Added the mode mmu.h and mode.h headers.
ChangeSet@1.797.80.12, 2002-11-21 13:15:09-05:00, jdike@uml.karaya.com
Added mode.h, mk_constants_kern.c, mk_constants_user.c, and um_mmu.h
ChangeSet@1.797.80.11, 2002-11-21 12:58:41-05:00, jdike@uml.karaya.com
Added ptrace-skas.h and ptrace-tt.h.
ChangeSet@1.797.80.10, 2002-11-21 12:52:36-05:00, jdike@uml.karaya.com
Added arch/um/kernel/skas/util/*, which I missed somehow.
ChangeSet@1.797.80.9, 2002-11-20 23:04:22-05:00, jdike@uml.karaya.com
Merged most of the rest of the skas changes.
ChangeSet@1.797.80.8, 2002-11-19 14:54:08-05:00, jdike@uml.karaya.com
Declared mode_tt in user_util.h.
ChangeSet@1.797.80.7, 2002-11-19 14:53:18-05:00, jdike@uml.karaya.com
Merged the skas exec reorg.
ChangeSet@1.797.80.6, 2002-11-19 13:47:41-05:00, jdike@uml.karaya.com
Fixed a couple of buglets in the signal frame merge.
ChangeSet@1.797.80.5, 2002-11-19 00:54:26-05:00, jdike@uml.karaya.com
Merged the signal frame cleanups and fixes from 2.4.
ChangeSet@1.797.80.4, 2002-11-19 00:47:18-05:00, jdike@uml.karaya.com
Fixes to the last merge.
ChangeSet@1.797.80.3, 2002-11-19 00:13:26-05:00, jdike@uml.karaya.com
Merged the os_kill_process and the driver from_user changes from
the 2.4 pool.
Also merged some other cleanups.
ChangeSet@1.797.80.2, 2002-11-18 23:28:32-05:00, jdike@uml.karaya.com
Fixed the Makefiles so that the ptproxy move from arch/um/ptproxy
to arch/um/kernel/tt/ptproxy works.
ChangeSet@1.797.80.1, 2002-11-18 22:47:18-05:00, jdike@uml.karaya.com
Moved the ptproxy code from arch/um/ptproxy to
arch/um/kernel/tt/ptproxy.
ChangeSet@1.797.71.2, 2002-11-18 20:03:13-05:00, jdike@uml.karaya.com
A few more fixes to get 2.4.48 to boot.
ChangeSet@1.797.72.1, 2002-11-18 15:57:40-05:00, jdike@uml.karaya.com
Merged the get_config changes from 2.4.
ChangeSet@1.797.71.1, 2002-11-18 15:57:00-05:00, jdike@uml.karaya.com
Updated to 2.5.48
next reply other threads:[~2002-12-28 15:39 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-12-28 15:47 Jeff Dike [this message]
2002-12-28 19:34 ` [PATCH] Allow UML kernel to run in a separate host address space Linus Torvalds
2002-12-28 20:24 ` Jeff Dike
2002-12-28 20:50 ` Linus Torvalds
2002-12-28 23:37 ` Jeff Dike
2002-12-29 4:13 ` Linus Torvalds
2002-12-29 5:12 ` Jeff Dike
2002-12-29 0:59 ` Daniel Jacobowitz
2002-12-29 4:03 ` Jeremy Fitzhardinge
2002-12-29 5:12 ` Jeff Dike
-- strict thread matches above, loose matches on Subject: below --
2002-12-17 23:24 Jeff Dike
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200212281547.KAA02128@ccure.karaya.com \
--to=jdike@karaya.com \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.