From 0ee0b0359e9fd28a4e86ce6da6bf8b1d3e186c49 Mon Sep 17 00:00:00 2001 From: manojampalam Date: Wed, 24 Feb 2016 12:07:40 -0800 Subject: [PATCH] Created .. (markdown) --- ...md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 ...md diff --git a/...md b/...md new file mode 100644 index 0000000..ffe6d90 --- /dev/null +++ b/...md @@ -0,0 +1,13 @@ +Intro +----- +[OpenSSH](https://en.wikipedia.org/wiki/OpenSSH), part of OpenBSD operating system, is a bunch of utility programs based on [SSH](https://en.wikipedia.org/wiki/Secure_Shell) protocol. These include server and client executables as well as utilities to create and manage cryptographic keys. [Portable OpenSSH](http://www.openssh.com/portable.html) is derived from the OpenBSD project and ported to support a wide variety of Unix flavors. The goal of this project is to extend support to Windows family of operating systems and be able to do this in a common repository without needing a Windows specific fork. + +Relevant design details in the context of this project - +OpenSSH and the portable version are single threaded applications, interacting with IO using POSIX based [File Descriptors](https://en.wikipedia.org/wiki/File_descriptor) and multiplexing IO operations using [select] (https://en.wikipedia.org/wiki/Select_%28Unix%29) calls. Session isolation and [privilege separation](http://www.citi.umich.edu/u/provos/ssh/privsep.html) are implemented using the standard UNIX routines - [fork](https://en.wikipedia.org/wiki/Fork_(system_call)), [setuid](https://en.wikipedia.org/wiki/Setuid), [chroot](https://en.wikipedia.org/wiki/Chroot) routines. IPC is carried over [UNIX domain sockets](https://en.wikipedia.org/wiki/Unix_domain_socket). + + +Goals +----- +As stated earlier, the main goal is side by side Windows support in the portable version of OpenSSH. The project is currently being worked on a fork of OpenSSH7.1p1 - here after, called forked code and main code respectively. The plan is get this fork to a state that could integrate into main, sometime around May-June this year, with minimum impact to main sources. Obviously, we would want to reuse the main code as much as possible, whilst respecting the fundamental differences between Unix and Windows operating systems. Following are the guidelines being adhered to for this milestone: +- To prevent any regressions in main and to enable easier review of the changes in fork, there will be no code moving/refactoring in +