Mainframe im Terminal: MVS 3.8

Puh – gestern habe ich noch ein etwas längeres Tutorial durchgearbeitet, wo sehr genau beschrieben wird, wie man das schon in die Tage gekommene MVS 3.8 in Hercules zum Laufen bekommt.

MVS 3.8

Das MVS 3.8 ist eine Vor-Vor-Vorläuferversion des heute üblichen z/OS für richtige Mainframes von IBM.

IBM hat die Software lizenzfrei ins Netz gestellt. Inklusive der notwendigen Bänder, um sich ein eigenes System zu generieren.

Jay Moseley hat dazu ein ausführliches Tutorial veröffentlicht, was Schritt für Schritt erklärt, wie man das System innerhalb von Hercules zum Laufen bekommt. Er erklärt auch sehr gut, wieso und warum. Man sollte das wirklich komplett lesen, so erfährt man einiges über die Grundlagen des MVS und wie eine Mainframe aufgebaut ist.

Hier läuft jetzt eine richtige Mainframe-Emulation inklusive Systemkonsole und RPF (quasi ein sehr schmales ISPF) – man braucht in den späteren Schritten einen 3270-Emulator dafür (bspw. TN3270), die ersten laufen mit SSH.

systemkonsole
systemkonsole
rpf / ispf
rpf / ispf
hercules mvs 3.8
hercules mvs 3.8

Eine einfache Variante eines jes2-Verwaltungstools ist auch dabei (queue):

queue
queue

Compiler und so an Bord

Das so installierte MVS hat sogar einen Cobol-Compiler an Bord 🙂 Außerdem natürlich Assembler und sonstige Tools. Auch IEBGENER soll dabei sein – habe ich noch nicht getestet.

Kann ich nur empfehlen, ist eine spannende Lektüre und ein Abenteuer.

Mainframe im Terminal: Apache2 läuft

Was hat man von einem lauffähigen Mainframe, wenn er nicht etwas ähm „sinnvolles“ tun kann?

Also bauen wir uns doch einen süßen virtuellen Webserver auf, der uns eine Billigseite anzeigt…

Apache2 aktivieren

In /etc/httpd/conf.d legen wir einfach eine kleine Konfiguration an (bitte vorher dran denken mit SSH auf das CentOS innerhalb des Hercules zu verbinden):

<VirtualHost *:80>
ServerName www.mainframe.de
SetEnv HOST www.mainframe.de
DocumentRoot "/var/www/html/mainframe"
<Directory "/var/www/html/mainframe">
    Options MultiViews FollowSymLinks ExecCGI
    #Options Indexes
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>
</VirtualHost>

Dann erstellen wir eine Billigseite innerhalb des DocumentRoots:

mkdir -p /var/www/html/mainframe
vim /var/www/html/mainframe/index.php
mainframe index.php
mainframe index.php

Und dann den Apache2 starten…

service httpd start

Alternativ ginge auch

apachectl start

Voilá

Und schon, vom Mac aus, auf dem Hercules selbst läuft,…

mainframe apache
mainframe apache

Den Domainnamen „www.mainframe.de“ gibt es natürlich schon, deshalb übersteuere ich den in meiner lokalen hosts-Datei:

192.168.0.125   www.mainframe.de

Service dauerhaft starten

In die /etc/rc.local (der CentOS) tragen wir einfach das Starten des Apaches ein:

# Apache httpd starten
/usr/sbin/apachectl start

Demoseite

Leider habe ich IPv6 im CentOS/CTC0-Interface noch nicht zum Laufen bekommen, sonst würde ich hier den Link posten, damit ihr alle mal gucken könnt 🙂

Aber dank DSlite, einem Rechner hinter einem Router und einer Emulation mit Host-Networking und IPv4-Tunnel… ähm… ne. Das bekomme ich heute Abend nicht mehr hin…

Zwischenzeitlich hat das Hercules schon über 500 Milliarden Instruktionen ausgeführt… vielleicht sollte ich eine zweite virtuelle CPU zuschalten 🙂

Mainframe im Terminal: CentOS Installation

Nachdem wir im vorherigen Teil grob darüber gesprochen haben, dass mittels Hercules eine OS/390-Emulation möglich ist, sollten wir mal konkret werden.

Vorarbeiten für Hercules

Zunächst mal müssen wir Hercules ein paar DASDs zur Verfügung stellen. Das sind quasi die Festplatten („quasi“ deshalb, weil wir beim Mainframe eben von DASDs sprechen statt von Festplatten – das hat hysterische Gründe, technisch gesehen sind DASDs und Festplatten identisch).

