Menu

#10 Simplest needs

chroot
unread
nobody
None
0.1
2018-08-08
2018-08-07
cyg Simple
No

Simplest Needs

Stage 1

I'm trying to document the bare minimum for a user to be able to do an intial logon. The below table gives a structure of the smallest possibilities and what can be done with those. I will assume the base folder is named chroot.

The stage 1 files are the smallest set to be able to execute a shell login. Stage 1 will also contain a method to pull stage 2 files from an internet scheme. Alternatively a developer could simply use a local repository test his recently prepared package to determine if it requires other dependencies to function.

I should state that all of the executables for all stages are statically linked with their libraries so that the only required .DLL is the cygwin1.dll. This reduces the footprint of required files considerably. I'm also finding the statically linked executable to be some what faster but that may be my imagination.

Stage 2

The stage 2 set will contain common files for typical shell operation such as coreutils, sed or grep to name just a few as well as the pacman binary to be able to install other stages.

Stage 3

The stage 3 set will contain a typical development environment. Stage 3 will allow the development of packages and also provide the means to create new roots from deploying another stage 1 set.

List of files per stage

chroot/ list stage source
package
bin/ 1 DIRECTORY
bin/ cygwin1.dll 1 cygwin
dash.exe 1 dash
find.exe 1 coreutils
hostname.exe 1 coreutils
id.exe 1 coreutils
install.exe 1 coreutils
locale.exe 1 cygwin
ls.exe 1 coreutils
mkdir.exe 1 coreutils
pwd.exe 1 coreutils
etc/ 1 DIRECTORY
etc/ fstab 1 MANUALLY KEYED
profile 1 MANUALLY KEYED
skel/ 1 DIRECTORY
etc/skel/ .profile 1 MANUALLY KEYED
tmp/ 1 DIRECTORY
home/ 1 DIRECTORY
usr/ 1 DIRECTORY
usr/ share/ 1 DIRECTORY
lib/ 1 DIRECTORY
usr/share/ terminfo/ 1 DIRECTORY
usr/share/terminfo/ 63/ 1 DIRECTORY
usr/share/terminfo/63/ cygwin 1 ncurses

Related

Tickets: #9

Discussion

  • cyg Simple

    cyg Simple - 2018-08-08
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -3,6 +3,8 @@
     I'm trying to document the bare minimum for a user to be able to do an intial logon.  The below table gives a structure of the smallest possibilities and what can be done with those.  I will assume the base folder is named chroot.
    
     The stage 1 files are the smallest set to be able to execute a shell login.  Stage 1 will also contain a method to pull stage 2 files from an internet scheme.  Alternatively a developer could simply use  a local repository test his recently prepared package to determine if it requires other dependencies to function.
    +
    +I should state that all of the executables for all stages are statically linked with their libraries so that the only required .DLL is the cygwin1.dll.  This reduces the footprint of required  files considerably.  I'm also finding the statically linked executable to be some what faster but that may be my imagination.
    
     ## Stage 2 ##
     The stage 2 set will contain common files for typical shell operation such as coreutils, sed or grep to name just a few as well as the pacman binary to be able to install other stages.
    
     
  • cyg Simple

    cyg Simple - 2018-08-08
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -13,27 +13,30 @@
     The stage 3 set will contain a typical development environment.   Stage 3 will allow the development of packages and also provide the means to create new roots from deploying another stage 1  set.
    
     ## List  of files per stage ##
    -chroot/ | list | stage
    ---- | --- | ---
    -bin/ | cygwin1.dll | 1
    -| dash.exe | 1
    -| find.exe | 1
    -| hostname.exe | 1
    -| id.exe | 1
    -| install.exe | 1
    -| locale.exe | 1
    -| ls.exe | 1
    -| mkdir.exe | 1
    -| pwd.exe | 1
    -etc/ | fstab | 1
    -| profile | 1
    -| skel/ | 1
    -etc/skel/ | .profile | 1
    -tmp/ | | 1
    -home/ | | 1
    -usr/ | share/ | 1
    -| lib/ | 1
    -usr/share/ | terminfo/ | 1
    -usr/share/terminfo/ | 63/ | 1
    -usr/share/terminfo/63/ | cygwin | 1
    +chroot/ | list | stage | source<br>package
    +--- | --- | --- | ---
    +bin/ | | 1 | DIRECTORY
    +bin/ | cygwin1.dll | 1 | cygwin
    +| dash.exe | 1 | dash
    +| find.exe | 1 | coreutils
    +| hostname.exe | 1 | coreutils
    +| id.exe | 1 | coreutils
    +| install.exe | 1 | coreutils
    +| locale.exe | 1 | cygwin
    +| ls.exe | 1 | coreutils
    +| mkdir.exe | 1 | coreutils
    +| pwd.exe | 1 | coreutils
    +etc/ | | 1 | DIRECTORY
    +etc/ | fstab | 1 | MANUALLY KEYED
    +| profile | 1 | MANUALLY KEYED
    +| skel/ | 1 | DIRECTORY
    +etc/skel/ | .profile | 1 | MANUALLY KEYED
    +tmp/ | | 1 | DIRECTORY
    +home/ | | 1 | DIRECTORY
    +usr/ | | 1 | DIRECTORY
    +usr/ | share/ | 1 | DIRECTORY
    +| lib/ | 1 | DIRECTORY
    +usr/share/ | terminfo/ | 1 | DIRECTORY
    +usr/share/terminfo/ | 63/ | 1 | DIRECTORY
    +usr/share/terminfo/63/ | cygwin | 1 | ncurses
    
     

Log in to post a comment.

MongoDB Logo MongoDB