Hi, I'm going to talk to you about Ranex. Ranex is a new OCI-compatible containers runtime to start containers as Zen VMs. Now, let me go slower on this sentence because it captures a lot of meaning. So it's an OCI-compatible because it's implementing the runtime OCI specification. And these are runtime. So it can be used together with container D, for instance, to start containers as Zen VMs. What does that mean? Let me go forward quickly to one slide to show you this diagram to better explain the concept. Normally, a container is fetched by container D. And then container D installs the container on your host system. Then calls a binary called runC to run the application in the container. So runC is the component that is responsible for setting up the runtime environment and, in fact, is the one conforming to the OCI runtime specification. So runC, to oversimplify what runC does as a way of explanation, it cheeroots into the container, set up some additional Linux namespaces, and then runs the application. So runX is a replacement for runC. So it works as the same level. It complies to the same interface. It started from container D the same way. But instead of cheerooting into your application, what runX does is it starts a little micro VM, virtual machine, using the Xenia hypervisor to run your container. So this is not a large virtual machine. It's not like runX starts a virtual machine with Debian and inside even Docker and then running container that way.  So there is pretty much just the container inside plus a kernel, just enough to run the application. So you can find runX on GitHub under the Linux Foundation Edge umbrella, so it's LF Edge runX. And the main purpose of runX is running containers as virtual machine for embedded. So it's targeting embedded that's the primary focus. So why running containers as VMs and what does it mean for embedded? A number of things. So first of all, running containers as VMs give you a lot more isolation and security by default. So it supports things such as multi-tenancy. But aside from that, it comes with a number of interesting features, key differences compared to regular containers to make it suitable for embedded environments. For instance, it supports real time, hard real time. That's because Xan VMs support a very strong form of real time, including even cache isolation for best performance and minimal latency. And you can easily configure one of these container VMs to be started with real time attributes. So if you care about real time, you can have very strong form of real times using runX. And another feature which is important typically in embedded is hardware access. So very often application need access, direct access to hardware, to accelerators and those are peripherals, GPIO controllers, all sorts of things. And you can give direct access to these resources using runX, as we'll see later in the presentation by giving direct access to the memory map regions of these devices and interrupts. So your container application can actually interact directly with the hardware in the way it wishes. So runX is an open source project, as I said, under LFH. So it's open for contributions. It has been open for contribution from the start. So just send an email with a patch to the mailing list, we'll review and commit. So there is no need to sign any licensing agreement. The license is a patchy P2 and we are open for contribution with a contribution model similar to the Linux kernel and then it's time to get into the implementation choices. So what does make runX unique? Why runX? Instead of another project in this space, we'll start it from the default, which is runC to other projects to start containers as VMs such as Cata containers. Why runX is different? Well, runX is different in a number of ways. First of all, runX aim at being very, very small, very simple, suitable for very limited embedded environments. So it's very simple, both at build time as well as run time optimizing for having a minimal overhead, minimal dependencies to reduce the size of the binaries as well as the startup times, boot times, suitable for environment, as I said, with limited resources. In terms of the build, runX strives to be as simple and as easy as possible. So the only build time dependencies that we have are GCC, make and go, the GoLang compiler. And the GoLang compiler is probably gonna go away soon as a dependency. So that means that soon we're gonna have just GCC and make and nothing else as build time dependencies. That means that it's actually easy to cross-compile runX. So if you install a Linaro cross-compiler, for instance, on your regular distribution, you can cross-compile runX on your X86 laptop for an ARM64 target quite easily. And you'll see it later in the slide deck. It's also important to note that there is no Zen dependency at build time at all. So what that means is that you can easily build runX on your AWS container, VM, any environment. You don't need to have Zen there. It can be a completely different environment from your target because runX is completely self-contained both in term of build time dependencies, but also in term of run time dependencies. So let's look at the run time dependencies. So of course you need Zen installed because otherwise you're not gonna be able to start Zen virtual machines. But aside from that, you only need Bash, JQ, Socket, and Demonize. So there is more, very limited amount of utilities. You just needed to do a little bit of parsing and that's it. So you can easily build in an environment like I often build on a Debian container on X86 and then deploy on an ARM64 Alpine Linux machine or on Yocto or in any other environment. Another very important point to make is that there is no dependencies between Zen and runX. So that means that you can easily upgrade Zen, change version of Zen independently from your runX version. You can build and run runX in a way that is completely independent from your Zen version. Now, this is very different from Cata container that used to have at least the last time I looked. Zen support by linking directly against Debux Cell then meant there was a built-in dependency against Zen and also a tie between the Zen version you built against and then you were gonna run against both of the user space tool and the IPadvisor that made the whole system much harder to build and to deploy. Other choices in runX that are different from other projects is that runX doesn't have any in-guest agents.  So you can disable a lot of drivers.  And this is just to provide just enough setup to set up the network and run the application in the container and that's it. So in other words, your user space environment inside the virtual machine created by the runX is your pristine container environment. There is no foreign agent, strange demon running just to connect to services on the off side. There is nothing just your container and a minimal kernel for politics compatibility. Speaking of the VM, the VM as well is as small as possible. So there is no device emulation is a minimal environment. There is no in-guest firmware or boot loader. There is no BIOS, no UFI, no ACPI, no grab, nothing just straight put the tiny Linux kernel and nothing else. Finally, runX builds against the OCI runtime specification. And the OCI runtime specification, first of all is a well-maintained spec, but is also very nice abstraction level. And we feel is like the right abstraction level to develop a component against. So that way it's gonna work not just with container D, which is our default testing environment. That's what we're working against today, but it works with any other OCI compatible container engines, which greatly increases your deployment strategies. So this is all different from other project that don't build against an OCI specification or for instance, they require agents inside your VMs and to connect to all services. Okay, let's look at the build. So let's say that you wanna build runX on your Linux distro, could be Ubuntu, Debian, Fedora, you name it. To make this thing more interesting, let's say that you wanna cross-build it. So you are building on your X86 laptop and you wanna deploy it on an ARM target, could be a Raspberry Pi 4, could be Xilin's board, any ARM64 SoCs. You just need to have a cross-compilation tool chain. So your ARM64 GCC, you can use the one from Linaro for instance. You need the Golang compiler and the package from your distro, it's fine. So you don't need to go any extra lengths, just install the Golang compiler. And then that's it.  So what is the output of the build? The output of the build is a set of scripts. RunX itself, the entry point is the main script. You should copy and copy into the target under user bin or user's bin. And then a set of other scripts and that they need to be copied on the target to user share RunX. Among these, there is the kernel we mentioned earlier and the RAM disk that are provided for compatibility so that you can run your traditional container inside the VM. So it's quite easy to install on target. That's one of the thing I was trying to say because you just need to copy RunX to the target, copy user share RunX to the target and that's it. After that, the only thing you need to do is configure container D to use RunX instead of RunC. How do you do that? So in container D prior to version 1.2.9, you just edit config.tamo in case you didn't know, config.tamo is the main configuration file for container D and it lives under ETC container D config.tamo. So the only thing you need to do is set the runtime to user's bin RunX as shown on the slide. If container D is greater than 1.4.0, instead of the config.tamo configuration route, instead you have to pass minus minus RunC minus binary equal to the RunX path and that chooses a different RunC binary for you directly from the command line. Unfortunately, container D in between these two versions, so the 1.3 series of container D does not seem to offer a way to change the runtime but at least we haven't find one easy to use yet. So you have to resort to little hacks such as renaming RunX to RunC so that container D will execute it thinking it is RunC. Not nice, but it works. And now I'll leave it to Bruce to tell you how to use RunX with Yocto. Yeah, I'm going to go over how we sort of have integrated RunX to an extension or to wrap what Stefano was talking about about the simple build, how we can put it into a sort of deeper Yocto stack, OE built stack, if you will, so that you can both build sort of the platform, RunX, Zen, the guests and everything all in one build and then be able to deploy it. So that's what I'm going to talk about. But first, I should say a little bit about myself. I've been a maintainer in Yocto for 11 years now. I look after the meta virtualization layer in Yocto as well as some reference kernels and other things and hence why I was able to help do this integration. As you'll see, we've talked quite a bit about meta virtualization. And to put that in context in case people aren't familiar with Yocto and open embedded, I'm going to quickly cover sort of why would you use Yocto open embedded to build and then I'll go into a little bit of how it's pulled together in layers and I've captured some build examples and configurations that I was doing as part of our pulling this together and getting ready so we could demo it. So the question is, as Stefano was saying, sure it's absolutely great for the way Rhinox is built for local development, for quick development, for an individual developer. So why would you ever even bother to bring open embedded in Yocto build and deploy into the picture because obviously every layer you add it's a little bit more complexity, it's a little bit more time. And the big thing is that if you go check out the Yocto project and open embedded, if we have an integration with them then we can immediately leverage some of those open embedded and Yocto project core values, things like the ability to do the configurability, license management, it's of course, leverage its cross build capabilities, you don't need another tool chain, you can do fine grained image composition, tuning, all of these, there's all kinds of things to build your own embedded distro and capabilities that Yocto and open embedded bring to the table there. It also opens up a transition path from development to production. So you can take that while you're playing around with Rhinox and learning how integrating it with a deeper framework and launching containers whether it be container D or something larger, you can take that work, capture it into your recipe into a layer and then you have a way that you can hand that configuration to somebody else, you can go into a production environment, CI CD, all of those things are fairly straightforward to do once you've got used that if you're using the Yocto ecosystem integration. I would say that also what you get with this is with open embedded Yocto is that there's an active community and integration with some of the BSPs they might want to use, whether it be a Xilinx, a Raspberry Pi, a generic other type, any Yocto compatible BSP that's capable of supporting Zen, you can find a layer, you can find a kernel and you can use that community's BSP to build and get a platform. You don't have to go source all of those bits yourself and get a vendor kernel and figure it out. And the other thing that I find at least interesting is that we can do what are called multi-config builds. I'm not going to go into great detail on the mechanics of that, but what it allows within in the recent versions of the recent releases of Yocto is that you can do, you can build your Zen host, your guests, your containers and your firmware in a single configuration and a single platform. It knows how to switch tool chains. It knows how to compose different images and then bundle them all together and everything that you need to deploy. So you don't have to keep track of all the dependencies and revisions of the software and able to make a reproducible build. It does that automatically with a multi-config build. And as I've been hinting at, the build of RunX within Yocto, it's an integration. It doesn't replace all of the simplicity and the ease of build that Stefano was talking about. It is wrapping that into a recipe. It's using the same components for you. It's making sure the Yocto cross-compilers there. It's building that same NITRD. It's packaging the RunX scripts into whatever the package of your, your package manager of your choice is. And it's integrating them into a larger image build. But you can at any point do your development and build directly with that upstream LF edge RunX at any time. It no way replaces or changes that it simply integrates it into that one-stop shop. All right, next slide. To step back a little bit, I hinted at this when I was trying to, you know, describe why we would do this integration. So I would say that RunX within the Yocto project, if you will, it's open embedded core, plus a BSP, plus meta virtualization are these three big components. And in the Yocto project, those are their layers. And so those layers, they define the platform and all of your software stack possibilities. So these layers contain all kinds of things, much more than RunX, much more than you might want to use to build a system capable of leveraging RunX. We then have a way that we can have a distribution, configuration, package recipes and image recipes.  And what I was doing for the integration is, you know, we have baseline references for all of this that can be extended or directly used. And so for RunX, you know, OECore provides the base support.  And then it does the image construction and it provides the lowest level, all of the common parts of the build. When we layer on meta virtualization, that's what brings us in container run times and support. So, you know, I encourage you to go check out meta virtualization if you're interested in this and there's all kinds of different, both virtual machines, container run times and supporting projects that are found within the meta virtualization layer. So, you know, that's where we get container D, CNI, if you want to use that, that's where we have the Zen host image recipe as well as the DOM zero, it gets built out of that. And of course, a U-boot, an NITRD and image build are all defined in meta virtualization.  And in the example that I'm going to go over, I'm using metasylinks so we can, as the example, BSP provider layer. All right, next slide. I captured a little bit of what I did as sort of a reference build. And that's on the ZCU 102. It can be booted on hardware and it can also be booted on QEMU, which is why we chose it. So it's quite accessible as an example. You can do this, you can spin images on anything that supports Zen in the right way. So obviously the Raspberry Pi is another good example of something you could build. And so I'm not going to walk through every single little step of this, but I wanted to point out, this shows what I was talking about in these layer stacks that we clone the main open embedded core. And in this example, it's using the Pocky reference, which is the Yachto reference for that. I'm bringing in meta open embedded for some higher level packages, meta virtualization. And of course, I'm bringing in the Zylinks open source components from GitHub. We initialize the build environment. This is standard Yachto stuff. We create ourselves a build workspace, if you will. And then we add the layers that I was talking about, which is so we need file systems, we need Python, networking, course meta virtualization, and then three parts of the Zylinks BSP. Those last three would change based on your target machine, what hardware, whether it's virtualized hardware or not. But everything else, the top part, it stays the same. It would always be done. And now this, it gets a little bit. So this is not everything that you would need. And it will be pulled into what we call a distro configuration, so it can a little bit more out of the box. But it's just showing, this is some of the things that you need to set in your local.conf, which is your local build workspace to say what you want to happen in the build. It's mainly here for reference, but I'll hit a few high points on it. We're saying that the machine that we're building for, which I mentioned, which is the ZCU-102, we, I mentioned a multi-config build being one of the good things for Yachto. We're defining one here to actually build some firmware that is needed to actually boot the platform. You could easily substitute that out to actually build a container that you were deploying multiple containers, different VMs, whatever you want. In this example, I'm only building the firmware because we're actually pulling down containers directly from Docker Hub to show that they can be run. It's turning on some distro features, as I mentioned, we need Zen, we need virtualization. And then it's making sure that container D and run C are in the image. After that, it's some configuration to make sure that we're using the Xilinx QEMU so we can boot the platform. And then it's all just, it's standard stuff. And then there's a multi-configuration for the PMU that I mentioned, and that just says, it indicates how to build that secondary bit of software that you need to boot. The one thing I'll say is that everything that we're showing, and for the Yachto integration, it is mostly, I would say 95% now available in the master branch of meta virtualization and any other patches to say OE Core or the projects they've been sent out. Stefano has merged things into Run X, for example, and so we're covered on that front. So it should be reproducible out of a build. If you weren't using multi-config because you're happening to be on an older Yachto project or for some reason it wasn't available, you can fetch some of these pre-built binaries from Yachto's, sorry, Xilinx's site. And I gave an example just so people will know there's an option to a multi-config build if they need it. And I'm not gonna go into any detailed all in those because they're automatically built if you use the multi-config. And then finally, you build your image. After all that configuration set up and in this I'm building two, you really only need that image minimal for what we're demoing with Run X, but core image minimal is a good test, simpler image to build to make sure that everything is seen in your configuration. What happens after that build? You know, it will go away and it'll churn depending on the speed of your build server. It could be first build from a clean build, it could be two hours because you're building everything. Subsequent builds will use what's called estate cache, it will reuse and only build what's, so subsequent builds are much faster. So you might have a bit of a long first build, but what happens is the outputs that we've defined get dropped into this deploy directory, which is in your build, it's build temp deploy images, your machine, that's where these files will be sitting. And so in the example builds that I talked about, I did a few listings, you'll get a Zen image minimal, which shows up as about 76 megabytes as a U-boot configured RAM disk, if you will, and which is the same, it's just the same as the compressed tire ball. It's a bit bigger if it's in the different formats and I'm highlighting here that we built in that configuration multiple different types of images out of the packages. You also would get the actual, the kernel, the boot image, which is, it's about 17 megabytes compressed in 56 megabytes in this image that UB, which is defined in meta virtualization to make sure it's U-boot compliant, if you will. And finally, we also actually built U-boot and so that's much smaller. So from what I said before, you get the boot loader, you get the kernel, and you get the minimal host image, that everything that you would need in order to deploy the system out of the single build. All right. There is some target configuration interaction that are required either for the boot, you may need to talk to U-boot or as Stefano was mentioning, you may need to edit the config.toml of container D. That's what I'm talking about there. There's still some things that we can make either into configuration packages or do different things, but there is a little bit of tweaking you still may need to do. And then in this slide, I showed how you would launch directly from your build directory, how you could test out what you did. So I have two, you use this command, which is a Yachto projects data command called run QEMU. I booted this simple core image minimal, it would boot to a prompt, a headless text-based console you can log in and have a look. And I also show that you would launch just by changing the image name, you could do run QEMU on Zen image minimal. And no graphic slurp says run it headless and use user space networking, much easier than setting up a ton in tap for most people's purposes. And that is how you would boot the two different images. All right? And so here I wanted to show that, yes, if you boot Zen image minimal and you're talking to U-boot, there is a little bit of configuration. I'm not sure if it's in our slides, but there is a image builder available. I think it is somewhere in the slides where you can get this generated. You do not write this by hand because it's error prone, but this is showing that for U-boot, it's showing that what you would have to do. You know, your TFTP image, you need to get the DTBs, you need to get the Zen RAM disk for the, and the core, and it's minimal image. You need to do a little bit of FDT, some device tree manipulations for DOM zero and Zen so everything knows where it is and then you boot it. So again, this is here for reference to let people know that you might have to do this if you're, and it would vary for the hardware you're using, but you don't write it by hand, there are ways to generate this, all right? And that's it for me, back to Stefano. All right, so we've seen how to build and how to run Ronex. As I mentioned, normally for traditional containers, Ronex will provide the kernel and the RAM disk. So why? So a container is essentially a set of user space Linux binaries. But if we want to be pedantic, a set of positive compatible user space application. So we need to provide that positive compatibility layer to run them. And that is basically what a kernel is for. So we need to provide that kernel to run inside the virtual machine to provide the positive compatibility layer. The little RAM disk is only necessary to set up pretty much a network and identify which one among the application in the container is the one to run. So both the kernel and the RAM disk are provided by Ronex.  Excel is a typical utility to start and stop VMs on Zen. Providing the kernel and the RAM disk itself. So Ronex is the one giving the kernel and RAM disk for the VM. However, there is no reason why it could be different. The kernel could come from the container itself. So why? Keep in mind that with Ronex, the isolation, the security boundary is the virtual machine. It's not the kernel. So the VM, the dotted box on the right is the security and isolation boundary. So it doesn't really matter from a security perspective what you run inside. So there is no reason why the kernel has to come from Ronex. The kernel could come from somewhere else. Ronex would be very happy to run that kernel instead to provide the compatibility, the positive compatibility layer inside the VM. So of course, the very good candidate for providing a different kernel is the container itself. So the container could come with a kernel inside the zone file system. You can imagine the container having a slash boot slash VM Linux binary. And then it will just pass it to Ronex. Ronex will find the kernel and use that kernel instead because again, Ronex doesn't really care which kernel to run inside the VM. So this is already supported now. And the only thing we need in addition to what I just described is a way to advertise the presence of the kernel or the presence of the RAND disk inside the container. So the container needs to be able to say, hello, I have a kernel, please run my kernel. And then Ronex could find this kernel and see how the container is coming with the kernel. And might as well use his own kernel and then use the kernel inside the VM. So today we are doing that using environmental variables but we really want to have proper labels or annotations specified as part of the OCI image spec. So why would you want to do that though? So is there a good reason? So you can imagine multiple reasons to do this.  You might decide to want to have the latest upstream or you might wanna have the rail kernel or the Debian kernel or you might wanna have a very specific driver that is not upstream yet or you might wanna have the real-time path set applied. So you might wanna run Linux RT. Well, as I mentioned, Ronex is built mainly for embedded. One thing that is very important in many embedded deployments is real-time. So if you are gonna set up the VM to be real-time then you might as well have also real-time kernel inside the VM. So these are all reasons but I can add that are easy to guess but I can add one more reason that might be less easy to guess, a bit more far-fetched maybe which is why not, not running an RTOS? So if you can specify your own kernel it doesn't have to be Alinos kernel. It could be a different kernel altogether. In fact, it could be a tiny Bermeter application or it could be a real-time OS. It could be a Zephyr kernel or it could be a free RTOS kernel. Package as a container and advertises the kernel to run and then Ronex, it doesn't really care if it's Linux or another kernel as long as it runs in the VM. So it will just call Excel create as usual and what you end up is with the VM with your kernel inside with your RTOS running inside. So now you have a way to use Kubernetes to deploy at scale on target your real-time application built with a real real-time OS using Zen VMs and all the, you could exploit all the configuration to get the best possible latency in these environments. Of course, if you're gonna do RTOS, it's very important to be able to assign directly hardware to them because that is where they are most useful so that they also drive physical resource. And we're gonna see soon how that can also be done. So in summary, as I mentioned, so Ronex comes today with support for container with a kernel. So the container can specify its own kernel version or it can also specify its own RAM disk version. So that is less useful so that the container can select his own special version of Linux, any version of Linux, but also non-Linux OSes from RTOSes to Bermetal applications and even proprietary kernels such as VxWorks. We're gonna see later a demo actually based on VxWorks with Ronex. So again, the long-term goal is to have proper flag standardized by CNCF. Today we're using two environmental variables to specify the kernel or the RAM disk called Ronex kernel and Ronex RAM disk. Device assignment. As I mentioned, if you are interested in real time, you are most certainly interested in driving a physical resource. How do we do that? So we exploit device assignment of Zen virtual machines. So Xen, if you're not aware, offers the ability to assign devices, device pass through directly to VMs by remapping the memory regions of these devices and the interrupts of these devices to virtual machines. So what we can do is we can basically run Ronex, Ronex passing a few extra arguments, asking Ronex to also assign a device to the container you're about to start as a virtual machine. How that is done is done by again, an extra flag. So you set an extra flag saying, these are my extra configuration options and Ronex is gonna read these options and is gonna append them to the VM configuration file and then start the VM with it. So if you're not familiar, Excel create that is the utility as a common line tool to start Xen VM, take a text configuration file with your virtual machine options starting from the virtual machine name to the amount of memory, number of virtual CPUs as well as any other configurations. And that includes, of course, device assignment. So we added an extra option that again is an environmental variable. This is different from the one before because it can only be set by the administrator. So by the user calling CTR for container D cannot really be set from the container. And you can customize any of these parameters in any way you like. So you can change the memory allocation. You can change the number of virtual CPUs. You can set real time related configuration and option as much as you like. And of course, most importantly, you can add device assignment, so device pass through configuration options, such as MMI original remapping, inter-app remapping and even adding device snippet to expose, to advertise a presence of a new device via device tree inside your Xen virtual machine. So everything I said so far is working today and is upstream in Ranex. What I'm telling you now is about our vision for the future. In the future, we would like to take these one step forward and actually allow a container to request a specific hardware resource. The container could come with another set of flags to say, please, I would like an Ethernet card to be directly assigned to me or this other accelerator to be directly assigned to me. Even more importantly, nowadays, many accelerators are in FPGA, you know, Xilinx FPGA, or they could be on a co-processor. So they are actually running their own software, their own kernel, or you must specify the bitstream and load it in programmable logic to have the accelerator actually come to live. So the idea would be for the container to come with the FPGA bitstream and then container D will call a service FPGA manager to program the bitstream into programmable logic. The new programmable logic block will become alive and then the resources assigned, the related resources of this FPGA block will be directly assigned to the virtual machine using Ranex device assignment. So that allows you to have a container to come with both the software to run on the ARM CPU course, as well as the bitstream to load the accelerator in programmable logic so that they can be used as a pair. But that's not just about bitstreams. So this could be used for co-processor kernels running on other foreign CPU clusters such as little Cortex-Ms, Cortex-Rs, ARM processors, or even Xilinx-AI accelerators arrays that are running AI kernel. So you could load this way, you're on AI kernel. So basically, this is an infrastructure to deploy using containers, not just software running on CPU course, but also the accelerators themselves in programmable logic or the kernel running on other foreign little processors. All right, I think now it's time for the demo to show you our Ranex runs. And I'm gonna first tell you what I'm gonna show you using diagrams. And then I'm gonna show you the terminal and running it live. So we are gonna use Ranex to start a little container with a VxSource kernel inside. And then we are gonna use Ranex to start a little Bermetal application with direct access to hardware. The Bermetal application has direct access to two hardware peripherals, the second serial, so the second UART, and also the TTC timer, which is a physical timer, the Bermetal application is gonna use for latency measurements. So I'm gonna now jump to my terminal window. This is Xilinx and PSOC board running here on my desk, just booted. Xen is running, Domzero is running. I'm gonna now execute this little script. It's just mounting a few C-group mount points and then it's starting container D here and loading three containers. One is an Alpine Linux little container. The second one is the Bermetal application I was mentioning and the third one is the BXworks container I was mentioning. I'm gonna first run BXworks. I forgot to run, of course, container D. Sorry, let me run the script, execute container D, import into container. I'm gonna now run the first one with BXworks inside. As you've seen, BXworks came to live, BXworks 7 by Wind River. Thanks again, Rob Woolley from Wind River for providing this container with BXworks inside. As a reference, I want to show you that there is a VM running. In fact, I named the same name that we gave to the container and also there is also, of course, a container running with BXworks. Second thing we're gonna run is the Bermetal application. So this is, as I said, the little Bermetal application with control over the second UART as well as the TTC timer. So we're gonna see here, this is a start that previous to here was the previous run on the serial, but this is a second UART and there is DTC latency measurement being done at the moment, they just completed with a thousand iterations on the TTC timer and with maximum and average intra-platency nanosecond and so on. So if I go here, you're gonna see that there are in fact two VMs running. The second one has only 64 megabytes of RAM instead of the default of one gigabyte. Why? We're gonna look because we changed the configuration using the text file that we passed as an extra argument to run X. So as you see, we set the memory to 64 megabyte. This overrode the default of one gigabyte. Then we mapped a set of interrupts here and to IOMM, to memory origin, the one corresponding to the serial and the one corresponding to the TTC timer. Finally, I'm gonna also run the Dampi Linux container and that's with the kernel and the RAM base provided by run X itself. At the end of the presentation, so if you have any question, please ask.


