All right, people. So here is Ali Raza and Thomas Unger talking about Unikernel Linux. So over to you. Can you see my screen? Oh, yes. Yes. So yeah, so let's start. Hi, I'm Ali Raza. I'll be presenting our work on Unikernel Linux with Tommy Unger. And as you can see, there are a lot of people who are part of this team. Some of them are part of Boston University, others from Red Hat. So I'll quickly go over the initial parts of this talk, the motivation, what we've done, and I'll try to get to the later parts where we show the results, what we've done, and then Tommy, who likes to live dangerously, will show a demo of the project. So the structure of today's general purpose operating system is not suitable for a number of today's key use cases, and the cloud has taken this problem and brought it to the forefront. Cloud workloads are typically run inside dedicated virtual machines, and the other workloads, which are all run bare metal, are also single purpose workloads. So a general purpose operating system designed to multiplex resources among many users and processes is instead being replicated across many machines, often single users, single process. So that's a general purpose operating system running a single application workload. Also applications that require high performance IO use frameworks like DPDK and SPDK to bypass the kernel and gain unimpeded access to hardware devices. So clearly for some cases, general purpose operating systems are not the answer, and researchers, people from industry and academia have been looking at special purpose operating systems. In response to these questions, there has been a resurgence of research exploring the idea of library operating systems or unikernels. So very quickly, what is a unikernel? In a unikernel, an application is statically linked with a specialized kernel and deployed directly on hardware where it might be virtual or physical. The application runs in a single address space with the kernel. There's no separation between privilege levels, unikernels in research, and other projects have shown to be small and lightweight when compared to normal kernels like Linux, and they allow application-specific optimizations. There are many examples of different unikernels, some of them you can see on the screen, which have demonstrated significant advantages in boot time security, resource utilization, IO performance, things like that. So the question is that despite these advantages, why are unikernels not very widely adopted? And one might find the reason for this in how the unikernels are developed. For example, some of them are from scratch where the entire pool base is new or some of them are developed by forking an existing operating system like Linux or NetBSD and then they are stripped and modified to such a degree that you create a lightweight operating system, lightweight unikernel. In both of these approaches, the code is essentially new from scratch approach, the clean slate approach, or if you modify the code and add glue code on top of it and add code underneath it to do the orchestration, things like that. So a lot of the code is new and this brings us to the problem that people who are running workloads in production do not trust new code bases. They want to go to code base which are well tested like Linux. And these unikernels mostly run on virtualized environments and do not support accelerators or do not have support for device drivers or different architectures. And also if you compare to Linux where there's a large developer community around Linux which keeps updating the project and keeps fixing different bugs, these new operating systems, these new unikernels do not have that kind of support around them so that's why they are not really used in production. So the question we asked ourselves is that can we take a unikernel model and apply it to Linux? And what I mean by that is can we create a unikernel which can live as a set of if-defs in Linux code? Can we reuse the Linux code to create this model whereby we can inherit all the good properties of Linux? It's battle-tested code base, it's huge developer community, it's support for different architectures and devices and also provide application-specific optimizations. So very quickly, what are the goals for this project? We want to run unmodified applications. We want to target upstream acceptance because there's no point in having an out-of-tree fort which we have to maintain over and over again. The idea is to create, to have as minimal changes as possible so that they can be potentially by discussions with the community and how the community wants to take it forward. We can have some upstream acceptance and for that, one, as I said, minimal code changes and two, we need to show some performance benefit to start with. And once this is part of the upstream kernel, anyone who wants to deploy unikernels can have their own specific optimizations which will give further benefits. Also, we want to have ease of build and use, ease of debugging, ease of profiling so that you do not feel to be working in a restricted environment when deploying unikernel workloads and we want to not only target virtual deployments but also bare metallic models. So, very quickly, jumping to the very end, what is the current status of the project? Right now, we've been working on it for a few years now and now finally we have a fully functional unikernel which runs unmodified applications. We feel that the code changes are minimal and I'll talk about them in the end as well. We show some performance improvements for unmodified applications and we'll have results in this talk and Tommy will talk about examples of deeper optimizations which show further benefit. So, just jumping over very quickly what the basic architecture is, how the unikernel basically works and how it's different from normal unikernel and normal Linux. On your screen, as you can see, this is how a normal system normally works. Applications make function calls to G-Lipsy or other such libraries that C-libraries then make C-assist calls into the kernel. Normally, this is what happens. All the applications can make C-assist calls as well, but let's take the easier case. So, what happens in UKL is that the application, G-Lipsy, all other application-level libraries, whatever is part of the application package, gets statically linked with the kernel binary, so the final VM Linux actually contains everything. Statically linked together. The C-assist calls are replaced by function calls. So, there are no C-assist calls in the Unica, in UKL. What's the memory layout? Normally, what happens is that the kernel has space in the higher end of memory, in the address space, and the application binary lives in the lower end of address space. Then comes the heap which grows upward. There's a stack which grows downward and there's spaces for different VMAs which can be in the middle. We follow in UKL Linux, we follow almost a very similar memory model, except that because the application is statically linked with the kernel, the application text, data, other sections live with the kernel binary up top and everything else is exactly the same. If we talk about how do we deal with C-assist calls, the kernel entry-exit part. So normally, as you can see, when you do a C-assist call, you come to the C-assist call entry point. In Linux, this is the entry-assist call 64. After that, you run some entry code. Before running the entry code, you first switch the stack from user stack to kernel stack. Then you run some entry code which includes RCU and related things. Then you go to the underlying kernel functionality. On the way back, you run exit code which includes different things like scheduling and signal handling and things like that.  In UKL, because we live in kernel space, there's no CIS calls. We actually use function calls, but we make function calls again to the CIS call entry point. What this gives us is instead of reinventing the wheel, instead of figuring out how to handle signals, how to do scheduling, where to do the stack switches, we simply re-use all of the code that Linux has. This also gives us the benefit that the application gets an application code, gets the environment which it expects to get. The kernel is also dealing with application code which is scheduled in and out and deals with the RCU at clearly well-defined points. We reuse the kernel entry and exit code. I want to go over and talk about the results that we have, but very briefly, I want to talk about all the major points that we had to deal with over the years and how different problems we had to fix. These are just a small subset of them. First of all, the exact mechanism. It was Tommy who realized that if we follow the normal exact path that the Linux kernel follows to execute any application, it would help us in basically creating an environment where everything is properly set up. For example, the task struct is properly set up, the element struct is properly set up. Only two differences that we do here are, and this is hidden behind if-depths and if conditions, that we stay in kernel space. We do not return it back to user space. We stay in kernel space, and also we follow the entire exact path without actually having an elf binary. We do not run those parts of the code. Otherwise, everything else is properly set up. This also allows G-Lib C to do all the initializations when G-Lib C code is called because it gets an environment which is properly set up. I'll talk about page faults very quickly. Since we're always in kernel mode, hardware-based stack switch to the kernel stack does not happen, and when faults or interrupts occur, we do not switch to the kernel stack automatically. When we run out of user stack, the resulting page fault has no stack itself so we service that original fault and we get escalated to a double fault. There are two mechanisms of dealing with that in UKL, and you can choose one of them based through a config option. First is to deal with it as a double fault. When it gets escalated to a double fault, only deal with it then on the double faults dedicated stack, or we can change all page faults to use a dedicated stack through the interrupt stack table mechanism. I'm happy to talk about these things offline. Not going into any detail here, kernel entry-exit assembly code changes. When you enter or exit the kernel, be it via syscalls or what used to be syscalls, interrupts faults, whatever, there's assembly code which bases its logic on the fact that the CS value on stack will be correct and it will tell you if you came from user space or you came from kernel space or you're always in kernel space, that CS value on stack is not, is always the kernel's CS value. So we have, we've made mechanisms of keeping track of which code we came from the application code or the kernel code and we basically re-use all of that entire code and we give an environment where any application which is running as a unikernel experiences the same environment it would running in user space, only we have performance benefits because of running as a unikernel and we had to make changes to the linker strips to add sections like TLS which are normally not part of the kernel binary but are part of the application binary. So these are few of the changes and problems that we had to fix. There's plenty of detail there and if anyone wants to talk about these. So I'll just talk about the basic optimizations we talked about this diagram earlier how we use the kernel, this is called entry points we found that we can do an optimization where in the entry code where we switch to kernel stack if we do not switch to kernel stack we stay on user stack and on the way back also no switch stack, no stack switch we stay on user stack, we get slight performance benefit and we'll show the results in a bit and also because everything is statically linked together you do not have to go through the system this is called entry points to get the kernel functionality you can bypass the kernel entry and exit code and go directly invoke the underlying kernel functionality this has huge performance advantages because this means that whenever going from application code to kernel code you do not have to do you do not have to be scheduled out this is kind of run to completion kind of thing there is no RCU or other bookkeeping happening but this should not be done indefinitely because the kernel has to do these bookkeeping and the signal handling and other things at some point and you also realize that if you bypass a large number of these entry and exit code paths the increase in performance diminishes so there is no point in actually doing it for a large number of entry and exit code paths this also if you do it for a large number the tail latency goes up because the kernel then does whenever it gets the chance it does all its backlog work at that point so we choose a number between 10 to 20 based on what application we need to do a proper analysis of this that what number is well suited so it's basically a per thread functionality all the application developer has to do is just call UQL set bypass and wherever the performance critical code starts and call it again when the code ends or even if you do not want to do that call it once at the start of your application and automatically n number of maybe 10 entry exit code paths will be bypassed and one of them will go through the normal path so you do all that work so you get all these benefits all of this is totally automatic automatically done because Linux generates function stubs and this is called define macros and glibc calls those stubs through its macros so the code changes are extremely minimal the application developer does not have to do anything there also as you can see here we do not actually change or take out any of the Linux kernel code the changes are set off if there's a Linux kernel code last I checked we have 1200 lines of insertions and 400 deletions these deletions are not really deletions this is just basically reorganizing the code inside different if conditions so we do not take code out of the Linux kernel which means all the Linux kernel functionality is still there so you can actually run a full sidecar user space while your unikernel runs in kernel space so this is totally optional you can use it to ssh into your unikernel and perform and manage the system we use it to do for analysis which Tommy will get to and production unikernels do not need to do this they can be very slim and not have a user space finally very quickly in order to we do require applications to be rebuilt with a memory model of kernel because it has to be linked with the kernel code and no red zone because when going from in interrupts and faults there's no stacks which happening so the red zone can be trampled on so that's why these two flags we need for recompilation and just compile all the application by libraries and everything together do a partial link and then the kernel final linking step will create a final Linux binary very quickly the results you'll see linux there which takes for a get people call the latency is 299 nanoseconds ukl process is basically the same workload running as a sidecar in user space again 299 nanoseconds so all of the ukl changes actually do not introduce any regression then ukl kernel stack ks means kernel stack that when you go to kernel code it switches to kernel stack uses us means it stays on the user stack so you can see the numbers there and bypass are exactly the same case as before only we bypass the entry and exit code so you can see a huge benefit there as compared to normal Linux we run benchmarks this is a benchmark which does which reads a buffer from memory as you can see I'll just talk about the blue line which is linux and the red line at the very bottom which is the highly optimized unicolonial case where you stay on user stack and also bypass n number of entry exit code paths as you can see the smaller graph shows us the spread of different measurements that we took to show us the variance in these graphs so you can see we there's an offset that we do better than normal Linux right also shows us similar results apologies for quickly going over these unmapped similar results page fault also this is where we fault in every page of the buffer and as we go up the difference increases because it is accumulation of all the page faults so for a buffer which consists of five pages you have to page fault the first four as well so that's why it stacks up these are Mkashd results running bare metal using all the p-thread and lib event libraries that it wants totally unmodified code the tail latency as you can see at 500,000 qps you see 11% improvement and these are redis results where you see a 9% benefit in tail latency and 21% benefit in throughput so very quickly these were the results this is what we got and over to Tommy Thanks Suley maybe you could give me a nod if you can hear me Ali sweet alright let's share my screen here for a second if it lets me Ali just as you help me debug the kernel you want to help me debug this screen sharing setting sure why don't you why don't you come here if we can do a quick I'm sorry we're in some kind of matrix now alright well in the time remaining I assume someone will start playing some music and kick me off on this thing and so I thought it would be fun to kind of do a bit of a demo the idea being to try to make it a little more concrete what some of these shortcuts really are and how they work so yeah I'm Tommy Unger I've been working with Ali for a bit now so where did we leave off I think with Ali we were talking about some of these Redis latency results you're seeing those right yeah so let's talk through three of these cases right so once we've taken our Redis application right this thing's completely unmodified and we link it together with the Linux kernel running on UK we have the opportunity to do some pretty cool optimization so the whole UK the scope of the whole UK project is huge you could imagine doing profile guided optimizations link time optimizations zero copy I on networking paths but I just want to talk through one option which is making shortcuts into so directly from your application into kernel paths and I think the exciting thing there is it kind of opens up the API that that that applications actually can can use right that's normally just the system call interface but we have the opportunity to really open up the entire kernel and turn that thing into just a box of building blocks that you can make use of so looking at a couple of these graphs right start at the top there's a normal Linux system and what you're looking at is round trip latencies from two bare metal servers right there's a benchmark sending requests to the server servers sending responses back and what you're looking at is just a histogram the latencies on the X and the counts on those curves right and and a couple picked out right 99 tail latency up here so one thing you're seeing that shortcut that le talked about right so intersecting the application at the glibc layer and vectoring directly into system calls right skipping a lot of that intermediate code which is checking things like you know we have a signals to check right we have we have an rcu quiescent point that we can that we can there's a lot of work going on there so when we skip over that this is the this is the graph that we recover and some of the interesting points there right is we got we cut off 10% on that 99 tail which which corresponded to a 20% throughput win on that path right and something I played around with a bit was some deeper shortcuts right like now that we have the opportunity to call into arbitrary points on these kernel functions what if we what if we went in even further and we actually got that down to you know 23% improvement on 99 tail and 33% throughput increase but that's probably pretty vague and not not not something that maybe most people have like an intuitive picture how that works so I thought I would you know in the remaining time here see if if I could show you some pictures that might make that a little more compelling so here we go let's see how much trouble we can get into guys we have five minutes left so just we do have some questions as well so great great I'll give you the I'll give you the one minute version if I can here so let's let's start off a redis server and let's fire up a benchmark to give it some work to do you I'm running now I'm going to do over here yeah I guess I'd never run a high throughput low latency server while presenting before and apparently my machine can't pull that off but so I kicked off that server and I generated this profile which is just periodically sampling where that computation is and performing a back trace right so what function are you currently running and why are you running it what I'll show you here is when you process that thing you can actually generate these flame graphs which I find really useful for understanding what's going on in those processes right so here's the result of profiling that server down here some of the redis code and then you can see there's a jump into glibc redis calls glibc and then there's a transfer into the kernel mode right and so when we talk about these shortcuts right the ability to jump around the system call entry and exit pass what we're really talking about is going directly from this right call right directly into cases right the kernel system call handler for the right system call right when we talk about these deeper shortcuts there's so much work on every single one of these calls where the kernel is just taking that opaque file descriptor right to file descriptor 7 and it's saying I have to go through the virtual file system layer right that thing's a socket what protocol is it using is it udp no it's tcp okay so now we're finally at the point where we can start the network protocol that actually sends this thing off so I'll cut it off there but the point here is just by building our application together with the kernel into a single binary we give ourselves a lot of opportunities for optimization and one of them is exploiting this much wider API right instead of just a system call interactions you can actually jump into arbitrary kernel paths so I'll stop there thank you Thomas and Ali let me read out the questions for the recordings so that you can address them so we have questions from wonder costa so the first there are three sets of questions the first question is to real time embedded kernels like TN kernel and free loss fall into category of unikernels so I if you may just yeah I don't really know TN kernels but real time operating systems do not fall under the category of unikernels because for a unikernel you have to have a single address space everything linked together and kind of a static linking where you can call any function anywhere but what we do have in the pipeline here at BU and Red Hat is that we want to try to add whatever different mechanisms real time operating systems have and the real time patches of links have and try them on UKL now that you have much more flexibility can you change the scheduler can you make other decisions without being restricted by the sys call interface so I think our real time operating systems are orthogonal to the unikernel effort but yes all of them can combine these efforts alright so another question is what processors, family or models do you implement the kernel app on yeah so we used right now UKL is running on x8664 Intel processors we have again in pipeline we have students who want to do an ARM abort of this thing but right now only Intel x8664 the third and the last one is how does the performance compare with the approach of splitting the application user and kernel parts either through the kernel module or an EBPF application I'll talk about the kernel module part where in UKL you do not have to be restricted by the kernel programming model you can take your application as the entire library everything not ported to kernel code and you can run it in the kernel as a unikernel I think Tommy will talk about EBPF in more detail but EBPF has an assumption of security that there are multiple different processes running on the machine and then you have EBPF is the secure way of doing the computation which UKL you do not have that restriction because the idea is that these are single user machines these are not general purpose machines so now you do not have to be restricted by what BPF allows you what BPF compiler allows you if the code will go through the static checking or not you have your entire application you have the entire kernel you can access different drivers if you know what you're doing Sky is the limit I think it is a in-depth conversation about how these things how these models compare to module programming or BPF but BPF if the code you care about you can inject it into the prologue or epilogue of a kernel function if that is enough to implement what you need that's great I think that UKL allows a lot of cool spaces that you just can't do when you aren't jamming those two programming models together an example there would be running profile-guided optimization across your application the kernel paths at the same time so they are in some ways complementary in some ways they have slightly different research spaces but we love BPF use it all the time for profiling and prototyping stuff I think one interesting thing is you can write code in the application model and then run it in ring zero on UKL that's something that in the restricted model of module programming you don't really have full access to for example a glip see underneath with you if you wanted to put a machine learning algorithm on what used to be a kernel path you can use these high level you can run Python code in the middle of what you would normally consider a kernel path I think they are very different projects but I'll stop there the Harry just give us a comment about the person who gave the BPF talk also said it was in depth questions but he would be interested in talking to you about it Noah poorly hears his name thank you very much Ali and Thomas for this wonderful talk and we will be moving over to our next event that is the closing ceremony and trivia


