Welcome to ML Talks. And for those of you who are watching on the stream, and actually for anybody here as well, you can ask questions or make comments on Twitter with the hashtag MLTalks. And we're going to be trying a new question comment app. Go to the website slido.com. And it will ask you for a code number, which is hash or pound N734. And this will let you send messages to someone here who will project the messages onto the display. But today's guest is Cecilia Conrad. And we work together. I'm on the board of the MacArthur Foundation. And a lot of people ask me, how do I get the fellowship? Or am I ever going to get the fellowship? Or why didn't I get a fellowship? I deserve a fellowship. And everybody asks me all these questions. And then also, some people have this sort of mistaken idea that it's a super secret thing. And so I'm always answering questions about the MacArthur Fellows. And so I decided the best thing to do was to have Cecilia come and explain. And that's sort of shrouded in mystery the MacArthur Fellowship program. So Cecilia runs the program at the MacArthur Foundation. And she's been there running it for the last, I think, five years. And she's one of my favorite people of the MacArthur Foundation. So I'm very happy to have Cecilia Conrad. Well, hello, and thank you for having me. I want to start just a moment. I'm working on the assumption that most of you who are here are familiar with the MacArthur Fellows program. Is that an accurate assumption? Sort of. So the MacArthur Foundation each year identifies 20 to 25 exceptionally creative individuals and gives them a fellowship, five-year fellowship, 125,000 a year, no strings attached. There's no reporting. You can do with the money whatever you want to do. The fellowship is unusual because you can't apply for it. And ideally, you don't even know that we're looking at you. Just one day, someone, that's me, calls you up, begins the conversation with, this is Cecilia Conrad from the MacArthur Foundation. Are you someplace you can have a confidential conversation? That will be your clue. Now, I wanted to give you just an overview of the program and this video. I am a visual artist. I'm a historian. My work helps farm workers protect their fundamental human rights in the fields. I'm a playwright, computer scientist. I'm an artist working in photography and video. I'm a mathematician. I study undocumented migration from a variety of perspectives. I'm a musician, songwriter. I am a journalist. A social justice organizer. Theater artist. I bring communities together to be a source for health, wellness, and healing in the inner city. Fiction writer and cultural critic. A landscape architect. I try to learn how to see the world. I'm a psychologist. A historian of East Africa. Designer and urban planner. Computer scientist. Opera director and producer. I am an improviser, composer. Immunologist. I am a writer. So what you'll see from that video is that we look for creativity in every space. We try to have the program reflect the depth and breadth of American creativity. So each year, the class, we like to think of the class as a bouquet. We'll have a breadth of fields represented from the arts to the sciences to people engaged in public issue work. And then we'll also have a breadth of individuals, people who were born outside of the US, people who were born inside of the US. And later on, I'll give you some more statistics about the program overall. But before I continue, I want to just give you a little bit of story of how I got what I truly believe is the coolest job in the world. Years ago, about six, seven years ago, no, maybe about 10 years ago, time flies, I was sitting at my desk at Pomona College minding my own business when the telephone rang. And the person at the other end said, hi, this is Dan Sokoloff from the MacArthur Foundation. My heart skipped a beat. Now I will confess, it only skipped a tiny beat because I just really never thought of myself as in the running for MacArthur Fellowship, but one never stops hoping.  But what he did do was he offered me an opportunity to participate in this selection process, to join the secret selection committee. And I'm only allowed to tell you this because of my current job that I was on that secret selection committee. And it was the most amazing experience I've ever had. It was as if I had gone back to college where I had to take courses in many, many different subjects ranging from literature to physics, except I didn't have to take any exams. But I would spend the day reading and listening to opera or doing some kind of reading about trying to learn about quantum physics or things like that. And so at the end of my term on the committee, before I left, I turned to Dan and I said to him, one day I want your job and I want your apartment. He has this really great Chicago apartment right on the lake. Could not get him to give me the apartment. But when he was retiring, I heard about the opportunity and decided it was time to make this shift from academia into the MacArthur Foundation. So it's been this amazing experience and the program itself is really iconic in the US. It still remains unique. We did a review of the program in 2012. And what we found about it is that the review was kind of interesting because it really looked at three different groups. First, it looked at the fellows themselves and asked them what their experience of the fellowship had been. Not surprisingly, they all really like the money. They all say, oh, the money's great. But we also heard that it allowed them to increase their opportunity for creativity and it also allowed them to take some risk. And we've seen lots of different ways in which the fellows have actually put the money to work. Some fellows have set it aside in a pot because they anticipated that one day they were wanting to do some research that NIH or NSF or any of the traditional funders wouldn't be willing to fund. Other fellows, particularly in the arts, have used it to cut back on the sort of freeway warrior jobs, the writing from place to place to teach a creative writing course here or creative writing course there in order to allow them more time to practice their art. There are fellows who have taken the money and given it away themselves, either by creating scholarship funds, fellowship funds, sometimes in their own fields, sometimes in places further away as one fellow who set up a program to provide sepaticals for family caregivers. So we've seen a variety of uses to which they have put them of funds, including paying off student loans and childcare. The second audience was what we called influentials. Influentials were defined as people who were in fields where we traditionally give the fellowships, who've been in positions where they were likely to have come across fellows in the past. And we asked them, what do you think of when you think of a MacArthur fellow? And this word cloud on the bottom of the screen here gives you a sense of the answers that we got with creative being the word that stands out, the largest, and then innovative, really close to that. Now when we think about creativity, we have a specific definition. We see creativity as the ability to create something new, the ability to connect the seemingly unconnected in unexpected ways, the ability to kind of connect across disciplines. In fact, one of the things we've observed is that many of our fellows come from interdisciplinary backgrounds. Someone may have been an English major in college who took a neuroscience course her senior year to fulfill a distribution requirement, fell in love with it, and that became the career that the person pursued. We found dancers who've become scientists and scientists who've become authors and fiction writers. So that interdisciplinary aspect is one of the things we've observed. And then the last group, and this is one that really kind of excited me when I first heard this. And that is we had this group called the Engaged Public. And the Engaged Public was defined as people who read a newspaper every day and who intended to vote in the next presidential election. So it's kind of a fairly loose phrase for the Engaged Public. What we found is over half of the Engaged Public were knowledgeable about the fellows program. And they reported, 10% reported, that hearing about the fellows program made them think about their own work and how they could do more to contribute to society. And 10% reported that the fellows program made them willing to take more risk to advance their own creativity. So that inspirational part of the program, we can add to the general idea behind it, which is to enable highly creative people to do more in the future. So what I promised to do was to unroll back a curtain a bit and tell you about the selection process. And as Joey noted earlier, people always think, oh, you're so secret. It's a black box. Nobody knows how they pick the fellows. In fact, if you go to our website, it's all there how we pick the fellows. We just don't give any names. We're transparent and secret at the same time, if that's possible. So the selection process begins with nominations. Each month we ask between 100 and 200 new people to submit nominations for the fellows program. We try to reach a broad swath of the population. We try to identify people who exist at what we think of as the nodes of networks where they're in a position to be able to spot what's new and exciting and developing across all of the fields that we look at. The nominations come into my office and our staff of roughly 10 people engages in triage. Every nomination gets read by at least two of us and we don't do some research about that individual. Now this is something about the program that has changed over time because in the early days of the program we didn't have Google, we didn't have all of the online sorts of facilities. And so the program actually used to have paid scouts whose job it was to go out and search out these people and identify them. But now, thanks to the fact that almost everything you wanna know about people, including their China pattern when they got married is online, we can do a lot of that search from our desk. We then identify the nominations that seem most promising for immediate development. The nominations that we don't immediately develop kinda stay alive in a holding bin. One of the things that is noteworthy about the fellows program is that a nomination never dies. We are constantly on the lookout. Once someone has been nominated, we kinda always have a little bit of peripheral vision to try and keep an eye on what that person is doing. So at the moment, we have a database of roughly 20,000 names of people who've been nominated that are constantly possibly gonna come up for the fellowship in one year. Once we've decided to develop a file, we then go out and look for external reviewers. We have two forms of external review. One is that we go out and we find people in their field or in their adjacent field and ask them to write a letter about them. The other is that we read their papers, we sneak in to see their concerts, we go to the plays, we go to the shows. This is why it's the coolest job in the world. I got to go to Hamilton when Hamilton first opened and I got to call it work. One of my favorite stories though about trying to sneak into things is that not long after I came to the foundation, we were looking at Kyle Abraham, who is a MacArthur fellow, I believe, from 2013 class. And I went to see his troupe perform, his choreography, at a really off the beaten track theater in Washington, D.C. And I thought to myself, okay, no one will know who I am, this won't be a problem, I walk in the door, somebody hands me a program and says, what are you doing here, Professor Conrad? It was one of my former students. So we don't always get to be a secret. I understand that my predecessor apparently used to wear wigs. I don't know if that's true. I would love to have seen a picture, but I haven't tried that yet, although I do still have a collection of wigs from high school. I went through the Angela Davis face. Okay, then once we've gotten the evaluation process, we actually, we do an extensive outreach for evaluation. Once, by the time someone's gotten the fellowship, they have roughly on median of 40 external letters of review. So this is like super charged tenure file. And probably the most amazing thing about this is that when I make that phone call to a MacArthur fellow and tell them that they've gotten the fellowship, it is rare, less than 1% of the cases had, did they have any idea we were looking at them. This is after we've talked to 40 different people about them overall. It's kind of amazing. We develop the file and then we take it to that secret selection committee. The secret selection committee looks at the files twice. They do a first round cut and then they finally make recommendations. And at every stage of the process, we continue to engage in due diligence to learn more about the fellow overall. And the selection committee then makes a recommendation to our board and it's the board who approves the selection of each class of fellows. So just to give you a little bit of the spice of each one of them, the nominators, we get nominators either by doing our own research, keeping track of who serves on different committees and so on. We also get that we ask for recommendations for nominators. You cannot self-nominate. You also can't really nominate your brother, your sister, your mother, your daughter-in-law. I'm just naming the ones we've gotten. My favorite one was a letter that I read and when I got to the end, the person said, I might be biased because she's the mother of my children. Not an acceptable nomination overall by itself. We get those monthly requests, as I said, we send out for about 200 of them and it yields about 1,500 people nominated each year because they're duplicates. Some people are nominated multiple times. Our evaluators, we do kind of a combination of first of all, looking at people who we know might be in the immediate orbit in a very close to the field of the nominee. We also look at people who are in adjacent fields to the nominee. We look at people who are sort of thought leaders in the general discipline. And so we kind of start out and work our way closer in as we start to develop the file overall. Some people will, if they've gotten any requests for an evaluation, will write back and say, well, I can't write an evaluation for this person because, and they'll name some relationship which might disqualify you for writing a letter for a tenure review process or even perhaps doing a proposal review for one of the federal agencies. But for our program, because we're collecting such a wide spectrum of reviews, people can be fairly close and still participate in the process. We just use that information about proximity as we look at what the content of the letter is. And the secret selection committee is an interdisciplinary committee drawn from multiple sectors. I've given you just a sense of the distribution as it is graphic, but we have people who are academics, we have people who are not academics, people involved in the nonprofit sector, people involved in the for-profit sector. We try to get a mix of people on the committee. They have staggered terms and they have staggered terms because what we have found is that if the committee stays together too long, they start to see the world the same way. And you start to have, and this is particularly true in looking in the arts field, you start to get a group aesthetic that is reflected in every class. So we have found that by shifting the selection committee by shaking it up periodically, the average term is somewhere between three and five years. We can bring fresh ideas, fresh perspectives and different ways of looking at the world. So I wanted to talk about four things about the program and then I'm gonna give you some numbers and then open this up for anything you've wanted to know about the program overall. The first is no strings attached. I mentioned that at the outset. There's no reporting required. The history of this is kind of interesting. The Fellows Program is actually one of the oldest programs at the MacArthur Foundation. MacArthur Foundation just celebrated, it's celebrating its 40th anniversary this year. The Fellows Program is 36 years old. And there's a lot of lore behind the history of the program. But what I've been able to piece together are the following two things. A convergence of ideas between two sides of the original board of the foundation that rarely found convergence. On the one hand, there was a physician in Houston, Texas. His name was Birch. And he had written a paper called In Defense of Venture Research. And the paper argued that there should be some space for research funding to support mainly people in the sciences who were doing research that didn't immediately have an application either in medicine or engineering or energy or some industrial application. And he had given this paper to one of the board members to read who thought this was an inspiring idea. On the other side, we had the son of the MacArthur. So MacArthur's when they set up the MacArthur Foundation gave no instructions about how the money should be spent. So the foundation has actually been able to define what its priorities are gonna be on its own. But their son had wanted to be a writer and had been frustrated by the fact that as a writer he didn't necessarily have a means to support himself because his parents apparently weren't that interested in him being a writer. And that there should be some space for artists to be able to have a source of support to pursue their creativity. So the meeting of those two minds came together to create the MacArthur Fellowship. And the idea being that no strings attached, you're not beholden to the market, you're not beholden to your teaching responsibilities, there's an opportunity to do something risky or new. And we've adhered to that pretty strenuously. Early in the program, we used to have that phone call, Dan would call you up and he'd say, and this is the only phone call you'll ever get from us. And then we would send a package in the mail for them to fill out their forms in order to have their checks mailed and we may never have talked to them again. That was the way the program, we took that no strings as no strings. We are a little more engaging now, partly because in this 2012 review, we found that the Fellows were interested in having more engagement with the Foundation and more engagement with each other. And we also found that calling someone up and telling them, you're a MacArthur Fellow and we're gonna start sending you checks and then not giving them any forewarning about what was about to happen to their lives was a little cruel. So now we call up and we say, you may wanna talk to us again in a day or so, here's the number you can call back. It's always entertaining though because sometimes first of all, in modern day situations, people don't answer the phone, right? So we have to engage in all kinds of trickery. Sometimes it's just harassment. I just keep dialing the number over and over again. And if you have your, sometimes you can get your cell phone number. If you start seeing a number over and over again on your cell phone, eventually you pick up because you're just curious. And then when you pick up, you're really annoyed. And I just love that. All right, we also follow people on Twitter. One of our Fellows who tweets everything about his life shared that he had just landed in LA and he was on his way to Unami Burger. So we called him and asked how the burger was. And with that, before I even said who I was, and he proceeded to tell me about the burger, like you don't know who I am, wait a second. So range of things here. All right, secrecy. As I said, we're pretty transparent about what the process is. I've pretty much just laid it out here for you. But we're secret about the participants in the process. Nominators are asked never to reveal that they were nominators. Evaluators are asked never to reveal that they wrote an evaluation. The selection committee's identity, besides me, and one early selector who likes to tell people at cocktail parties, I can't stop him, is a secret. And why do we do that? Well, first of all, we think it encourages frank evaluations from our evaluators. It protects our selection committee and our nominators from being lobbied. And then it also gives our selection committee some freedom to take some risk.  So go ahead. Occasionally pick someone that people might say that's a crazy idea and see what happens. The fellowship program is sometimes known as the genius grant. How many of you have heard that phrase to describe the program? Now, we have never used that to describe the program. Early in the days of the program, when it was first started, there a New York Times article labeled it the genius grants. Now, I will admit it's kind of a love-hate relationship. People know genius grants, so I will use it when I'm out talking and people don't know what the project is. But there are many reasons why we've avoided that label genius. First of all, people tend to associate genius with a really narrow definition of kind of academic powers or even the ability to test well on a particular test. And we think creativity means so much more than that. Among our MacArthur fellows is a nurse practitioner who is developed a midwifery program and has done a lot to reduce the infant mortality rate in Washington, D.C. Among our fellows is someone who makes paper using restoring kind of historical techniques with make paper making. It's a range of kinds of things that don't neatly fit under this notion of genius as doing well on a particular test. Genius is also in some ways, it's said too narrow, sometimes it's too broad, a kind of concept. Sometimes I just jokingly note, genius can be evil. Creativity is all about producing something of value and worth that advances human society. One of our fellows, Yuval Sharam, he's, I think he's class of 2017, yes. Yuval Sharam is an opera producer who's maybe best known for having produced an opera in LA that took place in limousines. Limousines, come on. But he just wrote a piece that's in the Los Angeles Review of Books and I recommend it for those who are interested, who talks about how genius can also kind of be a paralyzing label. We have found that when we talk to nominators, if they think that we're looking for genius, they can't come up with names. If we think that they're looking for creativity, they start to have ideas about who might fit that. And that connects to the last point here and that is that one of our criteria is that we're looking for exceptionally creative individuals where the fellowship might enable them to do more. I sometimes think of this as we're looking at people, if you think about their kind of creativity as a parabola, we want them right before they get to the top of that parabola, on the precipice. So it may be that we haven't universally acclaimed them as genius because what the work that may get them labeled as genius is yet to come and the fellowship gives them to space to do that. That's what we're looking for. It's not a Nobel, it's not a Lifetime Achievement Award. We're looking for people on their way up. Now that said, I will admit that sometimes the speed at which they move outpaces us. I mentioned Hamilton earlier. When we started looking at Lin-Manuel Miranda, Hamilton was not the event it's become, the phenomenon it's become. When we started looking at Tana Hesse Coates, his book that made him the big name wasn't supposed to be published until October. We announced in September we were ready to look really smart. Then the publisher moved the publication date up till July and there we were. So sometimes one can argue we've reached people maybe past, well hopefully they still have peaks to come off into the future. But that's what we're looking for. So before I turn to open to questions, I just wanted to give you some numbers about the program to give you a sense of it. The first is when the fellows program, probably the first 10, 15 years of the fellows program, the fellows were clearly fellows. If you look on this left hand, I've done the ratio, the solid line is one to one men to women and you'll see for the first years of the program it was an overwhelmingly male set of fellows. This, an article came out in the newspaper that kind of reported on this data and it's, I'm an economist by training so I know that data gets attention. And that got the program's attention and what we found is that by being much more conscientious about opening up the nominator process that you naturally end up with a more diverse group of fellows. And so now the fellows classes have been roughly half and half as you can see when we move towards the future, if you average it out over time. On the right hand side is the age distribution. When we invite nominators to nominate and we've tried wording this lots of different ways. First we said please consider people under 40. Nominators would write back and say we were being agist. So we stopped saying under 40. We said please consider people early in their careers. What I really wanna do is to draw the parabola and show the like, I want people here in their process. You'll see that in general the fellows have been in their 40s as the modal group followed by the 30 to 39 which is somewhat encouraging. The oldest fellow was 86 at the time of the fellowship and the youngest was 19. So everyone here can take heart. And then the other aspect of the fellows program, we spent some time really trying to look at the geography of fellows. And what I have mapped here is the geography at the time of the award. And it's probably not a surprising picture but it's one we're always trying to push against. And that is that there is a concentration of fellows on the East Coast, New York and Massachusetts in particular and on the West Coast in California and that there particularly once you get to some of the Midwest there are states with zero fellows ever having been located there. We've been making an effort to get out and talk about the fellows program in geographies that are underrepresented. I went out and spent some time at the University of Nebraska, gave a talk, met lots of people, invited people to nominate and came back and then we announced the class of fellows and the headline in the Lincoln newspaper was, director visits still no fellows in Nebraska. So every year I keep, I'm gonna get that Nebraska fellow overall. We also looked at where people were born and what we found is that that is much more geographically dispersed and that fellows tend to be highly mobile. This corresponds to what we've seen about other aspects of the population that they're born one place and then they tend to move to the coast. We've even seen that with the program where fellows for a while there, there was a real streak if there was a fellow who was based at Northwestern University when we announced within a year he was at Stanford. So with that, I wanna open it up to answer any questions about things you wanna know about the fellows program. Okay, I'm gonna start with my own and then we'll start integrating other people's questions. And actually, you said that I would know if I was asking a question that I wasn't supposed, that you weren't supposed to answer but I realized some of the questions have information in them. Oh, the question itself is the problem? Well, this one, I'll ask it in a way that doesn't reveal the content but how do we, I know, but can we talk about how we decide on how much money we give? So this is something that has changed over the history of the program. In the early days, there were different amounts depending on how old you were. The amount of the fellowship got bigger, the older you were. And my predecessor, I think, was the one who argued for let's give a uniform payment and it was set at 100,000 over the five-year period. I'm sorry, 100,000 a year, so 500,000 over the five-year period. When I arrived, I had seen from the review that there was some notion it was time to review the fellowship and since part of the motivation was to provide an opportunity for people to escape responsibilities for teaching, particularly those in the arts, I spent a lot of time looking at average salaries at selective institutions at the associate professor level and that's a kind of metric I'm kind of watching, a benchmark. And so we will be reviewing that amount once every five years or so. It's not as much money if you're in the sciences except what's attractive in the sciences are two things. One is that there are no strings attached and the other, and scientists have said this to us, it's really special to get a fellowship that you share with people in the arts. And so there's a kind of special credibility and mystique that's associated with it they enjoy.  But it's kind of then baselined against bleep you money for associate professors, right? Basically be able to say, I'm gonna go do my own thing for five years, I don't need your stinking money. That's what it's based on. Very few people actually do that, but they could. Actually some of the questions on here may be better than some. I have one last one and then we'll go to the board. You mentioned that a lot of people are online, but a lot of people aren't. And some of the fellows that I know we've given awards to are almost intentionally not very online types. I mean, you still, but how do you make sure that we don't get biased towards people who are good at social media? Oh, okay. Well, we don't just look up the articles that you've written in scholar Google and so on. We also try to really, we try to work our networks. There's a lot of this that's networking and snowballing, kind of snowball interviewing. I'll give an example. We had a fellow a couple of years ago who has a nonprofit in New York that makes adaptable equipment for children with disabilities out of cardboard, which has the advantage of being something that is cheap to redo as the child gets bigger. And it's a very customized kind of product. So for that case, it was really hard to create the case without seeing the cardboard and seeing all these things happen. And I'm going to cry and maybe dance along the line of propriety here by telling the story. But I just kept connecting with people until I found someone who worked in one of the schools and actually did a video. And that is what helped us to be able to understand exactly the nature of this creative activity. And so sometimes it's getting on the ground in areas and just listening and being spying. Yes, it's spying. But in a way that they probably would be happy that you did. Yes, yeah. So I don't know exactly what this first question is, but I haven't... Have you ever regretted it? Yeah, I guess it's regretted that you appointed a fellow. Yeah. I haven't. It's kind of an interesting thing because sometimes we're asked to talk about what is the impact of the fellowship. And I guess there's several pieces that are difficult. One is that I talked earlier about wanting to take some risk. And I sometimes worry when I look at fellows that maybe we haven't taken enough risk because if you're really pushing yourself to take some risk, there should be some that don't really pan out. What we found is that they're fellows who take the fellowship in lots of different ways. Some come on and continue to do what they've been doing. They continue to work in the space that they've been working in. And so on. Some take the fellowship as a mandate to become much more of a public intellectual, to be engaged in policy debates or to become much more active in education, in public education, and so on. So we have a former surgeon general of the U.S. who was a MacArthur Fellow, the head of the World Bank who was a MacArthur Fellow. So we have that kind of category. And then some just start completely new directions of work as a result of it. I could label any one of those as a success or a failure, per se. Right. But it is... I guess you wouldn't regret it, but if you're getting them once they become famous. Again, I have to be careful. But one of the conversations that we often have is about are they already too well known? Right? So that's the thing is... I mean, not to give anybody any specific advice, but you should tap your brakes at that, right? No, it's already too late. Just before September. But I think that's the interesting thing is that I think it's okay to say this, but I've seen people on your list that become too famous before you've made the decision. I think that in an interesting way the quickly ascending stars are the harder ones to catch because you've got to get those 30 or 40 interviews before they make it through the window showing up as a nomination and so my colleagues who complain about not having gotten to MacArthur they just were ascending too fast. I've had to do that. I could pose the question the other way are there people I've regretted that we didn't, fellow? And there are. I've had conversations where I know that we missed our opportunity. Because they were on your list already? Yes. Because that's the thing that I try to say, and it may or may not be true. It's not like we're trying to get every creative person that ever comes out.  And we're not trying to, oh shoot, here are the five creative people that we missed in this decade, right? Yeah, right. And it's not like we're trying to get every creative person that ever comes out. We're just trying to, like you said, in this decade, right? Yeah, right. I mean one of the challenges with having that bouquet is that different fields are at any one time more creative than others. I mean we see that sometimes. And so whenever we announce the class, so we're not going to necessarily go deep into every field, and whenever we announce the class there's inevitably some field that's not in the class that year, and I know I'm going to get a letter. Jazz people watch us constantly. There's no jazz. And also that's because of the number of awards in certain categories, right? The MacArthur is one of the few that you can win for certain categories compared to, say, the sciences where you have the Fields Medal and the Turning Prize and stuff like that. That's right, that's right. It's certainly, I think, in the arts it is probably one of the more, considered one of the more prestigious prizes. Yeah. Oh, the box. Do we have, are we able to get, or should I just repeat back? Yeah. So the question is international, why are we just American? Yeah, that's right. This one of the eligibility requirements is that you are either a U.S. citizen or U.S. based. And we actually spent some time reviewing that requirement recently and decided to keep it that we are not sure we could do as good a job globally with this kind of wide open process that we have of making sure that we weren't just tapping into the same kind of elite networks within certain countries or societies. Two, is that we actually think there's a bit of, there's something, there is something peculiarly American about the notion of honoring individual creativity and so it's a question of how you would think about translating that in other contexts. What I found is that it's part of this review I spent some time talking to people in different parts of the world and I would describe the fellowship program and they would go, yes, we should have something like that but then they would say but only with the requirement that they can't leave the country only with the requirement that they do this only with the requirement that they do that. So it turns out it was a different fellowship it wasn't the MacArthur fellowship so with that in mind we haven't ruled it out forever we will periodically re-review that decision I think there's also a little bit about the bouquet and the class and the attention that it generates that we thought might be weakened if we tried to cover too many places at once. And I do think it's interesting that you're trying to but we are suffering from people in the middle of America and I think we were this next year's the 15th anniversary of the first Apollo mission and what's interesting about the NASA program was I think there was a lot of intention to build centers of science in middle of America and I think that was actually even today you think of a lot of NASA people with this kind of Southern drawl and I think figuring out maybe coordinating around this on how to engage and I guess people end up in the coasts but it is kind of what do you have I mean you talked about a little bit do you have anything else the nominators seem to change a lot the diversity is that the thing it hasn't worked for geography and I think there's several things at play here I think one is that we have to work on getting the nominators to understand that we're not necessarily looking for the same kind of people that were in the class we announced the last time and this is one of the patterns that happens people are invited to nominate and they go look at last year's class and they nominate people just like them which then tends to replicate the so that's one of the tasks we have been trying to get out more to different parts of the country to encourage people to participate in the nominating process and also we've started to think about to look for nominations in fields that may have stronger representation like crop science in the middle of the country so we're trying different techniques to see this is an ongoing kind of we don't have this right yet and that connects to this question about are there any specific fields or industries you'd like to see more fellows come out of ah ah yes so I mentioned some of the area in agriculture that I'm particularly interested in I think we in the sciences we tend to be weaker on some of what I think of as more the applied science kinds of areas there's exciting work happening we had had a long drought without architecture but we had a landscaped architect last year so we were excited about that sometimes when we have spaces that we feel that are going on and we're not kind of tapping into it we will actually convene panels to give us advice on who the nominators should be and how we reach into that we've done that in the past in children's literature which resulted in some nominations I've been a little bit happy recently in terms of our music getting more diverse before it was jazz and classical we had Rihanna Giddens this year not quite sure how you classify her but she's you know did fiddle music she's now working on an opera thanks to the fellowship so there are spaces we are interested in the fields of people as I said every time we announce and we're missing fields I usually get a long list of things that we've missed recently haven't had a philosopher in a while that's interesting and so this question says where can somebody look into the previous fellow projects that resulted from the foundation those are all on the website right yeah well the fellows don't have projects this is no strings attached and fellows don't have to tell us anything at the end of their checks many of them will write letters and we also keep each fellow has a page and we kind of keep track of what they're doing on the page so you can see news articles about them a recent fellow whose work has kind of gotten some news has been engaged with the foundation even beyond the fellowship is Jennifer Eberhardt who is a social psychologist based out of Stanford who you may have heard the news stories about the work she did with police interactions in citizens and how polite they were depending on the race and ethnicity of the citizen this was actually a collaboration with an older MacArthur fellow Daniel Jarofsky who was a linguistics professor there and that's a kind of example of a project that both the foundation through some of its other work helped to fund but also involved two fellows who probably met each other in part because of the fellowship and then this one also is it's hard what would you consider over qualified for fellowship if you've already gotten the Nobel prize you're not going to be getting one of my phone calls there are some other ones that we are I think make it seem less likely so there's no bright line there's not a bright line I think the Nobel is probably a bright line how about the Fields Medal the Fields Medal is not we've had fellows who were at least in the running but I think we remember talking about are they out or not it starts to tip the scale there some of these very large prizes in the sciences right now like the breakthroughs okay too bad Ed yeah but it sort of depends one of the things we ask ourselves about these other fellowships is to what extent do they constrain what the person can do do we think that the direction they're heading could be changed if they had unfettered support as opposed to support like for example for a while we were not so sure about the HHMI which is mainly for biomedical research but for some people that actually constrains their research and their research might have applications outside of biomedical and so we really started asking those questions of of all the fellowships so there's another question which is have you noticed that the selection pool of committee's criteria has changed over your tenure and is the fellowship influenced by the zeitgeist yes I think it is influenced by the zeitgeist and hence the argument for continuing to shake up the committee a bit one of the things that that I also think matters on the selection committee is getting not only a diversity of fields but also some life experiences different parts of the country getting that mixed up too and and bringing in and over time I've seen this the program has changed as to how much you have people from outside of the academic sector from the private sector from other things so yes the committees do get a certain zeitgeist that goes in the challenges to make sure that we keep that fresh so this is from Xiaoxiao an alum how and where do you look for people in fields that don't yet have a name which is probably a lot of people here at the media lab yeah well we're always trying to find people we think are at these kind of new spaces doing something we can't quite categorize and ask them to nominate now one of the challenges probably the biggest challenge in people doing things that don't have a name yet is in finding the people who can evaluate them in a credible way and sometimes that requires us to do some work educating the committee the I like in it to when I was a dean and I used to have to build a tenure file for somebody in a brand new field and all of the possible evaluators were actually junior to them in the field and usually tenure cases require that you have people senior to you in the field and so you have to kind of engage in some education work there that this person is blazing a path that lots of younger people are following and so that's what makes it exciting and I guess you sort of answered this but people with a proven track record of impressive work or people with obvious potential but not so much output but let me add a little twist to that so so on your hyper your parabola again what's the earliest that you end up because you said you gave it to a 19 year old so how much actual output had that 19 year old had versus how much it was just confidence on this potential what was that? Not a lot but what they had done was really incredibly impressive which was deciphering some ancient Mayan hieroglyphs that nobody else had done but we also had a very young person who had been a high school dropout had gone back, gotten their GED got involved in a program to try and help teenage mothers kind of get their education back back on track was barely not a teenager herself but she had to go to a leadership program and really transform the initiative and so again somebody who had done a lot in a very short period of time so it's a mix sometimes people have got quite a bit there some it's only one or two things that are really exciting You basically want proof that there's a trajectory but evidence that they're not done and there's two questions that are related so other than the money what does a fellowship provide to increase the impact of their work which is tied to the other one which is do you feel that providing fellows with funding actually inhibits their impact because a lot of great activity comes from adversary and I heard a rumor that Murray Gellman who was I think involved at some point in some level suggested that we do a control experiment by measuring the output of the people we didn't give the award to and I think we decided that was a bad idea because it would be hard to measure but still the question is the fellows have had great output but like you said they suddenly get surrounded and we know this whole thing about child prodigies having difficulty because they can't take the risk and the fellowship does give you freedom because of the money but it also gives you this burden of now you're a MacArthur fellow say something smart right? So let's see in terms of beyond the money as I mentioned in some fields you know much but what we've heard is it gives you credibility fellows report getting doors opened either to advance their research or sometimes to apply for new funding opportunity thanks to having been named a fellow so in that getting a voice one of the stories is Mark Edwards who was disobedience right last year he told the story of he had done some work early on about lead in water in Washington DC and he had a really hard time getting any attention to the problem at all getting any action on it but he was called in early in the case of Flint, Michigan and he said just the fact that it said Mark Edwards MacArthur fellow got us publicity and allowed us to actually catch the problem earlier maybe not earlier enough but earlier than we might have in some other circumstance so there's a way in which there's credibility that's provided to it we also periodically try to bring the fellows because sometimes some exciting things happen when people meet cross fields because one of the things that's unusual about the award is that you can meet across disciplines and there have been some collaborations that have started to emerge out of that in terms of the issue of adversity there are fellows tell us that there can be a moment of feeling a little frozen particularly with the genius label that it can be a burden some people say that the fact that it's no strings actually is the biggest burden they've ever felt about getting a fellowship because they feel like they really have to do something important and contribute to society I haven't heard anyone who said and we would allow them to do this please keep the money because you know I need adversities to succeed no one said that yet that is interesting but I think even though just because the name does provide that sort of gravitas I could imagine for some people that they might you know I could imagine some people might have a harder time because you have the responsibility of being a MacArthur fellow but I guess it's hard to measure that it's hard, it's hard and people have talked to us about encountering some jealousy in their fields at least I've heard two fellows say they thought it was harder for their papers to get published they've said that but then they've concluded it was still better to get it that makes sense does the selection committee lobby for favorite candidates? no well let me phrase it this way because if I interpret the question as they have their favorite student or person they know or something like that no people do fall in love with candidates in the process but it is a community it's a consensus building it's being in a seminar where there's lots of give and take and conversation and people ask tough, hard questions but the other thing about the program is even the staff we each take files to develop to bring to the committee and we bring about double the number of files as there will be fellowships and we know going in that half of our files at least are not going to get through and yet whenever we leave the committee meeting we're really sad so it's hard not to fall in love with these incredible people is it okay to say that I get to see the list sometime? yes and it is sad even for us we're not very involved in the process to see people and root for them but then you look at all the people who win it and it makes you feel good sometimes come back as I said because nominations never die do you have you ever been unable to reach somebody on the phone I mean I'm unable to reach people in the media lab on the phone sometimes there have been some really so there's a historical case before people had cell phones I've heard this is true that there was a fellow who was sitting at a cafe in Italy and saw in the international Harold Tribune that they had been named a fellow I'm not sure they would let me name the person a fellow now without having told them ahead of time technically they could say no but I guess back then you end up in a Jesse Bob Dylan situation I've had to engage in some real trickery I've invented conferences that I wanted people to attend we've set up appointments for fake graduate students we have my most recent and the fellow who was most persistent so this was a fellow who's based in Chicago and I tried to call him call him call him he would not answer the phone I sent him text message and he said well can't we just text each other no no I really need to talk to you in person it's really really important that I talk to you in person and so finally he said well I really don't like talking on the phone so I said well why don't we meet for coffee and so I got him I came up with a whole story that I needed to consult with him on another fellow nomination and I really needed his advice on it so he met me but he decided to meet at this restaurant that had communal tables so I thought okay I'm not going to be able to say it to him so I made a folder and I made the folder look like it was a file for a candidate and I put the front page of the folder said congratulations and then the second page said you are my garther fellow so we sat down I said here's the file I want your opinion on and I passed it over to him and he opened it and he looked at it and then he closed it and looked at me like that was fun I wish I could do that more frequently and actually that's one of my favorite things about being on the board is I get to am I allowed to say this too I get to listen in oh yes yes yes so it calls on a speakerphone and a number of us get to sit around and they're first of all it's wonderful but some of the things that you have to go through to get them on the phone is also and then the people who don't believe you and hang up oh yeah yeah people and you also hear people googling and they'll hang up and say I've got to call you back and you know they're trying to check the number there are people you ask are you someplace you can have a confidential conversation and they say yes and then you proceed to tell them please this lunch table I met with a bunch of people so that I can really talk so you weren't really someplace you could have a confidential conversation were you we've got people on freeways and I've asked them to pull off take the next exit and find a safe place to stop my predecessor called a fellow that we knew had a new baby and asked her if she was holding it and suggested she put it down and then he told her the news thank you for making me put the baby down and then the hard part is they have to keep it secret yes or a number of months they have to keep it secret for several weeks not months wouldn't last months and they can tell one person they're allowed to tell one person and usually recommend it to their spouse if they have one right well sometimes they ask you know do you think it should be my spouse and I suggested yes that might be a good idea sometimes it's their mother it's you know one fellow told his newborn twins I told him he could tell the two of them that's great and the convening of the fellows that happened since you got back right because Don was really kind of against well what happened here's what happened so what happened was we used to have as part of the fellowship there used to be a biannual reunion of fellows and all of the fellows and their families were invited to come together and these were amazing events I've heard people tell stories of it but you can just do the math right you know we've been naming fellows since 1981 roughly 20 to 25 each class and so these events were completely just too big you couldn't really manage them anymore so we started having smaller gatherings of fellows that were more curated and they tried different forms of curation sometimes they got fellows in the same like all the jazz musicians together or all the writers together sometimes they did them other ways we decided when I came because I had heard so much from past fellows that they missed these big reunions to experiment with a larger event so we periodically have what we call a forum where we invite all the fellows to attend just everyone who was ever a fellow we don't invite the families but I had done some analysis of the previous events and realized that I could kind of do it like airlines do and you know invite everybody with the expectation that only a certain percentage were going to show up and that's worked well we've done that we did it a few years ago we're about to have another one this fall so we have first come first serve and a cap on the number and that makes the event manageable and it's a really amazing kind of experience to see people from these different fields start to talk to each other and to realize how much humility there is in the room one fellow tells the story and this is not she's not the only one I've heard this over and over again they feel when they get to that event they're a little intimidated because every fellow believes that they were a mistake and so this fellow reported that she spent the entire morning of the first day in the ladies restroom hiding from the other fellows until another fellow came in intending to do the same thing and then they start talking and then they came back out and joined the group well Suley we're out of time so thank you very much but I'll say to the audience one last thing in case you get mobbed they can mob you for another reason because you're also in charge of the hundred million dollar hundred and change project at MacArthur foundation and we'll talk about that at some later time but she's she is in charge of the two I think probably most well known program I have the coolest job just quickly the hundred million dollar the foundation is gave out a 100 million dollar grant to a single project in December and we plan to do it again in three years was an open call tell us what a hundred million dollars can do and we had an external panel of judges who reviewed and helped the foundation narrow the pool down and then the board announced in December a 100 million dollar grant to sesame workshop in the international rescue committee for an early childhood intervention in the Syrian refugee region and then because they like the finalist so much they gave thank you very much they gave three 15 million dollar grants to the three other finalist one is rice university it's an engineering project in to help newborns survive in Malawi and other parts of Africa harvest plus which is a bio fortified food project and Catholic release services Lumos and Maestro which is a project to end orphanages actually we have a few minutes I remember I'm going to say one other thing because I was on the board when we were talking about this and it was my idea although somebody else was getting credit for it the other day it was my idea that we because the thing is we did this presentation where all of them came and we brought a lot of other funders together and it's really hard to find a project that can actually consume 100 million dollars and the process of getting them from an idea to a group that could actually do that even though they hated it through the process it was a lot of work to kind of get them organized and when we got them to their finalist stage I would have been happy giving 100 million to any of them the finalists I thought they were all great and in fact a lot of other foundations and donors wanted to give money to all of the finalists which was this other thing is that it became kind of like a we became a vetting process for potential projects which I think is a thing and then what I wanted to do was wait and try to get funding for all of them and give our 100 million to the one that didn't get funded but then it wouldn't be a prize anymore was the argument so I get that. Yeah we were also they were they were at such a they had been such a long process. That's true who's getting tired right. They were so anxious they were so tired and believe me when we told them they were getting 15 million one of them said you don't get a 15 million call every day so they were pretty happy we've actually we got some success I can't I can't name names but I'm anticipating some good news by the end of the year. Because even the semi-finalist told me that they were all having a glow effect it's kind of like being an Oscar nominee and so I think that the 100 and change is kind of like the MacArthur Fellows program in that I think it's a process to try to vet things obviously the MacArthur Fellows program has been around longer so you kind of have that mostly figured out but I think this 100 and change I think is a good way to try to look for projects that are also unique and you know worth attention the other the real distinction between them is whereas the MacArthur Fellows program we are secret about who's involved 100 and change as part of our transparency you can go online you can see the judges the 400 judges who participated in the evaluation project there's also a solutions bank where the every proposal at least a synopsis of it is available for anyone you can search it they're tagged by sustainable development goals 1904 proposals that we got from around the world so and it's really inspiring to read them so if you get a little sad from reading the newspaper go to solutions bank 100 and change thank you