In this module, I am going to discuss a very interesting product based on Ijara. That is called service Ijara. Service Ijara is a product that tries to reduce the use of Tawarruq. Remember when we discussed Tawarruq, we said that Tawarruq is an Islamic mode of financing which is rather controversial. It is controversial because it looks like an interest based arrangement and many customers, observers and stakeholders in Islamic banking and finance somehow do not feel comfortable with the excessive use of Tawarruq. Service Ijara actually is a very innovative concept. In case of Service Ijara, a bank can lease a service from a service provider and then can sublease to its customers. This arrangement can be used for the kind of activities which otherwise require cash. For example, I might need cash for paying school fees for my children. I might need cash for paying for my medical expenses. I might need cash for paying a bill for a bed and breakfast or a hotel if I happen to be travelling. For this kind of need, normally people would like to have the comfort of having cash in their pocket. Dubai Islamic Bank was actually the first bank which came up with this concept of Service Ijara because the Sharia Board of Dubai Islamic Bank at that time did not approve the use of Tawarruq in personal finance facilities. So how did this Service Ijara help Dubai Islamic Bank in offering personal finance facilities to its customers? In case of Service Ijara, we are going to use this example. A customer actually is looking for some help, some financing to go for a kidney transplant operation. Of course, this operation is done in a hospital. Now the bank actually after looking into this kind of market, they can have a contract with a hospital and enter into a forward lease contract with the hospital pursuant to which the bank leases the services of the hospital for kidney transplantation. So the bank has got this facility. When a customer approaches it, I need certain amount of money for kidney transplant. The bank would say that we can offer you a product which is based on Service Ijara. We have this hospital, they have state of the art facilities for this kind of operation and in some cases actually they can ask the customer which hospital do you want to have your operation in and the customer may say that this is Dubai American Hospital and the bank would say that actually we have got this arrangement with Dubai American Hospital. You can go there and get your treatment done and the agreement between you and us would be based on this coupling. So the trick is that the bank would buy this service for a price X and or PX and it would sell this for PX plus to the customer and the customer would have the comfort of paying this amount in easy monthly installments over a certain time period which could be one year, three years, five years or whatever is mutually agreed between the two parties. I have used this hospital example but this can very well be used in other contracts like school education and of course in case of hotel accommodation as well. Now the benefits of this arrangement is that this is a lot more Sharia authentic as compared to a Tawarruk based personal finance facility and of course it fulfills a genuine need and from that viewpoint this is a product which should sell in the market and very importantly this kind of products can bring the Islamic banks closer to the real economy. What do I mean by that? In fact if this business of service Ijara is so successful a lot of customers are actually coming to the bank for getting financing based on service Ijara it may very well be the case that the bank decides to set up a hospital specializing in that activity. In fact once I stayed in a hotel and in that hotel they were very strict about smoking everywhere they were signed no smoking, no smoking, no smoking each and every floor they would have this sign displayed and when I asked why so much excessive use of no smoking stickers they said this is a property owned by Dubai Islamic Bank and they want to make sure that no Tariya repugnant or anything which has a slight kind of doubt activity takes place in this hotel. So Dubai Islamic Bank actually owned that hotel similarly if the banks they find that this kind of service Ijara product is profitable they might want to set up their own schools their hospitals their hotels and so on. In fact in case of Kuwait Finance House not in this context but in the context of Morabaha they actually have their own car dealership if you want to buy a car on a Morabha basis from Kuwait Finance House Kuwait Finance House would ask you to go to their Lexus dealership or Toyota dealership and you would buy the car from there. A similar kind of trend may emerge if service Ijara becomes a popular product used by Islamic Bank and of course even if that doesn't happen this product can actually be more profitable as compared to other plain vanilla products why when I as a bank I go to Wellington hospital and lease 50 kidney transplantation operations I am I should be expecting a lot of discount from Wellington hospital I am naming just one hospital and that would be my saving because I would be selling I would be leasing sub leasing that activity to my customers based on the market price of kidney transplantation I am using kidney transplantation as an example that could be any other operation.