Das ist schnell erledigt:

dasdinit -z -lfs sys1.dasd 3390-3 SYS1
dasdinit -z -lfs sys2.dasd 3390-3 SYS2

Damit legen wir zwei DASDs an, SYS1 und SYS2. Beide werden für die Installation und den Betrieb des Systems benötigt. Beide wachsen ggf. dynamisch mit und werden komprimiert auf der Host-Festplatte abgelegt.

Mit „Host“ bezeichnen wir in diesem Fall das gastgebende System, nicht die Mainframe (Host ist auch hier ein üblicher Begriff für den Großrechner an sich).

Danach ein bisschen hercules.cnf-Vodoo (Übersetzung: bitte die hercules.cnf genau so anlegen):

CPUSERIAL 002623
CPUMODEL  2096
MAINSIZE  780
XPNDSIZE  0
CNSLPORT  3270
HTTPPORT  9091
NUMCPU    1
NUMVEC    1
SYSEPOCH  1900
TZOFFSET  +0000
OSTAILOR  LINUX
PANRATE   SLOW
ARCHMODE  ESAME
PGMPRDOS  RESTRICTED

#DASD
0A01 3390 /Users/mirko/Documents/hercules/sys1.dasd
0A02 3390 /Users/mirko/Documents/hercules/sys2.dasd

# Channel to Channel
0c00.2 3088 CTCI /dev/tun0 1500 192.168.0.125 192.168.0.123 255.255.255.255

Was wir damit verbrechen ist folgendes:

  • Speicher 780MB
  • Eine CPU (per MAXCPU könnte man schon mal mehrere CPUs in die „Maschine“ stecken, Default scheint 3 zu sein, es wird aber erst mal nur eine CPU hochgefahren!)
  • Eine Vectoreinheit („mein“ Hercules unterstützt das nicht)
  • Architektur z/Architecture (= ESAME)
  • Zwei Platten mit jeweiliger ID (0A01 + 0A02) und Device-Type (3390).
  • CTC-Netzverbindung (Gast -> Host mit IP-Forwarding -> Internet)

Genauere/weitere Erklärungen findet ihr bei Hercules selbst.

OSX: tun0-Device & IP-Forwarding

Kleiner Ausflug in die OSX-Welt – wir brauchen ein tun0-Device. Das irgendwo im System herumfliegende utun0-Device reicht uns nicht.

Glücklicherweise hat Matthias Nissler da ein wenig gezaubert.

Also bitte erst mal TunTap installieren. Ist ein Nobrainer, ganz einfache Installation.

Danach müssen wir noch dafür sorgen, dass IP-Pakete von unserem OSX weitegeleitet werden dürfen/können:

[mac]➜ sudo sysctl -w net.inet.ip.forwarding=1
net.inet.ip.forwarding: 0 -> 1

OSX: Teil 2

Nach ernsthaft stundenlanger Problemlösungsversuche und erfolgloser Installationsversuche über NFS und FTP in diversen Konfigurationen… ist mir doch aufgefallen, dass der Hercules gar keine Verbindung zum Server aufbaut – und das obwohl es im Log so aussah -.- Ich möchte…

14:13:18 * going to do nfsGetSetup
14:13:22 * mounting nfs path 192.168.0.200:/volume1/nfs
14:13:22 * mounting nfs path 192.168.0.200:/volume1/nfs

Das sieht doch jetzt wirklich so aus, als ob das was sinnvolles passiert, oder? Fehlermeldung gibt es selbstredend viele, viele, viele Minuten später keine sinnvolle – nur allgemeines Gesülze von wegen „geht nix“. Entwickler sind doch humorvolle Gesellen, echt mal.

Aber… ARP fehlte. Durch Zufall herausgefunden, weil ich einfach alles probiert habe, was mein Gehirn oder Google hergegeben hat. Trial & Error – das gut abgehangene Verfahren zur Problemlösung in der IT – komm‘ mir jetzt bloß keiner, dass das niemand sonst macht…

Also… unbedingt noch folgendes einlöten:

Per ifconfig herausfinden, welche MAC-Adresse die Karte hat, die wir momentan nutzen.

en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether X1:X2:X3:X4:X5:X6

Jetzt die Macadresse mit dem/das/die/den ARP verknupsern – und zwar mit der IP-Adresse, die später unser z/OS resp. CentOS nutzen soll:

