S Windows verze 10 přinesl Microsoft každému uživateli do té doby nevídanou možnost zkoušet vývojové verze operačního systému ještě před jejich uvedením ve stabilním stavu. V momentálně posledním sestavení 14316 jsme se dočkali ještě před několika lety takřka nemožného. Tím je integrace GNU/Linux přímo v operačním systému. Tato podpora nicméně není zapnuta automaticky, ale je nutné ji aktivovat jako vlastnost systému. Na tomto duálním ekosystému spolupracuje Microsoft s vydavatelem nejrozšířenější linuxové distribuce Ubuntu, společností Canonical.
O tom, co nám může přítomnost Ubuntu ve Windows 10 nabídnout lze vést rozsáhlé debaty. Můžeme si ale vzít za příklad projekt Wine, díky kterému lze spouštět aplikace Windows v prostředí linuxu a jiných operačních systémech. Architektura Wine je ale rozdílná.
Stav integrace
Momentálně je k dispozici Ubuntu 14.04.4 LTS (jessie/sid). Prvotní instalace zabírá cca 530 MB diskového prostoru a je k dispozici pouze pro uživatele, který tuto instalaci provedl. Tzn. každý uživatel, který instalaci provádí, má vlastní oddělený systém od ostatních, tedy vlastní linuxový obraz.
Do systému se nikterak nepřihlašuje, přístup je možný spuštěním příkazu bash
. Ve výchozím stavu pracuje uživatel pod unixovým uživatelským účtem root
. Díky tomu, a dalším nuancím, lze odvodit, že je Ubuntu pod Windows je určeno zejména pro vývoj linuxových aplikací a spouštění binárních souborů.
Pokud nás zajímá jedna z nejdůležitějších součástí systému, linuxové jádro, dostaneme se k verzi 3.4.0:
1 2 3 4 5 |
root@localhost:/# cat /proc/version Linux version 3.4.0-Microsoft (Microsoft@Microsoft.com) (gcc version 4.7 (GCC) ) #1 SMP PREEMPT Wed Dec 31 14:42:53 PST 2014 root@localhost:/# uname -a Linux localhost 3.4.0+ #1 PREEMPT Thu Aug 1 17:06:05 CST 2013 x86_64 x86_64 x86_64 GNU/Linux |
Jak výše uvedený výstup ukazuje, můžeme spouštět binární soubory přeložené pro architekturu x86_64.
K dispozici je na mém systému 1 GB RAM (pravděpodobně bude možné tuto velikost nastavit – OS Windows může alokovat až cca 8 GB):
1 2 3 4 5 |
root@localhost:/# free -h total used free shared buffers cached Mem: 1.0G 342M 664M 0B 0B 0B -/+ buffers/cache: 342M 664M Swap: 0B 0B 0B |
Na systém, kde běží pouze init
a bash
, je spotřeba paměti (342 MB) docela velká.
O obecném stavu se můžeme přesvědčit výpisem z několika souborových systémů:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 |
root@localhost:~# ls -lR /proc/ /proc/: total 0 dr-xr-xr-x 1 root root 0 Apr 19 09:19 1 dr-xr-xr-x 1 root root 0 Apr 19 09:19 2 dr-xr-xr-x 1 root root 0 Apr 19 09:22 20 -r--r--r-- 1 root root 0 Apr 19 09:18 cmdline -r--r--r-- 1 root root 0 Apr 19 09:18 cpuinfo -r--r--r-- 1 root root 0 Apr 19 09:18 filesystems -r--r--r-- 1 root root 0 Apr 19 09:18 interrupts -r--r--r-- 1 root root 0 Apr 19 09:18 meminfo lrwxrwxrwx 1 root root 0 Apr 19 09:18 mounts -> self/mounts lrwxrwxrwx 1 root root 0 Apr 19 09:18 net -> /proc/self/net lrwxrwxrwx 1 root root 0 Apr 19 09:18 self -> /proc/20 -r--r--r-- 1 root root 0 Apr 19 09:18 stat dr-xr-xr-x 1 root root 0 Apr 19 09:18 sys -r--r--r-- 1 root root 0 Apr 19 09:18 uptime -r--r--r-- 1 root root 0 Apr 19 09:18 version /proc/1: total 0 dr-x------ 1 root root 0 Apr 19 09:19 attr -r-------- 1 root root 0 Apr 19 09:19 auxv -r--r--r-- 1 root root 0 Apr 19 09:19 cmdline -rw-r--r-- 1 root root 0 Apr 19 09:19 comm lrwxrwxrwx 1 root root 0 Apr 19 09:19 cwd -> / lrwxrwxrwx 1 root root 0 Apr 19 09:19 exe -> /init dr-x------ 1 root root 0 Apr 19 09:19 fd -r--r--r-- 1 root root 0 Apr 19 09:19 limits -r--r--r-- 1 root root 0 Apr 19 09:19 maps -r--r--r-- 1 root root 0 Apr 19 09:19 mounts dr-xr-xr-x 1 root root 0 Apr 19 09:19 net -rw-r--r-- 1 root root 0 Apr 19 09:19 oom_adj -r--r--r-- 1 root root 0 Apr 19 09:19 schedstat -r--r--r-- 1 root root 0 Apr 19 09:19 smaps -r--r--r-- 1 root root 0 Apr 19 09:19 stat -r--r--r-- 1 root root 0 Apr 19 09:19 status dr-xr-xr-x 1 root root 0 Apr 19 09:19 task /proc/1/attr: total 0 -r--r--r-- 1 root root 0 Apr 19 09:22 current /proc/1/fd: total 0 lrwx------ 1 root root 0 Apr 19 09:22 0 -> /unknown lrwx------ 1 root root 0 Apr 19 09:22 1 -> /unknown lrwx------ 1 root root 0 Apr 19 09:22 2 -> /unknown l-wx------ 1 root root 0 Apr 19 09:22 3 -> /unknown lrwx------ 1 root root 0 Apr 19 09:22 4 -> /unknown lrwx------ 1 root root 0 Apr 19 09:22 5 -> /unknown /proc/1/net: total 0 -r--r--r-- 1 root root 0 Apr 19 09:22 if_inet6 -r--r--r-- 1 root root 0 Apr 19 09:22 netlink -r--r--r-- 1 root root 0 Apr 19 09:22 tcp -r--r--r-- 1 root root 0 Apr 19 09:22 tcp6 -r--r--r-- 1 root root 0 Apr 19 09:22 udp -r--r--r-- 1 root root 0 Apr 19 09:22 udp6 dr-xr-xr-x 1 root root 0 Apr 19 09:22 xt_qtaguid /proc/1/net/xt_qtaguid: total 0 --w--w--w- 1 root root 0 Apr 19 09:22 ctrl -r--r--r-- 1 root root 0 Apr 19 09:22 iface_stat_all -r--r--r-- 1 root root 0 Apr 19 09:22 iface_stat_fmt -r--r--r-- 1 root root 0 Apr 19 09:22 stats /proc/1/task: total 0 dr-xr-xr-x 1 root root 0 Apr 19 09:22 1 /proc/1/task/1: total 0 dr-x------ 1 root root 0 Apr 19 09:22 attr -r-------- 1 root root 0 Apr 19 09:22 auxv -r--r--r-- 1 root root 0 Apr 19 09:22 cmdline -rw-r--r-- 1 root root 0 Apr 19 09:22 comm lrwxrwxrwx 1 root root 0 Apr 19 09:22 cwd -> / lrwxrwxrwx 1 root root 0 Apr 19 09:22 exe -> /init dr-x------ 1 root root 0 Apr 19 09:22 fd -r--r--r-- 1 root root 0 Apr 19 09:22 limits -r--r--r-- 1 root root 0 Apr 19 09:22 maps -r--r--r-- 1 root root 0 Apr 19 09:22 mounts -rw-r--r-- 1 root root 0 Apr 19 09:22 oom_adj -r--r--r-- 1 root root 0 Apr 19 09:22 schedstat -r--r--r-- 1 root root 0 Apr 19 09:22 smaps -r--r--r-- 1 root root 0 Apr 19 09:22 stat -r--r--r-- 1 root root 0 Apr 19 09:22 status /proc/1/task/1/attr: total 0 -r--r--r-- 1 root root 0 Apr 19 09:22 current /proc/1/task/1/fd: total 0 lrwx------ 1 root root 0 Apr 19 09:22 0 -> /unknown lrwx------ 1 root root 0 Apr 19 09:22 1 -> /unknown lrwx------ 1 root root 0 Apr 19 09:22 2 -> /unknown l-wx------ 1 root root 0 Apr 19 09:22 3 -> /unknown lrwx------ 1 root root 0 Apr 19 09:22 4 -> /unknown lrwx------ 1 root root 0 Apr 19 09:22 5 -> /unknown /proc/2: total 0 dr-x------ 1 root root 0 Apr 19 09:19 attr -r-------- 1 root root 0 Apr 19 09:19 auxv -r--r--r-- 1 root root 0 Apr 19 09:19 cmdline -rw-r--r-- 1 root root 0 Apr 19 09:19 comm lrwxrwxrwx 1 root root 0 Apr 19 09:19 cwd -> /root lrwxrwxrwx 1 root root 0 Apr 19 09:19 exe -> /bin/bash dr-x------ 1 root root 0 Apr 19 09:19 fd -r--r--r-- 1 root root 0 Apr 19 09:19 limits -r--r--r-- 1 root root 0 Apr 19 09:19 maps -r--r--r-- 1 root root 0 Apr 19 09:19 mounts dr-xr-xr-x 1 root root 0 Apr 19 09:19 net -rw-r--r-- 1 root root 0 Apr 19 09:19 oom_adj -r--r--r-- 1 root root 0 Apr 19 09:19 schedstat -r--r--r-- 1 root root 0 Apr 19 09:19 smaps -r--r--r-- 1 root root 0 Apr 19 09:19 stat -r--r--r-- 1 root root 0 Apr 19 09:19 status dr-xr-xr-x 1 root root 0 Apr 19 09:19 task /proc/2/attr: total 0 -r--r--r-- 1 root root 0 Apr 19 09:22 current /proc/2/fd: total 0 lrwx------ 1 root root 0 Apr 19 09:22 0 -> /WINDOWS/console lrwx------ 1 root root 0 Apr 19 09:22 1 -> /WINDOWS/console lrwx------ 1 root root 0 Apr 19 09:22 2 -> /WINDOWS/console lrwx------ 1 root root 0 Apr 19 09:22 255 -> /WINDOWS/console /proc/2/net: total 0 -r--r--r-- 1 root root 0 Apr 19 09:22 if_inet6 -r--r--r-- 1 root root 0 Apr 19 09:22 netlink -r--r--r-- 1 root root 0 Apr 19 09:22 tcp -r--r--r-- 1 root root 0 Apr 19 09:22 tcp6 -r--r--r-- 1 root root 0 Apr 19 09:22 udp -r--r--r-- 1 root root 0 Apr 19 09:22 udp6 dr-xr-xr-x 1 root root 0 Apr 19 09:22 xt_qtaguid /proc/2/net/xt_qtaguid: total 0 --w--w--w- 1 root root 0 Apr 19 09:22 ctrl -r--r--r-- 1 root root 0 Apr 19 09:22 iface_stat_all -r--r--r-- 1 root root 0 Apr 19 09:22 iface_stat_fmt -r--r--r-- 1 root root 0 Apr 19 09:22 stats /proc/2/task: total 0 dr-xr-xr-x 1 root root 0 Apr 19 09:22 2 /proc/2/task/2: total 0 dr-x------ 1 root root 0 Apr 19 09:22 attr -r-------- 1 root root 0 Apr 19 09:22 auxv -r--r--r-- 1 root root 0 Apr 19 09:22 cmdline -rw-r--r-- 1 root root 0 Apr 19 09:22 comm lrwxrwxrwx 1 root root 0 Apr 19 09:22 cwd -> /root lrwxrwxrwx 1 root root 0 Apr 19 09:22 exe -> /bin/bash dr-x------ 1 root root 0 Apr 19 09:22 fd -r--r--r-- 1 root root 0 Apr 19 09:22 limits -r--r--r-- 1 root root 0 Apr 19 09:22 maps -r--r--r-- 1 root root 0 Apr 19 09:22 mounts -rw-r--r-- 1 root root 0 Apr 19 09:22 oom_adj -r--r--r-- 1 root root 0 Apr 19 09:22 schedstat -r--r--r-- 1 root root 0 Apr 19 09:22 smaps -r--r--r-- 1 root root 0 Apr 19 09:22 stat -r--r--r-- 1 root root 0 Apr 19 09:22 status /proc/2/task/2/attr: total 0 -r--r--r-- 1 root root 0 Apr 19 09:22 current /proc/2/task/2/fd: total 0 lrwx------ 1 root root 0 Apr 19 09:22 0 -> /WINDOWS/console lrwx------ 1 root root 0 Apr 19 09:22 1 -> /WINDOWS/console lrwx------ 1 root root 0 Apr 19 09:22 2 -> /WINDOWS/console lrwx------ 1 root root 0 Apr 19 09:22 255 -> /WINDOWS/console /proc/20: total 0 dr-x------ 1 root root 0 Apr 19 09:22 attr -r-------- 1 root root 0 Apr 19 09:22 auxv -r--r--r-- 1 root root 0 Apr 19 09:22 cmdline -rw-r--r-- 1 root root 0 Apr 19 09:22 comm lrwxrwxrwx 1 root root 0 Apr 19 09:22 cwd -> /root lrwxrwxrwx 1 root root 0 Apr 19 09:22 exe -> /bin/ls dr-x------ 1 root root 0 Apr 19 09:22 fd -r--r--r-- 1 root root 0 Apr 19 09:22 limits -r--r--r-- 1 root root 0 Apr 19 09:22 maps -r--r--r-- 1 root root 0 Apr 19 09:22 mounts dr-xr-xr-x 1 root root 0 Apr 19 09:22 net -rw-r--r-- 1 root root 0 Apr 19 09:22 oom_adj -r--r--r-- 1 root root 0 Apr 19 09:22 schedstat -r--r--r-- 1 root root 0 Apr 19 09:22 smaps -r--r--r-- 1 root root 0 Apr 19 09:22 stat -r--r--r-- 1 root root 0 Apr 19 09:22 status dr-xr-xr-x 1 root root 0 Apr 19 09:22 task /proc/20/attr: total 0 -r--r--r-- 1 root root 0 Apr 19 09:22 current /proc/20/fd: total 0 lrwx------ 1 root root 0 Apr 19 09:22 0 -> /WINDOWS/console lrwx------ 1 root root 0 Apr 19 09:22 1 -> /WINDOWS/console lrwx------ 1 root root 0 Apr 19 09:22 2 -> /WINDOWS/console lr-x------ 1 root root 0 Apr 19 09:22 3 -> /proc/20/fd /proc/20/net: total 0 -r--r--r-- 1 root root 0 Apr 19 09:22 if_inet6 -r--r--r-- 1 root root 0 Apr 19 09:22 netlink -r--r--r-- 1 root root 0 Apr 19 09:22 tcp -r--r--r-- 1 root root 0 Apr 19 09:22 tcp6 -r--r--r-- 1 root root 0 Apr 19 09:22 udp -r--r--r-- 1 root root 0 Apr 19 09:22 udp6 dr-xr-xr-x 1 root root 0 Apr 19 09:22 xt_qtaguid /proc/20/net/xt_qtaguid: total 0 --w--w--w- 1 root root 0 Apr 19 09:22 ctrl -r--r--r-- 1 root root 0 Apr 19 09:22 iface_stat_all -r--r--r-- 1 root root 0 Apr 19 09:22 iface_stat_fmt -r--r--r-- 1 root root 0 Apr 19 09:22 stats /proc/20/task: total 0 dr-xr-xr-x 1 root root 0 Apr 19 09:22 20 /proc/20/task/20: total 0 dr-x------ 1 root root 0 Apr 19 09:22 attr -r-------- 1 root root 0 Apr 19 09:22 auxv -r--r--r-- 1 root root 0 Apr 19 09:22 cmdline -rw-r--r-- 1 root root 0 Apr 19 09:22 comm lrwxrwxrwx 1 root root 0 Apr 19 09:22 cwd -> /root lrwxrwxrwx 1 root root 0 Apr 19 09:22 exe -> /bin/ls dr-x------ 1 root root 0 Apr 19 09:22 fd -r--r--r-- 1 root root 0 Apr 19 09:22 limits -r--r--r-- 1 root root 0 Apr 19 09:22 maps -r--r--r-- 1 root root 0 Apr 19 09:22 mounts -rw-r--r-- 1 root root 0 Apr 19 09:22 oom_adj -r--r--r-- 1 root root 0 Apr 19 09:22 schedstat -r--r--r-- 1 root root 0 Apr 19 09:22 smaps -r--r--r-- 1 root root 0 Apr 19 09:22 stat -r--r--r-- 1 root root 0 Apr 19 09:22 status /proc/20/task/20/attr: total 0 -r--r--r-- 1 root root 0 Apr 19 09:22 current /proc/20/task/20/fd: total 0 lrwx------ 1 root root 0 Apr 19 09:22 0 -> /WINDOWS/console lrwx------ 1 root root 0 Apr 19 09:22 1 -> /WINDOWS/console lrwx------ 1 root root 0 Apr 19 09:22 2 -> /WINDOWS/console lr-x------ 1 root root 0 Apr 19 09:22 3 -> /proc/20/task/20/fd /proc/sys: total 0 dr-xr-xr-x 1 root root 0 Apr 19 09:19 kernel /proc/sys/kernel: total 0 -r--r--r-- 1 root root 0 Apr 19 09:19 ngroups_max -r--r--r-- 1 root root 0 Apr 19 09:19 osrelease -r--r--r-- 1 root root 0 Apr 19 09:19 ostype -rw-r--r-- 1 root root 0 Apr 19 09:19 pid_max |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
root@localhost:~# ls -lR /dev /dev: ls: cannot access /dev/tty0: Invalid argument ls: cannot access /dev/adss: Operation not permitted total 3 ?????????? ? ? ? ? ? adss drwxr-xr-x 2 root root 0 Apr 19 09:24 block -rwxr--r-- 2 1000 1003 0 Apr 19 09:24 fb0 drwxr-xr-x 2 root root 0 Apr 19 09:24 input crw------- 1 root 1007 0, 0 Apr 19 09:24 kmsg ?--------- 0 root root 0 Jan 1 1970 null crw-rw-rw- 1 root tty 5, 2 Apr 19 09:24 ptmx drwxr-xr-x 2 root root 0 Apr 19 09:24 pts crw-rw-rw- 1 root root 1, 8 Apr 19 09:24 random lrwxrwxrwx 2 root root 0 Apr 19 09:24 shm -> /run/shm crw--w---- 1 1000 tty 5, 0 Apr 19 09:24 tty ?????????? ? ? ? ? ? tty0 crw-rw-rw- 1 root root 1, 9 Apr 19 09:24 urandom crw-rw-rw- 1 root root 0, 0 Apr 19 09:24 zero ls: /dev/block: not listing already-listed directory ls: /dev/input: not listing already-listed directory ls: /dev/pts: not listing already-listed directory |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 |
root@localhost:~# ls -lR /sys /sys: total 0 drwxr-xr-x 1 root root 0 Apr 19 09:19 block drwxr-xr-x 1 root root 0 Apr 19 09:19 bus drwxr-xr-x 1 root root 0 Apr 19 09:19 class drwxr-xr-x 1 root root 0 Apr 19 09:19 dev drwxr-xr-x 1 root root 0 Apr 19 09:19 devices drwxr-xr-x 1 root root 0 Apr 19 09:19 firmware drwxr-xr-x 1 root root 0 Apr 19 09:19 fs drwxr-xr-x 1 root root 0 Apr 19 09:19 kernel drwxr-xr-x 1 root root 0 Apr 19 09:19 module drwxr-xr-x 1 root root 0 Apr 19 09:19 power /sys/block: total 0 /sys/bus: total 0 /sys/class: total 0 drwxr-xr-x 1 root root 0 Apr 19 09:26 backlight drwxr-xr-x 1 root root 0 Apr 19 09:26 net drwxr-xr-x 1 root root 0 Apr 19 09:26 power_supply drwxr-xr-x 1 root root 0 Apr 19 09:26 switch drwxr-xr-x 1 root root 0 Apr 19 09:26 timed_output /sys/class/backlight: total 0 /sys/class/net: total 0 lrwxrwxrwx 1 root root 0 Apr 19 09:26 eth0 -> ../../devices/virtual/net/eth0 lrwxrwxrwx 1 root root 0 Apr 19 09:26 eth1 -> ../../devices/virtual/net/eth1 lrwxrwxrwx 1 root root 0 Apr 19 09:26 lo -> ../../devices/virtual/net/lo lrwxrwxrwx 1 root root 0 Apr 19 09:26 und0 -> ../../devices/virtual/net/und0 lrwxrwxrwx 1 root root 0 Apr 19 09:26 und1 -> ../../devices/virtual/net/und1 lrwxrwxrwx 1 root root 0 Apr 19 09:26 wifi0 -> ../../devices/virtual/net/wifi0 lrwxrwxrwx 1 root root 0 Apr 19 09:26 wifi1 -> ../../devices/virtual/net/wifi1 /sys/class/power_supply: total 0 drwxr-xr-x 1 root root 0 Apr 19 09:26 ac drwxr-xr-x 1 root root 0 Apr 19 09:26 battery drwxr-xr-x 1 root root 0 Apr 19 09:26 usb /sys/class/power_supply/ac: total 0 -r--r--r-- 1 root root 0 Apr 19 09:26 online -r--r--r-- 1 root root 0 Apr 19 09:26 type /sys/class/power_supply/battery: total 0 -r--r--r-- 1 root root 0 Apr 19 09:26 capacity -r--r--r-- 1 root root 0 Apr 19 09:26 charge_counter -r--r--r-- 1 root root 0 Apr 19 09:26 current_now -r--r--r-- 1 root root 0 Apr 19 09:26 health -r--r--r-- 1 root root 0 Apr 19 09:26 present -r--r--r-- 1 root root 0 Apr 19 09:26 status -r--r--r-- 1 root root 0 Apr 19 09:26 technology -r--r--r-- 1 root root 0 Apr 19 09:26 temp -r--r--r-- 1 root root 0 Apr 19 09:26 type -r--r--r-- 1 root root 0 Apr 19 09:26 voltage_now /sys/class/power_supply/usb: total 0 -r--r--r-- 1 root root 0 Apr 19 09:26 online -r--r--r-- 1 root root 0 Apr 19 09:26 type /sys/class/switch: total 0 /sys/class/timed_output: total 0 /sys/dev: total 0 /sys/devices: total 0 drwxr-xr-x 1 root root 0 Apr 19 09:19 system drwxr-xr-x 1 root root 0 Apr 19 09:19 virtual /sys/devices/system: total 0 drwxr-xr-x 1 root root 0 Apr 19 09:19 cpu /sys/devices/system/cpu: total 0 drwxr-xr-x 1 root root 0 Apr 19 09:19 cpu0 drwxr-xr-x 1 root root 0 Apr 19 09:19 cpu1 drwxr-xr-x 1 root root 0 Apr 19 09:19 cpu2 drwxr-xr-x 1 root root 0 Apr 19 09:19 cpu3 -r--r--r-- 1 root root 0 Apr 19 09:19 online -r--r--r-- 1 root root 0 Apr 19 09:19 possible -r--r--r-- 1 root root 0 Apr 19 09:19 present /sys/devices/system/cpu/cpu0: total 0 drwxr-xr-x 1 root root 0 Apr 19 09:26 cpufreq drwxr-xr-x 1 root root 0 Apr 19 09:26 topology /sys/devices/system/cpu/cpu0/cpufreq: total 0 -r--r--r-- 1 root root 0 Apr 19 09:26 cpuinfo_max_freq -rw-rw---- 1 root root 0 Apr 19 09:26 scaling_max_freq /sys/devices/system/cpu/cpu0/topology: total 0 -r--r--r-- 1 root root 0 Apr 19 09:26 core_id -r--r--r-- 1 root root 0 Apr 19 09:26 core_siblings -r--r--r-- 1 root root 0 Apr 19 09:26 core_siblings_list -r--r--r-- 1 root root 0 Apr 19 09:26 physical_package_id -r--r--r-- 1 root root 0 Apr 19 09:26 thread_siblings -r--r--r-- 1 root root 0 Apr 19 09:26 thread_siblings_list /sys/devices/system/cpu/cpu1: total 0 drwxr-xr-x 1 root root 0 Apr 19 09:26 cpufreq drwxr-xr-x 1 root root 0 Apr 19 09:26 topology /sys/devices/system/cpu/cpu1/cpufreq: total 0 -r--r--r-- 1 root root 0 Apr 19 09:26 cpuinfo_max_freq -rw-rw---- 1 root root 0 Apr 19 09:26 scaling_max_freq /sys/devices/system/cpu/cpu1/topology: total 0 -r--r--r-- 1 root root 0 Apr 19 09:26 core_id -r--r--r-- 1 root root 0 Apr 19 09:26 core_siblings -r--r--r-- 1 root root 0 Apr 19 09:26 core_siblings_list -r--r--r-- 1 root root 0 Apr 19 09:26 physical_package_id -r--r--r-- 1 root root 0 Apr 19 09:26 thread_siblings -r--r--r-- 1 root root 0 Apr 19 09:26 thread_siblings_list /sys/devices/system/cpu/cpu2: total 0 drwxr-xr-x 1 root root 0 Apr 19 09:26 cpufreq drwxr-xr-x 1 root root 0 Apr 19 09:26 topology /sys/devices/system/cpu/cpu2/cpufreq: total 0 -r--r--r-- 1 root root 0 Apr 19 09:26 cpuinfo_max_freq -rw-rw---- 1 root root 0 Apr 19 09:26 scaling_max_freq /sys/devices/system/cpu/cpu2/topology: total 0 -r--r--r-- 1 root root 0 Apr 19 09:26 core_id -r--r--r-- 1 root root 0 Apr 19 09:26 core_siblings -r--r--r-- 1 root root 0 Apr 19 09:26 core_siblings_list -r--r--r-- 1 root root 0 Apr 19 09:26 physical_package_id -r--r--r-- 1 root root 0 Apr 19 09:26 thread_siblings -r--r--r-- 1 root root 0 Apr 19 09:26 thread_siblings_list /sys/devices/system/cpu/cpu3: total 0 drwxr-xr-x 1 root root 0 Apr 19 09:26 cpufreq drwxr-xr-x 1 root root 0 Apr 19 09:26 topology /sys/devices/system/cpu/cpu3/cpufreq: total 0 -r--r--r-- 1 root root 0 Apr 19 09:26 cpuinfo_max_freq -rw-rw---- 1 root root 0 Apr 19 09:26 scaling_max_freq /sys/devices/system/cpu/cpu3/topology: total 0 -r--r--r-- 1 root root 0 Apr 19 09:26 core_id -r--r--r-- 1 root root 0 Apr 19 09:26 core_siblings -r--r--r-- 1 root root 0 Apr 19 09:26 core_siblings_list -r--r--r-- 1 root root 0 Apr 19 09:26 physical_package_id -r--r--r-- 1 root root 0 Apr 19 09:26 thread_siblings -r--r--r-- 1 root root 0 Apr 19 09:26 thread_siblings_list /sys/devices/virtual: total 0 drwxr-xr-x 1 root root 0 Apr 19 09:26 net /sys/devices/virtual/net: total 0 drwxr-xr-x 1 root root 0 Apr 19 09:26 eth0 drwxr-xr-x 1 root root 0 Apr 19 09:26 eth1 drwxr-xr-x 1 root root 0 Apr 19 09:26 lo drwxr-xr-x 1 root root 0 Apr 19 09:26 und0 drwxr-xr-x 1 root root 0 Apr 19 09:26 und1 drwxr-xr-x 1 root root 0 Apr 19 09:26 wifi0 drwxr-xr-x 1 root root 0 Apr 19 09:26 wifi1 /sys/devices/virtual/net/eth0: total 0 -r--r--r-- 1 root root 0 Apr 19 09:26 address -r--r--r-- 1 root root 0 Apr 19 09:26 flags -r--r--r-- 1 root root 0 Apr 19 09:26 ifindex -r--r--r-- 1 root root 0 Apr 19 09:26 mtu /sys/devices/virtual/net/eth1: total 0 -r--r--r-- 1 root root 0 Apr 19 09:26 address -r--r--r-- 1 root root 0 Apr 19 09:26 flags -r--r--r-- 1 root root 0 Apr 19 09:26 ifindex -r--r--r-- 1 root root 0 Apr 19 09:26 mtu /sys/devices/virtual/net/lo: total 0 -r--r--r-- 1 root root 0 Apr 19 09:26 address -r--r--r-- 1 root root 0 Apr 19 09:26 flags -r--r--r-- 1 root root 0 Apr 19 09:26 ifindex -r--r--r-- 1 root root 0 Apr 19 09:26 mtu /sys/devices/virtual/net/und0: total 0 -r--r--r-- 1 root root 0 Apr 19 09:26 address -r--r--r-- 1 root root 0 Apr 19 09:26 flags -r--r--r-- 1 root root 0 Apr 19 09:26 ifindex -r--r--r-- 1 root root 0 Apr 19 09:26 mtu /sys/devices/virtual/net/und1: total 0 -r--r--r-- 1 root root 0 Apr 19 09:26 address -r--r--r-- 1 root root 0 Apr 19 09:26 flags -r--r--r-- 1 root root 0 Apr 19 09:26 ifindex -r--r--r-- 1 root root 0 Apr 19 09:26 mtu /sys/devices/virtual/net/wifi0: total 0 -r--r--r-- 1 root root 0 Apr 19 09:26 address -r--r--r-- 1 root root 0 Apr 19 09:26 flags -r--r--r-- 1 root root 0 Apr 19 09:26 ifindex -r--r--r-- 1 root root 0 Apr 19 09:26 mtu /sys/devices/virtual/net/wifi1: total 0 -r--r--r-- 1 root root 0 Apr 19 09:26 address -r--r--r-- 1 root root 0 Apr 19 09:26 flags -r--r--r-- 1 root root 0 Apr 19 09:26 ifindex -r--r--r-- 1 root root 0 Apr 19 09:26 mtu /sys/firmware: total 0 /sys/fs: total 0 /sys/kernel: total 0 drwx------ 1 root root 0 Apr 19 09:26 debug drwxr-xr-x 1 root root 0 Apr 19 09:26 ipv4 drwxr-xr-x 1 root root 0 Apr 19 09:26 mm /sys/kernel/debug: total 0 drwxr-xr-x 1 root root 0 Apr 19 09:26 tracing -r--r--r-- 1 root root 0 Apr 19 09:26 wakeup_sources /sys/kernel/debug/tracing: total 0 --w--w---- 1 root root 0 Apr 19 09:26 trace_marker /sys/kernel/ipv4: total 0 -rw-r--r-- 1 root root 0 Apr 19 09:26 tcp_rmem_def -rw-r--r-- 1 root root 0 Apr 19 09:26 tcp_rmem_max -rw-r--r-- 1 root root 0 Apr 19 09:26 tcp_rmem_min -rw-r--r-- 1 root root 0 Apr 19 09:26 tcp_wmem_def -rw-r--r-- 1 root root 0 Apr 19 09:26 tcp_wmem_max -rw-r--r-- 1 root root 0 Apr 19 09:26 tcp_wmem_min /sys/kernel/mm: total 0 /sys/module: total 0 drwxr-xr-x 1 root root 0 Apr 19 09:26 lowmemorykiller /sys/module/lowmemorykiller: total 0 drwxr-xr-x 1 root root 0 Apr 19 09:26 parameters /sys/module/lowmemorykiller/parameters: total 0 -rw-rw-r-- 1 root root 0 Apr 19 09:26 adj -rw-rw-r-- 1 root root 0 Apr 19 09:26 minfree /sys/power: total 0 -rw-r--r-- 1 root root 0 Apr 19 09:26 autosleep -rw-rw---- 1 root root 0 Apr 19 09:26 wake_lock -rw-rw---- 1 root root 0 Apr 19 09:26 wake_unlock |
A můžeme pokračovat dále:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
root@localhost:~# ifconfig -a Warning: cannot open /proc/net/dev (No such file or directory). Limited output. root@localhost:~# root@localhost:~# df -h df: cannot read table of mounted file systems: No such file or directory root@localhost:~# root@localhost:~# lsmod libkmod: ERROR ../libkmod/libkmod-module.c:1619 kmod_module_new_from_loaded: could not open /proc/modules: No such file or directory Error: could not get list of modules: No such file or directory root@localhost:~# root@localhost:~# lspci pcilib: Cannot open /proc/bus/pci lspci: Cannot find any working access method. root@localhost:~# root@localhost:~# lsusb unable to initialize libusb: -99 root@localhost:~# root@localhost:~# cat /etc/hostname ubuntu root@localhost:~# root@localhost:~# hostname localhost root@localhost:~# root@localhost:~# hostnamectl Failed to get D-Bus connection: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory root@localhost:~# root@localhost:~# hostname ubuntu hostname: name too long |
Problémy integrace
Pokud uvážíme, že se jedná první veřejný preview, je integrace dotažena přibližně do půlky. Nástrojem apt
je možné provádět instalační úkony, ale celková použitelnost je značně omezena. Co bychom ale čekali, přihlásili jsme se do „demo“ programu a máme k dispozici prvotní nástřely, které často částečně nebo zcela nefungují.
Momentálně není dotažena ani základní práce na textové konzole. Pokud nainstalujeme například Midnight Commander, není ve výchozím stavu možné pohybovat kurzorem. To je dáno pravděpodobně technikou, jakou Windows pracuje s textovým režimem. Od Windows 7/8 bylo v tomto směru provedeno mnoho změn (zejména změna velikosti okna tažením za okraj), ale několik kroků k dokonalosti stále chybí.
Pokud nás zajímají otázky ohledně přístupu k datové síti, nějaké možnosti zde jsou a např. nástroj apt
dokáže z internetu stahovat a následně instalovat softwarové balíčky, ale pomocí standardních nástrojů jako ip
nebo ifconfig
nejsme schopni se sítí zobrazit stav či jinak pracovat.
1 2 3 4 5 |
root@localhost:~# ip link list Cannot open netlink socket: Invalid argument root@localhost:~# root@localhost:~# ifconfig -a Warning: cannot open /proc/net/dev (No such file or directory). Limited output. |
Podobný stav jako síťová zařízení nalezneme u připojených souborových systémů:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
root@localhost:~# df -h df: cannot read table of mounted file systems: No such file or directory root@localhost:~# root@localhost:~# mount rootfs on / type rootfs (ro,relatime) tmpfs on /dev type tmpfs (rw,seclabel,nosuid,relatime,mode=755) devpts on /dev/pts type devpts (rw,seclabel,relatime,mode=600) proc on /proc type proc (rw,relatime) sysfs on /sys type sysfs (rw,seclabel,relatime) root@localhost:~# root@localhost:~# mount -o remount,rw / root@localhost:~# root@localhost:~# mount root@localhost:~# |
Copak se to stalo při přemountování rootu z ro na rw?
Instalace
Pokud nás výše zmíněné neodradilo, můžeme provést vlastní instalaci Ubuntu. Postup je velice triviální. Prvotním předpokladem je instalace Windows 10 x64, sestavení 14316. To je k dispozici pouze v programu Windows 10 Insider Preview. Po nezbytné proceduře přihlášení k programu, ve Windows povolíme stahování sestavení Insider Preview.
Windows Settings -> Aktualizace a zabezpečení -> Windows Update -> Upřesnit možnosti
Po vyhledání aktualizací by se měla zobrazit právě verze 10 Insider Preview. Její velikost pro stažení je cca 3 – 4 GB a jedná se o kompletní instalační obraz Windows 10. Časový interval, kdy se nám tato verze mezi aktualizacemi po připojení do programu Insider Preview objeví, může trvat až několik hodin.
Dalším krokem je povolení přístupu k vývojářským funkcím:
Windows Settings -> Aktualizace a zabezpečení -> Pro vývojáře
Následně zapneme funkci Windows Subsystem for Linux (Beta)
Ovládací panely -> Programy -> Zapnout nebo vypnout funkce systému Windows
Po restartu se ve Start menu zobrazí nový zástupce Bash on Ubuntu on Windows. Po jeho spuštění můžeme přejít k automatickému stažení a instalaci základu Ubuntu do prostředí WIndows.
Aplikační adresář s nainstalovaným Ubuntu nalezneme v cestě %USERPROFILE%\AppData\Local\lxss
.
Instalaci a odinstaci Ubuntu můžeme provádět také z příkazové řádky pomocí nástroje lxrun
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
C:\Users\user>lxrun Performs administrative operations on the LX subsystem Usage: /install - Installs the subsystem Optional arguments: /y - Do not prompt user to accept /uninstall - Uninstalls the subsystem Optional arguments: /full - Perform a full uninstall /y - Do not prompt user to accept /update - Updates the subsystem Optional arguments: /critical - Perform critical update. This option will close all running LX processes when the update completes. |
Logické otázky
Při bližším zkoumání Ubuntu na Windows 10 mě napadají rozličné otázky, na jejichž zodpovězení bude nutné nějaký čas počkat.
- Zůstane podpora Ubuntu ve Windows nebo dojde k odstranění?
- Bude systém automaticky upgradován aktualizačním systémem Windows nebo bude nutné tuto operaci provádět ručně?
- Bude Ubuntu provázanější s Windows?
- Stane se konzolový režim použitelnějším?
- Můžeme se těšit na provázání v v případě grafického rozhraní?
- Dojde k bližší integraci Ubuntu a Windows na úrovni hardwarové abstraktní vrstvy a hardware obecně?
- Bude přidána kompletní podpora systemd?
Závěr
Momentální stav integrace Ubuntu do Windows, je spíše ukázkou toho, že to Microsoft myslí vážně a určitou část této strastiplné cesty má za sebou. Uvidíme v několika dalších sestaveních, zda dojde k odstranění stávajících problémů a Ubuntu se stane použitelnějším. V současné době je rozhodně lepší volbou instalace linuxu ve virtuálním prostředí, např. Hyper-V.
Neházejme ale flintu do žita, mě se tento nápad líbí a jsem jeho fanouškem…