The CBI is creating a leadership programme because our CEO members are telling us that one of the things they're really bothered about is succession planning for their board-level roles and one of the big gaps in development is really for board-level positions, really understanding the interaction between business and government. And we think we're pretty uniquely placed to actually help fill that development gap and help board-level executives really understand how to get the best out of government in terms of making sure that they've got the right operating environment for their business. Well, we're looking for a diverse range of people actually and diverse in terms of the sectors they come from, in terms of the size of company, but also individuals themselves and what we're trying to do is create a really robust but quite exclusive peer network across a range of sectors that will really understand what is going on, what are the big live big policy issues that are affecting business today and they'll also get exposure then to interact with its most senior business people in the UK today through the CBI's business networks. To encourage people to enroll for the programmes, really get a good grip on what are their own development needs and how really understanding what's going on between business and government is going to help further their career and making sure that they've got something of value to add to a really robust and quite a senior network of up-and-coming and future business leaders and to make sure that they really can get a grip on what's going on today, big live policy issues from education and schools to climate change, from infrastructure investment to Europe. These are all things that the CBI is thinking about and worrying about and we need their input to help us shape our policy positions when we're lobbying government.


To find the number of permutations for a multi-set with different types of elements, possibly with restrictions on the use of the elements, we find the exponential generating functions for the sets consisting of a single type of element with the same restrictions. Then the product is an exponential generating function for the permutations on the original multi-set g. In principle, that's all we need to do. In practice there's a lot of steps, so let's take a look at a more involved example. Let's find the number of permutations of two elements a and b, where a has to be used one or two times and b has to be used an odd number of times. Since a has to be used one or two times, its generating function is since b has to be used an odd number of times, its generating function is and we can get that if we take our Taylor series for e to the x, for e to the minus x, subtract them and divide by two. And so our exponential generating function for the multi-set will be the product, which we can expand. To find the number of n permutations, we need to rewrite this as a single series. Since we're treating this as a formal power series, we can do term-wise operations provided all of our series start at the same value and all the terms we're adding have the same degree. So we have our power series for e to the x and our power series for x e to the x. As a formal power series, we can just move that extra factor of x inside the summation. But now our terms have different degrees. This is x to the i and this is x to the i plus one. And so we want to re-index using j equals i plus one. So i equals j minus one and i equals zero corresponds to j equal to one. And so rewriting our series gives us... Now, while this is indexed in j, the name of the index variable doesn't actually matter. So we'll rename it i and get our power series for x e to the x. And so we can replace that in our expression. Similarly, e to the negative x will be... And so x e to the negative x will be... Again, re-indexing with j equal to i plus one and so i equals j minus one gives us... And re-naming our index variable gives us... And replace. We also need a one-half x squared e to the x, which will be... We'll re-index and re-name at the end. One-half x squared e to the negative x will be... And let's make one simplification. Negative one to the power j minus two is really the same thing as... And negative one squared is just one, so this simplifies. Now we need to combine our coefficients. While every term has degree i, the first two series start at x equals one, so we need to rewrite them to start at x equals two. And we can do this by splitting off the first few terms. Remember, you can always start later. So the sum from one to infinity will split off the i equals one term and get the series from two to infinity. And we'll simplify. Likewise for the other term, we'll split off the first term and then we'll get the series from two to infinity and simplify. So, like I said, this is kind of a long problem, but our next step, now that all of our series begin in the same place, they all have the same terms, we can add the coefficients and the x plus negative x those will cancel. And now that we have a single series, let's move that factor of one-half into the summation. Now, while this is our generating function, we need to write our coefficients in the form gi over i factorial to find gi, the number of i permutations. For that, we'll need to do a little bit more algebra. So our coefficients are these and we need to get an i factorial in the denominator. So here, we're missing a factor of i, so we'll multiply by i over i to get. Here, we're missing another factor of i. Here, our factorial begins at i minus two, so we need to include i and i minus one to get and we'll move that two into the numerator and likewise for the last term. And so we get and let's split off that factor of one over i factorial to get and we'll consolidate these factors of negative one. So after all that work, we get our generating function and the coefficients give us the number of n permutations. Now, since our series begins at i equals two, that means our first two coefficients are actually zero. So the number of n permutations is zero if n equals zero and zero if n equals one. For n greater than one, the number of n permutations will be this coefficient, which we'll express in terms of n. Now, this is a lot of work and it would be a shame to get the wrong answer because we made an algebraic mistake. So let's check this. Since a has to be used one or two times, there are no zero permutations. We could use one a, but since b has to be used an odd number of times, we have to use at least one b as well and so there are no one permutations either. So let's pick a random number. How about four? And so the four permutations, a has to be used one or two times. So if we use a one time, we get and while we could use a two times, we would also then have to use b two times and we are required to use b an odd number of times. So these are the only four permutations. So there's four of them. Now, if we use our formula for n equals four, our formula gives us four permutations. And while this isn't a proof that our formula is correct, it does suggest that we haven't made any serious mistakes in algebra.


