What I'm going to talk about is what do we do about it? And he mentioned briefly about some of the things going on, but I'm going to go deeper into that. We'll see what options do we have, how do we innovate, and can we do something about substantial that will change the trends of the past. So to really understand what those trends are, I'm going to take you back in history a little later on to start on how we got into this problem of climate change. And it all goes back to this period of how we used to live. And, you know, you go back to the Revolution of War, the book of the United States, Thomas Jefferson, George Washington, writing all these very famous documents about our nation. And at that time, this is how people used to live. Of course, you didn't have color photography at that time, but you have paintings of people who used to travel in horse carriages, in this case, with two horses. They used to light their homes with whale oil, and that's how life was. And I think our founding fathers probably would have never imagined how we lived today. And today, instead of two horse carriages, we do this. We have 300 horses taking us to the grocery store. And, you know, we have 100,000 horses taking us across the country in about five or six hours, which would have otherwise taken months. That's the transformation we have seen over the last 240 years, the life of the United States. But it happened not just in the United States, everywhere in the world. So we know Steve Chu and I wrote an article a few years ago where we call this, this industrial revolution, horse power to horse power. And this is a transformation which is, in 240, in 250 years, is a very small blip in the history of humans. So the last 250 years has been just the most remarkable period of our existence in terms of the human ingenuity and innovation that has transformed our lives and really improved our prosperity and quality of life. But it has to come to this. So this is what we do today. And instead of whale oil, we do this. This is the greatest engineering achievement of the 20th century electricity grid. This was the internet in the 1920s, early 1900s, where people suddenly could light their walls and they could make dishwashers and telephones and all of electricity. So if you look at what has happened over the last 240, 250 years, this is what has happened. The global per capita GDP has gone up exponentially. This is the United States in war. And look at this per capita GDP, not just the total GDP, per capita GDP, which is a measure of our prosperity. This has not been uniform. But on average, it's gone really well. The global population has gone up from 700 million people that we had in the world in 1750, 1760s to about 7 billion today. And the projection is going to be about 10 billion with the Ereborro 10 billion. And it really depends on the fertility of women in Africa. That's really where most of the population group is going to be. And because of the... And this has been enabled, right? Because this has been enabled by the energy use. And this is the energy use in biomass, used in biomass, coal, oil, gas, a little bit of newbies and renewables. And you can see that without this energy, this would have never happened. With the whole ability, the whole internet use, you guys are all used to it, the internet would come to stand still if there was no electricity. And of course, you've heard the consequences of that. And if this is going up, if this is going up linearly, this goes up exponentially. Because CO2, the lifetime of CO2 molecules in the atmosphere, it's a few hundred years. So it's just like a big capacitor. You put it out there and it stays there. And I'll show you a little diagram of what the carbon flow is like. So good thing, bad thing. Very simple. So these are, I call, global exponentials. But the world is not flat. This is not your piece of the average. I'll tell you what the non-uniformity is, which is one of the imperatives that we have out here as well. This is the global carbon balance. If you look at the fossil fuel emissions, we have made about 10 giga tons of carbon per year, about 36 giga tons of CO2. But in terms of carbon, carbon budget, we have made from the fossil fuel about 10 giga tons. If you look at photosynthesis around the world, we have 120 giga tons of carbon coming in and about 120 going out with a net of three coming in. So the actual fluxes of carbon are an order of magnitude higher than what we emit from our fossil fuel. And if you look at the oceans, we absorb about 90 giga tons of CO2 into the atmosphere and about 90 plus two and 90 goes out, two remains, which is the remaining, which is what is the cause of acidification. And so if you look at this number compared to 120, so 120 plus three and 120 going up, it's a small fraction. But it is the balance in all these active carbon flow that we're disrupting right now. And the question that we have to answer is, okay, so can we reduce our emissions from here? But as you heard from Chris Fields, that is fine, that is necessary, but not sufficient. We have to introduce some negative emissions as well. Otherwise, we're not going to reach zero emissions total or stabilize the atmospheric carbon dioxide. Now if you try to increase this CO2 absorption in the ocean, as we know, these, when carbon dioxide goes and mixes with water by carbon and carbonic acid, you get a proton out, which is an acid. And then that is what is messing up our ecosystem in the oceans. So that's one source and could we fix that carbon in some way, in calcium carbon into some other things? That's one possibility. The other possibility is could we enhance photosynthesis without having the adverse effect on water, on land use, etc. We don't know quite how to do that. But that's where the science engineering innovations have to go. None of us talk a little bit about that. And of course we have to reduce it. So what are the prospects of this? And Chris talked about some good news and I'm going to go deeper as to how good that good news really is and what are the challenges that we fix. So here we go. We're going to talk about this, but I'll talk about this very briefly as well. This is a map. These are two maps all the way on each other. The red is the population density. This is where the people live. And the light is where the electricity is or it's a proxy for energy. And you can see the United States very bright. You can see that we are somewhere out here. And you can see that this is bright and of course we need to keep it bright without turning on the lights. But there are many parts of the world that have not turned on the lights yet. And we really want to enable them to turn on the lights and turn on the light-canned lights. And I'll talk a little bit about that as well. So if you look around the world and ask what are the big, big challenges that we have that you all will have to figure out how to solve, here are three of them. Number one is how do we decarbonize our energy system? There's no question we have to do that. But also continue the economic growth. So good thing, economic growth and exponential growth, which is great, but carbon is bad. So how do we get the benefit of economic growth and prosperity but not have to decarbonize the system? Chris mentioned a little bit of that. Secondly, climate change is not just happening. It is accelerating. If you look at the sea change, there's sea level rise to remember that when you present it. It's not a linear thing. It is exponentially increasing. And so how do we adapt climate change because climate change is already happening? And finally, how can we enable access to affordable energy to the one and a half to three billion people who either have no access of very marginal access to it? That's the way to go. So these are the three big challenges that you, we, we all will have to address. And we are trying to do that here at Stanford. When you make choices of energy, you have to think about security, access to energy. I mentioned about Mexico, Canada and the United States. We are energy independent collectively. Of course, a lot of that is carbon-based, but there is some of it is zero carbon-based. The cost really matters. It's a commodity. If something is really expensive, it doesn't matter because we'll never get it. It has to compete. There's a capital cost that won't go into that. Clean environment, sustainable and infrastructure. One has to always think about isn't a centralized infrastructure that decentralized? Because how that develops is very different. And to address all of this, it is not just a technology issue. It is an issue about technology, about markets, about policy, about finance or business models, and the innovations have to happen across all of them and they have to be aligned. They have to reinforce each other as opposed to fighting against each other. Which sometimes happens. If the policy is looking backwards and the technology has moved ahead, then you suddenly find, oh my God, it's really bad for the technology given. I won't go into that details, but I'll just keep it up at that level and we can have a Q&A on that. So I'm going to focus on the technology part as what could be, you know, this is a time not to be incremental. Given the challenge that we have, given those three things, we've got to be bold and audacious about our goals. So this is a fundamental technology shift in our energy system and the way we live. It's big. So we need to look at game changing technologies to really change the market. This is not for incremental improvement and let's make the wheel a little bit better. No, you've got to go from horse garage to a car now. That's the fundamental shift we're talking about. It is not one technology. It is not 100. So I think you all should have your top 10 ideas of technologies that can really change the market. And I'm going to present my top 10 and in the form of a great American philosopher that I'll talk about completely later on. I don't know who it will be, but you guys may be too young. Every 90s would come and say, this is the top 10 things. So this is my top 10 David Letterman top, you know, game changing energy in no particular order. So don't take this as that's the most important. No, this is all important. So here we go. $30 a ton. And from directly from air, possible, at less than $150 a ton. It's about $60, $70 a ton. You've got to cut that in half, at least. Otherwise, it is non-mobile economically, because this is a price in carbon. We don't have a price in carbon. If we do get a price in carbon, it will be about $40, $50. So you've got to have the cost lower than the price. Make the business value. So that's one. Number nine, photovoltaic systems that are lighter and more efficient and enabling fully installed capital cost of a 50 cents per watt with a levelized cost of 2.5 cents per watt. So when we were in the Department of Energy, Mark Hartley and I were there in the Department of Energy. It was called SunShot. Kennedy had MoonShot, Obama had SunShot. No. It was not to go to the sun and return safely in a decade. It is to reduce the cost, unsubsidence cost of electricity from solar by the end of the decade to five cents a kilowatt hour, or $50 a megawatt hour. To be cost-competitive. This is going to be on. This is going to 2.5 cents, and I'll tell you why. Number eight, battery storage at a capital cost of 1.5 kilowatt hour. And with more than half the cycle today, you will see on the streets of David, it's about $300 a kilowatt hour. But if you could do that, it changes the ball game, not only for transportation, but for the grid. Number seven, modular nuclear plants. Nuclear is the biggest source of carbon-free energy, but it's expensive. So reducing the cost with $3 a watt and a levelized cost of 7 cents a kilowatt hour. Number six, deep borehole carbon-free geothermal energy with a levelized cost of 7 to 8 cents a kilowatt hour. We don't know how to do that. It's too expensive to drill. New drilling technology for geothermal would be terrific. Ultra high voltage transmission line and low cost of integration may have been renewables. If you have more than 50% of renewables in a grid, which you would like to, the grid was never designed for, and I'll come to that in a minute. Building performance standards combined with energy efficient buildings. And you'll be living in some of your graduate student housing out here. We want to start to make Stanford buildings and Stanford living as a role model for the rest of the world, and I really hope you take that out as part of your effort out here. Number three, in terms of combustion engines, this is not just your reciprocating engine, but your rotary engine as well in your jet engine. These are all internal combustion engines. The fuel makes use. Storing carbon-free energy in fuels as opposed to batteries at $2 a gallon of gasoline equivalent. If you could do that, this is disruptive. $2 a gallon making oil from carbon-free energy. And finally, reliant photosynthesis to reduce negative emissions and slightly increase food productivity without affecting water use and without affecting land use, et cetera. So these are my top 10. You guys should figure out your top 10. If you could do a few of them, really well. I think this is game-changing. And this is some of the things that we will be talking about out here while you're here. And all of this, some of this is all going on. And so as you can see, I'm not putting in the form of here's mechanical engineering problem, here's a biology problem. Who you want to team with? Who you want to team with in material science and engineering and someone in medical school to figure out how you want to address it together. This will lead all the minds. I'm not going to talk about 10 of these in detail. I'll talk about two. Two things that are kind of dear to me. The first is the grid. Why is this important? This is, Chris mentioned a little bit of this, and this is the exciting part. This is the contract price. This is a business contract, not the cost, but business contracts that have been signed, long-term contracts, in selling wind. Here's the wind, electricity, the cost, or the price, not the cost, at about $25 or $30 a megawatt hour. Okay, so three and a half is a megawatt hour. And this is solar out here, and this blurriness is the error bar in the data. I just made it a nice preview. But that's what it is. And you can see that this has come down to the point that in the United States it has a little bit of subsidy of $23 a megawatt hour in wind, and so if you remove that, it will go to about $43 or so, $45 a megawatt hour. It's pretty good. And this is solar, as you can see, and the capacity, because it's cheap, the cost is coming down, the price is coming down, the price is coming down, the capacity is going up exponentially. What is this, you know, how do these numbers really matter? It matters when you compare. So this is where, so by the way, this is the record, unsubsidized price for wind in Morocco, $0.03 a megawatt hour, $30 a megawatt hour, and this is for solar in Mexico, $36 a megawatt hour, $26 a megawatt hour, amazing. What is it in relation to? This is where US natural gas in China call this, today. So what you're finding is the renewable energy is not only cheap, it's going to get cheaper. And in a solar, and both solar and wind, and there's plenty of headroom in solar. This is where US call it nuclear. What you hear is that nuclear is expensive. But that is the largest carbon-free source of energy. And that's what this is. So we obviously have to figure out how to reduce this cost, but the other things are getting cheaper. So now people say, okay, California has a mandate. We're going to be 50% renewable by 2030. 50% renewable. Today it's about 25%. So how do we get there? And I'll talk a little bit about this. This is a good news. In terms of capital investment, financial capital investment, we find that the green is the investments in clean energy, in decarbonized energy. Red is an oil and gas. Is that the wrong map? We have to invest in that because we still need our fuel for our transportation, etc. But for the first time, you find that the investment global, it's something million dollars, is hired in renewable energy as opposed to oil and gas. First time in history. This is only one year. We'll see what happens this year and the next year. If it keeps going like that, that's a trend. But this has happened for the first time. Now, this is another chart which I think is very important. Here's the history of how economies have changed energy mix.  But it used to take 40 or 50 years for the change to happen. We don't have the luxury of that now. Because if it's 40 or 50 years and trying to decarbonize the system, gain may be over. We know it. So do developing economies have to go through wood, which is where they are today, through coal, through oil and gas? Or is there an opportunity for them to leapfrog from here to there? And that's an opportunity that should not be ignored. And that's one of the things because frankly it is cheaper to develop it in a different way than trying to go through this whole spectrum of energy mixes. I'm going to talk about the grid. The grid is very important as a system because if you're trying to introduce 50, 60% renewables, it is non-trivial to do that. Why? Because our current grid paradigm is what I call the Tesla Edison paradigm. Nikola Tesla and Thomas Edison. They competed against each other. They made 1800s, 30-1900s to develop a grid paradigm. And this paradigm and the architecture of the grid has not changed. The devices may have changed, but the architecture has not changed. And what is that paradigm? Well, they have centralized power stations, very large thermal power stations or hydroelectric power stations. Why large? Because it was cheaper per unit kilowatt hour. That's why they made it large. They had long-distance high-voltage transmission. The first one was from Niagara Falls to New York City. High-voltage long-distance transmission, high-voltage because your current is lower, your losses are lower. The higher you go, the longer you can go. Then you have then you reduce your voltage to your distribution networks in your neighborhoods, which is typically at 13 kilovolts. Don't touch those wires. 13 kilovolts is a jolt.  That's how you operate. And the whole grid runs today at 60 volts. And the paradigm is that the power is generated from here. It goes to thousands of billions of loads at the edge of the grid. These are passive loads and the power only flowed in one direction.  Remember this is Nikola Tesla's and Thomas Edison's time. There was no internet. It was barely telephone. How did the generator know that the light has gone up? Light has been turned on, the supporter has been turned on, load has been turned on. How did they know? Anyone knows? Frequency. Because when you turn on your load your machines will run a little slower because it's just a drag on them. So you have 60 hertz becomes 59 hertz, 59 for 9 hertz, 59 hertz, etc.  That's a feedback control. That's how the grid started running. That's how it runs today. It's a very simple control mechanism. That was the only way, I mean that was the only way to communicate, frankly. And in those days. Today we have a few other ways of communicating. And that's one of the things that we're going to talk about briefly. Finally, this is not, this is continuous generation, centralized continuous generation. So if you ramp up, if you turn on your load they could ramp up and they can, the generation always track the load. But as we know now in wind and solar the generation doesn't track the load. The generation tracks the wind or tracks the sun. So somehow our whole paradigm is changed now. Should the load be tracked in the generation? Maybe. How would the load know when to turn off or when to dip? Well maybe there are other ways of communicating. This is the whole paradigm of what I call bits of what and I'll talk very briefly about. So when you try to integrate renewables, this is today the question of stability of cost, of reliability, efficiency, mission goals, security, market structures and price mechanism, business models, regulation, regulatory agreements, people acceptance. All of this has to take a took on. All of this will change because the whole paradigm was shifted. And the test values and grid was never designed for these changes. So the fundamental infrastructure that are internet and everything else that we do in our life depends on the fact that you can hear me with a mic that depends on electricity, the fact that I can project everything we do depends on electricity. That fundamental infrastructure will have to change at the times that we're living in right now. And a lot of people in the utility world, in the electricity world are really worried about what will happen to their businesses because once this thing changes, that changes the business model, the regulatory structure will also have to change. So what enabling technologies that we can leverage today? Well, we have power systems that we can manage electronically. Silicon transistors are not just used for your information processing. They are also used to controlling power. And they use that for your power supplies for your computers. That's really teeny, teeny ones. They also use for controlling megawatts of power. Communications and control. I mean, you can buy this Texas instrument DSP chip for $1.50 and it runs at like 80 megahertz and you can do all kinds of very nice digital control with this. It's dirt cheap. You have sensing mechanism, not just smart meters in your home, but various other more sophisticated devices put you on a transmission line and figure out voltage, current, phase angle, GPS unit and timestamp every 30 milliseconds. The tons of data we produce we don't know what to do with the data. That's where we are today. Computing. Computing is separating into two parts. One is centralized cloud-based computing, network distributed computing, and the other is distributed intelligence, what we now call Internet of Things. That's a very nice word. Internet of Things. In this case Internet of Things have to satisfy the laws of physics. You fit with the stock. But your Internet of Things in the grid will have to look at Kirchhoff's laws and things like that. This is not true. And of course a lot of data science. As I said, there's a lot of data we produce and we have to use the data. We don't know how to really analyze the data for this particular application and these are all getting cheaper and better. So this is the what I call the bits and wants. It's a Stanford and Slack innovations for the 21st century grid. We said, we're not going to throw this infrastructure that we already have. But could we overlay another infrastructure of computing and distributed connection so that the coordinator, so that when the wind goes down can we reduce the load a little bit? Or when the wind goes up can we generate and we store that energy somewhere? We use it. So this is the kind of thing that we're going to go in bits and wants. This is a three big thrust integrated approach to grid modeling, transmission distribution as one big system, connected customers. These people have to be involved. We know how to control the triple stats remotely. Now, if you don't have that in your home you will probably have that soon. And finally, a lot of data. And I won't go into the details of this. Let me move to transportation. There's a big vector that is pointing right now and it's a very strong vector on electrification of transportation. And the reason being, the only reason it's not prevalent everywhere is the cost. I wish all of us could buy a Tesla. We cannot. It's expensive. And the reason it's expensive, the majority of the cost is in the battery. The battery costs have come down about $1,000 a kilowatt hour in 2008 or so to roughly about $300 or maybe $200 something dollars per kilowatt hour in a matter of several years. This is absolutely fabulous. And the reason it has come down is all kinds of innovations in materials. You can store more energy in the same material. And packaging, how you package it. So this is, and once it reaches about $150 a kilowatt hour today it's about $300, it reaches $150 which is likely to happen in the next 10 years or so. The cost and the range of electric vehicles will be comparable to the ones in gasoline cars. This is amazing. This is the tectonic shift in transportation. And then give it another 10 or 15 years, you'll find deep penetration of electric vehicles and people out here think big cars these are somehow big. The rest of the world, which is where most of the growth of transportation they travel like this. And that can be electrified much faster because the ranges are lower the speeds are lower and when the speeds are lower your range increases. So this is very, very important. The other part is that not everything can be electrified. You still need fuels. I would love to see which people are trying a single capacity once. But you're going 747 it's not going to go on a battery any time soon. She still needs the fuels. Liquid because that's high density. So how do we produce this? And this is the other part that I was going to talk about. A grand challenge. We think CO2 is a problem could we turn CO2 into fuels? So you have water or CO2. You can slick water and produce hydrogen. You can perhaps combine hydrogen with CO2 to make all these kinds of hydrocarbons of ethanol and ethanol etc. This needs a lot of energy because CO2 is what is called the lowest free energy level. Well those of you who are not engineers or scientists, there's nothing free energy. There's no free energy. What we call is free energy. So how do you take from the lowest energy level of CO2 to storing energy? If that energy comes from carbon based coal based sources, we're not solving anything. So how do we take these kinds of energies and that's why it's very important that they achieve inexpensive which is the world we're entering now and get into this. And there's a lot of research that is going on at Stanford and this is a whole team looking at electrochemical pathway. So you can see our electrochemical, photochemical, biochemical, chromochemical. This is the electrochemical team in Jens Norskov, Haramea, Tom Harameo, this is chemical engineering chemistry and material science. We're looking at trying to figure out how to reduce the cost of hydrogen production to be less than $2 a kilogram of hydrogen. $2 a kilogram of hydrogen is roughly $2 of gasoline equipment. Once you produce hydrogen you can do other things. So this is one big, big challenge. We don't know how to do that. It's about $5 or $6 a kilogram of hydrogen, which is that means the hydrogen or the gasoline that you produce is $5 or $6 a gallon of gasoline. It won't compete at least not in the United States. So how do we get to this? And this requires science and engineering to be able to do that. The one that I am along with my colleague Milt Shui is focused on is not the electrochemical route because the whole chemical industry is thermochemical today. We can do that, but it requires a high temperature, 1500 degrees Celsius. We're trying to get to 800 degrees Celsius. Half a temperature. And if you can do that, it is infrastructure compatible. And we have some very nice results. Now, new class of materials that we've found that we can do that. It is material science and engineering is all bigger. So, again, a lot of people think that this is too difficult, hard. A lot of people, a lot of naysayers, by the way. And I go to Washington. In fact, I'm going there today. There's an office guitar. There, there, there. It's all negative. Let me give you some I would say infamous predictions from the past if someone says no. As long as it doesn't violate the laws of physics it is, it may be possible. It may not be cost-effective, but you got to think about it. These are the infamous predictions of the past. This is Lord Kelvin in 1890s. Rainy has no future. X-rays will prove to be in hopes. Heavy-than-air flying machines are impossible. He was very opinionated. But quite wrong. But he was not the only one. I mean, he was so convincing that he convinced Wilbur Wright that man will not fly in years. And it was 90 to 1. Fortunately, he had a brother. He convinced him otherwise in four years they were able to fly. He didn't violate the laws of physics. There were existence proofs out there. And the best way, and this is for you to invent the future, the best way to predict the future is invented. And I like the quote by Arthur C. Clarke. Any sufficiently advanced technology cannot be distinguished from magic. And it is for you guys to do some magic now. Thank you. Questions? I can take one question. And if I answer quickly, it's up to me. I can take another one. Questions? Yes. When you look at energy surge in hydrocarbons, are you also working on a pathway to get the energy out?  So the question is, is there a sort of a carbon balance when you're making hydrocarbons? What would be to somehow figure out how to get carbon from the atmosphere, or some source would have gone out, and then make liquid fuels? Even if it's emitted from a source like coal-fired power plants, it would have gone out. Use the carbon dioxide to make fuel. And thereby displace more fossil fuels dug out of the ground. That's the activity. Good question. One more. Every day lifestyle, like finding all the water or using those bags and stuff, have an impact on the energy of the source. Great question. Do a lifestyle in a carbon balance. Absolutely matters. Most important things you can do and see whether it's energy efficient. How many kilowatt hours do you really use? And your home is one of the biggest uses of energy. And if you can somehow reduce the energy consumption by design, by making it you know less leaky both heat to come in or heat to go out using a lot of energy. In this area, we don't need air conditioning. And I've been fighting with my wife my wife won't say air conditioning. And I say you don't need one. You can bear 80 degrees for a few days. I think we can do that. So that's the kind of thing that you've got to be able to do to reduce the energy consumption. If you're traveling nothing like public transportation to reduce your energy footprint. And that's the kind of thing lifestyle really matters. We want to make Stanford one of the models of excellence in terms of the carbon emissions. This is the living laboratory. And so we want to that's one of the goals that Sally Benson, my co-director is to see if how to make Stanford campus and Slack some of the zero carbon emissions. Okay, net. But you've got to do it very cost effectively. So we call it double net zero. Net zero emissions at net zero cost. If you can do it cost effectively it becomes a role model for everyone else. Because cost really matters. We are privileged out here in terms of we have some wealth to do it and we may not mind a little bit of extra cost to be able to save the planet. But we can't ask the rest of the world to do the same. So if being sustainable reducing emissions, reducing energy consumption becomes a cheaper way of doing living. That is the right way to do it. And let me stop here. Thank you very much.