As students return to campus, we want everyone to remember these safety tips. Number one, make sure you download the Eagle Eye app for campus safety updates. Number two, walk in pairs or groups. Don't walk alone, especially at night. Number three, pay attention to your surroundings when on campus. Take out your headphones when crossing the street. Number four, make sure you know where the Marquette University Police Department is located at 749 North 16th Street. For more safety tips, visit marquetteu.com slash safety tips. See you all soon!


All right, good morning, everyone. Thanks for coming back. So hopefully this camera angle's a bit better. I tried. So that's better than looking up at my face. Some light housekeeping, so I organized the discord a little bit. So in the welcome channel, you should be able to click whatever section you're on to see that specific channel so you're not spammed with everyone. This section is actually good. And so I put a pull up in the general channel when what day you want my office hours. And if you can react to that one, just whichever day you want, it seems like Thursday is the preferred one for this section. So, and then after class, if anyone can make a consensus on a time or I can put another pull up on discord for a time, but otherwise it looks like there'll be an office hours for this section on Thursday. All right, so throughout all my lectures, I'll be posting some examples and I'll just make it publicly available on GitHub so you can just go ahead and clone it. And then if you want, you can follow around with me while I'm doing the lectures, play with it after, ask questions. We'll probably break a few things during the lectures. So before we just kind of had a brief overview of what an operating system was and it's kind of fuzzy where you actually define where an operating system starts and it kind of depends on what applications you're running. The thing that is not fuzzy, however, is the kernel. So it's like a hardware specific thing. So on your CPU, no matter what architecture you have, they all have something like this unless it's an embedded processor, in which case they wouldn't even bother. But on kind of more general purpose CPUs, so anything on your phone, your laptop, server has something like this. So they have rings to control access and it allows you to use different instructions. So some instructions are privileged and you can only use them if they're in kernel mode. So for now we can ignore kind of the middle of the circle, the hypervisor, we'll get into that way later in the course. For now you only can consider two rings, the kernel and supervisor ring, which on x86 is called ring zero and the user ring, which is called ring three on x86, on ARM and more sensibly designed architectures. It's just called user mode and kernel mode generally. So each ring can access instructions in any of its outer rings. So the least privileged ring here is the user mode ring that can access all the instructions that you compile and actually run in your programs. And then the more privileged instructions are in the kernel ring, that only the kernel can access, which interacts directly with the hardware. And of course the kernel can use any of the user mode instructions, because the kernel is just like a program like any other program. So you can think of it as this very fine defining line. So there is a user space and a kernel space. So as of right now, everybody has been in user space even if you haven't explicitly known that. So if you compile and run your program, it's running in user space, you kind of interact with the kernel, but you didn't directly interact with the kernel. And today we're gonna directly interact with the kernel. So in order to go between user space and kernel space, you can do that by essentially using something called a system call, which you can kind of think of as just a regular function and we'll see kind of what the differences are. So, and the only way to transition between user space and kernel space is through these system calls. As of the time of the lecture, so yesterday there's 451 of them and that is it. So your program can only call into kernel space and tell it to do 451 different things or access 451 different functions. So throughout this course, this is kind of where we'll be living kind of at this border. So we'll be understanding all the system calls and kind of seeing how we actually use them and how they've been hidden from you so far. And then kind of what goes on in kernel space without hacking around on it cause it gets a little bit dangerous and kind of annoying. So they behave just like regular functions, right? But they just all run in kernel mode. So we'll look at two important ones today that you've been using all the time. We'll look at write. So write takes three arguments here and it just looks like a normal C function here. So the first argument is a file descriptor and it's, you can see it's an int, it's just a number. It's just, and like we kind of saw yesterday, you might not even know what it represents. It's just a number you read bytes to or write bytes from or sorry, read bytes from or write bytes to. In this case, since the function call is called write, that would be how we can write bytes to it. So the second argument is a pointer, right? We all love pointers. This is why you're, if you don't understand pointers, you're going to need to. So it just takes a pointer to void, which is just C's way of saying, I don't care what the type is. It's just a byte of some type. So it's a pointer to some bytes. And then the third argument is a count for how many bytes to write. So all the kernel will do is whatever that pointer starts at, it will write that many bytes to that file descriptor, and then it will return how many bytes it actually writes, because it's not guaranteed that it writes all the bytes. So if you tell it to write, I don't know, 8,000 bytes, it might, the kernel might decide, okay, well I'll only write 4,000 of them at a time, and then you kind of have to adjust. Yep. Are they different? Are they different? Yeah, so the question is, is there different sizes for SS size and size T? So SS size T is just signed, so it can be negative. Yeah, so we'll kind of see this interface. If it's negative, it means there's an error. So that's kind of why there's a difference there. And the second instruction is, sorry, the second function is called exit group, and we'll see why it's called exit group instead of exit much later in the course, because there is a difference that you would not know yet. But it just takes one argument, a status, which is just a number, and all that does is then exit the program, which is a little bit different than how you've been programming. So far, right, if we're programming in C, how do we return some code back to the terminal? Yeah. Return the terminal. Yeah, we return from our main, right? So we don't type exit or call exit directly. In C, it's a little bit different. You return that error code, but now, if this is our interface to the kernel and we know everything has to pass through that interface, C is doing some nice things for us and eventually taking whatever main return and then calling exit when it's done. So that's one of the things C is doing for you. All right, so I kind of left you off on this 168 byte program running on ARM64. ARM64, so if we go ahead and execute that, we'll see, we should see that, you know, hello world. So we should see what we saw yesterday. It just prints out hello world, right? So let's see how that relates to those two kind of, those two system calls. Oh, actually even before that, let's talk about the magic of file formats. So what that, you know, 168 bytes is, it's an entire file and every kind of file behaves like this. The only thing that makes up a file is just some magic at the beginning and they literally call it magic. So the way you tell what a file is is you read the first four bytes of it. So in the case of executables, which are, you know, the format's called the ELF format. If you read the first four bytes of a file and it starts with 7F, which is like an ASCII exit code. So it kind of prevents you from reading it as a plain text file. And then it's followed by the ASCII characters ELF, all in capitals. And then that's the only way that your operating system knows what a file is, right? So it just reads the first four bytes. If it matches this, then it's executable and it will interpret it as such. And if it can't interpret it, then, you know, it just throws an error. And this is the same thing for like literally any other file. If you have a JPEG file, right? That's an image, it'll do something similar to this. I even think it starts with that same error code and just says JPEG instead, right? So the rest of what follows that doesn't really matter for the purposes of this course. I'll show you how to see that if you really want to. But that's just how pretty much every single thing on your computer works, right? There's just some magic number people make up and then you interpret it for a given format. So the ELF is a defined format and you can read the specifications if you're really, really bored. But if you want to look at your executable, so this applies to anything running on Linux, Mac OS has its own executable format called Mocko and Windows of course has a different executable format. So on Linux or any other kind of, I think FreeBSD uses it like your PlayStation would use it. You can use this command called read ELF to get all the information for that file. So if we go here, you know, to see this is a, oh sorry, can everyone see that in the back or do I need to make it bigger? No? All right, big enough? All right. So if I run read ELF on that small executable, it actually interprets it, right? So it says this is the beginning of the file, so that's our magic ELF header. So it interprets the rest of it as a executable. So some of the information contained in it, it'll tell you what operating system it's meant to run on, what architecture it's meant to run on, what it is, it's an executable file. So this is the same file format for libraries as well, so that's why there's a difference. And then it gives you a bit more information. The only one we really care about is like the entry point address. So this is kind of that layer of indirection. So in the file format, it tells you where to essentially start your program counter to start executing this program. And then this program header, we'll see later, it basically just says, hey, Colonel, load this entire file into memory, starting at address, was that 10,000, I'll say. Sorry, yeah, so an ELF file will contain a header file, and then either program headers that are for executables or section headers for libraries. You don't really need to know this stuff, this is just kind of for completeness. So how we defined our minimal executable, it just contains a single program header, and it says, hey, Colonel, load this entire program, this 168 bytes into memory, and you specify what address. So I just picked 10,000 because it makes things a bit more clear when we do some pointer arithmetic. So if you go and you dive into the file format, the header is 64 bytes and a program header is 56 bytes. So the total size of your file we can account for so far is add them together is 120 bytes. So most of the space of that executable is wasted just kind of with this header information that just instructs the Colonel what it is and what to do with it. So the actual meat of this executable is kind of the 36 bytes that are the instructions, the assembly code of something you were familiar with from other courses, and then at the end of the file is the 12 bytes that actually represents the string hello world. So if we kind of convert decimal to hex, we can see that if we take 120 bytes, that's seven, seven, eight in hex. So that's if we load their entire program into memory starting at address 10,000, the instructions would start at this address, right? And when we looked at the read-elf, we saw that that was our entry point. So we start executing at the beginning of our instructions. And then later at the end of our instructions, so if we add 120 to the size of our instructions, which is 36, we'd be at 156 and in hex, that is 9C. So the string would start at address 10,009C, right? And that would be, yeah, so we have 120 from the header, so from the header and then the program header. So that total is 120, and then the instructions take up 36. So now we're at 156, and then the string takes up 12 bytes. So the header, there's only one and there has to be one. It just describes the rest of the file. So what architecture does this run on? So on and so forth. Program headers, there can be multiple of them. For this one, there's only one and it just says, hey, load the whole entire thing into memory and it's executable code. So if you go into it and see other ones, you'll see a bunch of program headers in your file. There'll probably be space for read-only variables, read-write variables, code you're supposed to execute. For this, we just say we can execute and read everything. So that accounts for all of our 168 bytes. And now we get introduced to this wonderful utility, which you'll be making heavy use of throughout this course. It is called Strace and it actually tells you exactly what system calls your executable makes. So no matter if you write it in Python, JavaScript, C, Rust, doesn't matter because everything has to interact with the kernel through the system call layer and this tells you all the system calls you make. This will tell you exactly what any program's doing no matter what. So if we go ahead and use that to execute our file, so instead of read-elf, let's execute it using Strace, it will tell us exactly what system calls get made. So for now we can ignore this call, we'll be using it, we'll see what it does in the next lecture. But we can see here it performs a write call to one, which is remember from our function description, one is just a number that represents a file descriptor. This is, as of right now, this is just more magic that we'll kind of see later as well. And then it nicely, right, this is supposed to be a pointer but it will format it as a string if it can interpret it as a string. So it shows the string hello world and then we're supposed to write 12 bytes. And here there's a bit of interference because this is the actual output of the program. So it says hello world and then does a new line and then this is the rest of Strace, which remember it returns how many bytes actually it writes. So it means it wrote all 12 bytes, which is good. And then we call this exit group with the argument zero and then the curl tells us it exited with zero. So if we look at that, our program, we know from just looking at our program it makes two system calls, write hello world, which goes magically to our terminal and then this exit group call. Sorry? Oh, at the end of exit group? So exit group doesn't return. Yeah, so it just returns a question mark because exit group just, your program's done at that point so it doesn't return anything, the kernel just kills it. So that's why there's a question mark there. They really didn't need the equal sign there but I guess they wanted equal signs for every call. So quick, oh yep. Yeah, it does the same thing. So the only difference is whatever number you put in there by convention, you can read the number back and then by convention, zero means there's no errors and then if it's anything other than zero it means there's an error. So this is the same thing if you return one from main in C, right? It would eventually call this. If you've been learning kind of proper conventions it would just be like one means an error, zero means no errors. All right, so a quick aside about API and a BI which you might not have heard of before. An API is kind of what you're used to, it just kind of describes and abstracts away all the details. So for instance, an example of an API is just hey, a function takes two integer arguments. It doesn't say anything specific about the architecture where you're supposed to put the arguments, how you're supposed to lay them out or any details. It just says, hey, this is something called a function, it takes two integer arguments. On ABI is very, very explicit and it's tied to the architecture. So it will say how to lay out that data and how to concretely communicate. So for instance, you could say that same function with the C calling convention. So the C calling convention will place the arguments on the stack. So that same function that takes two arguments that would say, hey, to call this function, you have to put the first argument at this position in the stack and then the second argument either goes on top of it or below it in the stack and then you can make the function call, right? Have you done kind of setting up function calls in the other course? No, you wrote some assembly, right? Yeah, you did function calls? Yeah, how do you pass arguments? Just registers? Okay, so that's good you're used to that cause that's what we'll be seeing in here but C doesn't pass arguments with registers, it uses the stack. So going back to kind of your experience using registers that actually is how the system call or how you do a system call. So kind of this is the ABI which describes exactly what variables should be and what registers and how you actually make the call. So you enter the kernel with this SVC instruction on ARM and that is a way for you to interrupt the kernel so in user mode it's the only interrupt you can raise. So you're allowed to raise this interrupt in user mode and then the kernel is the one that handles it and that's how you make a system call. So you say, hey, kernel, I have stuff for you, please do this system call for me. So in order for the kernel to actually do the system call it needs the arguments in registers which is kind of what you're used to. So the ABI describes exactly what to do with the registers. So the X8 register, that's where the system call number goes. So if you want a write system call, it's a certain number. If you want a read system call or an exit group system call, it's another number. And then all the arguments follow in registers. So it's just X0, X1, X2, da, da, da, da, da and so on.  Yep. Yeah, if I have seven arguments, I'm now screwed. But you can go around it with pointers, right? You add another layer of indirection to solve all your problems. So you could do that, but it's still annoying. And they're also fixed sized. So every register on this architecture would be 64 bits. Or sorry, it's 64 bits. So if you want something smaller, that's too bad. You're using registers, they are a fixed size. And then right in that other course, you cared about which registers were callee, save, caller, save, all that. For now, we don't have to care about that. So if we plug the 36 bytes into a disassembler, we can see it just does this. So it just populates those registers. So if you look kind of at the documentation for it, right, X8 is where the system call number goes. If you want to make a right system call on this architecture, you put in the number 64. So we put in 64 to X8. And then we do the rest of the arguments. So when we saw the right system call, the first argument was the file descriptor, it was one. So we populate X0 with one. And then next is X1 has the location of the pointer. And remember, the string starts at 10,000 and then 9C. So because this is ARM, we have to kind of play around with it. So we move 9C into the lower byte. And then we do a move K, which keeps the result there. So this would set X1 to 10,000, 9C, which is exactly where our string is. Yep. So move K, so move by itself was zero out all the other bits. And then move K will keep all the current bits there. So if I do a move, it sets 9C and zeroes all the rest. And then a move K will essentially add this to this in that register. So that's the way we have to get 10,000, 9C. Then the final argument is how many bytes to write. 2C is equal to 12, and that's the length of our string. And then this is how we make the system call here. So we just do an SVC call. It doesn't actually use the number, so we can just put in zero. Then we would get returned from the kernel, right? We don't, it actually returns that value of how many bytes it writes somewhere. But in this case, we just ignore it. We don't care at this point. And then we just kind of do our exit system call. So it's number 94, and we are putting the value zero into it, and then we just do another system call. And that's the exit group system call, and then our program's done. Yep. Sorry? So 2C is in hex. So if you do hex to decimal, it's equal to 12. Oh, 2C. It should just be C, sorry. C. Okay, need to fix that. Thank you. Good catch. Okay, so in the file format, right? The remaining 12 bytes are the hello world string itself. So we can see if we ask encoder, that's kind of what it looks like. If you really want to kind of do low level programming, a low level ASCII tip is you can always see if the character is upper or lower case by looking at byte bit five. So the values will differ by 32. So that's an easy way to convert upper case to lower case. So you can kind of see how they designed it. So now we account for every single byte in our program. So let's go ahead and see what C does. So this is where the fun begins, where we see exactly what C does. So I'll go ahead and make. And in here, right? We just create our hello world executable. It looks like it does the same thing, right? So if I want to see exactly what it does, what command should I use? S trace, right? So, whoops. If I run S trace on it, we can see. So it should pretty much do the same thing as my little executable, right? So it does a lot more. So people saying C has no overhead. Yeah, it's not real. It's low overhead, but it's not none. So let's go ahead and see what it's actually doing.  So we can see that this is truly the only way into the kernel and this is how you write out hello world, right? You need a write system call and then an exit group to actually finish the program. So if you do this with whatever, you'll get the same thing. So if I wrote hello world in Python, ran S trace of it, I can guarantee you the last two things are going to be this.  And JavaScript is probably going to be a lot, a lot more. But at the end of the day, right? This is our interface into the kernel. You have to use this. There's no getting away from this. And it's a nice tool to use if you're debugging, right? Knowing this in offering systems, you can debug anything because you have S trace and you know what's going on. So let's start at the top to try and decipher this. Hopefully we'll be learning more at the end of the course. This is an Nmap system call. You can see it kind of doing some preload stuff here. Who knows what that's doing? It's looking at some cache. Again, who knows what that's doing? Nmap, then we can see something interesting here. Hey, this kind of looks like the C standard library. So it's opening the C standard library, right? It has to do something with that. The C standard library just doesn't magically appear and start being used. You have to actually load it. So here is it opening the C standard library. It reads and we can see that the C standard library is an L file like anything else. So when we open it, it gets file descriptor three. That's kind of the return code. And then it's reading file descriptor three. And then this is showing you what it actually reads. So we can see here, that's a weird octal notation. Don't ask me why they use octal, but that's the same exit code here. And then it starts with ELF. So it's an L file. So it's no different than our executable, except it has a lot more stuff. Then it does some more stuff with it that we don't really know. It does this Nmap, which we also don't know yet. Seems to be doing a bunch of stuff and then it closes it. So it does some stuff with the C standard library. It does some more stuff. It's protecting some memory who cares. Still doing some stuff.  Probably not.  No? Okay, but we all know what the heap is, right? Okay, so this instruction is actually how you get where your heap is from the operating system. So BRK, don't ask me why it's named that. If you say null, it says where the top of your heap is. So this is the address of a top of our heap, which if you're C and you're managing the heap, you need to know where it is. And then this is how we actually allocate memory for the kernel and make our heap bigger. So this says, hey, make my heap bigger by 1,000. And these calls are actually made by malloc.  So malloc is a nice abstraction because it prevents you from doing this because it just gets a whole block of memory and then luckily for you, someone wrote malloc that manages the heap for you. But otherwise, you have to manage it yourself. So that's all kind of heap operations. And then we saw hello world with our two system calls. Yeah, so this is just for completeness. This is just our hello world in C. It's in lecture two in the examples directory if you want to play with it. But basically all the beginning of it, again, finding the standard library, loading the standard library, and then sets up the heap and then prints out our message, right? And it ends with the exact same system calls we made. We just kind of cut out the middle man, which is C. So you can think of the kernel as just a long running process. It's like any other program you would write. The only thing that's special about it is it runs in kernel mode, right? If you were to write your own kernel code, it's a bit different than what you're used to because the kernel, if you're adding code to the kernel, it's essentially already running. So you have to like inject code into it somehow. So far you've just been writing main, right? And then your execution starts at main and goes from and then goes until it returns and that's it. In the kernel, if you want to insert your own code, there's no main because essentially the kernel is already running. So you can, if you write your own kernel code, you can write something called a module and it has a explicit start function that you can say where it should start and then a function that says where it should end when it's unloaded and then the kernel gets to manage all that fun stuff from you. But thankfully you don't have to write a kernel module so this kind of thing here is just kind of for interest just in case you ever happen to write it. So where are the fuzzy definition of operating system? Well, the concrete kind of the only thing that you can say as a fact is the kernel is part of the operating system because it is the only thing that runs in this kernel space and that's reserved specifically for the operating system. So it gets a bit worse in that the amount of stuff that runs in kernel mode differs depending on who you talk to and what the architecture of the kernel is. So the kind of simplest design is something called a monolithic kernel where you put anything that's kind of related to the operating system inside the kernel into kernel space. So the kernel has to manage virtual memory, it has to manage process scheduling, has to manage inter-process communication so how to processes talk to each other, has to have file systems and device drivers and they all run in kernel mode. Kind of the disadvantage of this is if anything breaks in kernel mode, right? We all written a program that has a segfault.  So the more code you have in here, one belief is the worse it gets because if it crashes, your whole system goes down. So maybe you don't want the device drivers running in kernel mode if you can help it. So kind of the opposite, oh, yep. Inter-process communication. So that's just how two things essentially talk to each other which we'll get into more definitions of IPC later in the course. But yeah, the flip side of that is hey, if one option is put as much crap in the kernel mode as you can, the opposite would be hey, let's keep kernel, the kernel as light as possible and have essentially nothing in it except all the stuff that is absolutely necessary. So things that are absolutely necessary in kernel space is virtual memory that's like a protected CPU thing that only the kernel can manage in kernel mode and then process scheduling, right? You need something that manages what essentially what programs are running at what time and that has to be in kernel mode because it has to have higher privilege than the rest of them so it can just interrupt them and take the CPU away from them. And then you have to have some basic inter-process communication in kernel space. But you can move other stuff into user space so you can move like file systems up in there so they don't run in that kernel mode. You can move device drivers or kind of more advanced IPC which we'll see way later in the course but you can think of things like, more like networking stuff like that or kind of more exotic things. So there's, yep. Yeah, so Linux is a monolithic kernel so it just throws everything and it runs in kernel mode. Example of a kind of more micro kernel is something called Minix which actually runs on like the Intel, the operating system runs on Intel chips that are like doing all the security stuff. Micro kernels are basically for like small embedded things. So, and yeah, talking about other kernels, there's like, yep, Windows, okay, yeah, I'll talk. Windows is kind of a hybrid so there is kind of a middle ground so that's kind of between a monolithic and micro kernel. So Windows is kind of a hybrid kernel. It has some weird stuff in the kernel. For example, it has emulation stuff in the kernel which isn't even, it's like more monolithic than monolithic kernel. Windows at one time also had like a web server in kernel mode which was kind of weird but Windows is closer to monolithic kernel. On MacOS, it's closer to a micro kernel where device drivers run in user mode instead of kernel mode but the line kind of gets fuzzy of where you want to put stuff. Yeah, so it's basically, basically if something in kernel mode crashes the whole thing crashes. So if your file system crashes maybe you don't want the whole kernel to crash but just to make things easier, every time we go from user mode to kernel mode we have to do a system call, and system calls if you have to do a lot of them can be slow so you can imagine device drivers would have to make a lot of system calls if it's interacting with the hardware so it's a little bit slower to also kind of do this micro kernel thing while if everything runs in kernel mode you don't have to do that transition and everything's fast so that's kind of one other main reason why you would do that. So you can also, if you get into operating system research you can actually go more extreme so people believe micro kernels are too heavy so there's something called nano kernels and Pico kernels, right? That's research related that we won't really get into but if you're interested in operating system research that's kind of one direction you can take. So there's lots of different trade-offs you can take, the only thing that's iron cloud is there's a system call boundary. There's, if you have a micro kernel and that makes it slow you can kind of, there's techniques you can use to kind of speed it up you can batch a whole bunch of stuff so you don't make little calls all the time and other techniques you can use. All right, any questions on anything we've seen so far? Yep, so a kernel is just the code that runs in kernel space. So it's like a specific mode of your CPU so back here, right? There's different modes on your CPU that limit what instructions you can have access to. So kernel mode, the instructions here are typically that interact directly with hardware. Yeah, so that's a spoiler for much later in the course but essentially all your virtual machine stuff is running in that mode so fun fact, why it's negative one is because virtual machines didn't exist back when they first made this processor so they thought this was the most privileged mode so they called it ring zero and then virtual machines were kind of invented so they can't go lower than zero so they had to go negative. Yeah, so you'll notice that ring one and two are missing so remember the difference between micro kernels and monolithic kernels is some put the vice drivers inside and outside what they thought before is they made ring one and ring two only have some specific hardware for that so that you could write the vice drivers that ran in ring one and ring two instead of having to go all the way to kernel mode and maybe you would be a little bit safer. People thought four things were too complicated when two suffices so no one used ring one and two which is why they're kind of missing here so there was an attempt to try and make people write device drivers in a different CPU mode but no one used it so BIOS fits in so BIOS runs at the most privilege level as soon as you turn on your computer and then boot process goes in and then it passes it to the kernel so I don't even know in this course if we'll get into the boot process but the BIOS will run at the most privilege level and it's responsible for starting your operating system. It would be negative one if it's supported so whatever the highest level is on your CPU so in this case it would be hypervisor to communicate yes so at the very least you have to call exit on your program and that has to go through the system call layer. If you don't call exit and you just point out a random instruction your program's just going to seg fault and then the kernel handles it anyways so there's no getting away from the kernel the kernel is the thing that manages everything and it's the only one that runs in the CPU mode. All right any other questions? Yep. Sorry? Oh the heap so that's where you have dynamically sized memory on your machine so on some architectures right there's like a stack that grows up and then the heap that kind of grows down and that's where if you malloc memory it's allocated on the heap somewhere so that system call just kind of manages that heap so you can grow it and you can shrink it. Okay cool any other questions? So this kind of hopefully demystifies some of your other courses and kind of puts your assembly. Your assembly wasn't useless because you could make up this example if you wanted. All right so to kind of wrap up so the kernel is the thing that operates the kernel interfaces between the CPU mode boundaries which are ironclad and you can't really change so the kernel is going to run in kernel mode that's kind of the definition of it and then what runs in kernel mode depends on the architecture of your kernel but it has a few basic things it needs but no matter what there's gonna be a system call interface and that's the way to switch between user mode and kernel mode and that's the only way to switch between them right. Every single program no matter what has to use this interface. We saw kind of the file format to define a simple hello world program in 168 bytes and 120 of that was just a bunch of header files or sorry header information which was mostly zeros if you actually look into it. We saw the difference between an API and an ABI so API is just descriptive and an ABI is kind of what you saw in your architecture course where if you're making a function call you have to say what variables go and what registers and you have to be very explicit about how to make a function call and then we saw how to explore system calls so if you don't get anything else from this lecture get S trace so you can go ahead and have fun try running Python hello world, Java hello world see all the other system calls it makes you can compare that to C you'll probably see that even with Python it will probably load the C standard library so you'll be able to spot that too and then finally there's different kernel architectures just kind of shift how much code runs in kernel mode so with that I'll just stick around for some questions and remember I'm pulling for you we're all in this together.