Hey folks, Saber 1000 here today. This is what we got going on. That's right So Won't get it pumped out and see if everything else is okay. We're not sure yet. So I'll film this for you Let's see what's going on It's backing up But it does get a little damp right here But I'm almost positive it's going to be pumped out because We've been here five years and it's never been pumped out So I fast-forwarded you through that but I left you rolling didn't take very long 900 gallon tank Good to go now should be so All right guys, I'll be back with you in just a minute Okay guys, so that was that we noticed over the weekend. It was Starting to back up like especially if we did a load of laundry it would back up into the into the tub and we hear gurgling and a back up into the commode and It start leaking around the wax ring on the commode Which I'm going to fix Probably tomorrow. I'm going to I'm going to use a different product. It's not wax anymore. It's some kind of silicone I think so Anyway, because I've already done a commode before you've seen that before but Some of you have but it's on one of my older videos But this I'm going to kind of do because it's it's something I've never seen before You don't have a wax ring. So it's pretty cool. But So we called a company Saturday night I Called and they said well I'm going to get this out to a text and I'll have them call you back immediately because she asked is it urgent or can I wait till Monday? No, it's urgent.  So We waited an hour hour and a half heard nothing. So monkey calls and they said the same thing All right, she says it's urgent.  We'll be there. We'll be there in the morning. I wasn't sure what time but guy came I fast-forwarded through that but it took less than five minutes. It's a 900 gallon tank took Less than five minutes to for everything to get it all sucked out and washed out and everything so We're thinking we may have a problem with with the leech bed or drain field whatever you want to call it because leech is over that way and So we're thinking some tree that tree over there Those roots might be getting in there causing a little bit of issue, but he says he might be okay because there's no baffles in this Okay, because that's this house was built in 92 but As soon as he starts scraping it down you can see the water coming out of the pipe the drain pipe So he thinks it might be all right. He said just keep an eye on it And if we do have to have a new leech bed put in it's going to be around $2,200 but you should have them pumped out every three to five years and You know for maintenance, but this you know, I've been with her four years. She's owned the house five over a little over five years and It's never you know, it's never been pumped out. So I'll show you You know there it is You know just a little bit of dirt here and I mean he found it right away. He found the The lid to it right away. It's kind of like a manhole cover I don't know if you've seen it in a video, but it was sitting up here like this.  So I mean that's not bad 250 bucks they're all pretty much about the same. So I Thought that was better than 2200 and put a new leech bed in which is a possibility Later on but he said keep an eye on it And if it's not leaching out Which is weird because it's leaching uphill But he said if it's not leaching out, you'll know but he said you might have some life in left in it yet So just keeping on it. So that's cool. All right. So there you go guys Monkey stressed about that all weekend and you know Doesn't it's not good to stress. So she's happy. It's done now These things always come at the wrong time. I said, I know but you know, we've been noticing The tub has been draining kind of slow But when we would do a load of laundry Man, it would just back up really quick So I think I've got a cure for that But we'll have to see about that later. So anyway, I'm editing a video right now to stop And come out and deal with this but as you seen it didn't take that long like I said He might have been here 20 minutes All together. So anyway, just want to share that with you You know things happen. Don't let it get to you. So, you know, it can always be worse Think we got lucky this time. So anyway guys, thanks for watching and I'll see you in the next one. She better admit me and legend gone for now. Bye. Bye guys and take care