sudo arp -s 192.168.0.125 x1:x2:x3:x4:x5:x6 pub en1

Server: Wir brauchen einen NFS-Server

Genauer: Einen NFSv3-Server!

Für die Installation brauchen wir im weiteren Verlauf auch Zugriff auf die centos-Installationsdateien (= Inhalt des ISOs) über NFS. Im Prinzip wäre auch eine Freigabe über FTP oder HTTP möglich, aber nur NFS habe ich zum Laufen gebracht.

Also einen NFS-Server installieren, bitte. Und eine Freigabe erstellen, die die Installations-ISO und eine Kopie des „images„-Verzeichnisses enthält:

[jum/root]➜  /volume1/nfs ls -al
total 2049968
d---------+  3 root root       4096 Oct  8 15:44 .
drwxr-xr-x  36 root root       4096 Oct  8 15:42 ..
----------+  1 root root 2099142656 Oct  8 14:19 centos-4.7-s390-dvd.iso
drwxrwxrwx   2 root root       4096 Oct  8 14:19 images

Das ISO auf den NFS-Server kopieren – und innerhalb der Hercules-Hierarchie stehen lassen. Macht das Leben leichter (und wird für den ersten IPL auch benötigt – obwohl man es prinzipiell über ein gemounteten NFS-Share machen könnte, wenn man schnelles Ethernet hat).

Das „images„-Verzeichnis könnt ihr euch vom gemountete ISO (siehe dazu gleich) kopieren.

Ja ok, du kannst das NFS-Share natürlich auch in einem Unterverzeichnis der Hercules-Installation mounten… hier bitte:

sudo mount 192.168.0.200:/volume1/nfs iso

Wenn du das machst, pass bitte die nachfolgenden Pfade passend an.

CentOS-Installations-DVD

Die Installationsdateien haben wir uns ja per Torrent heruntergeladen. Das ISO dazu müssen wir jetzt noch mounten, damit wir nach dem Hochfahren von Hercules auch was zu tun haben.

[mac]➜ hdiutil attach -nomount centos-4.7-s390-dvd.iso
/dev/disk5
[mac]➜ mount_cd9660 /dev/disk5 iso
[mac]➜ ls iso
CentOS              RELEASE-NOTES       RPM-GPG-KEY-centos4 TRANS.TBL           headers             repodata
GPL                 RPM-GPG-KEY         SRPMS               generic.ins         images              yumgroups.xml

Damit haben das ISO gemounted und können darauf später auch zugreifen.

Hercules „hochfahren“

Hercules braucht für das CTC-Netzwerk Rootrechte – also starten wir Hercules mit Sudo:

sudo hercules -f hercules.cnf > hercules.log

Das geht flott. Hercules ist da.

IPL

So, jetzt wird gekuschelt. Wir machen einen Initial Program Load, um die Installation von CentOS zu beginnen.

ipl /Users/mirko/Documents/hercules/iso/generic.ins

Jetzt sollte der erste Teil der Installation hochfahren, nämlich der Kernel und ein SSH-Server.

Aber vorher brauchen wir noch Antworten auf ein paar Fragen des neugierigen Installationsprozesses. Hier die Antworten. Bitte ggf. anpassen, nur die Punkte nicht weglassen. Das ist die Anweisung an Hercules, dass die Eingabe bitte an die laufende Instanz durchgereicht werden soll.

Which kind of network device do you intend to use:
.ctc
Enter the bus ID and the device number of your CCW devices.
CTC/ESCON and LCS need two subchannels:
(e.g. "0.0.0600,0.0.0601" will configure the CTC or ESCON interface
with the subchannels 0x600 and 0x601)
QETH needs three subchannels p.e. 0.0.0300,0.0.0301,0.0.0302
.0.0.0cc0,0.0.0cc1
Enter the FQDN of your new Linux guest (e.g. s390.redhat.com):
.hercules.mirkos-mac.de
Enter the IP address of your new Linux guest:
.192.168.0.125
Enter the network address of the new Linux guest:
.192.168.0.0
Enter the IP of your CTC / ESCON / IUCV point-to-point partner:
.192.168.0.123
Select which protocol should be used for the CTC interface
0 for compatibility with p.e. VM TCP service machine (default)
1 for enhanced package checking for Linux peers
3 for compatibility with OS/390 or z/OS peers
.0
Enter your DNS server(s), separated by colons (:):
.192.168.0.1
Enter your DNS search domain(s) (if any), separated by colons (:):
.
Enter DASD range (e.g. 200-203   or  200,201,202,203)
Press <Enter> for autoprobing (not recommended):
.0a01-0a02