Okay, third factor is effect of pressure, effect of pressure, okay. So effect of pressure for this, we cannot generalize of one particular relation of pressure and the direction of the reaction, okay. But this effect depends upon the type of reaction you have, okay. Means we can have basically three types of reaction. The first type of reaction we have where delta Ng is equals to 0. This is one type of reaction. Another type is what? When delta Ng is greater than 0 or less than 0, okay. So any of these things possible, correct. So delta Ng is equals to 0, one by one we will discuss all those. So what you can write? Suppose the reaction we have A gas plus this reaction, delta Ng is greater than 0. So what is the equilibrium of equilibrium relation? Kp is equals to partial pressure of C, partial pressure of D into partial pressure of D, okay. And we know partial pressure is equals to mole fraction into total pressure. So further we can write this as, and you see this Pt will get cancelled. And the expression of Kp, if you see it will be mole fraction of C into D A into P. This is the mole fraction relation. You see this Kp is independent of pressure term here, right, there is no pressure term present. So in this type of reaction where delta Ng is equals to 0, pressure does not have any effect on the equilibrium, okay. So pressure won't change the equilibrium state of this type of reaction, okay. Another one, B, delta Ng is greater than 0, okay. Suppose the reaction is A gas gives B gas and C gas, this is the reaction we have, delta Ng greater than 0. Now similarly we can write down the equation of Kp is equals to X of B into X of C divided by X of A into Pp, like this you can write, okay. So there is a pressure term present here. So what happens as Pt increases, as Pt increases, okay, Kp won't change, right, because we know equilibrium constant depends only upon temperature. This Kp won't change means the ratio of this is constant. If you change the pressure also, then also this ratio coming out to be constant so that the Kp won't change. Now this ratio to be constant what happens as Pt increases, then we can say what two things possible, XB decreases and XC decreases or we can also say that XA increases, what possibility we have, okay. If numerator increases, then denominator has to increase to maintain the ratio. If numerator decreases, denominator has to decrease to again maintain the ratio, okay. Now when this XA increases, when this thing is possible, XA is what, mole fraction of A, right. So mole fraction of A increases when the reaction will go in forward, sorry, backward direction, then only the number of moles of A increases and hence XA increases. So in this condition what we can write as Pt increases, backward shift is there, right and here as Pt decreases, then forward shift, forward shift is there, okay. XA has to decrease and XA will decrease when the reaction goes in forward direction, right. So this is the relation of pressure and the direction of the reaction forward or backward, okay. We can also understand one more thing here directly we can do, okay that we will see after the discussion of the third point here and whenever delta Ng is equals to 0, pressure would not have any effect, this you must remember, the third factor is what, when delta Ng is less than 0, C, when delta Ng is less than 0, suppose the reaction is A gas plus B gas and this gives C gas, delta Ng is less than 0, right. So that expression for Kp for this equation is XC divided by XA into XB into 1 by Pt, if you write down you will get this only. So here what happens as Pt increases, as Pt increases XC has to increase to maintain the ratio and XC increases it means what, forward shift, Pt decreases, XC has to decrease it means backward shift, backward shift, right. So forward and backward, so like this mathematically you can understand that what is the effect of pressure in this kind of reaction, okay. Directly also you can do you just see the reaction, right. Suppose if pressure is increasing, we know pressure and number of moles are directly proportional, so when pressure increases you have to decrease the number of moles so that the equilibrium is maintained, right. So pressure decreases, pressure increases, number of moles you have to decrease. Pressure decreases, number of moles you have to increase, means as pressure increases the reaction shift in that direction where we have the lesser number of moles. For example, in this reaction you see as you are increasing the pressure, so product side we have two moles of the gaseous product and one mole of the gaseous reactor. So, as pressure increases backward shift is there, reaction goes towards the lesser number of moles. So, pressure increases backward shift, pull down what pressure decreases forward shift ok. So, this is done this also you can discuss number of moles, here you see pressure if you increase correct, reaction goes towards lesser number of moles that is product forward pressure increases forward pressure you decrease reaction goes towards more number of moles backward right to backward means backward product is there ok. So, like this you can do this questions directly in the exam ok. Fourth factor we have effect of catalyst, first of all you see catalyst does not take part in the reaction, catalyst does not take part in the reaction, so what does it do it just increases it just increases or decreases the rate of forward or backward reaction it just increases or decreases the rate of forward or backward reaction. So, what we can say in presence of catalyst we can achieve the equilibrium in a lesser time or more time means we can slow down the reaction or we can increase the rate of the reaction we can have the reaction which is going like processing with a very high rate depending upon the nature of the catalyst. So, catalyst actually does not take part in the reaction it just affect the rate of the reaction rate of the reaction when I say it means both forward reaction and backward reaction. So, it affects the rate of the reaction two types of catalyst we have negative and positive catalyst in general in our syllabus we have positive catalyst only if they have not mentioned negative catalyst and only catalyst if they have given it means we have to understand or take positive catalyst correct. So, positive catalyst what happens it increases the rate of the reaction whether it is forward or backward it increases the rate of the reaction. So, it is positive catalyst increases the rate of the reaction and negative catalyst if it is there it slows down the reaction and decreases the rate of forward and backward reaction. When I say positive catalyst it increases the rate of forward and backward reaction. So, if I explain this with a graph suppose the reaction goes like this it is the reactant and it is the product the energy of reactant and product. Now, you see this reactant forms the activated complex and then it converts into product it can be endothermic isothermic anything possible. So, this graph is without catalyst normal thing now when you add a positive catalyst into this then the reaction goes like this in presence of a positive catalyst it goes like this. So, this graph the blue one is with positive catalyst and the red one is with negative catalyst sorry the white one is with negative catalyst. So, this yellow one is without catalyst so, what happens here corresponding to this the energy is what here we have activation energy. So, positive catalyst what happens it decreases the activation energy for forward reaction and as well as the activation energy for backward reaction. So, positive catalyst decreases ea activation energy for forward and backward reaction and hence the reaction goes with a faster rate the energy value is not that great. So, all these molecules will cross this energy value easily because the activation energy decreases and hence the reaction rate is fast. So, and hence the equilibrium achieved in a lesser time negative catalyst is just opposite it increases the activation energy for forward and backward reaction and that is why the reaction slows down. So, what happens here it increases the activation energy for forward and backward reaction and the reaction slows down that is the effect of catalyst we have it does not effect the initial and final condition you see the reaction with or without catalyst the initial and final condition is same only right where is the whatever concentration we have in this reaction without catalyst the same concentration at equilibrium we have in presence of catalyst with catalyst whether it is negative or positive ok. So, what we can you know summarize about this particular this particular fact effect is the presence of catalyst does not alter the initial and final condition of a reaction ok means initial final condition means the concentration of those reactant and product is same with or without catalyst that will not change. So, what it does it decreases or increases the activation energy of a reaction and hence it affects the rate of forward and backward reaction ok. So, in presence of positive catalyst the reaction goes with a faster rate and achieve equilibrium in a lesser time right with negative catalyst the reaction slows down forward and backward both and equilibrium achieve in more time right time requires more here for to achieve the equilibrium of this kind of reaction ok that is very important always remember catalyst does not take part in any reaction ok.