Hi everyone and welcome to the Stock Swoosh Play of the Day. This is Paul Lange and this is presented by thestockswoosh.com for June 1, 2016. There were actually two Play of the Days today. Melissa had these plays and they were right out of the open, as usual. This is one of the plays. The other one you can watch is titled ASNA. This is UA. The daily chart of UA is right here. You can see that red line. That is where the stock was going to gap down to. These charts are presented by eSignal. You can see them right there and this particular stock this day was going to gap down to right here. Stock opened in that area. Now when we look at these and rate the gaps, we're looking to find plays that have dramatic moves during the opening minutes of the day brought on by the big money that's coming in to create these gaps. A lot of these plays days later or later that day can reverse and come back. That was the case for these plays today because they were down in the daily quite a bit but nevertheless had dramatic moves during the morning which is what we actually care about. Here's the one minute chart of UA and you can see the gap down over there on the left and the dramatic decline that occurred. Based on the entry that was found up in that area right in here, 2,500 shares gave a risk of $1,100 with a profit of $1075. Now granted that's only a one-to-one reward to risk in this particular case but this stock was very whippy this morning. It was all over the map so profits are taken rather quick on this one. It did drop significantly more eventually. If you're interested in doing plays like this and between the two plays there is a nice about two and a half reward to risk units that were taken. Notice also both of these done by 9.45 in the morning, 15 minutes into the trading day. Your day is done. If you like plays like this, this strategy is taken from the Golden Gap course. The Golden Gap course gives you the ability to find these plays and if you're a member of the Stock Swish Trading Room you also can sit with Melissa and find these plays with her. If you want to take this course is being offered June 11th to June 12th and there is also a special going on from Memorial Day that's continued through Friday where you can get three months free of the trading room and also three free mentoring sessions with Melissa. There's also 30% off other products through Friday that includes especially courses, trading room, options letter and mentorships with Melissa. Give a call to the number below or email Melissa or info at thestockswish.com. Until next time this is Paul Lang, happy trading everybody.