Hello and welcome to the session. In this session, we will discuss a question which says that using a quadratic formula, solve the following equation for x. e to the x square plus v square minus ac the whole into x minus bc is equal to 0. Now before starting the solution of this question, we should know our result. And that is for a quadratic equation, ax square plus bx plus c is equal to 0, where a is not equal to 0 and a basically are the constants. The quadratic formula for finding all the rules of this equation is, x is equal to minus b plus minus square root of b square minus 4 ac. Now this result will work out as a key idea for solving out the solution. Here we have to solve this quadratic equation. So given the quadratic equation as b square minus ac the whole into h minus bc is equal to 0. Now comparing this equation with the equation written in the key idea, here b is equal to b square minus ac and c is equal to minus bc. And the value of b square minus 4 ac is of b, a and c here. It will be b square minus ac whole square minus whole into a b into minus bc is equal to b whole square plus a square c square if it will be plus a b square c is equal to b whole square plus a square c square. And this will become, which can further be written as b whole square plus a whole square plus b square is equal to b whole square plus ac whole square.  So here the formula is completed. So this will be equal to b square plus ac whole square. Now using the quadratic formula, which is given with a key idea, minus b plus minus square root of b square. Now this is the value of b square minus 4 ac.  Now here, this will be cancelled with this. So it will be, this will be cancelled with this. So it will be minus b square minus b square root upon 2 a b. Now this implies minus b square is equal to minus 2 b square over 2 a b. This is equal to, here 3 will be cancelled with 2, a will be cancelled with a. So it will be c over b and all these terms, this will be minus b over a.  Hope you have enjoyed the session.