For more videos on People's Juggles, please subscribe to our YouTube channel. Hello and welcome to People's Dispatch. We're joined by Eugene Pudir of Breakthrough News and we are speaking the day after the riot, the armed introduction that took place in Washington, D.C., where Trump supporters encouraged and egged by Trump and his close aides actually stomped the Capitol building. They were also interrupting another, for lack of better word, fires where Republican legislators were trying to block the certification of the results are now with their election. And this has thrown up a lot of questions. Everyone has seen the visuals and truly shocking, but also says a lot about the situation of the country right now. So Eugene is here with us to talk more about this. Thank you so much, Eugene, for joining us. No, thank you so much for having me on. Right. Eugene, first question. So I mean, I think across the world, one of the things probably popping up in people's minds is the fact that this is Washington, D.C., the Capitol of the United States. So much money and attention spent on security. We've seen over the past few months, any time protests have taken place, the kind of brutality the police has exhibited. And here we have people openly armed, completely contemptuous of any kind of restrictions that were just storming into the Capitol. So maybe I think the first question is how did this happen or what happened exactly? Yeah, I mean, it's unbelievable. I once was threatened by a Capitol police officer to be maced in the face at point blank range because I was talking too loud. So I have to say, I was quite surprised to see the way they were acting here. I think sort of one of two things happened. I mean, certainly the official narrative is that they were unprepared. And what the most extensive things that I've seen so far in the Wall Street Journal and the Washington Post and a few other outlets that have been talking to these various officials, there was some decision allegedly made maybe about a week and a half ago that they were not going to have heavy security. Like they knew despite the fact they knew a lot of people were coming. In fact, even at the end of last week, they had said there were 5,000 people coming. They actually upped the estimate to 30,000 people. So they knew tens of thousands of people were going to be there. They were monitoring their chats and some of which were public, seeing that people were at least thinking about storming the Capitol, certainly about bringing weapons, which was a huge, in the United States, a huge conversation. In the lead up to this was people bringing weapons to Washington, DC, which is basically totally illegal in the District of Columbia, but that there was going to be a big push around that. So they know all these things are happening, but that they decided that they were going to have a low presence. And it seems, if we can believe this, for PR reasons, that the military was concerned about how they had been looking over the summer when they had been cracking down on demonstrations against racism. And they just didn't want to be embarrassed, I guess, in terms of how that was, that the police felt that they had been embarrassed in the context, both federal and local, in the context of the last move by the Proud Boys, the pro-Trump group, into Washington, DC, where a number of people were stabbed and they came in with a very critical presence. And then it seems like the leadership of the District of Columbia was trying to make it seem as if they had everything under control and wanted to have not a big presence of uniform police officers in the general area, if they could, in order to create, I guess, a presence that, oh, well, it's not a big deal. So at least the official narrative seems to be that the authorities in DC were so unconcerned with these right-wing, fascist, violent forces, even though we know everything they bring, we've seen what they've done so far, you can see them openly calling for violence and disruption on the internet in the lead-up to it, tens of thousands of people, that they didn't take it seriously, they didn't care, they didn't seem to mind, and that they had no real prepared security against these individuals, which I think leads to the second narrative. And I think the second question that myself and a lot of people have is how much direct collusion was there between these two groups. I mean, one of the things that we have certainly seen over this summer, but over the past few years, revealed in a big way is many of these pro-Trump entities are deeply in the security forces. Every single police union endorsed Trump. The Washington, DC police union actually almost broke apart in 2016 because they endorsed Trump. But nevertheless, the federal police, the state police, the Capitol police, they're shot through with people who, while they're in uniform in the Capitol, when they're off duty, are in the same Facebook groups, the same chats, the same WhatsApps, the same whatever, with all of these individuals who are out there. And when you see cops taking selfies with some of the people, you look at some of these actions that were going on where they didn't seem to be trying too hard. They certainly weren't aggressively pushing back. And then you see the one photo that I think has gone around the world, or a video of them opening the gates and allowing people to come through. It seems clear that there was also some level of chumminess, some level of coordination that was going on here. So it seems the way this really happened, and it's either through some, probably through some combination, it seems to me, of both direct collusion and just a complete lack of concern about right-wing fascist violence that allowed this to happen. It was allowed to happen. There was no attempt to really prevent anything like this, even though they knew it was coming. So it was not an accident at all. This is definitely, whether by omission or commission, it was definitely facilitated by the state's security forces for them to be able to do this, and for so few people to be arrested. Absolutely. Right. And this context also wanted to look at some of the responses. I mean, globally, we've had the ironic side of leaders bring on further attacks on democracy, expressing concern. You have Macron from France, Lucille Margaret of the OAS, Modi from India, all of them expressing concern. And even within the United States, there's a very strong strand of strand which has been going on talking about how this is really not America, and this is an apparition, something that needs to be condemned. And then we sort of move on and talk about rebuilding a lot of the speeches in Congress after the riots also reflecting that kind of tone. On the other hand, what we, I think, know over the past many months, past many years is that this is not really an apparition at all. This is a very systematic structural process that has been happening. No, I think that's a very good point. I don't even know what these people are talking about nine times out of 10 when you look at U.S. history. I mean, of course, the most relevant president, Reconstruction, which was basically exactly this situation where the Black political power that had come in after the Civil War was destroyed because of a deal that was done between the Democrats and the Republicans. But that was in the midst of massive violence. There was the 1898 Wilmington massacre where a progressive government led by Black Republicans, Reconstruction politicians with a lot of poor whites, they were overthrown by an armed militia. An armed militia just overthrew an elected government in 1898. That was the official end of Reconstruction in the United States of America. Of course, Jim Crow, which was a fascist dictatorship. That's the only way to describe it for almost a hundred years in the South where massive violence was used to prevent democratic structures from operating at all. And of course, there's the DNA of the United States abroad, where they're constantly overthrowing governments, getting involved in different political movements and doing all these sorts of similar things that they're saying, oh, well, this is so terrible to see happen in America. So I would say that this is really, to use the Malcolm X quote, it has a little bit of a chicken's coming home to roost aspect of it, that the history of the capitalist regime here in the United States that has used these divisions, especially around the issues of racism, immigrants, refugees over the past few years, trying to use quote unquote, crime as a wedge issue to divide working class people of all different types from one another so that the Trump and his friends who got, I mean, the profit rate shot back up during the Trump administration. The corporate taxes went back down.  That's as old as America. It's exactly what America is, but it's completely predictable that something like this would happen when you can see the most powerful figures. And yes, many ruling class people were opposed to Trump, but you said many of them were for Trump. They are happy to see these sorts of tactics from him, but this is where it ultimately leads because they've stoked this movement based on lies and they promised people that they can change everything about their life with these nonsensical neoliberal politics, which is not true. So when that's not happening, then of course the level of violence is increasing amongst these forces because they feel that they're being kept out of the political system. So I would say this is a combination of the long history of the use of division by the ruling class in this country to stay on top, but I would say more specifically into your point, this is the pull past four years of the Trump strategy of trying to take advantage of the contradictions of neoliberalism and the impact of them to push forward an extremely neoliberal policy, ironically enough under the veil of criticizing it has led to this point where these mass mobs feel very disenfranchised by what's going on in the country and are willing to are radicalized and want to take more direct action against the state to push their views. So it is exactly what America is and quite frankly, half the people making the speeches say this is not what America is have been participating in this over the past four years and have been the number one advocates for many of the most disgusting things that we have seen in this country in terms of repression and the like racism, xenophobia and all of that. So in a way it's almost like a parallax view, but because the mainstream media in America is equally as committed to this view of America's fantastic and great and anything that goes wrong is not us, there's really no counter voice outside of independent media and what people do on social media. So it helps create this this bizarre bubble that I think people know isn't real, but it's not challenged enough we're at the scale that it can dethrone this official narrative. Absolutely right. And usually in this context also wanted to ask you about the coming days and weeks ahead because of course Trump has willingly given a very weak concession so to speak say that there'll be an orderly transfer of power, but nonetheless the fact remains that his supporters are very much defined and there's an entire like you said there's an entire industry with the help of the media building the building these narratives about how the election was stolen, you know, just it's a whole ecosystem of information out there. And so we do see that this issue is not really going to die down anytime soon and more importantly the idea that there was a betrayal so to speak is not definitely not dying down as far as sections of the public incident. I think that's a very good point. I mean they're going to turn DC into an armed camp so they may be able to tamp that down but as we already saw there was the demonstrations at state capitals. I suspect that could continue and even if over the next like couple weeks leading up to the inauguration it sort of seems to calm down a little bit. I view what happened yesterday as quite frankly a great recruiting tool for the far right. I mean ultimately for the quote unquote MAGA forces that support Trump I mean this really sort of confirms their whole narrative that it's the establishment versus us and I think that they will continue to radicalize on that basis when you look at a lot of the individuals in the crowd you have people like Matthew Heimbach a Nazi who played a big role in the Charlottesville demonstration a lot of people like that who are obviously looking at this as an opportunity to recruit to bring people in people who just like Trump was able to take advantage of people who feel marginalized feel pushed out that they can use this to show hey we're strong we can do things we have powerful supporters we have to fight so I think even below the surface we're going to see more organizing from these far right fascist semi-fascist type forces and because we're in an interesting situation where so many of them are tied into the state security forces I'm very curious to see how this really plays out in terms of preventing these things from happening because I think at the state level at the local level there are many law enforcement officials who want to see these kinds of demonstrations happening so I think ironically enough things could become more serious vis-a-vis this and I think having the Democrats in power will just create more of the perception that they're marginalized and have to fight and they can only push it out so I would say over the next few months I suspect given that there's tens of millions of people you know 15 percent of registered voters told you gov in a poll they thought these people were patriots well 15 percent of the people who voted in last November is 23 million people there are tens of millions of people who are angry they're pissed off they believe all of this propaganda they believe the election was stolen and the new government will be totally illegitimate and they have a lot of support amongst the police at the federal and state and local level so I think this could actually get a lot more serious and I think the fascist threat will grow and the final point I'll piece I'll put on it is progressive movements are gearing up to make a big push against president biden and the democratic in congress to deal with the economic crisis to deal with co vid to go beyond that and really solve people's problems and I think the counter mobilization of of the left pushing for the right thing and the right pushing this fascist agenda it's very dynamic and I think that this 2020 there's a lot happening 2021 has already started off you know at 100 miles an hour and I don't know if it's slowing down anytime soon absolutely thank you so much for talking to us I understand that you'll be going live in a couple of hours soon so looking forward to that and we'll talk soon too thank you so much for having me that's all your time for today keep watching people's dispatch