Starting telnetd and sshd to allow login over the network.

Connect now to 192.168.0.125 to start the installation.

CentOS-Installation per SSH

Wenn alles geklappt hat, steht jetzt unter der IP 192.168.0.125 ein SSH-Server bereit, mit dem wir uns verbinden, um die weitere Installation vorzunehmen.

Und jetzt wird es richtig geil 😀

Der SSH-Server der Installation läuft selbstredend über einen root-Account. Der kein Password hat.

Jaaaa…. egal, machen wir halt mit, wir spielen ja sowieso nur rum (und während der Installation bekommt root natürlich ein Password):

ssh root@192.168.0.125

Antwort

Welcome to the Red Hat Linux install environment 1.1 for S/390

… und es läuft … und läuft … und läuft …

Die nächsten Fragen der Installation kannst du sicher beantworten. Wenn du schön parallel ein paar Terminals laufen hast, dann kannst du auch erkennen, dass und was er ungefähr tut:

working
working

Das kann jetzt ein paar Stunden dauern 🙂

Übrigens. Im Hercules kannst du ESC drücken, dann bekommst du ein paar wirklich coole Zahlen zu sehen:

hercules monitor
hercules monitor

Das sind die verschiedenen Register und die Programmworte und so. Also genau das, was einen tatsächlich mal interessiert. Keine Ironie.

Aufräumarbeiten…

Bitte am Schluss dann noch aufräumen.

sudo umount iso

Den NFS-Server kannst du jetzt auch plattmachen, wenn er dich stört.

Nach der Installation

Wenn die Installation dann nach vielen Stunden durchgelaufen ist, möchte man vielleicht irgendwann den Hercules komplett runterfahren und irgendwann wieder starten (das Linux/CentOS natürlich auch, aber das weißt du ja schon).Der nächste IPL muss natürlich anders lauten, wir wollen nicht schon wieder installieren.

ipl 0a01

Damit starten wir den Bootprozess an der Adresse 0a01 bzw. eigentlich eher an der DASD-Adresse 0a01 – das ist unsere Bootloader-Platte resp. der Grub. Damit startet dann der CentOS-Server. Arbeiten können wir mit dem System weiterhin über SSH.

Übrigens. Man muss Hercules selbst nicht neustarten, wenn das System nach der Installation heruntergefahren ist und neustarten möchte. Dafür reicht ein

stop
ipl 0a01

Das „stop“ stoppt unsere eine CPU (falls wir mehrere haben, reicht ein „stopall“ – oder per „cpu X“ & „stop“ die CPUs einzeln) und das IPL habe ich oben schon erklärt. Hercules selbst könnt ihr mit „exit“ in der Herculeskonsole verlassen (bitte erst nach dem Herunterfahren vom CentOS und Stoppen der CPU).