Hi, I'm Zor. Welcome to Inizor Education. Today I will solve, well, a couple of problems. It's not really problems. It's basically exercise and calculations related to effect of photoemission. Now, this is a continuation of previous two lectures where these effects of light, when light, let's say, hits the surface of metal, whatever, silver for example, it can basically kicks off electrons. Now, this is a photo effect.  Now, we were talking about certain approaches, how to explain this particular effect. Now, we came to basically an explanation which was offered in 1905 by Albert Einstein, which in turn was based on certain propositions Max Planck did at the end of the 19th century, like there were 10-15 years before that. And it's all related to principle of electromagnetic waves delivering energy not as a continuous process, continuous in the mathematical view, which means it can be subdivided into as small pieces as possible. Apparently, that's not the case. Apparently, there is something which is the minimum of energy and below this you cannot really deliver that energy, smaller than that minimum. And that minimum depends on the frequency of oscillations, basically. Now, it's kind of approach to quantum mechanics, the quantum theory, and I'm not going to go into all the details of this. I would like to stop actually where we are, that the energy by electromagnetic field is delivered in certain pieces, photons, quantum, if you wish, quantum of energy, which is called photon. That apparently explained a lot of different effects related to photoelectricity suggested, these all explanations suggested by Einstein, which he received Nobel Prize many years after, like 17 years after he actually published this article. And it was related to the fact that classic electromagnetic theory based on Maxwell's equation is really based on assumption of continuity, that it really is unbroken kind of thing. It's just waves basically in their classical viewpoint, like waves on the surface of the sea. Now, quantum approach which suggested by Einstein was so much different because it actually went back to Newtonian corpuscular theory of light, that the light were just individual particles. So it went basically, at least philosophically, to that particular side. And that's why this explanation offered by Einstein was kind of met with skepticism, let's put it this way. But nevertheless, eventually his opinion basically won sufficient amount of support and sufficient amount of experiments were conducted and eventually it was really confirmed. So these couple of exercises, which I will do, I will based on that particular approach. Now, whenever electron is circulating around the nucleus, that's our classic model. Well, we can call it that it actually goes in orbit, a little bit more correct name actually related to the fact that this is in three-dimensional world. So we can say that electron occupies the place somewhere in a shell of certain radius. So this shell is characterized by certain amount of energy needed to kick this electron out from the attraction of the nucleus, the protons in the nucleus actually. So while electron is at certain distance, there are obviously forces, electron is negative, proton in the nucleus is positive, they attract each other and it all depends basically on the distance between them and probably many other factors. But whatever it is, there is definitely attraction which keeps electron within that shell. Now, whenever the electromagnetic waves, like light for example, hit the surface of, let's say metal, like silver plate for example, it needs this energy to kick off the electrons from their shell around the nucleus. And we were talking about in previous lecture some kind of, well, common sense explanation why higher frequency of light kind of expects to kick stronger, so to speak. And we basically came to an equation. If you need a certain level of energy, E, I will call it binding. This is energy which is necessary to kick off electron from the shell where it's circulating around the nucleus. Now, this energy should be supplied by the light by electromagnetic field and each photon is possessing energy equal to Planck's constant and frequency of the light. So, the higher frequency of the light, the higher energy this particular photon of that particular light possess. Now, as I was saying before, the quantum theory actually assumes that this energy is supplied in individual packets if you wish, or quantum or of energy or photons and it's supposed to be consumed by electron to excite it and it needs to do something with this energy and it flies away. If the energy is greater than this, the fly away electron has more kinetic energy after it broke its relationship with the nucleus of the atom. So, basically it's supposed to be this for photoelectric effect to take place. So, for each electron or rather all electrons which are sharing the same shell around the nucleus, this binding energy exists in some way. I mean, it's measured somehow. There are certain experiments and this is an energy of one quantum which light electromagnetic waves possess. And as long as it's greater than we have this effect of photoelectricity. Now, my first problem is basically very simple. I have to determine all the light characteristics like frequency, angular frequency, wavelengths and the period if I know the binding energy of specific electron or electrons in a specific shell. Well, minimum obviously, whenever there is a quality here. So, the quality means that this is minimum. So, I would like to find this minimum frequency if I know this one. Well, this is a simple exercise obviously and let's just do it very simple. So, F minimum is equal to the binding energy divided by Planck's constant. Simple enough. Now, other characteristics of that particular light. So, we know the frequency. So, what is let's say the period tau? Well, period is 1 over F, right? So, the period is equal to H over E binding, right? So, the greater the frequency, the smaller the period. So, if minimum, if this is minimum, this is actually maximum. So, what is the maximum period of the wave falling on the surface of whatever, the metal or whatever, needed to keep of electrons if energy of binding is given. Now, what's next? Next is the wavelengths, lambda. Now, what is the wavelengths? Wavelength is speed of light times period, right? Speed times times gives you distance and period is just one wave. So, this is the length of one wave from which we derive that this is C times H divided by E binding. What else do we need? Angular period is 2 pi times F, right? Because every circle, every oscillation is 2 pi in angular frequency. So, omega is equal to 2 pi times E binding divided by Planck's constant. So, this is kind of a, it's not really the problem, it's kind of an exercise basically on algebraic manipulation with numbers. But this is the most important part. So, whenever your quantum of energy supplies certain amount of energy, which is at least equal to this one, if we know this one, we can determine what kind of light is needed. And the second problem is to apply basically all this information to a concrete case. So, concrete case is E binding is equal to 5.17 electron volt. Okay. And we have to do basically all the calculations with this particular example. Now, and the first most important part, what is electron volt? Well, electron volt is also a unit of energy. Like JOL. JOL is a seized unit, a system of international unit of work of energy. Now, electron volt is just another and we have to somehow convert it into JOLs. Now, what is electron volt? Electron volt is energy needed for one electron to move between potentials of one volt. So, how much energy we need to move electron between two levels of energy differences in their voltage is one volt. Okay. Now, let's recall what is voltage. Voltage is amount of energy needed for one cologne to go from one place to another. Remember this, right? So, if the voltage is one volt and I'm moving one electron, all I need to do is convert the electrons charge into coulons or express electrons charge in coulons and multiplication of coulons by volt gives me amount of work which is needed, right? So, the voltage is one volt, so that's simple. So, I need to know the charge of electron times voltage between two pieces which is one volt and that would equal to amount of work. So, all I need is to know what's the charge of electron in coulons and this is given. So, let me just give it to you as condition. Electrons charge is equal to 1.602 blah, blah, blah. Now, more numbers I have in the notes for this lecture times 10 to which degree? Minus 19 coulons. And also we need h which is Planck's constant which is 6.626 10 minus 34 and the units are meter square kilogram second. So, this is given. Now, based on this, I can say that one electron volt is equal to charge times difference in potential, difference in potential, electric potential is one volt. So, it's basically 1.602 times 10 to the minus 19 joules coulon times volt, that's joule. Okay? So, we got this. And we have 5.17 electron volts. So, we have to multiply this by 5.17 and the result would be and the result would be here 8.282 times 10 to minus 19 joules. Okay. Now, we know h that's 6.626. So, it's 6.626 times 10 minus 34, the f minimum. So, from here we can get f minimum by dividing the energy. 8. something 10 minus 19 divided by 6. something 10 to the minus 34. So, we can find this one. And this is equal to 1.25 times 10 to which degree? 15. Now, let's talk about units. Okay. So, units is joule divided by this one, which is the Planck constant, which is meter square kilogram and second goes here. Now, what is joule? Joule is its work. So, it's force times distance. So, it's Newton times distance meters. Now, what is Newton? Newton is the force and the force is kilogram meter divided by second square. Right? Kilogram times meter, mass times acceleration. This is a mass and this is acceleration. f equals to m times a, remember? So, what's the result? m and m is square and 1 second. So, the result is 1 over second, which is actually correct unit for frequency. How many oscillations per second? So, we have correct dimension, correct units, which is very important. We have to check the units all the time, obviously. Okay. From which we can find out the period, which is inverse of this, which would be 1 over 1.25 times 10 to the minus 15 seconds. That's the period. Now, lambda, the wavelength is speed of light, which is 3 times 10 to the 8th meter times this. So, we have to divide it by 125, 10 minus 15. This is meter per second, I'm sorry. And now, this is second. So, seconds go out and we have 3 divided by 125, which is what? 2.4. So, it's 2.4 times 10 to minus 7, right? 8 minus 15 meter. Well, when light is concerned, we usually do it in nanometers. Nanometers is 1 nanometer 10 to the minus 9 of a meter. So, this is equal to, I have to multiply this at 100 and divide it by 100. So, it would be 10 minus 9 and this would be 2.4 nanometers. Now, 2.4 nanometers. Now, the visible light is from about 400 nanometers to 700 nanometers. So, this is shorter than the shortest visible light. Shortest visible light is what, like, violet or something like this. This is ultraviolet. So, whenever ultraviolet light. Now, these are, by the way, the real numbers. And I started from certain energy, binding energy for, what was it, 5.7 electron volt. I think I took it from the gold. So, if we have a plate of gold, then electrons can be, well, there are certain orbits, certain shells, which possess this particular binding energy. So, for gold, you need ultraviolet light of lengths, wavelengths of 240 nanometers to start kicking the electron. And if I will increase intensity of this light retaining the frequency, I will have more electrons, but the energy of each electron as it comes out would be exactly the same and it's defined by the frequency. So, the frequency defines energy, kinetic energy of each electron. The intensity of the light, well, amplitude of light of oscillations, amplitude, defines basically the number of electrons kicked out from the surface. So, these are two kind of exercises. I don't want to say the problems. And I suggested to read the notes for this lecture on Unisore.com. Unisore.com called the Physics 14 course. So, notes contain basically exact numbers. Here I just approximated as far as I know. Well, basically that's it. That kind of concludes my photoelectricity part of certain characteristics of light. And there are some others which we will address in the next lectures. Thank you very much and good luck.