Hello people of the internet, my name is Johnny and welcome to one of the most interesting videos I've ever had to make. We're going to be talking all about the possible FNAF collaborations going on with Fall Guys, with Fortnite, uh, and yeah that's it, unfortunately there's no Dead by Daylight news, we're still holding on though Springtrap and Dead by Daylight, but since everyone has been talking about it I did want to make a video talking about Fortnite maybe collabing with FNAF and Scott to bring Freddy or Foxy or some other characters like Springtrap into the game. Keep in mind I am biased in this video because I, you know, don't get mad, I personally do enjoy Fortnite, I don't think it's a bad game, I think the community, not the best, but hey that's the same thing with the FNAF community. I'm going to be going through all the evidence we have so far about this possible FNAF and Fortnite collaboration as well as some info from Darko and Scott. So let's not waste any more time, thank you so much for clicking on the video, subscribe if you're brand new and smash the like button please it really does help me out quite a lot. So quickly I want to talk about Fall Guys because I know a lot of people are here for Fortnite but I want to quickly address what's going on with Fall Guys, okay? So last month on January the 18th Fall Guys tweeted out what games do you really want to see us collab with at them, let's see who says hello. Quickly going through it, Darko says FNAF, DM me, Fall Guys replies, do you got the hookup Darko? Yes, I can try my best to get this to happen. Fall Guys DMing you, Five Nights at Fall Guys, let's go! And basically everyone was freaking out because you know Fall Guys was pretty popular back last year. Personally I don't have anything against the game, I would love to see FNAF get involved with other you know game franchises. And when you think about it the whole point of collabing with a different game is to bring attention to both parties. Really it's a win-win in both scenarios, I know some people like oh Fall Guys in Fortnite they're cringe, they're going to ruin the FNAF community. Personally I see no evidence to pack that up, it's fine if you don't like a game but going so far as to say I don't want this to happen if they do it I'm going to you know do something very bad just because I don't like this game because I think it's cringe, I think it's a bad game, it's completely ridiculous. Fortnite is still after like four years arguably one of the biggest games still on the planet. Same thing with Fall Guys, you know it's fell off a little bit since last year but they're still quite a big fan base around it. Anyway sorry I got off track there, yeah that's basically where things have been up until earlier today where Darko tweeted out I meant to say FNAF X Fall Guys is not currently happening. Scott said no for now. What's up I'm editing afterwards and I completely forgot to talk about the rest of his tweet so I'll talk about it right now. He says I don't know anything about a Fortnite collab and I haven't asked Scott and I'm not planning to either. FNAF X Fortnite would be really cool though I'm like 30% convinced. Also saying Fortnite is cringe or FNAF is cringe and that's your reasoning why there shouldn't be a collab is disheartening to see. Let people enjoy things and learn to be kinder to people. So yeah Scott didn't say anything about Fortnite, Darko didn't even ask, which I'm completely fine with. I think the reason why he didn't ask is because he didn't start up this whole FNAF X Fortnite thing but he did start the whole collab, possible collab with Fall Guys because he replied to them. I'm personally really fine with Darko not asking Scott, I feel like it would probably be better this way. Plus it is up to Scott, it's not up to the community, it's not up to Darko, it's not up to me, it's up to nobody except for Scott and Epic Games. So yeah that's the rest of his tweet, moving on with the rest of the video. Smash like and subscribe if you haven't already. What are you doing? So there you have it from Scott himself being passed on by Darko the messenger. Five nights at Fall Guys unfortunately isn't happening for now he said. Now of course we shouldn't get too hyped up because of Scott saying no now, you know he may not want to change his mind in the future, we can hope but it seems like he's pretty horrid set on a no. So now let's talk about Fortnite because we have a lot of evidence to support a possible collaboration between these two games. King Carter summed it up pretty well on his Twitter page, of course it's King Carter, link down below, go check him out, as well as some other evidence that I have. He says some running slash footsteps audio files were added to Fortnite's data recently and it is reminiscent of the running sound effects used in FNAF 1 like Foxy's. I'll play it right now, I've heard it, it's pretty close definitely not exact. It definitely does sound something like what you'd expect them to sound like but again who knows at this point Fortnite has so many different skins and collaborations going on right now it's hard to tell but something that does back it up is that the audio files were assigned to a codename being french fry. Now if you didn't know Fortnite's codenames were often direct hints at character names via their acronyms. Wasabi was Wolverine's tour bus, was Ninja, Tyler, Fortnite, Blevins, so french fry, FF, Freddy, Fazbear, Foxy the fox, that's what some people are thinking right now. A Reddit user you slash the squatting dog received a package from Epic Games in December giving giving additional hints at upcoming skins for the zero point event. Quick backstory, if you don't know again I do play Fortnite so I know that some of this stuff. The current season of Fortnite is all about you know different hunters they call them across the the multiverse really. That's why you're seeing so many collaborations like the T-800 and Sarah Connors from The Terminator, the Mandalorian from or the Mandalorian. They brought in the Predator, some people from The Walking Dead and to be fair it is a little bit of a stretch but you do technically get hunted by the FNAF animatronics so they do fit the bill right there though something I see happening is they're not going to be part of the zero point event but probably more the gaming legend's skins. So I think instead of being about the zero point event they'll just be added in kind of like what Master Chief did because he's part of the game and legends event. Anyways getting back on track these hints are deliberately very subtle for example the hint for the Mandalorian was a plastic cup referencing baby Yoda drinking from a cup very subtle. One of these hints which is still unsolved is a bag of gold colored tokens very much resembling those that would be found at a pizzeria or an arcade. Now something hilarious is that Ali A the king of Fortnite he uploaded a video and it's called New FNAF in Fortnite Five Nights at Freddy IES oh come on Ali A. Skin sorry this this just hyped me up so much it's so funny to see Ali A talk about FNAF in Fortnite but he had this to say which I thought was interesting. What if the tokens could be fast tokens from Five Nights at Freddy's indicating that one of the teasers that I was sent the tokens are tied to Five Nights at Freddy's. If we take a look at these tokens they are gold they are tokens I mean this could be a direct correlation with this teaser and further backing up the idea of Five Nights at Freddy's in Fortnite. So as you can see he also received the gold coins and he pointed out that they are indeed gold and they are indeed tokens so really that's kind of where the connections end for those tokens I mean they could just be like golden doubloons for a pirate or something but I think it's more exciting if we count them as fast tokens. Now something else that I remember happening is that on August 8th 2020 the Fortnite item shop included the cuddle team leader which is a bear mascot and also the pizza party emote where you open up a box of pizza and you take a nice bite. Cuddle team leader there Freddy Fazbear pizza Freddy Fazbear's pizzeria you know it like it can't be a coincidence come on so that's everything that Cain has over on Twitter again linked down below thanks Cain for collecting all this info I have a few more however for example almost a year ago on March 31st 2020 a Fortnite leaks Twitter account tweeted out the brand new cosmetics added in at the update at that time it had party patrol crackle team special delivery pastel patrol choco revenge redux ready aim fire and the FNAF AR Twitter account the official one replied saying did someone say special delivery bro why are they commenting on a fortnite leaks twitter account to be fair it is a little bit bold to assume that they know something like why would a lumix of all people know about this collaboration but then again at the same time why would they comment this in the first place on a fortnite leaks twitter account it's possible that they just you know twitter search special delivery to see if anyone was talking about the the game and they saw this and they thought this could be funny I don't know it's interesting now something that I don't see many people bringing up is that there was a lake area in the game in between dirty docks and retail row and supposedly I don't know if it's in the game yet because I haven't checked it out but supposedly there's going to be a rift there soon now if this whole collaboration is part of the zero point event if you don't know the riffs crack open the portals and characters come through there that was a terrible explanation but basically all the hunters come out of those portals and that's when they become playable you can unlock them and all that good stuff now this is 100% a stretch but there is a lake in fortnite old man i mean there is a lake in fnaf old man consequences lake um in ucn and in fnaf world so again it's a pretty big stretch but it is a little bit interesting okay again it's fun to speculate here I know some people are upset about this whole idea but come on it's fun and I'm pretty sure that's everything again good on you if you don't want fnaf to do a collaboration with fortnite good on you if you don't like fall guys or fortnite this is all for fun I may be wrong but I'm pretty sure they're doing like a matrix uh collaboration in fortnite again I don't know if that's confirmed I just heard that and the matrix does have a fourth movie coming out later later this year I think so does fnaf it has a game coming out not a movie though that would be cool though so you know this whole collaboration could be to hype up security breach there's no ff characters in security breach as far as I'm aware maybe we just haven't learned about them yet but to be fair it's a good idea to get your characters into the most popular game on the planet right now arguably to promote your upcoming game which releases in a couple months that's not a bad idea it is weird timing though you'd think that they would wait to do this around halloween time which who knows maybe could be the case but if they're adding in all the files into the game right now it would be weird to wait until october which is like what eight months away to do all this stuff I don't know again it's all for fun I personally would love to see fnaf collab with any game doesn't have to be fall guys doesn't have to be fortnite again I would love dead by daylight a lot of people have been pushing to get springtrap into dead by daylight and really I just want to see you know fnaf keep growing because if it's big enough to get into fortnite the most popular game on the planet for the past like four years think about it think about it the series has come a long way sure we've had little cameos in other games about chica you know about the celebrate poster but it would be cool to see a fully fledged collaboration between scott and another game I think that's great I think that's great I would I would love to see it doesn't matter what game it is I just want to see fnaf keep growing and hopefully we can see cool stuff like this in the future so that's it thanks for watching and I'll see you all on the flip side


