201401241000


UNIX 2014

    Γαία, дочь χάος'а.

Что нового?
-----------

Операционные системы Windows RT и Windows Phone не составили серьезной конкуренции на рынке планшетов фаблетов и смартофонов.

Усредненная диагональ экрана смартофона увеличилась (~5"), появился новый класс устройств -- фаблеты.

Экраны на основе электронных чернил проникли на рынок смарофонов и планшетов (Onyx, Yotaphone, Nook Simple Touch [1], PocketBook [2]).

Вполне предсказуемыми темпами наращивается мощность мобильных устройств и ведется разработка новых версий ОС на основе UNIX: например Андроид (Debian Linux + Java), IOS (Darwin BSD + Cocoa, CObjective, NextStep..), Ubuntu Tablet (май 2014), Sailfish от Joila (осень 2014).

  -- UNIX системы устанавливаются на обретающие популярность гаджеты -- умные часы, очки.., и другие устройства (от пылесоса до автомобиля)
  -- Рынок игровых систем пополнился ОС Steam на основе Linux
  -- Китай разработал COS (Chinese Academy of Sciences)
  -- На рынке серверов и cуперкомпьютеров доминируют Linux и FreeBSD [3].


С чего начать?
--------------

Работа в классах будет осуществляться на виртуальных машинах через программу VirtualBox. В качестве гостевых ОС подойдут, например, Linux, FreeBSD, Android-x86. На момент написания этого текста, хост системой является Windows 8.0.

Полезные советы.

  -- Перед запуском виртуальной машины в хосте Windows 8.x, следует убедиться, что Windows Feature Hyper-V Off (отключено).
  
  -- Запертую в виртуальной машине мышь, можно освободить кнопкой "Host" (по умолчанию правый CTRL).
  
  -- Курсор мыши в виртуальной среде Android поможет увидеть опция "Disable Mouse Integration" (RCTRL+I).
  
  -- Если текст в окне виртуальной машины слишком мелкий, переключитесь в "Scaled Mode" (RCTRL+C)
  
  -- Установка Virtual Box Guest additions, хоть и упростит обмен информацией между host и guest машинами (enable shared clipboard, configure shared folders), но часто приводит к зависанию виртуальной машины при несоответствии версии Virtual Box и версии Guest Additions. Поэтому обмен небольшими по объему текстами между host и guest машинами удобнее осуществлять через соединение Putty <-> OpenSSH server по локальному адресу 127.0.0.1 порт 22. Для этого в:
  
  Oracle VM VirtualBox Manager -> 
    Your VM -> 
      Network -> 
        Adapter X -> 
          Advanced -> 
            Port Forwarding

добавим правило

  Name     Protocol  HIP  Port   GIP  Port
  Rule 1   TCP            22          22

  -- Обмен бо'льшими объемами информации следует производить через адрес 10.0.2.2 в режиме NAT. На хосте должны быть запущены соответствующие службы -- например Apache HTTP сервер с modPHP5, Filezilla FTP Server, Bitvise SSH server и т.п.
  
  -- Для различных версий UNIX написано множество приложений, некоторый вакуум существует в области GUI-хелперов для программ командной строки. Нужно определиться с оболочкой (LXDE, XFCE, Gnome, Mate, Cinnamon, Unity, KDE, web-интерфейс и т.д.) и написать нужное приложение, что однако не избавит пользователя GUI от умения пользоваться командной строкой, что необходимо, например, при написании скриптов. (Рассмотрим фигуры для игры в Blockout. А теперь играйте!). Скрипты экономят массу времени когда мы проделываем повторяющиеся операции (Измените размер шрифта в окне терминала. Спасибо. А теперь проделайте это на остальных 300х компьютерах в школе.) или хотим объяснить кому-нибудь, что следует сделать (запусти скрипт из моего последнего сообщения).
  

VirtualBox
----------

Едва ли ни первоочередная задача в экспериментах с VirtualBox -- связь между гостевой ОС и хостом. Не имеет смысла запоминать действия для отдельных рецептов. Имея более тысячи дистрибутивов Linux, с десяток вариаций на тему BSD, разные версии Android, и "экзотику" на подобие Haiku -- более полный список можно увидеть на [11], десятки протоколов (например Telnet, SSH, FTP, HTTP, Samba, NFS,..) с каждым из которых работают множество клиентов и серверов (инсталлируемые приложения) -- можно прикинуть количество возможных вариантов (миллионы).

Далее привожу результаты некоторых удачных экспериментов.

1. Установил BitVise SSH Server 6.0.3 c лицензией "Personal Use" на хост Windows 8.1.

В Settings -> Easy Settings -> Virtual Accounts добавил 

  virtual account name:      virtu
  virtual account password:  virtu
  login allowed:             [v]
  public keys:               0 keys
  allow file transfer:       [v]
  allow terminal:            [v]
  allow port forwarding:     [ ]
  virtual filesystem layout: allow full access
  
Установил связь из guest Windows XP через PUTTY и PSCP

  pscp myfile.bin virtu@10.0.2.2:/c/tmp


2. Установил Filezilla Server 0.9.41 на хост систему Windows 8.1.  Shared Folders d:\tmp. Добавил пользователя virtu:virtu, shared folder d:\tmp, Files: read/write/delete/append, Directories: List, +Subdirs, Set as home dir.

На хосте (Turn Firewall Off или [12]). Далее:

  C:\Users\kiril_000>ipconfig

  Windows IP Configuration

  Ethernet adapter Ethernet:

     Connection-specific DNS Suffix  . : lan
     Link-local IPv6 Address . . . . . : fe80::bcd5:1964:d903:35c1%2
     IPv4 Address. . . . . . . . . . . : 192.168.1.64
     Subnet Mask . . . . . . . . . . . : 255.255.255.0
     Default Gateway . . . . . . . . . : 192.168.1.254

  Ethernet adapter VirtualBox Host-Only Network:

     Connection-specific DNS Suffix  . :
     Link-local IPv6 Address . . . . . : fe80::b13a:5d18:3094:8888%22
     IPv4 Address. . . . . . . . . . . : 192.168.56.1
     Subnet Mask . . . . . . . . . . . : 255.255.255.0
     Default Gateway . . . . . . . . . :
     
Guest (Saucy Salamander; добавил сетевой адаптер "host only"; Forward TCP,,HP2222,,GP22):

  virtu@mini-U:~$ sudo -s
  root@mini-U:~# ifconfig
  eth0      Link encap:Ethernet  HWaddr 08:00:27:88:fd:88
            inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
            inet6 addr: fe80::a00:27ff:fe88:fd88/64 Scope:Link
            UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
            RX packets:87 errors:0 dropped:0 overruns:0 frame:0
            TX packets:74 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:1000
            RX bytes:10267 (10.2 KB)  TX bytes:10647 (10.6 KB)

  lo        Link encap:Local Loopback
            inet addr:127.0.0.1  Mask:255.0.0.0
            inet6 addr: ::1/128 Scope:Host
            UP LOOPBACK RUNNING  MTU:16436  Metric:1
            RX packets:0 errors:0 dropped:0 overruns:0 frame:0
            TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:0
            RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

  root@mini-U:~# ifconfig eth1 192.168.56.2 up
  root@mini-U:~# ping 192.168.56.1 -c 1
  PING 192.168.56.1 (192.168.56.1) 56(84) bytes of data.
  64 bytes from 192.168.56.1: icmp_seq=1 ttl=128 time=0.623 ms

  --- 192.168.56.1 ping statistics ---
  1 packets transmitted, 1 received, 0% packet loss, time 0ms
  rtt min/avg/max/mdev = 0.623/0.623/0.623/0.000 ms
  root@mini-U:~# ftp 192.168.56.1
  Connected to 192.168.56.1.
  220-FileZilla Server version 0.9.41 beta
  220-written by Tim Kosse (Tim.Kosse@gmx.de)
  220 Please visit http://sourceforge.net/projects/filezilla/
  Name (192.168.56.1:virtu): virtu
  331 Password required for virtu
  Password:
  230 Logged on
  Remote system type is UNIX.
  ftp> ls
  200 Port command successful
  150 Opening data channel for directory list.
  -rw-r--r-- 1 ftp ftp          24664 Oct 19  2013 changelog.txt
  ...
  226 Transfer OK
  ftp>


Ссылки
------

[1]. http://www.youtube.com/watch?v=rP2CVXzpK5s#t=19
[2]. http://gigaom.com/2013/12/02/e-ink-powers-the-pocketbook-cad-reader-an-android-tablet-for-viewing-cad-files/
[3]. http://servernews.ru/792542
[4]. http://www.burnaware.com/
[5]. https://fedoraproject.org/wiki/How_to_create_and_use_Live_USB
[6]. http://clonezilla.org/
[7]. http://isoredirect.centos.org/centos/6/isos/x86_64/
[8]. http://www.howtoforge.com/ubuntu_pxe_install_server

[11]. http://en.wikipedia.org/wiki/List_of_operating_systems
[12]. http://www.howtogeek.com/112564/how-to-create-advanced-firewall-rules-in-the-windows-firewall/