Hello and welcome to the session. In this session we discussed the following question which says draw the graph of the equation 2x-3y equal to 6. From the graph, find the value of y when x is equal to minus 3. Let's move on to the solution now. The given equation is 2x-3y is equal to 6. Now we'll find the values for x and y satisfying this equation. When we take x equal to 0 in this equation, we get the value for y as minus 2. And when we take x equal to 3 in this equation, we get 2 minus 3y equal to 6. That is 6 minus 3y equal to 6. That is minus 3y is equal to 0 which gives us y is equal to 0. So for x equal to 0, we get y equal to minus 2. x equal to 3, we get y equal to 0. So we get two points. See a point a which coordinates 0 minus 2, point b which coordinates 3-0. Now we will plot points a and b on the graph paper. This is the x-axis. This is the y-axis. Consider point a which coordinates 0 minus 2. Let's plot this point on the graph. This is the point a which coordinates 0 minus 2. Now the other point, point b which coordinates 3-0. This point is point b which coordinates 3-0. Now we join the points a and b. This line a b is the graph of the equation 2x minus 3y equal to 6. So line a b is the required graph of the equation 2x minus 3y equal to 6. Now that we have drawn the graph, we need to find the value for y when we are given that x is equal to minus 3. So given x equal to minus 3. Now on the x-axis, we would take a point m such that we have om is equal to minus 3. So this is point m. Om is equal to minus 3. Now from the point m, we draw mp parallel to y-axis such that it cuts the line a b at point p. So this is the point p and this mp is parallel to y-axis. Now clearly you can see that this mp or this pm is equal to minus 4. That is when we have x equal to minus 3, then y is equal to minus 4. So this completes the session. Hope you have understood the solution for this question.


James Bond was American. He'd probably drive one of these Toyota Camrys. Let's give it a go, see if we can fit in it. That says that's a Chevy badge, Chevy Camry, my bad. So as we open it up, Camaro, Camaro, Camaro. Now the whole car community is still shitting on me and getting the model numbers wrong so it's a meme now so feel free to correct me if I'm right. Seats all the way back. It's pretty much hugging that back seat so let's squeeze in.   What's with all these automatic cars that should be manuals? Now there's a sunroof here again so I can pop it open if I wanted to. Press brake to start. Oh, the sunroof's opening, boy. That's all we get.  Check out my field of view. Literally that. That is my field of view. So yeah, the Chevrolet Camaro is not for me but it is quite nice for the again smaller person. Six foot ten, no chance. Getting an accident and it's just the ping pong show in here before my head starts to wear down. American muscle cars do better. Do better. I'm not going to lie, turning that car on was really cool. The G-Wag. Let's see if I can fit in it. Stay tuned.