Hi, I'm Joshua Montgomery, the CEO of Minecraft AI. I am here at CES where we are doing all kinds of fun stuff with our friends from Indiegogo and all kinds of hardware manufacturers from all over the world. There's people using Minecraft here in Robots. There's people using Minecraft here in consumer applications. We're starting to see automotive applications in the stack and so it's very exciting on the customer side. And then of course in the distribution side there are major retailers here from all over the world. Many of whom are looking for products like Minecraft for their stores. So if you're here at CES or you're going to be in Las Vegas come and visit us. We're in booth 51507 here at Eureka Park and we're having a great time.


Meredith date on Aaron judge Better today was able to You know to do some more stuff. He's actually in there working out right now in the weight room Was able to take some swings in the cage. So Another good step for him today So we'll see you know If if he's in there tomorrow or not, I don't know It's just he's still got to get a little improvement in there But we'll see how he's doing tomorrow, but pretty good day overall When you say a little improvement, what is it that he's still feeling in his neck? Well, I just think he's able he's got way more range of motion and you know They've gotten a lot of that pain out of there when he you know turns to the side and things like that. So I Think quite a bit better today Anything new with Masahiro as far as a potential throw date. Um, I have a potential throw date, but But he's he's doing he's he's doing well, you know I mean he he ramped up a little bit more today. He was out there obviously thrown again today I think he got a lower body workout in today and continues to respond You know the right right way with the added workloads. So Encourage but again, just also making sure we we go slow and smartly with it. I Know you don't really want to get into specifics But any indication on whether or not DJ or SESA could become available soon. Maybe Okay Take the next question from Ken David off Ken Aaron Just going back to judge. Obviously any time he's off the field It's it gets attention because of who he is and and how good he is. Yeah, do you see any? Pattern, I mean, you know back in 18 he got hit by a pitch But you miss a lot of time or a lot of companies obviously would have missed probably all the time We've been up to now if not for the pandemic. Do you see any sort of concerning pattern we're just talking about this guy's potential And I don't I do think he's smart about how he takes care of himself I think a few of the injuries, you know the the cracked rib that he ended up having that took a long time obviously to diagnosed I think so, you know a little fluky on a diving play obviously the hit by a pitch I know he he had the oblique So so there's no question. He's had some things but I Feel comfortable with you know, first of all the work he does and You know the the the What he puts into making sure he takes care of himself with the ability to the post and he understands the importance of it and You know time will tell but I do feel like It is something that he'll Hope it'll prove out that He's a durable guy. I do feel that way You think you look at him in and John Carl. Do you think size factors in today? You know bigger the guy like a cruise ship like more and more things and to be running smoothly for it to operate.  He's too Explosive he's too, you know, you're always gonna point to the or speculate of why you think somebody might be breaking down So I don't think there's much to it, but you know The injuries he's had and he's bigger. That's a talking point Mr. Ron Blum Go ahead and unmute This is a team that And over the last 15 years is take in 10 20 games to find itself usually Is it any more important in a 60 game season to get off to seven and three eight and two nine and one start then Else other years is that a message you emphasize or not? Well, I think by definition the games are more important when they're only 60, right? but No, I mean, you know, we're not trying to go out and and when eight go eight and two, you know, we You know as much as it's a sports cliche We are consumed with the day and you know today's a day We're not playing an inner squad game, but there are a lot of things we needed to work on To try and get ourselves ready to be the best team we can be Starting on the 23rd of July. I mean, so that's the focus and we can't go eight and two on July 23rd I mean, it's it's, you know, who are we playing? What are we up against? What's the game plan and and trying to go out and and be our best and Hopefully over time in this case a 60 game season. It'll be good enough that we get to play play for play for a championship Do the players look to you self-focused with the goal ahead and no distractions from the pandemic Or is that something? Did you ask that again? Did you ask that again? Do the players to you you have to guard against lack of Focus because of the pandemic and all the issues you don't normally face or is that something the group as Itself takes care of and you don't have to concern yourself Well, I mean I have to concern myself with that too. I trust that it's going to be a strength of ours But it doesn't mean that we don't reinforce that from time to time You know because I do think there's there's two things this year that Unlike any other year or have a chance to be separators to some degree and that is How does how do you handle on a day-in and day-out basis not just today and tomorrow but six weeks from now? You know when you're in the grind of the season and it's challenging and it's tough And you're going through the monotony of all the protocols you got to go through every day You know who stays on top of that and handles that the best I think there's an advantage a competitive advantage to be gained there You know if we're playing in a scenario where there's no fans in the stands and you're getting used to You know how to find that gear or how to find that energy in a in a situation that you're not used to I think that's a there's a competitive advantage to gain that we have to take advantage of and it's something that we will focus on a lot Thank you. Mm-hmm. Take the next question from Christy accurate Christy. Go ahead Hey, Aaron Just wondering do you have the pitchers who will be starting those interest five games? Monnie will start tomorrow along with Chad green The next day is Pax Okay, and I'm yeah, I'm not sure on the other side and just with Tanaka without going into what day He's going to throw mm-hmm amount. Do you have enough time to get him ready for that first week of the season? Well, I mean it depends what you define ready. I mean obviously, you know, it's he's not going to be built up very much You know, I I'm kind of a step at a time right now with masa I mean, you know, he's getting to the point to where the next step will be getting on the mound and seeing how he responds from aside and then you know When is he able to face hitters if that's able to happen between now and the next week or two? So these are things that will determine themselves obviously with an extended roster There's there's a little more flexibility there at the start to if we have to creatively build him up at some point You know, but first things first today was another positive day and hopefully we keep moving forward Okay, and just quickly on another topic. You have a lot of prospects here I mean the progress or the progression of these players is going to be stinted a little bit But in fact, there's no minor league system. How do you balance, you know, their development with what you're trying to do here? Yeah, I mean Obviously, it's it's what every organization's facing. You know, I feel like our player development Group has done a really good job not only now but but but even when guys were in quarantine in a way of trying to be creative and smartly still be able to in Creative ways work on your game And and and make some small improvements while your way look There's there's no substitute for for a season and missing out on a season is a tough thing for for especially young players in their development process But you know, there's you know, I talk about these you got to gain competitive advantages This is another area where hey, can we can we help our guys get a little bit better in this? Environment, I think the teams that are creative and can effectively communicate and do that We'll we'll we'll see a little advantage moving forward Thank you James Wagner, you can unmute got a next question Hey, I know there's obviously a lot of regulations deal with this year Especially involving people with players that has a positive but like I know there's the MLB side But are there like city or like state things that you have to check off on your end before they even come back on top of that, too Like requirements like the New York City, for example might be asking you guys to meet as well You mean when we come off a road trip or something no Sorry like the guys that you're waiting here. Oh, I'm sorry Are the things that they have to check off on but New York is asking I'm not sure if it's New York related. I mean, obviously MLB has a you know Agreement with all the states and municipalities and things like that I know when they're away, you know, that there's got to be two negative tests to start and then you've got to go through the intake here Which is but I think if you satisfy all those things Then you're then you're free to come come back into the state Take the next question from George King Go ahead George. My question has been asked and answered. Thank you Thanks, Georgie Eric Boland Go ahead and unmute Have you made a determination if Cole will go on his fifth day on Friday or if you've given the sixth and he'll pitch in that Exhibition yeah, he'll go Friday Yep Is that just to keep on the every fifth day or is there a strategic? Well, there's a little strategic we he and I talked about it a little bit today I think we just value, you know having that sixth day Going into his first start of the year, which will obviously be in Washington. So you know, we could have taken it now but felt like if we took it now then he'd be rolling into his opening day start on on on the fifth day coming off of a time when maybe we're trying to push him a little bit so Yeah, he's gonna go Friday Take a final question from Max Goodman max go ahead Yeah, and I was just wondering about Roselle Herrera. Mm-hmm. He started at second on Thursday Mm-hmm and the rain out on Friday and then I don't think I've seen him out there since then yeah He's dealing with some heel issues so it's Yeah, he's he's both heels Which we're starting to give him a little bit of problem in spring training So he's he's just you know physically unable to go right now


