Transfer a Z System onto your own PC
This is a modal window.
Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.
Formale Metadaten
Titel |
| |
Serientitel | ||
Anzahl der Teile | 45 | |
Autor | ||
Lizenz | CC-Namensnennung 3.0 Unported: Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen. | |
Identifikatoren | 10.5446/54658 (DOI) | |
Herausgeber | ||
Erscheinungsjahr | ||
Sprache |
Inhaltliche Metadaten
Fachgebiet | ||
Genre | ||
Abstract |
|
openSUSE Conference 20207 / 45
5
9
14
16
19
26
28
34
35
40
00:00
EmulatorKonfigurationsraumSystemprogrammierungGroßrechnerRechnerorganisationElektronische PublikationDesintegration <Mathematik>Gebäude <Mathematik>MultiplikationElektronischer FingerabdruckDatenverarbeitungssystemProzess <Informatik>RechenbuchTransaktionHardwareSystemplattformBenutzerfreundlichkeitATMDienst <Informatik>Lokales MinimumRuhmasseVisualisierungSystemprogrammierungProzess <Informatik>MultiplikationsoperatorInternetworkingSystemplattformWärmeübergangKartesische KoordinatenBitrateTopologieSchreib-Lese-KopfStellenringEmulatorSchaltnetzBAYESZählenDifferenteMereologieComputerDruckspannungTwitter <Softwareplattform>Gemeinsamer SpeicherMatchingCoxeter-GruppeFormation <Mathematik>EreignishorizontSpezialrechnerCracker <Computerkriminalität>Projektive EbeneE-FunktionAuswahlaxiomAlexander-PolynomFamilie <Mathematik>WellenpaketGarbentheorieSystemaufrufOffene MengeKlasse <Mathematik>Patch <Software>Transaktionp-BlockSchnittmengeGerade ZahlSoftwareentwicklerOpen SourceATMDienst <Informatik>Äußere Algebra eines ModulsIntegralMultiplikationStatistische HypotheseRechnerorganisationComputerarchitekturDefaultRechenbuchHardwareGebäude <Mathematik>GroßrechnerKonfigurationsraumNetzbetriebssystemEchtzeitsystemVirtualisierungSupercomputerBefehlsprozessorDateiverwaltungHalbleiterspeicherMengensystemRootkitComputeranimation
07:56
Lokales MinimumMultiplikationElektronischer FingerabdruckSpezialrechnerArchitektur <Informatik>EmulatorDesintegration <Mathematik>Gebäude <Mathematik>DrucksondierungSoftwaretestOpen SourceHardwareSystemprogrammierungRechnerorganisationKernel <Informatik>p-BlockTabelleDateisystemVererbungshierarchieGruppenkeimMaß <Mathematik>SpeicherabzugRootkitLoopMenütechnikCulling <Computergraphik>SchaltnetzVerzeichnisdienstEmulatorSystemprogrammierungSpezialrechnerSoftwaretestDateiverwaltungKonfigurationsdatenbankMomentenproblemSoftware Development KitKernel <Informatik>Inhalt <Mathematik>DifferenteElektronische Publikationp-BlockHardwareGebäude <Mathematik>AdditionSkriptspracheStellenringZahlenbereichHierarchische StrukturMinkowski-MetrikDateiformatDokumentenserverComputerarchitekturTaskNetzbetriebssystemLokales MinimumInstallation <Informatik>FokalpunktProjektive EbeneGanze ZahlDatenloggerDienst <Informatik>Open SourceMultiplikationMereologieMatchingSchreib-Lese-KopfTwitter <Softwareplattform>TermMetropolitan area networkTopologieHydrostatikBridge <Kommunikationstechnik>Ext-FunktorWeg <Topologie>LoginRundungWeb SiteAutomatische DifferentiationTorusExtreme programmingProzess <Informatik>BAYESBitBitrateFlächeninhaltEreignishorizontFunktion <Mathematik>
15:53
RootkitLoopDateisystemSpezialrechnerArchitektur <Informatik>SystemprogrammierungKernel <Informatik>Registrierung <Bildverarbeitung>BimodulKonfigurationsraumGebäude <Mathematik>Konfiguration <Informatik>Übersetzer <Informatik>Elektronischer FingerabdruckMultiplikationSystemplattformDesintegration <Mathematik>DefaultParallele SchnittstelleHardwareWeb-SeiteAppletComputerarchitekturSpezialrechnerPlastikkarteSystemprogrammierungFormale SpracheKonfiguration <Informatik>KonfigurationsraumGebäude <Mathematik>SoftwaretestAdditionHardwareSoftwareLokales MinimumBefehlsprozessorMereologieHomepageParallele SchnittstelleProzess <Informatik>MengensystemFestplatteSchnittmengeKernel <Informatik>HalbleiterspeicherCASE <Informatik>BimodulVirtualisierungDateiverwaltungMultiplikationElektronische PublikationARM <Computerarchitektur>SpielkonsolePartitionsfunktionUmsetzung <Informatik>GraphikprozessorSampler <Musikinstrument>KonfigurationsdatenbankWeb-SeiteBitDefaultBinärcodeSoftwareentwicklerSystemplattformEmulatorZählenKartesische KoordinatenRechnerorganisationRootkitRechenschieberIntegralSchreib-Lese-KopfPASS <Programm>MultiplikationsoperatorSoftwarewartungComputerunterstützte ÜbersetzungMetropolitan area networkGüte der AnpassungGesetz <Physik>Program SlicingMechatronikSpieltheorieComputervirusTopologieComputeranimation
24:59
Fibonacci-FolgeGesetz <Physik>QuaderCASE <Informatik>TypentheorieMultiplikationsoperatorComputeranimation
26:31
Cloud ComputingENUMGefangenendilemmaComputeranimation
Transkript: Englisch(automatisch erzeugt)
00:00
Nice. I hope I can see more on top if I will be reconnected anytime. I can see only my slides as default. OK. Welcome to my presentation, Transfer a set system onto your own PC.
00:24
The idea of this topic is based on my bachelor thesis at IBM in the last semester. The topic is about the emulation of set systems, especially for open source projects.
00:43
Therefore, I will explain firstly what are mainframes. Then we will come to emulation with Coemu and Docker Build X because we want to integrate Docker images into Coemu for faster deployments.
01:04
Then we are coming to the challenges, the architecture and how to integrate a different file system into another one. Afterwards, I will tell you something about the required system configuration, multi Docker images and their advantages.
01:28
At the end, I will tell you how to integrate that all into Coemu. Mainframes are high performance computers. You can see that the set 15 system
01:46
above and IBM provides Linux one systems based on the architecture of set systems with a special configuration for Linux. Therefore, the architecture S390X is available for both systems.
02:07
Mainframes can process billions of simple calculations and transactions in real time and they are used for mission critical data. Many customers are using such systems for banking systems too, but you can use that for blockchain or anything else.
02:33
You all have got another architecture on your systems in front of you to see my presentation.
02:43
You are using x86 systems and at the end, we want you to run applications for S390X on x86. Is transferring a system to another system meant worth that? I hope, I believe you all are saying, hopefully not.
03:12
We want to emulate systems so you can run applications for another architecture on the host system architecture.
03:21
So, we want to transfer our S390X system on x86 with running Coemu and with an integrated Docker image. The difference between, there are two different emulation modes in Coemu available, the user mode emulation and the full system emulation.
03:49
With a full system emulation, you can emulate the whole system with hardware and the operating system. So, you can emulate multiple CPUs for different architectures and everybody of you know
04:08
that open source is built for multiple architectures as ARM, S390X, x86 and everything else. You can run privileged instructions with the full system emulation, so you can execute processes with root access inside of that.
04:36
But the disadvantage is that it requires a lot of hardware resources as memory and CPU.
04:50
Another benefit is that you can use that as an application development platform. So, you can test your application inside of Coemu, whether it is usable and whether all is running correctly.
05:14
The user mode emulation is available for emulation of application processes.
05:25
It does not require so much hardware resources as the full system emulation and you can emulate system calls with that. So, you can emulate only single services and not multiple services in one system.
05:51
Then, I have to tell you something about container technologies because we want to combine that and container technologies are well known as container virtualization.
06:08
So, you can run application isolated inside of containers and you have the benefit that you have got fast deployments with that.
06:22
In the end, we want to combine Coemu with container technologies. So, you have got the benefits of Coemu in combination with fast deployments. I am using Docker as a container engine because that is providing Docker build commands in combination with emulation.
06:50
So, you can build Docker images for alternative architectures. Another reason is that it is the foundation for most following developed container technologies.
07:11
The same counts for Kubernetes, which is a container orchestration system. This one is capable for distributed systems on multiple hosts.
07:32
My topic was especially for Kubernetes based open source projects with an application and Kubernetes.
07:42
So, I wanted to run Kubernetes inside of a Docker image and then inside of Coemu at the end. I told you that you can emulate alternative architectures with Docker, whereas the feature Docker build X.
08:04
So, you can build multi-ice Docker images and you can run the build command for multiple architectures in one build.
08:22
That has an integrated emulation in the background with Coemu user static. This feature is available as an experimental feature in Docker. So, you have to enable experimental features at the moment.
08:44
In future Docker versions, you don't need experimental features anymore because that will be deactivated in the future. That was reported last week, but you need the export of the Docker build kit and with the Docker build command,
09:11
you will build a multi-ice possibility from the build X repository inside of your local Docker repository.
09:27
So, you can build multi-ice images on your PC. The challenges or my main task had a focus on open source projects.
09:44
You all know we are developing inside of communities and everybody here of you has got x86 hardware in front of you. But we want to support alternative architectures and that is only possible with tests for these architectures.
10:07
But how do you want to do that with missing access to these architectures as 390x as an example? Additionally, every developer likes the fast deployments and that is
10:27
possible with the combination of emulation technologies and container technologies. So, I wanted to combine that. That is the architecture then.
10:43
As a base, you have got x86 hardware. Then we want to run open source for x86 and then we have to install QEMU for S390x for IBM search systems. For our running QEMU emulation, the Linux kernel for S390x is required.
11:11
The initrd is optional. If you want to build it, it has the possibility to run additional scripts with tests or anything else or any output of log files.
11:31
Then on the right side, you can see the Docker image for S390x inside of rootfs because the Docker image is using a different file system format than QEMU is accepting.
11:53
So, we have to reformat the file system to something as x4 or butterfs or anything
12:02
else and then you can start the system with the service of the Docker image inside. Now we are coming to the file system compatibility. On the left side, you can see x4, which is a file system based on block devices.
12:26
QEMU supports only file systems based on block devices. You can see that with multiple block groups. On the right side, you can see the union file system which is used by Docker and that is based on layers.
12:45
The base layer is a minimal operating system and every additional command inside of a Docker file is creating an additional layer with additional space inside of the file system.
13:06
One layer is integrated into the next one and so this file system is creating the file system hierarchy standard.
13:26
QEMU does not support the union file system, so we have to reformat the union file system to x4. That will be done with an empty directory for rootfs firstly.
13:42
Then we have to export the file system which is registered in your local Docker registry after the build command. You can see that with Docker images too and you have to export with the integrated command docker create and the image name.
14:09
Then you are extracting this file system to the rootfs directory and we have to create an image for QEMU that we can integrate this file system.
14:30
That will be done with the QEMU-IMG command and we want to have a size for that which is matching to the Docker image.
14:49
We have to grab the Docker image and with AWK we can receive the size.
15:01
QEMU-IMG does not accept double numbers so we convert it to an integer and we require an uprounded number and a downrounded number so we are using the additional 0.5 for that.
15:22
This image has got the correct size and we have to format it with x4, mount it into mnt-rootfs and then we can copy the whole content of the rootfs directory into mnt-rootfs.
15:45
At the end we have got the app-img with the reformatted docker image.
16:01
When we are coming to the system configuration we have following packages for openSUSE. We require QEMU for using the general emulator QEMU. QEMU Linux user provides the beneficial configuration I will describe on the following slides.
16:30
QEMU S390 has got the emulator for S390x.
16:41
QEMU tools is required for QEMU-IMG and then Docker of course for building Docker images. Then we have to register the Linux kernel module BINFMT-MISC for S390x and the same is possible for
17:08
multiple architectures on one system so you can do the same for ARM or other architectures on your PC.
17:21
BINFMT-MISC is a kernel module that has to be mounted in the proc file system and then you can see the command to register QEMU S390x in BINFMT-MISC.
17:48
That is the same as you can do that for the possibility to execute the XF files for using Wine and afterwards you can run the binaries for QEMU S390x.
18:09
We don't want to use only QEMU. We want to provide more.
18:21
Therefore, one part of my job was to create multi-ICH Docker images. Multi-ICH Docker images are based on Docker files for multiple architectures and that
18:42
is especially required for base images with integrated compilers because of the hardware dependencies. Everybody knows that Go, Java or every other language requires compilers built especially for a special architecture.
19:05
So if you want to run your application on a system, these compilers have to be pre-installed. The same counts for Docker and therefore you can build Docker images for multiple architectures on one way.
19:30
And then you can use the build option platform and the build command
19:40
is filtering which architecture do you want to build and these platforms are selected. Docker build X provides the option to add multiple architectures. The commas are separated behind the platform tag. So you can add behind QEMU S390x other architectures as x86 or ARM architectures and then Docker
20:14
build X is building Docker images for all architectures in one command inside of your Docker registry.
20:27
At the end, we want to integrate that all in QEMU. Therefore, we have to download a Linux kernel or we have to build one and then we have to integrate the converted file system with HDA.
20:51
I will explain to you with minimized QEMU command that we don't require all hardware resources which would be provided with default settings.
21:14
Here you can see the QEMU command for S390x. Then we have got the Linux kernel which has been integrated.
21:28
The small minus M is the size of the memory. The big minus M is the system which
21:42
is required in our case is that S390 CCW virtual and we don't want to have default settings. If we wouldn't use the no defaults, the additional devices as graphic card, network card and everything
22:02
else would be added and that would require a lot of hardware resources as memory and CPU. Additionally, we want to say we don't want graphics but we want to have the console instead of that so we have to say give me a console, please.
22:23
That has been added as a device and a little bit down that is given for the ID and that it should be alone.
22:42
Parallelism isn't required for development tests too. So that is deactivated. If you want to use only local tests for a small application, you don't require any network card. So I have added this for basic tests. The graphic card is not required and then we
23:16
are coming to the minimal CPU size with SMP and here you can see the created image.
23:28
The created image cannot be started without the integration into the root file system. So we have to
23:41
say in the append command, please start the system from this partition and in my case, the provided partition for the HADA partition of hard disk was devvda. We want to be able to execute commands with Bash. So I have said I want to use Bash.
24:19
I hope that was clear enough. Yes, I am in time.
24:26
We are coming to the references. The set system can be found on the home page of IBM under hardware. The Linux 1 system has its own home page and the Docker and the Kuemu picture were found at the wine page.
24:53
Do you have any questions? So I hope you can hear me. I just wanted to thank you for
25:11
running the talk a second time. I really appreciate all the efforts. Thank you very much for that. Thank you.
25:21
Was there a question? I know someone kind of spoke up and Sarah, thank you for your talk. If we can't hear you so well, maybe you can type it in the chat box. It seems there are only congratulations in the chat box now. Thank you. If you
25:45
are interested for my bachelor phases, you can find it on GitHub inside of my account.
26:02
Thank you, Sarah. Thank you too. Thanks. So it looks like our next talk is going to be from Neil and Michael and it's going to be taking place in about 18 minutes or so.
26:26
It's from Stasiak. And they're going to be talking about the OpenSUSE Heroes and getting better infrastructure. So stay tuned for that. Bathroom break, crack a beer, whatever. See you all pretty soon.