
IBM ported Go to s390x mainframes - pythonist
https://github.com/linux-on-ibm-z/go
======
praseodym
They have a lot more software in the works, such as Cassanda, MongoDB and
Spark [1]. It's a push to have good software support for the IBM LinuxONE
machine [2], essentially an IBM z Systems (z13) mainframe that will only run
Linux on KVM (i.e. without expensive z/OS or z/VM 'legacy').

I'm not sure about the costs, but it might make for a compelling platform as a
'private cloud' solution. A single mainframe is a lot easier to maintain than
racks full of x86 boxes. Apparently one LinuxONE Emperor machine can run up to
8,000 Linux VMs [3] (not sure with what load).

[1] [https://github.com/linux-on-ibm-z](https://github.com/linux-on-ibm-z)

[2] [http://www-03.ibm.com/systems/z/os/linux/linux-
one.html](http://www-03.ibm.com/systems/z/os/linux/linux-one.html)

[3] [http://www.zdnet.com/article/linuxone-ibms-new-linux-
mainfra...](http://www.zdnet.com/article/linuxone-ibms-new-linux-mainframes/)

~~~
bryanlarsen
_up to 8,000 Linux VMs (not sure with what load)_

Traditionally mainframes were superior for loads that were IO bound rather
than CPU bound. I suspect that this is still the case.

~~~
StillBored
The mainframe hardware isn't anything special (I've said this before, I still
have access to a z114). You can probably host that many lxc containers on a
decent x86 server too. Not that you probably want to.

The z114 CPU doesn't keep up with anything > midrange x86, and its IO
capabilities are limited by the inifiniband links it uses to communicate with
the IO drawers. A pretty basic dual socket E5 v3 has more PCIe bandwidth
available than you can get out of the z114. It appears that is the case for
larger machines as well (aka there are E7 configurations with significantly
more bandwidth than the z13). And yes, I've heard all about SC's and all that.
But what most people fail to realize is that most storage adapters have some
form of ARM/etc cpu onboard that does most of what the SC does on a mainframe,
and people have been fighting the CPU vs offload engine battle for years for
network adapters.

So, a lot of the mainframe advantage is in zOS/zTPF and not the hardware.
Running linux with its inefficient block layer, misses the point.

Heck, your probably better off running linux on POWER8.

~~~
neopallium
A company I worked for about 10 years ago had an IBM s/390 mainframe for about
a month. Our manager at that time had previously worked for IBM and was trying
to move the company over to hardware managed by IBM.

The biggest selling point was redundancy in the hardware being able to handle
CPU/RAM/Disk/PSU failures without taking down the Linux VMs running on it.

Our workload was network bound, not much CPU or Disk IO load.

We ended up using generic Intel PCs (some custom built, some Dell and some IBM
Netfinities). We had more down time with the IBM managed Netfinities, then
with the custom built rack mount servers.

Back then we also had some Sun UltraSparc E3500 & E6500s, but we found that
the Java VM (from Sun!) was much slower on the UltraSparc CPUs then on Intel
CPUs.

I find it interesting that we had much better results from generic no brand
rack mount servers then most of the expensive "enterprise" class servers.

Note: This was over 10 years ago.

Anyone have more recent experience with servers in a self-managed DC or co-
location? It seems most companies/developers now use cloud/vps/hosted servers.

~~~
kev009
It's really not possible to make a blanket judgement. The lot of high end
systems boil down to brand name, software compatibility, "one throat to
choke", and vertical integration. While the first two are mostly meaningless,
the last two can have profound network effects. IBM has been able to realize
nice vertical integration across most of their current systems, and they have
some world class people doing CPUs, compilers, OSes, application stacks. If
you have a problem with the mainframe you have one company to deal with.. that
could be very good or very bad (somewhere brand name aka reputation does
matter). In consumer terms, it's kind of like Mac vs PC.

It's also not so easy to judge x86 as low end. Stratus and HP make some really
high end fault tolerant/instruction retry x86 servers that could be considered
mainframes IMHO.

Low end x86 servers are "good enough" for a large portion of what people use
servers for, and a massive amount of work has gone into making distributed
systems that can scale and handle faults semi-predictably. That said, I'd much
prefer my bank account to reside on an IBM mainframe SysPlex for the time
being.

Sun kind of struggled in the CPU market as well as indecision around x86 for a
long time, it's one of the primary reasons they are now part of Oracle. Those
E3500/6500 systems are very high quality and would probably still be running
fine today if performance isn't the only measure of worth.

I've long been a fan of IBM's POWER system p or whatever they want to call it
depending on the day of the week. It's positioned somewhat in the middle of
x86 and mainframe, but you generally get more powerful systems than x86 with
mainframe inspired reliability. Still, these fill a much narrower niche than
cheap x86 boxes.

~~~
neopallium
I agree with what you said. I was just relating the experience I had.

We also had two large (U8) Compaq ProLiant servers that we used to run Oracle
DB. We didn't have any problems with them, and only replaced them with newer
faster Dell servers later. The redundant PSUs and hot-swap drives were the
main reason we ran our database on them (one master, the other a standby
slave). Those server were later used for our beta site (used for
staging/development).

We later ported the backend Java service to C++, which most likely would have
run fine on the UltraSparcs, but I think we had already sold them or returned
them back to the vendor. I really wished Sun's UltraSparc T1 & T2 CPUs had
taken off. I think they could have really good CPUs, but it was hard to
compete with x86 because of all the software that was already
compiled/optimized for the x86 architecture.

For us it was important to be able to fix problems quickly. Having to call in
a service tech. to fix a hardware problem just increased downtime. Also we
just had really bad luck with the IBM Netfinities, all 4 servers had a bad
motherboard which failed in each server at different times. After that we
didn't have any problems with them.

Personally I prefer to deal with generic hardware that I can service myself
when a problem happens. But for some companies, it is better to have managed
hardware with service contracts.

------
rdtsc
Hmm [https://github.com/linux-on-ibm-z](https://github.com/linux-on-ibm-z) has
got all kinds of cool goodies: Docker, Cassandra, Kubernetes, Spark

~~~
TazeTSchnitzel
And a nice picture:
[https://avatars2.githubusercontent.com/u/11740175?v=3&s=460](https://avatars2.githubusercontent.com/u/11740175?v=3&s=460)

------
donatj
What is the deal with z / z/OS? Is it a non-unix OS? I can't find a ton of
info in my naïve googling.

~~~
krylon
System z is IBM's mainframe architecture (the hardware).

z/OS is the flagship operating system. It is at its heart a batch-oriented
system, but it does have a Unix subsystem (called USS for "Unix System
Services", formerly known as MVS OpenEdition or OMVS) that is in fact
certified against a rather old version of the Single Unix Specification.

So in a way, z/OS is in fact a Unix system, but that is kind of like saying
that Windows is a Unix due to Cygwin or Microsoft's Services for Unix. Mostly,
it is very non-Unix-like.

Interestingly, IBM also offers a number of other operating systems for System
z, including VM (although that system apparently does little but host virtual
machines), TPF (a "real-time" transaction processing system) and zVSE
(formerly known as DOS/360, another, smaller batch-oriented system). And, of
course, Linux is available from a number of distributions. Oh, and just for
good measure, Open Solaris was ported to run inside VM, although I am not sure
what became of that or if anyone is actually using it.

~~~
nickpsecurity
Wait, is it a UNIX system or have a UNIX subsystem? Those are different. I
know it has the subsystem. I'm trying to recall when someone said it was a
UNIX. Stuff I read on it is more MVS than UNIX. Example with some data:

[https://en.wikipedia.org/wiki/Z/OS](https://en.wikipedia.org/wiki/Z/OS)

~~~
cbd1984
It has a Unix subsystem. It is a lineal descendant of OSes which predate Unix
by quite a bit, and has grown by accretion since then.

It's POSIX certified. Linux isn't. That should tell people quite a bit about
POSIX, but it never seems to...

~~~
LukeShu
POSIX isn't actually about operating systems. POSIX (1003.1) is about source-
level compatibility for 2 languages: C99 and shell scripts.

If your C programs use only C99+POSIX facilities, and your shell programs use
only POSIX features and utilities, and they work on a platform, then that
platform is eligible to be POSIX certified. POSIX doesn't care about the
kernel or syscalls or anything like that. It cares about libc, libm, libl, and
a couple of file paths.

~~~
pjmlp
Actually to a certain extent, I think one could call POSIX the actual C
runtime library.

As C runtime + POSIX calls (I know it didn't exist back then) is what defined
C when it was still UNIX only, but ANSI didn't want to make the language
standard that big.

------
Karunamon
Is it possible for a mere mortal with an equivalent amount of cash to get
ahold of Z/OS to play around with (for use on the Hercules emulator or
somesuch)?

I've looked around with no success, so I'm guessing not, but any clarification
would be nice.

~~~
tyingq
IBM's official product to run z/OS on an intel box is here:

[http://www-03.ibm.com/software/products/en/ratideveandtesten...](http://www-03.ibm.com/software/products/en/ratideveandtestenviforsystz/)

It's just under $5k USD for a 12 month single user license:

[https://www-112.ibm.com/software/howtobuy/buyingtools/paexpr...](https://www-112.ibm.com/software/howtobuy/buyingtools/paexpress/Express?P0=E1&part_number=D0M21LL&catalogLocale=en_US&Locale=en_US&country=USA&PT=jsp&CC=USA&VP=&TACTICS=&S_TACT=&S_CMP=&brand=SB03)

~~~
Karunamon
Ouch... Guess that answers it definitively then. Shame that if someone wants
to learn, they have to resort to copyright infringement...

~~~
ksherlock
Seems like a good startup opportunity -- z/OS as a service. Buy the $5000
license and then rent it out to users for $10 a month. Maybe the terms don't
allow it? Fuck them. Disruption, baby!

~~~
marktangotango
There were places around that rent time. There was also a place offering free
accounts, I don't even remember the name now. There's one hell of a learning
curve, makes it really hard to do anything other than poke around when you
don't know the params to code in a jcl to compile a program. My first gig was
mainframe cobol, the company put everyone thru a 3 month training program,
that's the only reason I know anything about it.

------
bg46z
I think this is awesome? I'm not entirely sure though.

~~~
melling
Write once, compile and run anywhere. Go is gaining traction. IBM doesn't want
to lose a sale to an organization that has adopted Go.

~~~
k__
lol, last time I talked to IBM Linux was Linux was Linux.

Shouldn't Go stuff simply run on their LinuxVMs on Z?

~~~
mseepgood
Processor architecture is not processor architecture is not processor
architecture. The Go compiler produces native binaries.

~~~
k__
They were always talking about their "bare metal" visualization, I thought
they could virtualize CPUs too.

~~~
wmf
Emulation is never going to be fast.

~~~
rodgerd
Sure it is. The s390x instruction set is microcode emulation on top of a
POWER-derived microarchitecture, just as modern x86 chips are microcode on an
underlying microarch.

~~~
filereaper
Completely wrong. s390x runs on its own dedicated hardware, it is not emulated
on POWER. POWER and s390x are completely separate.

source: worked at IBM on their compilers team.

------
jhallenworld
Maybe for support of Open Ledger since OBC is written in Go:

[https://www.ibm.com/developerworks/community/blogs/gcuomo/en...](https://www.ibm.com/developerworks/community/blogs/gcuomo/entry/The_Force_of_Blockchain_Awakens?lang=en)

~~~
wmf
It's for Docker.

------
ekarulf
"Note that we do not accept pull requests"

Strange.

~~~
geofft
That text is unmodified from upstream's README.

It's a little unfortunate that GitHub provides so little room to add your own
README to a fork, short of modifying upstream's README in the source code
itself. You get a sentence at the top, which is about it.

~~~
jff
I've seen people create their own README and move the upstream one to
README.upstream or similar. Seemed sensible to me.

~~~
praseodym
But unfortunately that change will then be included in all pull requests,
unless you create a clean branch for every change you want to get into
upstream.