17:28:01 stop
17:28:11 ipl 0a01
17:28:11 zIPL v1.3.2 interactive boot menu
17:28:11
17:28:11  0. default (linux)
17:28:11
17:28:11  1. linux
17:28:11
17:28:11 Please choose (default will boot in 15 seconds):
17:28:17 .0
17:28:17 Booting default (linux)...
17:28:17 HHCCP014I CPU0000: Addressing exception CODE=0005 ILC=6
17:28:17 PSW=00082000 8001011C INST=E50150000000 TPROT 0(5),0(0)              test_protection
17:28:17 R:30C00000: Translation exception 0005
17:28:17 R:00000000:K:06=00080000 80010000 06000218 60000090  ............-...
17:28:17 GR00=00000000  GR01=00020000  GR02=00000000  GR03=002AC254
17:28:17 GR04=00000000  GR05=30C00000  GR06=00000000  GR07=00000000
17:28:17 GR08=00000000  GR09=30C00000  GR10=00000010  GR11=0002D85C
17:28:17 GR12=00010400  GR13=80010002  GR14=80019DC0  GR15=0028FF08
17:28:17 HHCCP041I SYSCONS interface active
17:28:17 Linux version 2.6.9-78.EL (builder@c4s390) (gcc version 3.4.6 20060404 (Red Hat
17:28:17 3.4.6-10)) #1 SMP Sun Aug 3 22:58:41 EEST 2008
17:28:17 We are running native (31 bit mode)
17:28:17 This machine has an IEEE fpu
17:28:17 Built 1 zonelists
17:28:17 Kernel command line: root=/dev/VolGroup00/LogVol00 BOOT_IMAGE=0
17:28:17 PID hash table entries: 4096 (order: 12, 65536 bytes)
17:28:17 Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
17:28:17 Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
17:28:17 Memory: 780160k/794624k available (1969k kernel code, 0k reserved, 645k data, 96
17:28:17 k init)
17:28:17 Security Scaffold v1.0.0 initialized
17:28:17 SELinux:  Initializing.
17:28:17 selinux_register_security:  Registering secondary module capability
17:28:17 Capability LSM initialized as secondary
17:28:17 Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
17:28:17 Detected 1 CPU's
17:28:17 Boot cpu address  0
17:28:17 cpu 0 phys_idx=0 vers=00 ident=002623 machine=2096 unused=0000
17:28:17 Brought up 1 CPUs
17:28:17 checking if image is initramfs...
17:28:20  it is
17:28:22 Freeing initrd memory: 2262k freed
17:28:22 debug: Initialization complete
17:28:22 NET: Registered protocol family 16
17:28:22 cio: Was not able to determine available CHSCs.
17:28:22 appldata info: mem-ops registered
17:28:22 appldata info: os-ops registered
17:28:22 appldata info: net_sum-ops registered
17:28:22 audit: initializing netlink socket (disabled)
17:28:22 <pnl,color(green,black)>audit(1475940502.405:1): initialized
17:28:22 VFS: Disk quotas dquot_6.5.1
17:28:22 Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
17:28:22 Initializing Cryptographic API
17:28:22 ksign: Installing public key data
17:28:22 Loading keyring
17:28:22 - Added public key 300A44E8AC8686F0
17:28:22 - User ID: CentOS (Kernel Module GPG key)
17:28:22 HHCCP041I SYSCONS interface active
17:28:22 RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize
17:28:22 md: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27
17:28:22 Channel measurement facility using basic format (autodetected)
17:28:23 NET: Registered protocol family 2
17:28:23 IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
17:28:23 TCP established hash table entries: 131072 (order: 9, 2097152 bytes)
17:28:23 TCP bind hash table entries: 131072 (order: 8, 1048576 bytes)
17:28:23 TCP: Hash tables configured (established 131072 bind 131072)
17:28:23 Initializing IPsec netlink socket
17:28:23 NET: Registered protocol family 1
17:28:23 NET: Registered protocol family 17
17:28:23 Freeing unused kernel memory: 96k freed
17:28:23 Red Hat nash version 4.2.1.13 starting
17:28:23 Mounted /proc filesystem
17:28:23 Mounting sysfs
17:28:23 Creating /dev
17:28:23 Starting udev
17:28:23 Loading dm-mod.ko module
17:28:23 Loading dasd_mod.ko module
17:28:23 device-mapper: 4.5.5-ioctl (2006-12-01) initialised: dm-devel@redhat.com
17:28:23 dasd(eckd): 0.0.0a01: PSF-SSC on storage subsystem HRC.ZZ000000000001.0a00 retur
17:28:23 ned rc=0
17:28:23 dasd(eckd): 0.0.0a01: 3390/0A(CU:3990/02) Cyl:3339 Head:15 Sec:224
17:28:23 Using cfq io scheduler
17:28:23 dasd(eckd): 0.0.0a01: (4kB blks): 2404080kB at 48kB/trk compatible disk layout
17:28:23  dasda:VOL1/  0X0A01: dasda1 dasda2
17:28:23 Loading dasd_eckd_mod.ko module
17:28:23 dasd(eckd): 0.0.0a02: 3390/0A(CU:3990/02) Cyl:3339 Head:15 Sec:224
17:28:23 dasd(eckd): 0.0.0a02: (4kB blks): 2404080kB at 48kB/trk compatible disk layout
17:28:23  dasdb:VOL1/  0X0A02: dasdb1
17:28:23 Loading dasd_fba_mod.ko module
17:28:23 Loading jbd.ko module
17:28:23 Loading ext3.ko module
17:28:23 Loading dm-mirror.ko module
17:28:23 Loading dm-zero.ko module
17:28:23 Loading dm-snapshot.ko module
17:28:23 Making device-mapper control node
17:28:23 Scanning logical volumes
17:28:23   Reading all physical volumes.  This may take a while...
17:28:24   Found volume group "VolGroup00" using metadata type lvm2
17:28:24 Activating logical volumes
17:28:24   2 logical volume(s) in volume group "VolGroup00" now active
17:28:24 Creating root device
17:28:24 Mounting root filesystem
17:28:24 Switching to new root
17:28:24 kjournald starting.  Commit interval 5 seconds
17:28:24 EXT3-fs: mounted filesystem with ordered data mode.
17:28:25 INIT: version 2.85 booting
17:28:26                 Welcome to  CentOS release 4.7 (Final)
17:28:26 System date: Sat Oct  8 17:28:26 CEST 2016
17:28:26    OK  !
17:28:26 Starting udev:
17:28:34    OK  !
17:28:34 Initializing hardware...
17:28:35  storage
17:28:49  network
17:29:05  audio done   OK  !
17:29:12 Configuring kernel parameters:
17:29:26    OK  !
17:29:34 Setting hostname hercules:

...

 

 

Mainframe im Terminal

Ich habe einen neuen Job angetreten, arbeite jetzt im Operating statt in der Programmierung.

Und da ich in einem großen Finanzunternehmen arbeite, kommt dort eine IBM Mainframe zum Einsatz. Im Laufe der Jahre habe ich ein recht anständiges Grundwissen erworben, aber Übung macht den Meister.

Hercules – Mainframe-Emulation

Da ich zu den wenigen Verrückten gehöre, die so etwas wie „Feierabend“ kaum kennen und sich auch in ihrer (unbezahlten) Freizeit in die Themen reinhängen, die eigentlich tagsüber in der (bezahlten) Arbeitszeit benötigt werden, habe ich mich auf die Suche gemacht nach einem Programm, was mir ein gewisses interaktives Lernen ermöglicht.

Und da bin ich über Hercules gestolpert. Nein, nicht die lustige Monochromgrafikkarte aus den 80ern, sondern das Hercules, was die z-Architektur emulieren kann…

Mighty herculeeees
Mighty herculeeees

Hier sieht man eine laufende Emulator-Instanz mit einer (nicht laufenden) CPU und zwei Platten (DASD). Außerdem ein Netzwerk, was sich mit dem Host-Netz verbindet und darüber dann getunnelt in die Netzwelt blöken kann.

Update: Hercules hat eine ausführliche PDF-Dokumentation, die durchaus lesenswert ist.

Hercules im Browser

Die „Konsole“ bietet Hercules auch über den Webbrowser an:

browsing hercules
browsing hercules

z/OS?

Leider ist mir der Zugriff zu einem echten z/OS-Image der IBM nicht möglich *grummel*, also muss ich mit einer Linuxvariante Vorlieb nehmen.

Eine passende Distribution (CentOS) lädt gerade – und sobald ich das Teil in Hercules zum Laufe bekommen habe, melde ich mich wieder 🙂

Update: Schon mal vorab zur Info, man braucht eine Asbach-Uralte Distribution von CentOS, die noch für S/390 verfügbar ist! Die S390-Version ist die 32bit (bzw. 31bit)-, die S390x-Version ist die 64bit-Variante. Die Dateien werden selten geseedet, es wäre also hilfreich, wenn ihr euer Torrent-Tool eine Weile einfach laufen lassen würdet.

Deluge

Bei mir lutscht sich das hässliche Deluge gerade das Torrent:

ugly deluge
ugly deluge

Installiert habe ich Deluge mit brew:

[mac]➜ /Users/mirko/Documents/hercules brew install Caskroom/cask/deluge                                  ==> Tapping caskroom/cask
Cloning into '/usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask'...
remote: Counting objects: 3482, done.
remote: Compressing objects: 100% (3463/3463), done.
remote: Total 3482 (delta 36), reused 498 (delta 14), pack-reused 0
Receiving objects: 100% (3482/3482), 1.17 MiB | 0 bytes/s, done.
Resolving deltas: 100% (36/36), done.
Tapped 0 formulae (3,491 files, 3.6M)
==> brew cask install Caskroom/cask/deluge
==> Creating Caskroom at /usr/local/Caskroom
==> We'll set permissions properly so we won't need sudo in the future
Password:
==> Downloading http://download.deluge-torrent.org/mac_osx/deluge-1.3.13-osx-x64-0.dmg
######################################################################## 100,0%
==> Verifying checksum for Cask deluge
==> Moving App 'Deluge.app' to '/Applications/Deluge.app'
?  deluge was successfully installed!