What attracted me to the internal medicine residency program at Jersey Shore was probably because I was a student here. I did rotations here, so I knew the environment. Everyone is so receptive and supportive and this goes from not only the residents and the attending doctors that we work with, but to the nurses, the respiratory therapists, physical therapists. Everyone in the hospital was so welcoming and I felt like this was a place that I would be supported and could thrive and I was right. The culture of department of internal medicine believes in fairness, equality and dignity. Everyone is approachable. You're not left out in the wild to deal with your problems on yourself. One of the programs which we have is Feedback Friday. It's a monthly conference between the department of internal medicine chairman and all the residents. This is a perfect platform to raise your concerns, your questions or your suggestions to make the program better. Here the concerns are not only heard but they are also taken care of. Jersey Shore has huge exposure in terms of different patient population. We have a lot of resources for academic resources and research as well, so I believe those are all the things that attract a lot of our current residents to just stay here. And we also have a mentorship program which is tailor-made to fulfill the needs of the resident. Irrespective of the fact whether you want to go into fellowship or whether you want to continue your career as a hospitalist, there will be a mentor assigned to you who will guide you to overcome the challenges in achieving those goals. Because everyone is so supportive, if you ever have an issue you're ever worried, there's always somebody that you can talk to and turn to and they'll help you with whatever that is. Everyone stepped up to make sure we all form a team and provide optimal care to our patients. And that has not only led to a very good experience as far as teaching is concerned, but also giving the best of patient care during these testing times.  It's fun. We work together so closely and I was amazed by the end of the year. I did not expect to develop the bonds that I did with people. The Department of Internal Medicine Residency Program is a good place to work at because you will feel at home and the variety of cases which you see will not only help you grow as a doctor, but also as an overall human.