Hi there, I'm Sandy Olnok, artist and paper crafter here on YouTube and I'm gonna be using Bear Wear 2. There was a Bear Wear 1, but Bear Wear 2 has Halloween and Christmas in it and Bear Wear goes with the all-inside set with this darling bear. There is a dye that makes his hands pop out so you can put things into his hands, but I like to just mask around them. So I just stamp it onto some masking paper, put the hands down and then stamp something inside and we have a whole new set. I'm so excited to play dress up with. It has a lot of Halloween stuff and a lot of Christmas stuff and I'm gonna show you real quickly a Halloween card and a Christmas card that I did. So this is after my masking. I kind of did them both the same with the bear in the middle, but the hat didn't work out so well. I forgot to put it on first, so I'm going to show you how I fixed that and color basically the whole image except for the background because the background, yeah, I'll tell you about that later. But his hands, like I said, I masked it off and then stamped the pumpkin in it and for the cauldron, I wiped off the top part of the cauldron when I stamped it so that I would be able to put some bubbles in there and have them bubble up over. This one was much easier to do my stamping on. Again, I masked the hands so that I could put that, put the tree in it and I did the hat first. I remembered this time. I did the snowman first, so those two would be in front of him. So let's start out with the Halloween version. See, I did his head first when I did my stamping. I didn't decide to put the hat on first. Should have done that, but I'll show you how I fixed that. This whole card actually, I'm not going to even have the footage for the whole thing because the background gets ridiculously crazy. I had a different plan for it. It didn't go there. That's how it, how things go sometimes. They work out a little differently.  And yes, it's pumpkin soup. It's not witch's brew because he's holding a pumpkin. So yeah, my little happy bear is just having a fun time cooking some fancy pumpkin soup. What I noticed was that I was having a lot of gray on here, and I knew that this was going to be a very dark card because it's going to be for Halloween, but I had to start figuring out how to differentiate between all the different grays and blacks. So now I've got my hat on here, but the hat needs to pull out to the front, so I just drew right over top with my black Copic marker in order to create a hat that's out in front. Fortunately, it's black, so that works. If your hat's going to be another color, you have another issue. And for the eyes, I just drew them in inside the mask with a pen. And I'm trying now to figure out how I'm going to separate the bear from that cauldron, because the cauldron is also going to get darker because it's supposed to be a black cauldron, and make the bear's body recede so the hands come out to the front. And I'm doing that with some darker colors around it, but be careful because black can turn into a giant blob eventually, and this whole card is going to be a giant blob, so let it serve as a warning to you to be careful. So I'm keeping my bear in the cool grays, and I'm going to adapt the cauldron so that I get a little difference there, but I thought I'd entertain myself by putting my orange in there so you can wear an orange mask. And I'm using an E08 to add some rustiness to the cauldron. And then I'm going to mix it with some different kinds of grays, different gray colors, going to use some black, and some warm grays as well, because that's going to make it different than the bear in the background. And I even decided not to leave much of that highlight on there, I even knocked that back as I worked on it. And if you want to lighten this, if you get too much on there, you can also go in with a lighter color and pull more out of it, which I'll do in a little bit, so you can keep changing it as you go, even though it's Copic Marker, you can erase color that way. So the shadows on this, since it's coming up from the cauldron, are going to be on the top. So the mask went dark and everything, and here's the lightening of the outside of the cauldron. You can almost watch it pop in front of my bear, because now it's a different color, slightly different color, and it's got a little more highlight on it. So I decided to move on to the other images in here, the little kitty cat. It's going to be a black cat sort of, but it's going to have a little bit of highlight on one side that's facing over toward the cauldron. And then the little bag with the moo on it will also have its shadow away from the cauldron. And then I decided to add a little bit of purple, just a little touch of purple to the cauldron itself. So I probably should have added orange if he's making pumpkin soup, but there you go. And so now I'm speeding this up like a gajillion percent, because it just took forever, and my intent was to use a technique that's similar to one that's in the autumn scenes class over at artclasses.com. And this sort of is, but boy, did it take a lot of layers. This was forever. Oh my gosh. You'll learn how to make a beautiful fall tree, but not with a dark background. I hadn't tried this with a dark background. And I was layer in colors and layer in colors and layer in colors. And I started out with the purple in the deep forest thinking that was going to work. I had to change that by going over it with more colors. And since I'd already started this, it was just a, yeah, it was a crazy bunch of whatever. And so it ended up being just about almost all black after all of that. And sorry, my camera does do some funky things when there's that much black on the screen. So it's having trouble rendering the color very well. But I did add some highlights coming up from that cauldron using a white pen. The card came out really fun though in the long run, even though I didn't get to show you how to make a dark tree. Just try to keep layering those colors. That's what I talk about. A lot is using a lot of ink and a lot of colors. And the top layer is a lot of black, just a lot of black. And there's a lot of grays in the background. Really fun to do, but very time consuming. But for those who want to try it, give it a shot and tag me. I'd love to see your attempt. Now for the Christmas one, this is an experiment to try a bunch of different whites because at Christmas time we have snow, we have polar bears, we have all different kinds of things. So I'm using light browns for my polar bear. You can use any kind of flesh tones as well. If you're doing an animal that's in the midst of snow, sometimes it's nice to make the animal a little warmer so they look alive where all the snowy things have a little more blueish or grayish tint to them. That's just one option. So I'm using a couple of E's in order to get my shading on my bear done here. And then I'm going to switch over to coloring snow. So like I said, snow can have blues in it.  But watch what happens to that B2 as soon as I hit it with some B0 for that blending because you don't have a B2000 so you can use the B0s with it. For the kitty, I wanted him to be a white kitty, but I thought let's see what happens if we use the warm gray for him. And he doesn't look as alive as the polar bear. But you know, it's another difference. So it looks like you have something different going on in the two different types of white. So add a little red and green to the card. Of course, I'm not even going to add any shading to those. And you'll see at the end, it won't matter because when you pay attention to the shading on some things, it won't matter if you don't pay attention to the shading on the little thing. So do the do the important stuff and give yourself the chance to be successful at that. The shadow down here is a B4 plus some B000. So again, it's a little even dimmer color than the B21. But but I still mixed it with the B000. For the trees, I'm giving them extra branches coming off of them. This is the tree that's in the stamp set. And I'm just making a whole bunch of different branches. You can make them giant trees with lots and lots and lots of branches in the Halloween one. The trees went all the way across and touched each other and melded into each other. So you can do as many or as few as you want. Just make them irregular. And you can make some of them cross each other and stuff really doesn't matter a lot. Trees are quite, I guess, messy when you're talking about the branches. Look at a picture of a bear tree and you'll see kind of the structure of a tree if you're looking to make it accurate. And then I'm going to put a little bit of color into my tree trunks. And I'm actually using the E4s, which are a little bit of a dullish kind of color because I'm going to have a lot of snow on them. And then I'm going to put some BV20 in the back. You can use any different kind of color, but this is a blue violet. And it's a not so saturated blue violet. A lot of the BVs that I use for other things are BV0s. And they're a much brighter purplish color. And this one is a little duller. So I wanted something in the background just so that the things in the front would look white and the snow that I put on the tree would look white by comparison. So a lot of contrast is by putting one color behind something and another color in front of it. And then you can see the difference between them. Because see if I had put all these little snowy lines on my branches while the background was white, you wouldn't have seen anything. I am adding a little more snow in areas where there's a V shape. So think about where the snow would sit when it rests on that tree branch. And then I'm just going to pop a whole bunch of white dots all over everything. Make sure you put it in front of the images themselves and cover some of the lines just here and there.  Just avoid eyeballs so you don't get your your snow in a weird place. So there we go. There is the finished winter version of Bear Wear 2. These are really fun to play dress up with. There's a scarf for them and all different kinds of funny things. And many ways to dress them up. And here is one more version. I decided to do a simpler one using one of the autumn scenes lessons. So for those who are in the class, you can use this bear to give them a wonderful scene to sit and hug his kitty and pet him and love him and love him and pet him. And isn't that cute? Anyway, I will see you guys the next time. There's a link on the screen to that class. If you're interested in fall scenes, there will be some Christmas scenes classes coming soon. And yeah, that's about it. I will see you guys later. Have a great day and most of all, go make something. Go color something beautiful. See ya.


