 Mainframe on your laptop for fun and profit. Take it away, Jeroen. Okay, hello everybody who took the time and the effort and the energy to be here at this hour. Probably you made it late last night. Maybe there's some alcohol involved. You never know. I'll try to make this a happy thing. The first thing we're going to do is I'm going to present you with a choice. There's this choice. I can do either a very boring standard introduction of who I am or I can do, well, it's a high impact kind of introduction of who I am. So show of hands, who wants the polite, you know, you're just a wake, relax kind of introduction or who wants the, even one, great. And who wants the high impact, you know, full circle and oh my God, what am I getting into? That one. Okay. Why do people choose that one? I never understand that. Okay, but you'll get it. I have to go to the other screen. Back, yeah, and then click here. Yes. Okay, so who am I? I'm the father of five. These are the five. Please notice there's one girl in a wheelchair. I was going to talk about that a little bit more, but there's also one that I'm holding who is mentally very challenged. I used to be a firefighter for 10 years, so I love to work on cars after a car crash, hopefully without many severe injuries. Here I'm saving a dog who was swimming, which is normally pretty healthy, but not in the middle of the winter when there's a hole in the middle of the ice and he can't get out and he gets hypothermia and at some point he would drown, we saved him, so yay, everybody's all right. This is my helmet and the front part of it, the black part in the middle is melted. So it was a little hot, but it was an exercise and actually it was pretty fun, not for my chief because he had to replace that and he had a budget and he didn't like that, but I did. I do stuff with scouting, so I even combine firefighting with the boys scouting. We are now, as you know, probably on the Dutch scouting grounds, so the large event fields, and there are some events, some larger events, same size as MCH actually, with a lot of scouts from all over the world, love to do that. I wrote a couple of books, I'm now currently busy with my 14th book, I believe, I don't know why, I must be pretty insane somewhere. These are three of the topics, some topics are in English, some are in Dutch, and I'm a caretaker of course, so there we go. And it also shows with all this photo, the balance in your life that you try to do things, but there are also other things more important. And oh yeah, by the way, I also manage an open source project, it's called Libreplan, who does open source project management planning software. Pretty cool, and up there is the logo, I don't know if you can see it, but it's there. So this is the boring slide, because I couldn't jump over it. So it's the same, I tried to solve IT problems, and the rest I already told you. So this is the boring slide. So what do you think, should I next time do, again, this choice, or should I skip it and go just to the boring slide, which is pretty standard for everybody who doesn't talk. Who is in favor of keeping the boring slide and do the all. And who is in favor of the high impact, you get to learn me a little bit. Oh, okay, thank you so much. Okay, what do I do? I hope it's because I'll just see teaching, training, retraining. I love to retrain people from whatever they did to into IT, love to do that. Okay, Libreplan, this is a screenshot of Libreplan. Let's skip that and go, oh, yeah. Who here is not Dutch? A lot of people, great. So then this is important. The Dutch on average speak pretty well English, but we're not English. And this is a very nice Anglo-Dutch translation guide, where if a British guy would say, with all due respect, I would hear, oh, he's listening to me. He's respecting me. We've got a nice dialogue going on. Well, it actually thinks, oh, I think you're wrong. So those intricacies, those subtle nuances, not with the Dutch. We're blunt and we speak English and that's it. Deal with it, basically. Sorry. Okay, let's go to the topic. What's a mainframe? A mainframe is a piece of hardware that's sole purpose, sole design is massive parallel in hardware, massive parallelization in hardware. So everything that happens in a computer has its own piece of hardware. So yeah, there is a CPU, but the CPU is only used to do what a CPU does best, which is a little bit of calculation. It's not a supercomputer. A supercomputer is one or a bunch of computers who try to calculate some very complex calculation in the shortest possible time. A mainframe is all about throughput, getting as much data as possible from A to B in as little time as possible. So how did they do that? In mainframe, they design a piece of hardware to offload everything from the CPU. So networking is a separate component. Storage is a separate component. Everything is separated from the CPU. So the CPU does one thing and that's calculate your daily interest on your bank account every night. And that's for, I don't know, a gazillion people. So that's the mainframe. We're done. Oh no, sorry. Oh yeah, I'm going to talk about Hercules. Hercules is an open source project and it's an IBM mainframe emulator. So it's like virtualization. The virtual box, the KVMs, the VMwares of this world, we all know them. Some of them we even love. Hercules is the same. In the software, it emulates the hardware. So you can't do hardware virtualization because you have an Intel processor in your laptop and not a mainframe CPU. So you do everything in software. It makes it very, very slowly. But there's also good news. And I come to that later. It runs on Linux, Windows, Solars, 3BSD and macOS. What does it look like? Well, on the left you have the original panel of a mainframe system. On the right you have, this time I found it online, a Windows screenshot of Hercules, which also has this very weird turning knob at the top that I know nothing about. Oh yeah, I forgot to tell you. I love to do talks. I do a lot of talks about subjects. In this subject I know almost nothing about. And the almost part is what I'm going to tell you today. So if there's anybody here with mainframe experience, you know way more than I do. But if you've never worked with a mainframe, I know more than you. So what does it do? Well, it runs software. There are many OSes in public domain. If you have a license and the IBM hardware, you can run several IBM OSes on Hercules. But if you don't have the hardware, most of us don't, then you can only run the open source variations. And a lot of these OSes were developed in the 50s, 60s and 70s of last century. And they were even open source because they were paid by a grant from the United States government with the mandatory clause that had to be open source licensed. So that worked until 1972. So you can run software from 1972 completely open source, completely illegal on Hercules and still have a fun time. That's what we're going to show you today. So what can you run? You can run OS360.360.vs. MVS, and MVS is the one we're going to focus on today because it's the easiest and it's the most active. But if you're really into bizarre things, the other ones you can also download, the web pages describing how you should install them in Hercules with very arcane commands. And you can really dive into that if you're into that. And you can even run Linux, of course, in Hercules. Well, when I started to look into Hercules, I knew nothing about mainframes. Well, they were big expensive boxes. That's basically it. And I googled Hercules. I read about it somewhere, I don't know. And I found the original site of the Hercules project. And it was last updated 12 years ago, which is not really very active, you would think. Currently it's down, so you can't go there anymore. And the last snapshot on archives.org was from May this year, so it's recently gone down. I followed the site to a certain Mr. Maynard, last modified even way before that, 2004. There was a mailing list with 7,000 members on Yahoo groups. That list is gone by now, so all 7,000 people. Well, had to go somewhere else. And I read about an easy start thing, the Volcker's MVS 3.8J turnkey system version 3. I'm going to talk a little bit about that. It's a long title, but it's very easy, really very easy. Second time I did this talk in Sheffield, people in the audience immediately downloaded the software and started playing with it while I was doing the talk. Anyway, long time project leader Jay Maynard. And all in all, if you look around, lights are on, but there's nobody home. You could mail him, no response. Turns out he ran the project for a long time and at some point got bored and stopped. And then actually stopped. No transference of authority, no, simply stop. Everything went to death. No, that's it. And a long time, I even thought he was deceased, you know, it happens. But at some point he came online and said, well, he ain't dead. That's good news, I guess. May not be a Volcker's anymore, but I haven't gone anywhere. He's into other projects now. So what should you do if this interests you? Well, there's a new main site, Hercules-390.eu. That's where, and it started with a copy of the old site with a couple of updates. And it still doesn't look very fancy, but it's now the go-to place for this project. There's a new mailing list on Google Groups. Well, they lost about 90% of audience, but there's still 700-ish members. And there's still this easy start, but now there's been an upgrade. And MVS-300J-Turnkey-4-Dash system by Jurgen Winkelman is the latest incarnation of MVS or for Hercules. This is the site. This is where you can download a zip file. And it's got everything. It's got Hercules for Linux, Windows, Mac. It's got MVS hard disk images. So you just unzip the zip file, start a command, and you've got a mainframe up and running on your laptop. It's that easy. What it looks like, still 15 minutes left. Oh, man, I just started. Oh, my God. Okay. You can learn by a lot of videos on YouTube about this. What you need, well, PC of course, Raspberry Pi works too because there's a port of Hercules to ARM. And the mainframe communicates with terminals through a protocol that's called 3270. That's the communication protocol. So you need to have a 3270 emulator to connect to a mainframe. But that's easy because if you use Linux, you have X3270 packages ready in your repository. You can install and you can connect to the mainframe. Now, this is a very small mainframe, of course, sitting on a manual. Oh, yeah, this is very important. Even if I got a few minutes left, this is vital. Storage in mainframe means memory because hard drives came way later. First, they had these punching cards and they had a CPU and memory. That's a storage, it's memory. Desk D is directly attached storage device, and that's a hard disk, what we call drive. They still call it a Desk D. TSO is a time-sharing option that's a piece of software in your mainframe OS that makes it multi-user. Are you wrong? Thank you so much. I'm here in panic. How much time do I have? I'm going to have an hour left. I'm speeding up. We're going to talk about this later, young man. Okay, anyway, time-sharing option. If you didn't buy the time-sharing option on your OS, you had a very expensive single-user system. Talk about weird software. The GES2 is a job-entry system, release 2, clearly. Because the mainframe works with job queues. You are working in your terminal, you're editing at some point, and it's screen-oriented, so you send a screen to the system. One of the subsystems manages that and you get a new screen back. No interactivity, no mouse, simply keyboard work. At some point you submit your code and then it comes in a queue because mainframe is expensive and it's a workhorse. It needs to do it, give it something to do. It does a lot of stuff. You get in the queue and at some point it's your turn and then half a second later it's done your job and you get the results presented to you. Kicks is the front-end to transactional software so you can create sort of GUIs for transactional systems. Forget the concept about files. In mainframe they use data sets. A data set is something that the system manager makes for you. You go to a sysadmin and you say, I need a data set for a project, whatever. He says, okay, how much space? I think five megabytes will probably cover it and you get a data set of five megabytes and you open the data set and in the data set you will have your files and your data files and whatever you have, so that's a very funny way of a very good way of preventing a system from getting unexpected overloaded drives because you can't go past the boundaries of your data set and you can also not extend them, I believe. If you run out of space you have to ask for a new data set and transfer everything to the new data set and after that you can continue. The catalog is sort of a system list of available software. The catalog contains the links to the COBOL compiler and the GCC for MVS or whatever programming language you like. What you will see when you log in is this screen, so this is what it looks like and you log on and then you get a menu. A terminal on 3270 has dedicated keys that you don't have on your keyboard, so there is a keyboard map that you can open. It starts with a very small icon at the top on the left and when you open you get this key map and a few keys that are important, one of them is enter. That means send my stuff, which also does the enter key. That's an easy part, but you will do stuff wrong and when you do stuff wrong on the GUI level it doesn't hurt the mainframe, he is unaware of it but it will lock up your terminal. It will show you an X in the bottom right here saying, I don't know what you did, but it doesn't work like that. You have to reset your terminal and that's this button. So it's a software kind of terminal reset thingy. Trust me, you will use that. Demo time. Are we up for a small demo? Or are we asleep? Who's asleep? Okay, this is going to be funny. I have to switch my screen and oh, the pressure of time. Where's my mouse? There's my mouse. And now here's my mouse. Settings, displays, display. Mirror, apply, keep changes. Yeah, we all see the same now. Open up a terminal and I will start an XD2. That's this one. It's a little bit small. So I'll try to option font. This one, this one, and then 20, 20, 20, 20. Yeah, this one. So it's a little bit bigger. Can you see this in the middle? I don't know if you can. I hope you can see it. Okay, this is all we have for today. So open the key map. It's there. CDTK5. Unzip the file, of course. It's all in here. It's got Linux scripts and everything. And I think you can do the same as I can. M-V-S. That's it. Now, what I'll see now is the console log that's starting up the system, mounting the DASD system, the hard disks. And I can connect from my terminal to local host. I cannot yet log in. It will take a few seconds. Always prepare your demo. And I did. And my demo is prepared. Works like a charm every time. Reset. Yeah, here we are. Herk02. And oh, yeah, password. See you later. It's not my password. It's in the system. So if you unzip it, you have the same user ID, same password. Okay, message, welcome on the system. Message of the day. I'm a fortune cookie. And hey, here we are. We've got the menu. I'm actually running M-V-S 3.8J, mainframeOS on my laptop. Well, for fun and profit. I don't see a lot of hilarious people, but maybe that will come later. I'm still hopeful. It's a menu system. You have to understand a few function keys. So for one, if I select one, enter, I get another menu. If I want to go back, I press the function key 3 that we all have on our keyboard. Nothing specific about that. You can also click here, of course, in the map keyboard window, but why would I? If I have too much data, I can use the function key 7 and 8 to page through the output. Let's see. Let's select 3. And here I can select a library because a library is sort of a collection of data sets. And, well, data set I already described, you know? Okay, let's do 4. And I'm going to use the sys2.jcllib library and I do a search for that and then I get only this list and I have to select this library. Sorry, that's the wrong one. I selected it and I get info. I do F3. I say, E of enter. Enter. Hey, I'm in. I'm in my data set. I see a bunch of files. And I can page through them with F8. F8 is down. F7 is up. And there is a very nice file that I would like you to get to know a little bit and that's the prime COBOL1 file. So I press an E, enter. Hey, I've got COBOL. Anybody knows COBOL a little bit? Who ever programmed in COBOL? Okay, great. So do you know there's one COBOL joke? There's a new COBOL dialect. It's called polite COBOL. And it means add IE2B, giving C, please. That's the joke. You only understand it if you've ever programmed in COBOL. And I see by the response that it's not even funny. Okay. Anyway, so I can walk through this file. This is all COBOL with all parts. And at some point at the top, the header, and that's this part, describes what user will submit this job and what class it is. Classes immediate execution is A and the message class is where does this go to? If I press H, it's for holding. So it will output a printer file on the system, but not on a printer. But if you put an A or a B there, you have to pre-configure printers in Hackerless. Of course, you can add more printers if you like. Anyway, her KZ02A, that's what I've been logged in as. So if I press Sub or Submit, and so it's fancy, I can even shorten stuff. It will say, okay, I have a job with number 41 submitted to the system. Okay. Well, I'm done here, I guess. I will go back up. And here, option 8 is the Outlist. And then way at the bottom, I have my job 41 that was submitted. That's already been executed, of course, because I have a really fancy laptop, at least compared to a mainframe from the 70s. And I can select this one. I cannot edit an output file, of course, because it's an output file, but I can select it. And I see here the output of the job I just submitted, which shows me all compiler messages, a dump of the source code, a header, et cetera, et cetera. And at some point, yay, I've got my prime list. And it goes all the way up to 10,000-ish. Now, and it does this all in a remarkably short time of somewhere up here. Ah, execution time at the top. Let's see, elapsed time, 0.13 seconds, which is pretty good for a laptop. So, yeah, that's how stuff works. I can F3, F3, my top menu. I'm going to log out. I'm going to shut down, and it will start a script that will shut down the system, and I will log off, and it will start to unmount all the drives, and that was my demo. Oh! Okay, thank you so much. Now, let's see if I can go back to the presentation in a timely manner. Settings, displays, join, apply, keep changes. Here's my presentation. Start from the current slide. And yay, that works too. Wow, I'm amazing today. Okay, so what is the performance of a mainframe on my laptop compared to an actual mainframe these days? What's the speed difference? What factor of speed are we talking about? Well, Hercules performance. We are comparing an i7 processor to a real IBM Z14, and if you know that the Z16 has just been announced, it's about, this is about three years old. The Z14 was about three years ago the main model. So this is on Hercules, so test one does 344 million instructions per second. Oh, okay. And a mainframe does 5.8 billion. So you divide those two, you do it in your mind. I'll give you a few seconds to calculate this. You know, what else have you got to do? Or I'll tell you it's about approximately 16.8 times faster. Of course, this is comparing apples to elephants. Why? Because this laptop is not built for massive throughput, and a mainframe is. So its job is not to calculate prime numbers, its job on a mainframe is to get as much data from A to B, and it does it way faster than any laptop. And the developments currently in mainframe are still state-of-the-art. If you think you have cool hardware, think again, mainframe hardware is absolutely way more cool. We're all talking about, you know, I've got a system with a three gigahertz processor. Oh, that's nice. They have 128 processors at 5 gigahertz. You know, there has to be a difference. You pay for it. Don't get me wrong. Okay, some updates. Since the first time I did the talk, Morshik's very nice guy made an online system available. So you mail him. The presentation will of course be uploaded to the pre-talks. And you can mail him and you get an account and you can play around with MGS without unzipping a zip file. If that's too hard. Well, maybe in this audience you'll probably manage. I did a research some day about the mailing group. How old are you guys? And it turned out they were on average 62 years old. So they're getting close to retirement. Do you start to understand the for-profit part of my title? Or maybe I should explain it. I don't know. There was this guy, a boy, 18 years old, who did a bid on eBay. $344 was all he had. And he got himself a mainframe from a university. So he has a hilarious YouTube movie clip about how he got all that stuff with his dad's car from the university to home. Well, he had to sort of rebuild the basement without his parents knowing to get the hardware in and then switch it on and the lights were a little bit dimmed, you know. And then working out how that thing worked. He got a job at IBM Picoopsy. And Picoopsy is the place where they develop new mainframe hardware. So he really landed his daydream job simply by investing a little bit and started to play around with it. And he said, hey, you love mainframes. Why don't you come work for us? Oh, by the way, this is not a pitch. I'm not a recorder. I maybe should say that at the start because every time you're... Oh, you want to work for us? Boring. Okay. So I was thinking, oh, this is fun. And I asked in a group, does anybody have an old, original 3270 terminal that I can hook up to my laptop? And some very nice guy from Amsterdam said, I'll hook you up. I'll have the stuff. That should have got me thinking. I'll have the stuff. Anyway, I went there and he showed me a pile of stuff. All this to get this terminal working on this simple Dell PC and there's even a component missing because they didn't have it at that time. But this one has a coax cable that goes to a concentrator where the configuration is in five and a quarter floppy drives that goes to HDLC modem cable stuff thing that I don't use, but there is an extra insert that you can do an optional insert for either Ethernet or Token Ring. And Ethernet is very expensive and very rare, so you end up with Token Ring, which means that you will exit on the back of this with Token Ring to a Token Ring hub that you just have to get laying around, of course, as one does. And then you go to a Cisco router where that does understand Token Ring and understands Ethernet to get to Ethernet to your PC. So that's all here on the back, all coax connections. Anyway, and that supposedly works. Yeah, you said that the first time. No, no, I'm not going to. No, no, I don't get that. Nice joke. And now there's this guy, Andrew Kay, and he started thinking about this and playing with it and he did a reverse engineering of the 3270 protocol because it was not documented outside of IBM. And he started making hardware, and the first hardware he made was this board where you should go, this is coax in and this U is B out, and you have to go to eBay to get pretty rare, and they're not more in production, but you can find them on eBay, two chips, and buy them for 15 euros or something. And then you can connect that, and it's smaller than this pile of hardware. But he was not satisfied because, well, you know, you have to get these old chips and there's no future in old chips. So he started designing again and he made this board and this is a coax plug, which means this is a very small board and he put an FPGA on it, an Arduino controller on it and then started hacking and coding, and that works, which I totally respect that. To me, that's, wow, you know? Now, if you only want the experience of an old terminal, simply install the cool retro term software package and you can have an application window that looks like an old monitor, even if you like with the sync problems coming down the screen, if you like. Okay, during preparation and giving the stock, I met a few new friends, a lot of guys in the S390 because there's a very helpful bunch of people. If you like to learn more about it, join this mailing group, start asking your questions. They are getting, like I said, near to retirement and they love young people to get younger people to become interested in this. Moshe Bar of the Moshe YouTube channel is based in Texas, very nice guy, always ready to answer stuff. Sam Gallop. Well, Sam Gallop is the maintainer of the CBT tape and that's a distribution of tools. So, it's a distro. Basically, he's a maintainer of a distro if you're into Linux and this is just a computer tape with a lot of tools and everybody knows a CBT tape and he downloads them and installs tools. That's what he maintains. We've even got, in the Netherlands, a couple of really nice mainframe guys, Rob Prince, makes an editor, RPF, does also a very nice update that you can download at his place. We have a guy from Groningen, I forgot his name, I forgot to put his name, but he did the free XA initiative. Why? Because MVS at that time had a maximum memory of 16 megabytes. So, you can't address more than MVS and 16 megabytes and he put up a poll and asked for a lot of signatures and then asked IBM, can you please release into the open source? It doesn't have to be the source code. Binary is fine as well. The MVSXXA, which was a successor to MVS, in which you can address two gigabytes of memory, which would be nice. You can do more stuff with it and I believe that it's got TCP built in and he got some 1,300 signatures, but IBM declined, unfortunately. So, IBM, please don't be a jerk. Give us the stuff, right? Mainframes today, why would you use a mainframe? Well, it's fully encrypted to everything. It's got security, unparalleled transactions per second per computer unit and amazing mean time between failures. This thing is as stable as a rock and that's one of the reasons why people buy mainframes. There's a very nice YouTube clip where he says I tried to break a million-dollar computer. Well, yeah, the price is about right, but it shows you the technologies involved in the latest mainframe release cycle, the Z16, because it starts at 128 cores in a CPU, but every core has also got an AI chip next to it. So, it's really for also developing really new interesting functionality. In conclusion, I think it's a wonderful new world and it's for fun and could be for profit. Any questions? If anyone does have any questions, can you line up behind the microphone so that we can hear loud and clear what the question is? Signal Angel, do we have any questions from the Internet? No questions from the Internet at the moment. We have one question. Fantastic. It's kind of a question. Sure. I'm ancient. I'm about the average age of your... Yeah, me too by now, yeah. Go us. Yeah, exactly. When you say mainframe, are you referring solely to IBM? At the moment, well, I'm not an expert, but at the moment I believe they're the sole supplier of mainframe hardware in the world. That could be, because when I was a child, I'm pretty sure they weren't the only ones. Yeah, there were more, of course. It would just be handy if you said that, but I really enjoyed the talk, it was great. Oh, thank you very much. Thanks for the question. Hi, thanks for the talk. How similar is the development environment that you showed the TK4 to an actual current IBM mainframe? In a way, it's very similar, because the GUI is still very much similar. Of course, there are much more features involved these days. Database technology has evolved, transactional GUI kicks has evolved, of course encryption has evolved. They also cross-compile a lot of open source tools to mainframe. There are some who say, look, we can virtualize everything on a mainframe, so you get one mainframe where you have 30,000 instances of Linux doing web stuff. Yeah, that's possible if you've got a system like that laying around. What I also see is a lot of organizations who have a mainframe stay with a mainframe, and one of the reasons is that IBM makes sure that the cost of upgrading a mainframe is less than porting the software to a new platform. So they really make sure that there's a business case where you can only say, let's upgrade this system because it's cheaper than porting everything to a new platform. I'm also an S400 fan. I've got a collection of about seven of those devices, and it's a mid-range. It's much more focused hardware on throughput than the regular X86 standard sort of hardware layout. And my other question is the other way around. So is there any chance that a customer that has a mainframe moves their software onto a system like this? Well, maybe it would just surprise you, but there is an extension to VS Code where you can connect to your mainframe and code in VS Code and synchronize and submit jobs on the mainframe. So yeah, they did evolve on that area. You don't have to constantly use this pretty archaic user interface. There are lots of tools on the outside. There are things like every organization needs his own design of a report. So there are also report engine design stuff that you do in Windows or whatever. Sorry. And that you deploy on the mainframe and there you generate and print reports. Yeah. Okay. Thanks. Next question. Thanks for the talk. You're welcome. I just wanted to let you know if you are an IBM partner, then you can have a hard disk which has the newest ZOS version on it as a way to develop. Well, yeah, they do sell the ZPDT Personal Development Tool. I believe it's about 8,000 euros. And then you don't have a mainframe, but you have a sort of a dedicated big PC. But 8,000 is a little bit out of my budget range. Yeah, but they do also supply them to schools and universities where our school or university will say, well, that will give us a chance to train students in ZOS, which is of course the current OS of IBM mainframes. And then they'll find a job in that area, of course. Thanks. You're welcome. Thanks for the question. And final check, any questions from the internet? No more questions. So I think if that's it, if there's no more questions, let's thank our speaker for an awesome talk. Thank you.