So, Amir asked me to do a little boff. Huh? Oh, really? Sorry. Should I? I probably, I don't speak very loud. Yeah, Amir asked me to do a little boff about I.D. Met Mounds, which is something that some of you might have heard about. Probably over the last two years or so. And I guess I first want to start with a little introduction why we did this. So what is the motivation for this? Here's a couple of use cases. So first of all, a noncontainer use case, because I always like to stress that it is not just purely a container feature. This is a generic VFS feature is about what is called portable home directories. So essentially the idea that the UIDs and GIDs that you put on disk, if you, for example, have a banner of as sub volume as your home directory or a USB stick or some external disk with XFS or an X4 file system on it. And you want to take this home directory between two different machines. And obviously you can have different login UIDs and GIDs assigned, but then you wouldn't be able to interact with all of the files on disk. So the only option to solve this problem in this case is you need to recursively shown all of these files, which gets even more problematic. If you consider that in your home directory, it's not usually the case, but not necessarily the case that only UIDs and GIDs have been files with UIDs and GIDs have been written to disk that corresponds to your user's UID and GID. There could be files that some demo created with a specific UID and GID in there and so on. So if you recursively shown, you lose all of that information. That is an issue that SystemD, for example, frequently ran into. And the other case comes from obviously containers because they're a really big thing right now, or they're by now. If you have a container that runs inside of the username space, then you will often have a UID and GID mapping in place to ensure that UID 0 inside of the container doesn't mean UID 0 on the host. So if you break out, you're not automatically escalating to root. And that means the root fester of the container usually needs to correspond to the ID mapping used for the container, which means that root file systems need to be choned as well recursively. The big problem with this is obviously the larger your root fests gets or the more layers you have that you use for an overlay fs mount and so on. The more expensive it actually gets to choned them. The next thing is if you have something where you want to give each container its individual ID mapping. So it's separate username space with a different ID mapping, which is a use case that some people have. Then you also have the problem that you need to duplicate all of the storage. So each container, they can share layers anymore if we're staying in Docker terminology, but each root file system has to be copied into a separate directory. So you're wasting a lot of memory and space for no particular reason other than that you want to change the ownership of the files. And there's a bunch of other use cases on there where you, for example, want to share data between the container and the host. Let's say you want to have your home directory or something that recently someone wrote a blog post about. They wanted to build a minimal container where they use slash user on their host system inside of the container. That obviously won't be possible to do nicely because the ownership of all of the files on this will not usually match the containers UID and GID mapping. There are some solutions to this problems already. There is a very limited number of file systems that allow you to mount them inside of containers. The most interesting file system that exists in this area is Oval AFS. So you can mount an Oval AFS file system inside of the container. That doesn't necessarily help you because the underlying layers that you use for Oval AFS will have their ownership changed anyway. The Oval AFS stack and file system mounted on top of a bunch of lower layers. So if you share layers, these layers can't be shared anymore if the containers use different ID mappings. Other file systems are rather uninteresting for data sharing or for using as root of S. You have tempFS, you have deft, pts, you have sysFS, you have procFS. But neither X4, XFS nor butterFS are actually mountable in this way. Another thing is that the file system-wide ID mappings do what they say on the tin. They change ownership file system-wide. So even if you were to be able to mount one of those file systems inside of the username space, the ownership changes would apply to the whole file system. Which especially if you think about containers as a bunch of mounts put together, which they usually do.  So a couple of bind mounts. And it's not necessarily always the case that all of these individual mounts are supposed to have the same ID mapping that is used. And so a longstanding idea has, well, there are a couple of different solutions that you can take with this. But the most flexible solution that covered all of the use cases that people came to up with us over the years. It took a long while to actually get to all of those people and talk to the different stakeholders. What they wanted was to make it possible to change ownership on a per-mount basis instead of a file system-wide basis. And so it's a temporary and localized change in the sense that the ownership change is tied to the lifetime of the mount. And this is in a nutshell from a high-level perspective everything that ID map mounts are about. You can change ownership on a mount-specific basis instead of a file system-wide basis. Which makes them very suitable for containers, for example. And the API for this is based on the Mount Set Adder system call that's already fairly widely used, which allows you to change mount attributes, various mount attributes, just the ID mapping that is used for a given mount, but also stuff like read-only, read-write, and so on. Yes, Ted. Yeah, so when you say on a per-mount basis that's mount not bind-mount? That's bind-mount. Oh, on a per-bind-mount basis. Sorry, I forgot. I can use a simple VFS terminology on a VFS mount basis. Okay, on a VFS mount. Great. Okay, thanks. And so this is the API. This allows you to, I don't know how many of you have seen this, this allows you to change mount attributes recursively, which something which the mount system call, the base mount system call, didn't allow you to do. You can make mounts read-only, no-def, and so on. And this is the specific API that you need to use if you want to create an ID map mount, which is to raise the specific flag and then pass the file descriptor of the username space in that you want to apply to this mount. And this is basically the whole magic. The VFS had to be taught to deal with this. File systems don't need to be really aware of it. There are APIs that abstract the necessary, the gory details away. At least we tried to make it so. Is there like a command line helper program that makes this easy? Yeah, so this should be merged fairly soon. I can probably give a demo here. Let me try. And now let me significantly increase phone size. Can you all see this? So, talked with Carol, Zach, the maintainer of Utah Linux, and because system D services already want to make use of ID map mounts directly for isolated services. And so they wanted to have this available in the mount tool. And so it is actually available, should be available in the mount tool soon. Let me see if I have something mounted already. For this room, it's worth knowing that XFS tests already has a binary that gives you this. Sorry. For this room, it may be useful to know there is already a binary in FS tests. Oh yeah, XFS tests. I should probably say we have a 15k test suite associated with ID map mounts that is upstream in XFS tests that aims to cover the behavior of ID map mounts under all possible combinations and tests via FAS behavior including ACLs, capabilities, setting and getting, setGID inheritance, setGID and setGID execution because this is all of where this stuff becomes relevant. And so file systems can just run XFS tests with that and they should have a clear idea whether or not they implement this correctly. Every time we fix a bug or see a regression, we immediately add a test to XFS tests and that also has a binary to create ID map mounts. But for user space, it would obviously be nice if you could do something like this. This is the command. So mount has a set of options that are called x-mount. And there is a bunch of complicated stuff that you can do that people don't know and it will gain a new mount option called x-mount.idmap and then you can specify ID maps or explicitly, so to explicitly say this is the ID mapping that I want to use, but if you wanted to, you could also say proc some PID NS and then the username space that you want to use. It's fairly flexible. The syntax is something like this. I want to map UID 65534, for example, to UID 1000 and then you can give it a range for how many UIDs and GIDs you want to map. Here I just want to illustrate, this is a shortcut for mapping both UIDs and GIDs. So, yeah. This means map 65534, which is the nobody, no group user to UID 1000 in the target mount though. If we look at source target, source mount, then you can see there are two files in there, a directory and a file that are owned by nobody, no group within this mount. But since we created an ID map mount, because you can see here at target mount, if we look at this from target mount, you'll see brown and brown as my UID, which is UID 1000, I can prove this. So, in this mount... This is very fascinating. It sounded like you mentioned there is a way to call out to a service or call out to a pseudophile for the mappings as well. We're going to specify something, because typically these would be stored centrally, so the example I think of a lot is your NFS or some file system, and you have exactly that thing, right? Oh, you mean you want to call out to a service and use this ID mapping? Well, let me give you an example. You have two containers running on the host. Container one is a member of domain Pepsi. Pepsi does not have a user brawner. So you're mapping that. If that user showed up there, he's guessed. You already have that. But if it's Microsoft, another container running on the same host, that container, yes, you do exist in your UID 1196 or whatever. So the central storage of these, however you do it with SSSD or Windbind or whatever it is, or some future service, it makes sense that depending on who owns that container, is it Coke, is it Pepsi, is it Microsoft? Those IDs could be mapped differently. They can, yeah. And so what I'm kind of wondering about is how you would call out to a service that knowing what namespace the container is, was it Coke, is it Pepsi, is it Microsoft running it, would provide you the UID mapping for that? Sort of like what SSSD or Windbind does today. I mean, that seems like a, we totally misunderstanding, but that seems like a user space problem. But if you essentially have infrastructure to call out, give me the ID mapping that you want to use for this container, then you retrieve it and then you can set up the container with that ID mapping for that specific mount and so on. I guess what I'm saying is that there's thousands of these entries, they're stored centrally and then cached in these services like SSSD and Windbind, they cached other things too, but they cached group memberships and they cached all these things needed for actual evaluation. So these services already do all of that, but what they don't know is until you ask them, they're not going to provide you the data unless you ask them, because they're typically hooked into by PAM and NSS. You know, you're looking at logon, you're looking at who am I and commands like this. But the thing that I'm a little bit confused about is when you set up these mounts like this, is there a way to automate it so the mount command can just go off and ask the user space service the right thing? Yeah. Yeah, that's possible. That's what I meant. It's a user space problem. If you have a way of retrieving these mappings that you want to use and then translate them into a form that can be consumed by the mount binary, then this is doable. What I wanted to, in the last step, illustrate is the important thing and this is the test. If I now create a file in there and say, and I look at it from here, then it will be owned by brown or brown or if I look at it from source mount, then it will be owned by nobody, no group. So the ID mappings essentially work in such a way that if you create a file on disk, if an ID map mount says, map 65534 to UID or GID 1000. What that means is if I call stat from that ID map mount, I'm getting reported 1000 as the owning UID and GID for a file that is stored on disk as nobody, no group. So consequently, if you create a file or if you change ownership and say, I want this file to be owned by UID 1000 or I want to create a file as UID 1000, that means I'm putting a file to disk as nobody, no group which conversely will be reported as being owned by UID, GID 1000 through stat. This is an important thing to note. And this is used already. So this is being, so for people a little more active in the container community, there is, it's now part of the spec or it's becoming part of the run C spec. It's used in a C run. It's used in run C. UID has a pull request for this open or already support system B and spawn supports it right from the right of the bat, makes heavy use of it. System D home D makes use of ID map mount system D services will gain support for this. So there's a lot of activity going on around this. The file systems that currently support this are X4, XFS, ButterFS and we have a patch series for OvalAFS that is scheduled I guess to be emerged for. What does the file system need to do to support this? So that depends on your file system. No, it doesn't really depend on the file system. Network file systems are a bit special, but I have prototypes. I had a prototype for Cephaphase, which I think Jeff Layton already saw and it needs a bit more work, but in principle it's really easy. Like all of the I know of methods already passed down the relevant ID mapping or the username space that is attached to the mount, and then it just needs to switch to the generic helpers that we have include Linux mount ID mapping. And we also, I have written like a 900 word, 900 word, a long document describing how ID mappings work. And as long for example as the file system uses iNode in it owner, then everything is already there. And it's really, essentially, if you look at the patches for X4 or XFS, they were fairly minimal. The only time it needs a bit of thinking is when your file system does anything directly with UIDs and GIDs, which not a lot of file systems do. XFS did it, for example, in a few quota allocation paths, but other than that it should be fairly simple. And I'm obviously always willing to help out with this if people have a use case for this and think this is something that they want to support. I mean definitely an NFS and SMB, I mean these come up all the time, right? Is that people are running containers all the time over NFS or SMB. I think KS. What I'm thinking at a very high level is that for whether you're talking about AFS or whether you're talking about any of these, most of these don't use UIDs. The ownership is expressed as a globally unique number. So in the iNode they have a globally unique number. And what's needed is a way to translate that globally unique number to a specific UID that's different for each container. So for network file system things get a bit, I looked at, even before this was merged, I looked at networking file systems because I was like, oh this is probably going to be complicated because what if I have CIFS, which doesn't really, what role do UIDs and GIDs play in CIFS when it interacts with the server and so on. And network file system in this sense can be a bit tricky. For example what CEPFS does, if I remember this correctly, it always sends the FSUID of the caller with any request that it makes to a CEPFS server. And this FSUID is more or less in the server only used when you have access restrictions on the server and you for example say, if someone sends me this UID and it doesn't match the UID that I set on the server, then they are not allowed to interact with any files or create any files on disk. And so when you have an ID map mount and you go through a client which uses an ID map mount, you always need to make sure that you send the ID mapped FSUID to the server or do you need to at least figure out what you want to send to the server. It's like things like that that can get complicated. I think for NFS and AFS and SMB it's much simpler than that because on the wire they have a globally unique number, there's no issue like this. So the only trick is that when a UID comes in, let's say on create or whatever, and they have to map that. Yeah, Chuck. I was wondering, do you have to remount if you want to change the mapping without unmounting the files? No, we implemented it in such a way that DID mapping can't be changed once it is established. You can't do a remount and then attach, for example, another username space because it would have been horrible, it would have been rather complicated to do this nicely in the VFS because then you get into lifetime issues. You need to guarantee that everyone who wants to operate on the ID map mount that the relevant object, the struct username space doesn't go away behind your back and that's all kinds of complicated. So the way this is done right now is you create a new detached mount with Open Tree Clone which is the... I showed this on the slides, I think, a new system call in the new mount API which gets you a detached mount, meaning it's not visible anywhere in the file system. Then you can change the ID mapping and then you attach it to the file system. And as soon as you change to the ID mapping or you have the mount attached to the file system, you cannot change anything anymore. Okay, a second possibly related question is how does the scale and the number of mappings permount? For example, if you've got a multi-user system with a thousand users on it that you want to have a unique mapping for every one of them. So I did... There's two ways to understand this. Either it's a question about the number of mounts or it's a question about the number of mappings permount. Okay, so I originally, username spaces only supported up to five individual mappings. You see you saw that come on, you saw that line up here where it's 65534 colon 1000, colon 1 and originally you could only have five. Back in 2015 or in 2016 I don't know, I changed the username space to allow up to 340 individual mappings. And that's sort of the limit. This has cache line issues actually. This is in a hot path and the way for example one of the advantages of attaching a username space to the idmap mount instead of for example calling override crats in the VFS is that you don't get any DOS issues and you can work under RCU nicely and so on. So that's rather simple. If you are in a hot path with these if every time you call for example FSUID GID has mapping which the VFS for example does every time a file is supposed to be created it checks can this UID and GID be represented by the file system? Is there a sensible value assigned to this? So it calls it a lot and a bunch of additional checks and every time it looks into the attached mapping of the username space and checks is this UID and GID mapped and so that's a hot path and the way this works is if you have up to five mappings then it's a simple array and if you have more than five mappings up to 340 individual mappings then you have forward and a reverse pointer that point to an array that sorts either by the first UID 55534 or by the second UID starting by the second UID 1000 and then you can really efficiently binary search obviously you can use binary search to guarantee that this performs really well but it's destruct is I optimize destruct such that it's really cache line aligned and so increasing the number of mappings will be difficult yes Thank you about performance if you look in a user SPIN there's three or four ID mapper utilities there different file systems have their own up calls for ID mapping and presumably all of those have to be changed to fix this all the ones that are in user SPIN have to do something to take advantage of this but right now there's three or four of them what I'm wondering about is calling up calling up NFS ID maps SIFS ID map RPC ID map all the different ID map ones that are already in user SPIN is that going to be slow all days or a better way to make them faster I think aren't those mapping between names and numbers yeah so between Browner and 37 not between 37 on this mountain that's a different totally that's the thing the UID and GID mapping that NFS uses I'm not an NFS expert so please correct me if I'm wrong that's that's concerned with mapping UIDs to user names by calling out this is more slightly this is a separate issue this is how do we deal with network file system foreign identities on your system yeah I mean like if I have a container and UID 37 is you know I don't know Christian that's something rather and then I go in another container and it's UID 96 I mean you're doing to NFS ID map calls right you're seeing user at something and you're looking up his ID map and then you're doing the reverse so in one container you're looking to see what the username was and then the other container then you have to look at the ID for that username that you just queried in the other one that's after going through the Christian's mapping layer or before you're going to look at it so you'll talk about the raw ID from the medium effectively well the medium he's translating the medium to the application and back again but he's going to represent that ID differently but at some level they have to look up the right but when you the network file system see it again you're seeing the raw number not what's presented to the user well yeah you're seeing a mapable number in a namespace they're different namespace but that's a separate part of the problem and isn't covered by Christians we need to deal with that too at some point but that's not harder I believe your ID map a programs map the KUID so effectively it's constant and then this will do the UID mapping on top but to to devices medium may have the same UID superplugging a USB stick with an HD3 file system on it it may have ID 37 you go look at an AFS you may see ID 37 but these are different ID 37s so yeah I think this is a slightly different topic but I think if we've exhausted this one and I know we're almost out of time what is there any thinking about wanting to support project IDs I know some container systems use project IDs for their own use but if you want to do nested containers yada yada I think we definitely need to revisit this issue I think this is we've basically dodged this issue for years and didn't really bother with it because nobody could be bothered to have clear semantics when I looked at the project IDs paths when I did the original work I was confused on a lot of levels because it's usually for example you interact with the username space that the file system was mounted in but in all of the or most of the project ID paths the inner user NS is used and so it's a very schizophrenic situation where it's not very clear what the intended semantics are and the main problem that I want to tackle going forward in the future is we need to provide better documentation what's going on with UID and GID handling with quotas and come up with with better semantics for a few other things in the GFS layer but it's definitely on my to-do list because people want to do this and we get requests for this all of the time. So the only question I had is project ID more than XFS now because when I last looked it was only XFS EXD4 also supports project IDs and I think there was some question that Derek and I were puzzling over whether we did it the same way in the presence of namespaces and how project IDs were mapped in namespaces. The intent is to unify it but I confess I'm confused what the semantics should be so As far as I understood quota can mean a lot of different things for different file systems. Having worked with this parts in user space also a bit not just in the kernel it's very difficult for example if you set up a container root you want to say I want the container to only have this and this much quota then butterFS will require a very different setup than XFS or X4 and it's really hard for user space to actually get this right. I just want to point out before we let Amir do his thing Jan says on the chat that the VFS quotas like the normal stuff seems to be missing the ID map handling so it looks like it doesn't do any of this conversion for like qget quota but anyway let's move this to hallway track and Amir you're up