Alright, it looks like things are leveling out in the attendees, looks like people are getting settled in. So, yeah, we will go ahead and get started. I am Cam Cooper. I'm a National Outreach Organizer with Represent Us, and I'm so glad you could join us. We have so many familiar faces. It's so nice. Well, not faces, but feeling really your names and it's nice to see everyone. In just a few minutes, we're going to bring on Ed Helms to talk about our new short film, Unbreaking America, Drowning in Student Debt. And then we'll dig into a deeper conversation about the For the People Act with Represent Us research analyst, Onlin Carney. But before we get started, we just have a few logistical items or housekeeping items to share with folks specifically in the Zoom chat. The Zoom call, mostly being the chat, we encourage everyone to use the chat box to communicate with us and with each other. Looks like everybody's into that. So that's working out great. We'll also be doing a Q&A at the end of the call. And so to share your questions with us, you can add them to the Q&A box rather than the chat box at the bottom of your screen. We'll get to as many of those as we can by the end of the call. We're also recording this call tonight and we will share this video with all of you afterwards. It's also being live streamed to a few social media sites. So yeah, with that, how many folks have seen the new Unbreaking America short film with Ed Helms? So many me's in the chat. Yes. So many folks have seen it. That's so great. Well, I'll post the video link in the chat for anyone who hasn't seen it so that you can check it out after this call. And now I'm going to pass the mic over to our host, Ellen Kearney, to discuss anti-corruption with our special guest star Ed Helms. Hi, thank you so much, Cam. Ed, thank you so much for being here. I want to start by just recognizing what an incredible supporter, there he is, hi. You've just been such an incredible supporter of Represent Us. You aren't just the star of our latest Unbreaking America short film, but you hosted our Unrig Summit. You were part of an event we hosted pre-election that brought together thousands of people and raised over $2 million that went directly towards saving the election. You are also on the Represent Us board. So that means you're technically my boss. So, boss, why anti-corruption and why Represent Us? First of all, you're doing a fantastic job. But I'm not going to give you that raise you asked for. No, I'm not. Sorry, what was the question again?  No, so why do you care about anti-corruption and what drew you to work with Represent Us? I don't know. So anti-corruption to me is just one of the most basic fundamental things that we can all agree on, or at least anyone who's intellectually honest and has decent intentions can agree that corruption is bad.  There are so many ways that our system is just built to foster corruption and reward corruption. And so I'm not a terribly smart guy. And so something like that is such, it's like low hanging fruit. I'm going for that. That's something I want to fix. I don't know. It's that simple. Wow. Yeah, I totally hear you on that and I bet a lot of our audience really agrees. Speaking of our last Unbreaking America Drowning in Student Debt video, why are you passionate about student loan debt specifically? Well, I'm just a big kind of education nerd in general. I care a lot about education, access to education and of course people being able to enjoy the fruits of education. And if you're drowning in debt, that's really hard. And it's also a really good prism through which to view corruption because the student debt crisis is the result of corruption. Right? It's, you know, the big lending institutions, banks, financial institutions, they give a lot of money to people in Congress and those people write policy that is very friendly to them. And in fact, when it comes to student loans in particular, the policy is just abhorrent and it is completely stacked against people taking out loans. I hear a lot of people, you know, I think the there's a common refrain among opponents to this stuff, which is like, well, you take out a loan, you just pay it. What's the big deal? Why is, you know, personal responsibility?  Why is that? Well, that would be a sound argument if student loans were fair and were handled in the same way that mortgages or car loans were handled. They're not. They're much more complex and they're built in a way that allows banking institutions to exploit the borrower. So it's a perfect feedback loop and a very obvious example of that feedback loop of corruption. And so I think it's a very helpful issue to focus on in addition to the humanity of it, which is just people suffering from debt and really having trouble getting their lives started. Wow. Yeah, I think that that's definitely why your video resonated so much with so many people and especially those who joined us today. So, you know, just with the prevalence of student loan debt, it really what you said it really does illustrate the issue of corruption. So what's so important about this moment specifically for the anti corruption movement. This is an incredible moment. There is a bill. The for the people act that is going to be before Congress very soon. It is. It's, it's kind of revolutionary. It's the it's the most strident anti corruption policy to be seriously considered since Watergate. And it's, I think we're, I think the moment this moment is so critical because we've just seen, we've just been through this.  Chances are you have either felt a lot of pain in the last few years or observed people close to you in pain and that could be financial pain. It could be medical pain. It could be, you know, mental health issues. There's so many ways that people are suffering right now. And that is awful. Obviously, it's also fuel for change. It's also an opportunity. And it's also something that opens the possibility of real change because I think there's a lot of anger that goes along with that and anger can be a very healthy emotion if it's, if it's channeled correctly, it should be channeled into getting the for the people act past because it's a it's a it's a bill that that basically forces Congress to be more responsible to their constituents and to be more transparent. It addresses gerrymandering, it addresses, you know, presidential powers, voter access, so many things and whatever issue you care most about, you know, for me, student deaths a big one I have a lot of issues that care a lot about chances are that issue you care a lot about is just hung up in Congress right now and not getting moving forward health care, incarceration, all kinds of stuff. There's not a lot of movement happening on these things as because of the cycle of corruption, the for the people act gets a lot. It gets things a lot better. It fixes a lot. And it's the it's so that's all to just say this is a very, very critical moment for anyone who cares about corruption. Wow. Wow, thank you so much for that man I wish people who said that Hollywood celebrities are disconnected could have heard that because it sounds like you really know exactly what's going on and yeah, this moment what's happening right now and what people care about. One last question for you. What's one thing you would ask people to do in this moment to help. There, there are two things. Well three things.  Spread the word, let your friends your family, your Facebook community anyone, anyone within shouting distance. Let them know about HR one the for the people act and how important it is and how critical it is. One thing is, and you're already doing it, jump on board with represent us and and let represent us help help you understand these things better and give you opportunities to help. Awesome, awesome. Wow, that was so informative. Thank you so much I really can't appreciate can't tell you how much I appreciate you being here.  And if you're ready to take action in support of the act you can go to represent us forward slash call dash Congress to call your representative after this call and again thank you so so much. Thanks so much and I just want to say to everyone on this call there I see there's there are a lot of people on board. Thanks for being here thanks for caring thanks for getting involved and keep keep up the good fight. Take care everybody. All right, you guys, that was, that was awesome that was so informative I feel like Ed covered so many of the topics, but I, I, I also created a presentation for you so I'm going to talk to you guys a little bit about what Ed's talking about before the people act okay. Um, so here we go. Let's talk about what's in the bill. So we're going to talk about the for the people act in the context of something you may know about if you've been with represent us for very long it's called the American Anti Corruption Act it's also known as the AACA. This is the legislation we've been advancing at represent us since our founding and we've passed this and various forms and cities and states around the country with bipartisan support. I think all of these reforms are somehow embodied in the for the people act, which is also known as the FTPA. It's unbelievably exciting that we now have the opportunity to pass these reforms at the federal level. So let me show you a little bit more about what this act looks like. These are as this is a side by side this shows you what the AACA does versus what the FTPA does and you see what's missing you see where more work is needed perhaps their future legislation, but you can also tell what a huge step forward this is right. This is a map of where the American Anti Corruption Act has been implemented. And this is what it would look like if the for the people act was implemented. That is just so exciting. Alright, so you might say yeah on Lynn this sounds great but I don't know anything about this policy how does it actually do all those things.  Bear with me lots of details, you came here for a policy talk so here we go. The first part, the for the people act increases election security and voter participation right how does it do that. It ensures access to early voting and voting by mail it provides automatic voter registration online and same day voter registration future voters age 16 and up can pre register to vote. It helps states coordinate checking their voter roles, and it restores voting rights and federal elections to the formerly incarcerated okay. The coven 19 pandemic demonstrated just how critical access to early voting and voting by mail really is. We saw a patchwork of emergency orders all over the country dealing with the pandemic election, dealing with voting in different ways and it caused confusion long lines that put voters at risk right. I know that you know here in Texas where I'm based we experienced that you know voting by mail was used in 29 states, five states including my home state required an excuse, and eight states required a witness, if you wanted to vote by mail okay. Now this act ensures that everyone can safely access their ballot, even in a pandemic with 14 days of early voting secure paper ballots and the option to vote from home. This mail option has the added security of allowing voters to track their mail ballot and confirm its receipt. Okay. Now I want to talk a little bit more about the voter registration stuff so we're going to go back to our slide okay. The voter registration piece is huge, because it removes so many barriers to access 40 states already use online voter registration 21 states and DC use same day voter registration automatic voter registration is already used in 16 states. We have this in my state and it's something I'm really excited about when you go to the government office such as a DMV you're automatically added to your state's voter roles. But the state forms still provide you an option to opt out right. And when you're at one of these places there's an added level of security here that people don't talk about, because valid state issued ID is always required. This is often the place you go to even obtain that idea ID. Additionally, the for the people act would ensure that those 16 year olds who are walking in for their driver's license get to pre registered about in case they don't show up again when they're 18 so this is a really really exciting reform. Another important provision here is the voter role verification. This isn't a really well understood concept and honestly you can have a totally different call on the issues of voter roles voter role purging discriminatory discriminatory tactics used by states to kick voters off of voter roles. So using a interstate registration center to cross check voter roles increases election security and prevents voters from bouncing between roles and slipping through the cracks if they were to move states. Now this last piece I'm really excited about this is the voting rights restoration. This is a huge step forward, but keep in mind it only applies to federal cases okay. Five states on their own have enacted their own voting rights restoration laws and there's an ever increasing bipartisan consensus that sees us as the right thing to do. The map you're seeing right now shows us the status of voting rights restoration laws across the 50 states for the formerly incarcerated. You can see that each state gets to decide this for themselves. And when that happens, voters in places like Florida are put in a position where they have to use the ballot initiative process to pass these reforms themselves. In Florida in 2018, we saw amendment for to restore voting rights for the formerly incarcerated it passed with bipartisan support by a whopping 65%. And this is our other board member Desmond me that I'm so honored to work for he championed this and it passed in a traditionally red state this was an incredible when, and it would bring this kind of when this kind of reform nationwide so that's why we're so excited about it. The voting rights activists view felony disenfranchisement as one of the last frontiers of the civil rights and voting rights movement, black and brown people are disproportionately affected by felony disenfranchisement, and the for the people act makes leaps and bounds of progress by giving a political voice back to those who have paid their debt to society. This is a truly non partisan issue right it's even overwhelmingly supported in traditionally red states like Florida. Speaking of traditionally red states, let's talk about gerrymandering. If you've been a supporter of rep are as NS for long, you know how huge this issue is test voters should pick their candidates, not the other way around. The for the people act takes a huge step forward on this it takes the redistricting power for congressional elections out of the hands of politicians, and it puts it in the hands of an independent redistricting commission. Doesn't stop there it lays out specific rules governing you know who can be a commissioner, how Commission actions take place what kind of criteria new maps need to be drawn by that's huge. And the most exciting part maybe is that it makes sure that citizens get input. Now we've just finished another census redistricting is happening right now state legislators get to determine the maps right now and they're already rigging the hand for themselves with very few guardrails that have been set in place by the Voting Rights Act the US Constitution and other Supreme Court actually decided that the question of partisan gerrymandering was, or whether it's unconstitutional that it's beyond their reach. So, this bill, I see it it really cuts through the jurisprudence and it makes the law absolutely clear as day says here on out partisan gerrymandering is illegal at the federal level. And for me to even be telling you that that's an option right now is so, so exciting. Let's look to my home state of Texas as an example. Why have maps like this with districts shaped like 33 in Dallas here on my right and 35 where I live in Austin, it shapes like that. Yeah, it goes from Austin to San Antonio that's crazy. Now these maps could, you know, look like this, look at those compact districts these lines make more sense and the people who live here will tell you they make more sense given the political realities okay so you know, I don't like to ever call out my own state but it's so needed because places like Texas they won't do this for themselves alright so this bill at least changes it at the federal level at least changes it for a federal congressional election so it's just one of another million reasons why I'm so so excited to be talking to you about this bill. Now another reason is the way this bill will strengthen ethics and financial conflict of interest laws for the President, Congress and the Supreme Court okay right now the last few years have seen tests like this to never like never before seen tests to the existing gaps and presidential disclosure requirements and conflict of interest issues. The President's appointees are also currently subject to a more strict set of ethics rules and the President themselves. Now before the people act would fix that by including raising those disclosure requirements applying them to the President and the President, which means that they would have to disclose financial entanglements and they'd be required to divest from potential conflicts of interest. One of the other provisions in this section is about having political appointees of the President recuse themselves on issues related to the President's financial interests. Now this removes the appearance of impropriety because the same way we can't trust lawmakers to honestly regulate themselves, we shouldn't trust those appointed to power to regulate those who can remove them. And, you know the past couple years President Trump's continued ownership and control of businesses that have contracts with the government and the White House is there the White House's interference in the Mueller investigation these are just recent examples that raise the sort of prospect the awareness right of presidents using their authority to exert pressure on their political appointees for personal gain so if those political appointees are required to recuse themselves. So that takes an incentive away that shouldn't really be there in the first place. Lastly, the taxes, the taxes, we should not rely on public pressure and goodwill for this. We shouldn't rely on the New York Times to leak this. It needs to be required from here on out we need to avoid some of the problems that we've seen in the past. Oh, I don't know how that got in there. Maybe I do. So one of the other provisions I'm really excited about this bill shines a light on dark money and rains in super packs and it closes the lobbyist loophole because since citizens united dark money has been allowed to pervade at the federal level because many groups aren't required to reveal the true source of their contributions. So the big advancement here is forcing dark money groups to open their books and give us a better view of what super packs are up to. So this is really exciting by expanding the list of activities that Dima super PAC coordinated with the campaign, you bring more of these groups and their activities out of secret. And instead of them getting to be this secret big money arm of a political campaign, they have to disclose things like this okay so this is really exciting a lot of things get lost in this in this gap so this really this is a really really needed reform that I'm excited about. So one of the other things this will do is will dramatically decrease politicians dependence on special interests and lobbyist money. This is huge and the for the people act accomplished this in two different ways. So again, these aren't the first is this small dollar donation matching program and the second is a pilot program for democracy vouchers. I totally understand if those words don't mean a lot to you right now so bear with me they aren't widely understood and there's I've got some good details here for you if you care about it okay. So for the first the small dollar donation matching program candidates to be required candidates for Congress and Federal Congress. They'd be required to raise $50,000 from individuals to demonstrate their viability, and then the candidate could be eligible to have donations under $200 matched fund by public funds and this is paid for not out of citizen tax revenue, but by a 2.75% surcharge on certain criminal fines from corporate defendants and their executive officers okay. This creates more responsive policymaking and it frees up time for politicians from fundraising and they are sure. So they they pay they're paid by the work by their voters not through a special interest. Now the voucher program. This is real public campaign financing that is so exciting. This is something Seattle has implemented in city elections since 2017 before the people act would establish a voucher pilot program so three states would get to have this program and eligible voting age citizens could request vouchers worth $25 donate them to congressional candidates of their choice by broadening the donor base, your politician is no longer accountable to secret interests. They're accountable to voters like you and me. Okay, so this is, I mean just so so so inspiring so exciting. It's been happening. Public campaign financing has been discussed in red and blue states cities all over the country and if you're in Austin like me it's going to be on your ballot and make so make sure to look out for that. So let's sum it up right I know that was a lot I threw tons of information at you at once but what I really want you to leave knowing is that this is the opportunity of a lifetime of a generation. It's the product of decades and decades of advocacy so many wins and losses at the local and state level, people organizing communities just like yours to demand these changes at the local level, and we've seen voters demand these different reforms we've watched them take hold in places all over the country, you saw the map, you've seen the way it's bubbling up from all over the place and now it's becoming common sense changes being proposed at the federal level. Okay, so I know that all sounds pretty great right. What's going on with it what why can't they just pass it already okay. Last thing I want you to know is that this has broad overwhelming public support this this poll right in front of you it shows you that there is a majority that has supported HR one so you know that's just all the more exciting so what's going on with this bill. This bill was introduced actually last year it actually even passed in the house, but it died in the Senate. And so right now it's receiving all of this new attention and consideration, not only because of all the things we talked about and just the way that last year I demonstrated the need for this like never before, but we also have a new administration and a new Congress, a new Senate majority leader who is promising a Senate vote on this bill. So, so exciting. Now, there's a couple of other once in a generation issues demanding Congress's attention right now I don't know if you guys have heard that there's another second impeachment going on that's never happened before. I know COVID-19 relief these things are so important, but we can't turn down the heat in the meantime, where we can't let them think that we we've forgotten we need to them to know this is this has to be your next priority okay. And so we're expecting this to potentially be be the next bill they consider we're expecting a hearing in the house first, maybe early March, and we, we hope it'll pass there again right but we know that representatives who voted in favor of this last year will be considering given a really competitive election cycle since then so remember that nothing is a given. However, we still think the Senate will be the main battleground we've got historically close margins in there so that's why it's all the more important that your representatives know how much you care about this. And like anything that would dramatically change the system and take power back from politicians. This bill has already become the target of misleading partisan rhetoric and misinformation. This isn't a conspiracy to federalize all elections states will continue to run state elections for state seats this isn't a partisan ploy to steal elections, these reforms really benefit everyone across the political spectrum, and they have enjoyed support from everyone across the country, just like they did when they were piloted at the state and local level but we know how tough the grip of partisanship and misinformation is so this is where you can help. I know at already talked to you about what he wants you to do right so we're just going to let you know we've got extra resources for you. There's a couple of things you can do right now. There's a link to your representatives. You can also tell your friends about it we've got a great social media toolkit linked here so that you can spread the word online and if you're really fired up about this, we would love for you to join us and come volunteer with us and thank you thank you thank you so much for letting me talk to you about reform but I'm really excited and honored to work on really excited to see it be proposed be considered so thank you thank you thank you everybody I've got a few minutes left here for some questions and answers so anything you want to drop into that Q&A box I'll go ahead and look over those and pull out a couple that I can help with. Let me give you guys a little a few moments to get all those in there and I will take a peek. See. Thank you so much on Lynn for sharing all that. Yeah as I said we're going to be into the Q&A portion now. So for folks in the zoom that will be located at the bottom of your screen if you hover over the bottom you'll see the Q&A button so you can submit a question there. And I also saw a lot of questions during the presentation about if the presentation will be shared out this call is actually being recorded right now. So we're going to send out an email to everybody who RSVP to the event on our website so that they'll get a review all get a recording of it that has those slides in it. And we can include all of the links as well. So that everybody has those and I know a lot of things are moving fast and that was a really informative presentation so we're all taking it in but yes so that will be shared in an email most likely going out tomorrow morning so just wanted to say that. Hey Kim I'm having a hard time pulling up the Q&A will you be able to look in there and help me feel or pass along some questions it's not pulling up for me but I think maybe you might be the person who can look at that. I sure can yeah I haven't pulled up we have quite a few. Let me have a look through and see let's pull out some fun ones. So Joyce and also voice voice this in the chat Joyce asks what can we do to reach more conservative audiences and get their support of the FDPA. Oh gosh okay well I love this question because this identifies something that we're seeing happening right now there's a lot of misinformation going on and it's become a really big partisan issue and it's really I mean as we've gone through a really bipartisan bill so you know like Ed said one of the main things you can do is just talk to people you know talk to people you know about you know what this bill is your conservative friends and we can be the people who are dispelling this misinformation right. Yeah, really just spreading the word and encouraging your representatives wherever you are to to support this. What else can. Awesome. Some folks are also asking if we can have an impact on the 2021 gerrymandering and the census and all that. If we pass this soon and kind of what the deadline I guess would be for that. Gosh, okay wow yeah you guys are thinking so so into the details and I love that. Yes, so if you know it's all it's also up in the air right it's Congress you know we don't know what they're going to do but we're hoping that they will make some amendments once this bill gets onto the floor that ensures that that ban on partisan gerrymandering is implemented as soon as possible. So that's something we're really hoping to see. And you know honestly I think that the fact that this is a huge issue the fact that everybody is getting fired up about gerrymandering means that, you know, your state representatives know, and you can also get involved in your state's redistricting process you know so even you know where we're really hoping this bill passes. And you know regardless of whether it does you're still going to be able to get involved at the local level and try to affect that redistricting process there. Keep in mind the census is actually delayed right now. So it makes a lot of things harder but it pushes the timeline on redistricting back a lot more so basically what that means that we have more time to pass this bill, so that hopefully these these reforms can be implemented before the redistricting process begins. Thank you so much for that question cam what else. We also had someone ask if they they don't have time to volunteer and so they'd like to know if they can donate so I'm just going to go ahead and throw the donate link in the chat right now for zoom. If anyone cares to donate to us it's just represent us slash donate and I'm going to share that share that now in the chat. People are also asking what since this is such a complex and nuanced kind of bill. What, what ties would it have to student loans more specifically and how would it really impact that. Yeah, so like I kind of said at the top, a lot of the reason that we can't pass student loan debt reform is because Congress is gridlocked around this issue, and because they aren't really incentivized to work on this issue right they're busy calling fundraisers calling donors, and they, you know, we all so many people normal people care about student loan debt but the people who are bank rolling politicians campaigns. Right now they, they don't. So by implementing public financing by giving voters a bigger voice when it comes to donations. Those are going to move not only student loan debt forward but a lot of the other issues that you and I care about forward and really interrupt that partisan gridlock that is a lot of the reason that student loan debt and other issues have been solved at Congress. What else let's do let's do a couple more I've got me like five more minutes. Yeah, great. Some folks are asking just how they can have an impact if they know for sure that their legislators are against the bill. And my first thought obviously is to just volunteer as I'll share the volunteer link in the chat. But if you want to talk a little bit about the impact of that on voters are on representatives who are already decided. Yeah, gosh right well don't you hate when they decide after you know hearing from without hearing from the voters first. Gosh, yeah, the problem within a problem, but thank you cam yeah you're so right you know volunteering getting involved plugging in to our outreach efforts. Those are always you can get involved. I think that you know when legislators say that they don't support something they. That's not permanent right there's no vote that's happened right now, just because they're against it right now doesn't mean you guys can't change their minds. Doesn't mean that public pressure isn't going to work. So that's really one of the main things that we can do right now. And you know once once it does pass you know hopefully there's going to be a day whenever those politicians are going to be more responsive to us because now post for the people act we've got more power. What else love that. Yeah folks are asking about the sponsorship of the bill so I know this has been kind of a fun thing we've talked about is who all sponsored it and what kind of support did have originally it's been around for a while right. Yeah yeah representative Sarbanes is the main sponsor on it in the house and I don't have the other guy off the top of my head. Right but you know it does have bipartisan support and you know that the sponsor is right that's who introduced it. So representative Sarbanes is the one who introduced that what other questions about about sort of sponsorship or whatever. Jeff Merkley in the Senate thank you thank you Becky and Jen. Yeah, what other questions about around sponsorship right or is there other questions. It seemed like both were most just curious if it had bipartisan support from what I'm seeing in the chat. And folks are also kind of concerned that it'll get significantly watered down before it actually gets passed I know this is something that's already come up a couple of times rather interestingly so what are the concerns around that actually passing but not having the same sort of. Yeah oh my gosh I mean that's that's such a good thing to be looking out for right now that is exactly how involved voters involved citizens should be thinking about these reforms right right now. We're going to be closely monitoring this represent us by following us you're going to be able to get all the latest updates on what happens to this bill what kinds of amendments are getting introduced. So I have amendments are being proposed to chip away at some of these reforms and honestly because there's such a tight margin and both houses right now it you know we expect to see a lot of that and just like any huge big reform bill they're going to pack it pack it with pork like they say. And so this is something that we're just going to be really keeping an eye on here represent us we're going to be telling you guys everything we know, making sure that you guys know what's going on and that if it is watered down if it is, you know taken taken down a notch that you guys will be able to respond let your legislators know that that's not acceptable we need all of these reforms we need all these reforms and more this is the place we have to start. Love that. Um, in that same vein, a couple people have pointed out that separating out the campaign finance reform from voting rights is something that a lot of folks are supportive of more conservative folks have you heard anything about that or do anything to add to that. Oh, that's a really, really interesting sort of proposal. I think that questions sort of assumes that maybe people wouldn't be as supportive of public financing. Public campaign financing right as they would be a voting rights restoration people want these to be separate bills so that they can all pass at different times. I see it, you know, all of these reforms work together to help each other. And so it makes a lot of intuitive sense that when you're writing a bill that's about voter empowerment that you include voting rights restoration and you also include public campaign financing because they both work to that end. So that's, that's one of the reasons why I think that that I'm glad that they're talked about together right now. And so that's, you know, I hope that it doesn't get separated out like that, you know, we, it remains to be seen, these are all up in the air these are totally the right things to be asking about because you guys seem to know your legislators really well you seem to know your politics really well and you know how they how they like to do this and take away those reforms that we're asking for so we're going to keep you informed of this. And we're going to be advocating against watering this bill down at all. Love that. Great. I know we're getting into the last few minutes here. A lot of folks are asking, like what folks do to volunteer kind of volunteer opportunities we offer and so I just want to real quick, kind of list off. I'll put my video back up hello. I'd list up some of the opportunities every Thursday we host a big event either phone banking or text banking where you'll be calling folks or texting folks in support of this bill. So we're going to hold events with our meme team crew, which is folks to our social media team who create content to share and educate folks on social media. And you can sign up for any of those at represent us slash events for our events calendar, or you can go to represent us slash volunteer. Yeah, so that I think that about wraps us up. Is there any parting words you'd like to share online. Oh, just think thank you guys again and you know Ed still around Ed Helms thank you so much for joining us and informing us on this issue I'm so so honored that you joined us I'm so honored that all of our attendees are here thank you so much for your time for volunteering to sit on a zoom call and listen to someone lecture you about a bill seriously I'm so inspired by our volunteer base. And yeah I really appreciate being here. Thank you guys for chatting with us. Yeah, thank you all so much for joining these issues of corruption and abuse of power impact all of us, as we've talked about a lot tonight so regardless of where you come from or who you are. You've probably experienced or seen someone suffer because of corruption and it's going to take all of us to fix it since it impacts all of us. So if you already called your representative that's great if you plan to that's great. If you plan to volunteer we just appreciate having you in our tent and everyone is welcome. And thank you so much for coming out tonight. I hope everyone has a great rest of your week. Awesome. Thank you guys.


The Video Game History Foundation and the Software Preservation Network teamed up to do a study and find out just how many classic video games are available for you to legally buy. They found out that 87% of classic video games, which basically means released before 2010, are critically endangered. This is how the study puts it, quote, imagine if the only way to watch Titanic was to find a used VHS tape and maintain your own vintage equipment. And you had to be a library or a museum in order to do it. If you loved Turrican on your C64, I don't see how that should be treated any different over time as a thing to restore, to keep alive, to make sure it's there. Even if it's just to study it and know it, not to mass market it, nobody's gonna mass market Turrican.


What's up guys? My crew of JASP is doing a recap for our 2023 tops pristine four box half case break. Pick your team number four. He's done off fanatic slide. Here is the list. Positive if you need to and here is the recap. Starting off with some parallels. Had a Hank Aaron going going gone orange to 25. Some fresh faces. Beltray to 99. Oh snap. Moreno. Gold. Alvarez. All right it's going to start heating up here. You ready? Here we go. All right. Bueller. Relic Auto. Joe Maurer popular demand relic and autograph. Very nice. Craig Bizio. Gold around the diamond relic. Auto to 50. Adrienne Beltray. Red. Three of five. Swings of summer. Mookie Betts. Red. Four of five. Sick. Now the encase cards. Votto to 25. Maybe. Devers to 25. Christopher Morel. Gold. Derek Jeter. Orange. First on print. Chipper to 75. Had a Josh Young. Fresh Faces. Autograph. Vaughn Grissom. Rookie Otto. Jose Ramirez. Oh snap. Auto. Stalin Marte. Relic Auto. Byron Buxton. Autograph to 75. And Jigbeta 99. Jazz Chisholm. Fresh Faces. Autograph to 25. Arias. Moreno to 25. Let me tell you a quick story real quick. We hit the Corbin Carroll in the first half of this case so no one wanted to buy the diamond back. So they were the last team taken. I bet you can guess what happened. Springer to 75. These two cards were in the same box. Anthony Volpe. Rookie Autograph. And a Corbin Carroll. Gold. Rookie Otto. 37 of 50. Last spot mojo. Man. That case was insane but thank you to everyone who got into the break. Thank you guys for watching and I'll see you guys in the next one. Bye guys.


But rotating neutron stars might be small enough to achieve the needed speed. Here's a system with two equal mass neutron stars that have reached the point where they are whirling around each other 10,000 times a second. The stars merge in a few milliseconds, sending out a burst of gravitational waves and a brief intense gamma ray burst. You can see the three phases, the in spiral, the coalescence or merger, and the ring down to an object, most likely a curved black hole, that is no longer asymmetric and therefore no longer radiating gravitational waves. If we fed the waveform into an audio generator, it would sound like this. We call it the chirp. The mass of a typical neutron star is 1.5 times the mass of the sun, with a radius of only 10 kilometers. If the system is 33,000 light years away, an average distance for a Milky Way object, it would give us a theoretically detectable wavelength and amplitude. But coalescing neutron stars are not common events. Mergers estimate that there might be one of these neutron star mergers every 50 years inside the Milky Way. To get a higher rate, we have to move outside the galaxy into the Virgo supercluster, our local supercluster that we covered in How Far Away Is It? video book. Within a 50 million light year radius, we expect to have as many as 10 or more neutron star mergers per year, because we're including thousands of galaxies. Unfortunately, at this extended distance, the amplitude drops to the 10 to the minus 21 range.


Talking about disks and files, we're going to start to talk about the abstraction that we use to manage and deal with disks. So with the CPU, we had threads. With memory, we had address spaces. And with disks, we have files. And we'll talk a little bit about file metadata. And then we'll get into Unix file system semantics and start talking about hierarchical file systems. And at some point, it'll become Wednesday. But maybe we'll see how far we get today. So I'm not quite finished with the assignment 3 autograding. That's coming, though. One of the TAs was telling me, oh, well, people have been bringing their design docs in. And they're not sure how to get feedback. And I was wondering if maybe there was something broken about the assignment 2 design doc submission. And then I realized that, no, that's not something broken. It's just no one has submitted one yet. So I've started to track a little bit about where people are in the class. And as far as the assignments, and I have to say that I'm concerned for many of you.  How many people have not submitted an assignment 1 patch?  I have the list of names right here.  Because you're behind and you're in danger of doing poorly in this class. If you come in here and nail the exams and fail the assignments, you're not going to do all in the course. That's how the grading works. So if you guys haven't even started assignment 1, you don't even really know what's in store for you. If you haven't written any code, if you haven't gotten started with that, then you're flying blind here.  This isn't going to end well. At least open your eyes and see what the problem is. That'll help you guys out. So that was my version of a pep talk. But it wasn't a very good one. But you guys still have time.  But you're definitely not going to complete them at the rate that you're going at this point. If it's taking you two months to do assignment 0, then I'm worried about where you are. So on Friday, we talked about disks. We talked about the mechanics of how disks work and some of the implications of the details of disk operation for how we design file systems and files. So any questions about disks before we do a little bit of review? All right, so what's the disk platter? Remo. Yeah, it's the platter. It's like a plate that the data is on. A circular flat disk on which magnetic data is stored. All right, what about the spindle? Spencer? It. Incorrect. Satish? Yeah, the drive shaft. The thing that the platters are attached to. And do you want to come back and try that again, Spencer? Yeah, you're back for me. Yeah, there you go.  And reads and writes the magnetic data onto the substrate below, right? And technically, these are mounted. Does anyone remember what these are mounted on? Yeah, Jimmy? Yeah, yeah, so the disk arm is sometimes what we call that. The arm will have multiple heads on it. Sometimes disks will have multiple arms, right? The one we talked about had a single arm. All right, what about disk locations, right? So when we talk about a track on the disk, what are we talking about, Dan? Think track. Yeah, it's like a lane on a track, right? So it's a circular path around the disk, right? In the equal, think of a lane on a race track, right? Dan, do you want to try that answer again? Yeah, there we go. OK, so the sector is this pie-shaped area on the disk. So it resembles kind of a slice of pie cut out of a single platter. And what about a cylinder, Jen? She doesn't know. Jen too. Yeah, so if you stacked all the tracks vertically on all the platters on the disk, right, you'd have a cylinder, right? Or sometimes we talk about all the sectors that are on, sorry, all the data that's stored on that is being on the same cylinder group, right? So yeah, so if you imagine you took a cylinder and you kind of sliced it down through the disk platters, the place that it would intersect is what's called the cylinder, right? All right, so what's different about spinning disks from the things we've talked about, Sean?  So it's a good question. Who can answer that using another piece of disk terminology, Manish? What's that? That's also true, but who can answer this question using disk terminology? Huikiyang, I have a disk composed of multiple platters. And how many tracks would be on a cylinder? Does it depend on the sector? OK, yes, that is true, but why does it depend on the height? Yes, it is. Right, so it depends on the number of platters, right? So there's at least one track per platter, right? Potentially, how many tracks per platter could you actually have, Sarah? Well, remember, a cylinder is kind of these vertically organized tracks, right? And I'm at least going to have one track per platter, but I could also have how many? Dan? So that's if I had one per platter, but I could also have what, Sean? Two. How would I have two? One on both sides, right? It's like a pizza with toppings on the top and the bottom, right? Of all the pizza innovation out there, apparently, nobody has tried that one yet, right? Toppings like on the crust, they've been there? Ah, there we go. I don't know how. The box designed for that pizza would be difficult, right? Anyway, so yeah, so we have magnetic substrate on both sides of the platter, why not, right? I mean, that's an easy way to just double the capacity of our disc, right? So I have two tracks, potentially per platter, and then I have some n number of platters on the disc. That's a good question. I don't know how many. I wish anybody had a disc they want to let us just rip out of their loft off and pull open so you can see how many platters. I wish I knew. It's probably like six or eight. It's not that many, right? So yeah, it's the number of platters times two, probably. So that would be the number of tracks per cylinder. Usually, we talk about cylinders in groups, right? Meaning that we take adjacent cylinders, right? So it's less of a discrete grouping of tracks, but it's kind of maybe a group of tracks that are next to each other, right? So think about a bunch of lanes on the racetrack that are next to each other, and that defines a cylinder group, right? So that's kind of all the data that I can get to without moving the heads too far, right? All right, good. OK, so who's going to tell me how discs are different in kind at Grim? No. See, AJ. Yeah, they move. Nothing else in your computer moves, right? Oh, one of the other components we've talked about so far, move, physically. What about degree? Lovely. They're slow? They're slow, right? And they're slow partly because they move, right? And then, also, how are they different in terms of how they're integrated into the operating system town? They are slow, but I don't want to believe I'm going to ignore you for now. Actually, yeah, so we usually think of discs as devices, right? So what we're going to try to do here to some degree is build these interfaces that allow us to put multiple devices below them. That's kind of what we did with the CPUs and address bases, but you don't think usually about, you can do this.  So this is possible, right? How many people have usually put in new memory and things like that, but we usually don't think of memory and CPU have to have pretty, there has to be a lot of standardization in order for that to happen, right? Whereas discs, we have these interfaces like SATA, and you can buy hundreds of different discs that all support the SATA protocol. They all have some naming so that the operating system can use them, but they may work very different, right? So I can take a machine that has a spinning disc in it, I can take that disc out, I can put in a solid-state drive, and everything just works, right? So that's kind of nice. All right, so how do we read and write data from the disc? Let's talk about how to do this. What's the first step, Sam? Yeah, so I have a block of data. We talked about discs, you usually think of blocks of data, right? So like 256 or 512 bytes of data. And the operating system wants to write this to a disc. What's the first thing I need to do, Jeremy? Yeah, even before that. Oh no, let's see here, what can I pick on? Yeah, I have the issue of the command, right? The disc doesn't know what to do. The disc is just sitting there at the end of some interface, right, on the operating system. So the first thing you need to do is actually issue this command, right? So I have to send a command over the SATA bus potentially so the disc knows what to do, OK? Now the command arrives at the disc, now what happens next, Nick? Yeah, so now I have to move the heads, right, to the appropriate track. So the disc needs to be able to map from whatever the block ID is that I gave it and needs to know where that is given its own internal geometry, and it needs to move the heads there, right? So that's the first thing that has to happen. Andrew, what happens next? Yeah, so I have to settle, right? So the heads actually have to be able to stabilize on top of that very potentially narrow track, right? Then what happens? Yeah, so now that's what I call the rotation latency. So I have to wait until the platters rotate back to where the stuff on disc is stored, right? What's next? Coppina. I've got my head to the right track. I've got the track to the right sector, you know, potentially, and so now what do I need to do? I need to actually read the disc, read the data off the disc and transmit it back over the bus, right? So usually probably what happens is, you know, the data is read into some buffer on the disc, right, until it's completely, until the block is read completely or some portion of it is read completely, and then the disc streams that buffer back to the operating system, right? It says I have data that's ready and then the operating system reads the data off the disc, right? So we talked a little bit about a kind of disc trends, right, and we call this the IO crisis, right? What's the, what two factors are driving this crisis, Dan? Yeah, so discs are getting bigger, but they're not getting faster, right? And there was definitely a period of several decades where discs got really, really big, especially in sort of personal devices, but they didn't get faster during that period, right? And so they were frequently, and they got a little bit faster, right, but they certainly didn't get faster according to Moore's law, the way that everything else on the system was getting faster, right? And that was meaning that the difference in performance between discs and other parts of the system was getting worse, right? All right, before we go on to files, any more questions about discs? Going once, going twice? OK, so when we start talking about files, what we're going to try to do is sort of be precise, right, as opposed to other parts of this class where we just try to be vague and unclear. So most of us are kind of familiar with files, but a lot of us haven't thought kind of pretty specifically about what the file interface looks like and what are the semantics of a file, right? So we'll talk about kind of like just the minimum amount of sort of what the minimum interface is for just being a file, right? What do I need to do to be a file, right? What do I expect files to be able to do, right? We'll talk about other information that's associated with files, right? And this has actually become more and more interesting over time, right? So there's other useful information that file systems typically store about files, right? Or in we sometimes call this file metadata, right? It's different from the contents of the file, right? And maybe stored with the file, it may not be. So we'll talk a little bit about the relationship between files and processes, right? And some, you know, if you think about things like open and closed, right? You guys are working on implementing hopefully, right? Well, why do these commands exist, right? Why do we, why does Unix and other operate systems allow you to kind of, as a process, establish a relationship with the file, right? Why would I do that, right? Why not just have read and write, right? Read from this path, you know, this number bites easy, right? And then we'll talk about kind of when we start organizing multiple files together, right? To kind of a, you know, talk about a file, how file systems do that, how do we organize them in useful ways, right? So some of this is gonna seem very familiar, some of it will not, right? So at the minimum, what is, so we're starting to talk about the subtraction of a file, right? What do I think that the file has to do to be useful, right? What are the two things that I at minimum have to do? I thought I was building the simplest possible file system, right? Jeremy. Yeah, that's to store data, right? Reliably store data, right? This is important, right? I put things in a file and processes and your system expect that data to persist, you know, essentially forever, if it's not modified or deleted, right? And then what's the other thing I have to do? This is a little less obvious. Yeah, I store data somewhere and then what else do I need to be able to do and or if that data is going to be useful? Organize it, but specifically, what do I need to be able to do? Yeah, Tim. Well, reading and writing is, I think in this reliable store and retrieve, Sarah. Yeah, I need to have naming, right? I need to be able to locate the file. The process and the operating system and the disk together have to work together to create this namespace, right? So I need to have some way of naming things, right? Naming things in computer science turns out to be a huge problem in general, right? And you guys are aware of this on some levels and not aware of it on other levels, right? But naming, you know, computers aren't good with names, right? Computers are good with numbers and arrays and things like that. And humans, you know, so how many people think they could go to Google by typing its IP address? Yeah, good, me neither. So we're good with names, computers aren't, and getting computers to be good with names is quite a big challenge, right? So yeah, so usually we give, you know, we give files a name and we need some way of, we need some semantics associated with these names. And again, a lot of this is like really internalized. You guys have internalized a lot of this, but this actually didn't always used to be this way. So we'll talk a little bit about how this happened, right? Okay, so at minimum with file expectations, right? So we expect that file contents shouldn't change, right? That's the reliably stored and retrieved data, right? And we also expect that they should change when we want them to, right? And when we start talking about shared access to files, there's some questions about how exactly files should change and multiple processes are using them. But in general, we can think about this in terms of just one process using the file, right? And when you think about these simple requirements for file systems, right? This stuff seems really like a no-brainer, right? Like this is basic stuff, right? We haven't talked about, you know, optimizing for performance. We haven't talked about namespaces and hierarchical file systems and all sorts of other fancy features, you know, on-the-fly compression and all sorts of cool things that you can do, but it turns out that, you know, getting this stuff right is not easy. And, you know, this was a year ago, but, you know, Windows 8 has had file system issues, NTFS has had file systems, Rizor FS has had, like there's still problems with file systems, right? In terms of these very basic expectations, right? So, and part of this is, you know, bugs, right? Just simple problems with file system design, right? But keep in mind that because, to some degree, we expect more from files than we do from CPUs and memory, right?  You don't expect the memory to be still holding contents when you turn it on, right? Or the CPU to have any idea what just happened, right? So with the file system, you might say, hey, what happened, all that data I was storing like a millisecond before the power, right? So file system expectations make the design of file systems a little bit more complicated, particularly when we started talking about dealing with failures, right?  You know, the person who I took this course from at Harvard used to say that, and she was a file system engineer, right? She had done a lot of file system research and design, and she used to say, you know, problems with data corruption in file systems are the worst kind of bug to have because if somebody experiences that bug, right, they have both the, you know, inclination, right? Because they're angry, right?  But they are mad, right? Like you have destroyed their data, and while they're busy recovering it and running all their file system cleaning operations, that's when they can send you the angry emails and, you know, post in the forums about you and things like this, right? So these are not good bugs to have, right? They're very difficult to recover. People usually like to have their data, right? They like their data to kind of like be there, right? And, you know, if we all got an email from Google to Marabi, like, yeah, sorry, we lost, you know, half of your email, right? I think some people would be sad, and they would be angry. All right, so there's other information that we frequently might want to associate with the file, right? So, you know, we think about files as having contents, right? That's like the information that's inside the file, right? That's the data that the file is storing. That's information that processes can read or write. So what else might we want to know about files for, you know, I don't know, a variety of reasons? Same. Yeah, so we might want to enforce some access permissions on files, right? We might want to have files be able to be private to certain processes, and there'd be mechanisms for which processes can share those files in limited ways with other processes, right? So that's one thing. What else, Jeremy? Yeah, so maybe temporal information about the file, right? So when was it created? You know, when were the contents changed? Things like this, right? What else? I'll show you. Yeah, things like size, right?  Yeah, okay, so now we're getting into some more interesting things. File types, right? What is a file type? Does anybody know? Yeah, maybe. Okay. Right, yeah, I mean, the reason I'm, is because like, it's not really a rigorous definition of what this means, right? Like, on some computers, they use the file type to determine what program should try to open it, right? Sometimes, as Rimo pointed out, there might be differences in encoding between different files, but that's not required, right? I can take a text file and rename it to be a CSV file. The encoding's the same, right? But what's different is how something tries to interpret it, right, potentially. So file types are kind of an interesting case of this, right? So, and then on a per file basis, and I wanna go down this path just briefly. Jeremy, yeah. Oh, you're answering my question already. Hold on, sorry, I thought you had a question. Let me state the question first, and then you can answer it. So, for other more specific types of file, right? You might want there to be more, file-specific metadata, right? So for example, EB3 fundamentally contains sort of audio data, right? Audio data that's been compressed in a particular way, right? But there's other information that we might wanna know about the EB3, like Jeremy. Things like this, right? And there are, there's an interesting, there's an interesting question in file system design about where this information should be stored, right? So where is one place that we could store it, right? For EB3s, actually, where does it usually get stored? Yeah, so one way of doing this is to jam this stuff into the file itself, right? So I could just stick it in there, and then the nice thing about this, right? This is as the file moves around, right? That data stays with it, right? So when you buy your EB3s from iTunes, they come with all this metadata set properly on them so that when you load them into the music player of your choice, it can find out this information and use it in a variety of ways, right? Another way to do this in some cases is to store it in another file, right? And then you kinda have to keep those two files together. Let's stay with our music example. What's one piece of metadata about EB3s that frequently gets stored in a different file? That's, yeah, album artwork, right? Incredibly important stuff, right? Maybe it should go in a file, I don't know, but it probably doesn't go in the file partly because it's a little bit of redundancy there, right? You have the same piece of artwork for multiple files. And then there have been file systems in the past, and I think some modern file systems still support this. That allow you to actually associate attributes and almost add code of database-like information to file records themselves, right? So I can set an attribute on a file and that information is not stored in the file, it's stored by the file system, but it's queryable, right? And there's some file systems that have actually produced a pretty nice information. I don't wanna go through this at length, I don't know why I did this last year. So anyway, their pros and cons of each approach. All right, so there's a lot of, most file systems provide some way, some interface for establishing a relationship between a process and a file, right? And essentially what that, if you think about it, right? I mean, think about open and close. We talked about this a little bit earlier, right? Why do open and close exist? What is the point, right? I mean, clearly they expose some kind of information to the operating system, right? What do they really tell the operating system about a process's use of files? Yeah, well, no, no, no, it doesn't actually, right? I mean, open doesn't, open has no memory-related semantics. Correct, maybe, but I mean, again, to some degree all open, what is open, right? I mean, first of all, is open required for correctness? Do I really need to call open on a file in order to use it? Or could I design a file system interface that did not use open and close? How many people think I could? Yeah, me too, right? I mean, how would it work, right? What would you pass to read? What's that? Muhta. Well, okay, no, no, hold on. What do I pass to open right now? What does open receive? Wrong, open gets a what? Path name, right? When I call open, I give it the name, right? The name that the file system has, that me and the file system have agreed on, that names those contents on disk, right? And then what do I, what does open return? A file descriptor, right? So if I don't use open, what do I have to pass every time to read and write? Sam? Well, but if I don't have open, where do I get the file descriptor? I have to pass what? The path, right? So I can write, read and write without open, right? I just pass the path every time, right? And maybe I pass the flags too. Okay, I might need to do something a little bit different with the flags, Jeremy, yeah. Yeah, I might have to pass the offset too, right? But that might be nicer, right?  It makes programming with files very confusing, you know? I have to kind of remember where it, where was the offset last and things like that. So yeah, I might have to pass the offset every time, right? But open and close are not really, again, I'm trying to point out is they're not really required for file use. What do they provide, but what do they provide the system option? They can, but they don't have to. Especially if I'm not creating a file, right? If I'm opening an existing file, right? That the permissions may be set on the file already. But I already have a call to do that. It's called flush, you know? It works, yeah, I'm gonna fight indirection. Well, I set up levels of indirection to do this, but that's not quite what I'm going for, I'm looking. Yeah, it does do this. So on some level, right, what I think of open and close as doing is providing hits, right? They provide the operating system with hint about who's using the file and for what, right? And we could talk a little bit about, particularly, right, so particularly when I close the file, that's a nice hint, right? I'm done using it for now. And as somebody pointed out, I might have buffers that I can at that point flush, right? I might, the file system might be doing some caching on this file, which I can now stop, right, which is good. Some of these things I can start when a process calls open, right? So a process calls open, I could say, okay, I wanna start caching the file contents, et cetera, et cetera. So there's some nice hints with open and close, right? And they also, of course, give me some data about the fact that somebody's using the file, right? Or particularly how many processes are you using and things like this, right? But they're not necessarily required, right, for correctness, right? And there are some file systems that you guys probably use on a regular basis, whether you know it or not, that really don't even support the idea of open and close. How many people log into Timberlake to do something periodically? Yeah, for me, it's like once a year, if I can manage that infrequently. But Timberlake and other systems support these network-mounted file systems that frequently don't support these calls at all, right? So one of the reasons is to prove performance, and then, right, and as someone's pointed out, I can also provide guarantees, right? So for example, it's difficult to provide exclusive access to a file, which I can do using open if I don't have an open and close call, right? Because I can't, yeah, I could try to do that with read and write, but it'd be a little weird, right? And as it is said, some systems like network file systems don't bother to establish these relationships. And in many ways, on NFS, this is done for, or at least on earlier versions of NFS, this was done for failure reasons, right? So for example, let's say I have a client, right, that opens a file for exclusive access, meaning that while I have it open for that type of access, nobody else will be able to open it, right? So the network file system updates the state and it says this file is kind of locked by this process, nobody else can use it, and then that process dies or the person's laptop shuts down or whatever, right? So open and close, at least, with NSF and NFS and its earlier versions produced a lot of headaches. And so these were usually essentially ignored. Was there a question in the back? So, and again, right, we just talked about this, right? So Unix semantics for read and write, store the file position, and this is also a convenience, right? So what I'm trying to do is just get you guys to think about some of these conventions, right? These are not necessarily ironclad things, but they've come about for a variety of reasons, right? So I've got this, you know, I've got this establishing relationships with the file, right? And then I have reading and writing, right? And you guys, I think at this point, are familiar with these, hopefully, because you're working on assignment two and then I have some positioning as well, right? So this is how I can, L-seq is how I can move the file handle without actually doing a read or write front, right? So read or write, move the file handle implicitly, L-seq moves it explicitly, right? All right, what's missing from the interface that we've described so far, right? I went through that quickly, I think, because I'm hoping you guys have seen this as you've been going to recitation and things like this, right? So, okay, so of the parts of the assignment two, the file system interface, what have we not really covered, right? Rima, dupe two, wow, it's good, right? I'm gonna take a moment to that, right? And at some level, the reason why we don't talk about dupe two much when we talk about file systems is dupe two is really about maintaining, you know, maintaining the data that's used to map sort of between a process and the operating system, right? So dupe two only manipulates the process file table, doesn't actually touch the file system at all, right? All right, so let's talk a little bit, start talking a little bit about how we organize files, right? So it seems fairly basic, for example, that every file needs to have its own name, right? And on early file systems, essentially, this was accomplished in a fairly straightforward way, so let's see here, it's the first week of school and there's my file, right? And then next week, here's the letter to my wife and then there's one to my dog and then I'm gonna write my wife another note and then another one and then, and actually, you guys may not notice exactly what's weird about this, but some early file systems actually exposed flat namespaces, right? So no directories, right? Or if you wanna think about it differently, imagine if your file system had one massive directory, right? And all of your files were in there, right? Maybe some of you guys actually do this, right? This is kind of how some of you guys organized Gmail, right? You know, like no filters, no folders, one huge inbox with 10,000 unread messages in there, and maybe, again, as we talked about, maybe this doesn't matter anymore, right? Maybe if I have search, I don't even care, right? I never have to go into that folder, run LS and wait for like 10 minutes while all of my files scroll by me, right? And then if I run another letter to my mom, I need to find like another unique file name, right? And actually, I think, and how many people remember, this is, I'm gonna date myself, early days of email, like copy-serve, did anybody have a copy-serve email address? Ah, email, so the, so I don't know, I don't know, this is very funny, right? So you guys, I mean, you guys are still living under the plague of this a little bit because many of you guys have these completely nonsensical Buffalo email addresses, and it's because they're still limited to eight characters, right? Which is a limitation that Unix introduced, I think probably in the 1970s at some point, right? That you guys are still living with, but I think it's pretty hilarious. Copy-serve had this brilliant idea of assigning numerical email addresses, right? So your email address was like a 10-digit number at compuserve.com, or whatever it was, compuserve.net. And why would they have done that, right? What were they thinking? Why not like people like names, right? Letters, like how many people have an entirely numeric Gmail address? Nope, right? But what was their model? What was their mental model here? What were they thinking that email addresses were gonna be like? Tom? Yeah, I'm not thinking of something else. How many people can remember their social security number? Yeah, okay, about half the class. But again, what were they thinking, Greg? Yeah, but like why did they think, given the choice, people would want these numerical, like why did they think anybody would ever be okay with that, that's, and those are other things, but what else is a 10-digit number that many people know? Phone numbers, right? So they were like, yeah, everyone's all gonna have phone number and people like numbers, right? So we're gonna say, hey, here's your numerical, yeah, I have my phone number at whatever. And it was kind of dumb, right? So, and this is a variant. You can imagine that again, if I forced you to come up with a unique name, right? I mean, most of your systems probably have tens of thousands of files on them, right? If I forced you to come up with a unique name for every one, I think that would be pretty gross, right? And so what file systems started to adopt was this idea of kind of folders or directories or filing cabinets, right? Ideas, you know, find somewhere to put things and begin to allow users to kind of store and examine related files together, right? This was the real idea behind this abstraction, right? And our goal here, right, is that every file is stored, should be now stored in one place, right? Remember before I had this goal of having unique names for my files, right? Which was important. Why do I need a unique name for the file? What gets kind of wiggie if I don't have a unique name? Sean. Yeah, I mean, how do I call open, right? I call open path to file name that has 10 copies of it, right? Is it like probabilistic? You know, do I get 10 file descriptors back and I have to figure out which one is the one I want? Yeah, so I mean, that gets weird. So, all right, so when you start to, we're trying to build this up from first principles, right? So now I have this idea of location, I can put things into folders, right? I have some idea of, now I need some idea of navigation as well, right? So I need to know kind of, because the files that are visible to me, right? If I think about browsing the file system, right? Or locating things are now dependent on where I am. In the flat name space, they weren't, right? I just saw everything all at once all the time, right? But now I have to have this idea of location, right? And I might have locations that point to other locations and so I end up with this whole hierarchical tree, right? So, okay, this is kind of obvious. So most hierarchical file systems, there are probably some exceptions to this, but the ones you guys are used to, right? Organized files essentially into an acylic graph with a single root, which we call no tree, right? You guys think about the directory for your system, right? Why this requirement? Who could think of some weird things that might happen if this isn't true, damn. Yeah, so that's one good reason, Jeremy, what else? Yeah, but also has to do with naming. Oh, I like this example, right? So let's say this is my, so this, so first of all, this is not an acylic graph, right? And let's say that this is my file, right? These are my directories, right? This is my file. What is the name of this file? What is the unique name of this file?  Let's see, so, okay, now, so now I picked a root, right? But let's say that this is still, this is, so now I have a root, right, which is gonna help me name the file, before I didn't even have a root, right? So I wasn't even sure where to start, right? Now I have a root. What's the name of the file now? Is this an acyclic graph? No, there's a cycle right here, right? So what is the name of this file? How many names do people think there are? Do you think there are two names? I think there are several more than two, right? Yeah, so I have one name, you use to love well, right? Another name, you, me, love well, I have another name, you use to love me, you use to love me, love well, right? So, I mean, again, this is something that you guys haven't really probably had to think about before, right? But this is why cycles are bad, right? So, so this is, so let's see here, right? So, okay, so this is now a, so now I have a canonical name, right? And let's think, and when you guys have used Unix systems, you're familiar with these canonical names, right? This is a name that's rooted in root, right? So the canonical name for this file is used to love well, right? That is the way that I locate the file by starting at the root and traversing downwards until I find the file that I'm looking for, right? There are also a bunch of relative names, right? So if I'm in this directory, right? I can have relative days that are rooted at the root, right? So this is a relative name, right? Where I got here and then I backtracked and then I went here, right? And if you guys play around on your virtual machines, you can, again, you can produce essentially almost, is it actually infinite? No, it has to be infinite, yeah. You can produce an infinite number of names that your system will accept for any file on the system, right? Just by, this is like the Buffalo, Buffalo, Buffalo thing, right? Like you can produce an infinite number of names there, I mean, usually in relative names, yeah. Is there a limit? I mean, yeah, at some point, Unix will probably barf and die, right? It'll just be like this path name is too long, you know, what are you doing, right? But it'll take it a while, right? You should figure out where that point is, right? But essentially, if I just oscillate between these two states using dot, dot, and moving forward, then I can do it, right? Here's another relative name. This just starts in a different spot, right? So, love me, love me, yeah. So this is kind of my example of how to make it. I like this, I'll just put this up online, you guys can read it. This is a very nice poem that I was using for my, for my example, right? All right, any questions at this point? We move. File like object. Yes. Yeah, okay, so this is a great question. So I am, we talked about this a little bit earlier in the class, and I think this is something that I should point out again before we go too much farther. So, what we're talking about now, right? Are files that are files, right? Files that map down to disk blocks, right? And we're talking essentially, some of the things we're talking about are sort of taking a name, right? And mapping it down to blocks on disk, right? That are on stable storage. So what Riemann's pointed out, which is a great point, is that operating systems have abused the file system interface in a variety of ways to expose other types of things to processes that are actually not files, right? And sometimes we call these file-like objects, right? And we talk, I think we talked about these a little bit, maybe a month or two ago. So how many, does anyone remember one file-like object? AJ? Yeah, network sockets, right? So a network socket, I can read, I can write, right? I can open it, I can close it, right? So it's got some things that are, what would be something that would be not a feature of a network socket that I would probably be able to use? What's one part of the file system interface that doesn't make a lot of sense, yeah?  Like, I can't seek on a socket, right? I mean, maybe that means like, skip the next, yeah, but it doesn't really make any sense, right? What's something else that's a file-like object? You guys remember from our earlier days where we were exploring our Linux system using some standard utilities, learning about processes, Spencer? Yeah, so the PROC file system, right? If you guys go in your virtual machine and run mount, you'll notice that there's a file system called PROC, right? The PROC file system is not actually a file system at all, right? It looks like a file system, right? It smells like a file system. It's not an actual file system. There's no actual files, right? The contents of PROC are not stored anywhere on disk, right? But it's kind of fun. You can go into PROC, you can browse around, right? But why do that, right? Why does PROC exist? Why, like, why not, you know, what's the purpose of PROC and how did it end up looking like a file system? What's in PROC? What do I find if I go start poking around in PROC? Spencer? Yeah, okay, so now I think we're talking about Sys2, which is also similar but different, right? There's also something called the SysFS, right? Which, as Spencer was pointing out, is frequently used to actually communicate information to the running kernel, right? So if you want to change something about this system, you can write it to something that looks like a file and that information ends up potentially being communicated to some part of the kernel, right? So that's kind of a nice way of exposing that. But what's in, well, let's go back to PROC, right? Because PROC is maybe a little bit simpler. So what's in PROC? Yeah, so PROC is essentially used to export and you're probably right that there are parts that you can write to, right? I know I'm right. He knows he's right, he's done it, okay? Well, if he knows he's right, then I know I'm wrong. So PROC is there to expose information about processes that are running on the system, right? So if you go in PROC, for example, the way PROC looks is like there's a directory for every process that's running, right? The directory is the process ID, right? Again, there's no contents on disk anywhere, right? What's happening is that the operating system is generating those things on the fly, right? It's making it look like there's a file system there, but there actually is no file system, right? So, but what we're talking about here primarily, going back to RIMO's point, is files that map down to disk blocks, right? So, but again, the file system interface is frequently used to expose other types of information. That's something that's useful to take on. Does that answer your question, if it's, sorry, if it's what? Wait, I'm, yeah. Oh yeah, yeah, yeah, absolutely. I mean, the system needs to know what kind of file it is, right? Because it needs to figure out, so what part of the system is responsible for reacting to the calls to open and close, right? So one of the things that happens when you guys run open and close, read or write, is that those calls, right, start out associated with the file descriptor, but eventually they were going to be handled by some specific part of the system, right? So for example, if the system determines that the read operation was on a file that was on like an NFS-mounted file system, right? It goes down into the NFS code, right? If it determines it's on a socket, it goes into the networking layer, right? So yeah, absolutely, these have to be routed properly.  And the VFS layer is essentially there to allow multiple different clients to implement a file system-like interface underneath, right? They don't have to support all the operations, right? But they're there to, that interface is there essentially to take those calls and kind of vector them in the right direction, right? That's a good question. Any other questions before? I think we're almost out of time today. All right, so on Wednesday we're gonna keep talking about sort of file systems, right? So we've talked a little bit about what we expect files to be able to do. And on Wednesday we'll talk about how file systems accomplish some of these things, right? And here are some of our design goals for you guys to think about for Wednesday, right? So first of all, I need to translate names, right? What I'm gonna expose to users and to the system and to processes are names, right? And from names I need to find contents, right? And usually finding file contents in a file system means locating the disk blocks that store that information, right? I want files to be able to do the things that users expect files to be able to do, right? So they should be able to change, right, clearly. But I also wanna be able to grow and shrink them, right? So when somebody goes back and continues writing their long letter to their mom, that file's gonna get bigger, right? And so as the file gets bigger, I need to find more space for it. And as it shrinks, I need to be able to free up that space. Also as I move files from place to place in the file system, right? I potentially need to make some adjustments to my file system as well, right? Hopefully not as bad as that terrible cut and paste we saw, copy and paste we saw on Friday, but usually there is something that the file system needs to do, because the file system also needs to remember store where things are because it has to translate names, right? And then file systems also do some work optimizing access to single files, right? Which we'll talk about. And then there's also this related challenge of optimizing access to groups of files, right? So if I can start to understand relationships between files, it's possible that I can use that understanding and my knowledge of the layout of the disk and properties of the disk geometry to improve performance, right? And again, we care about performance here a lot, right? Because in the worst case, the disk is really, really slow, right? So if we can do some clever things we can make and the file system is kind of a charger trying to do some things to make the disk seem faster, right? And finally, we wanna survive failures, right? And surviving failures requires two things. I mean, one, to the degree possible we want the file system, we want the contents on disk to reflect changes that were made to the file system, right? And if I pull out the plug, what I'd like is the file system to look like the file system was supposed to look right before I pulled the plug out. The second part of this, though, is maintaining consistency. So what I don't want is, for example, to be caught off guard in the middle of trying to do something, power gets pulled, and when I boot up, the file system is in such an inconsistent state that I can't recover from it, right? Or recovering from it takes a huge amount of time, right? So these are two related things that actually to some degree, they're at odds with each other, right? This is another design trade-off that we're gonna talk about, right? Okay, so we will start talking about these things on Wednesday. See you then.


Challenge drives innovation. The bigger the challenge, the more critical the unmet need, the greater the innovative power that it generates. Innovators in healthcare, like Elminda, are driven to tackle complex problems, establish new standards of care, which by itself is very challenging, and revolutionize our ability to address a broad range of unmet needs. More than two billion people suffer from brain-related disorders worldwide, with an enormous cost to society. Because our brain is extremely complicated, diagnosing and treating brain disorders is still largely based on subjective measures and a lot of trial and error. Understanding brain function is one of the ultimate challenges, and in many ways it is the final frontier in healthcare.  In each of our brains there are 100 billion neuronal cells that are connected in trillion connections. Imagine the brain as a network of complex streets and roads. The challenge, though, is to see the traffic on these roads. Every second there are hundreds of millions of neuronal firing and electrical communication flow among these networks that are responsible for all of our functions. Functions like memory, attention, sensing, speech, and even our emotions. So if there is a disruption in these networks, the effect on behavior, function, and well-being can be devastating. When Elmina began its research for brain network activation or BNA mapping almost a decade ago, we recognized the promise and the impact of observing these networks of function and also dysfunction. This has uncovered the opportunity to revolutionize brain health by better identifying and monitoring disease progression, assessing treatment efficacy, and even, ultimately, maybe even rewiring connections that are misfiring. This work is now clinically utilized for head injuries or concussions, an area of serious public health problem. Until now, clinicians had to rely almost exclusively on subjective assessments of symptoms and behavior without a truly objective view into the brain's state of network function and the injury itself. Well, this is now changing. In brain networks activity, we can now see the difference between function of a healthy brain and the dysfunction of an injured brain. And beyond head injuries, this is opening the possibility to evaluate and effectively treat previously elusive conditions such as depression, chronic pain, or even memory loss. Elmina's vision that a more intimate understanding of how our brain is working, how it is processing information will lead to better treatment for patients who really need it most, is quickly becoming a reality. Pioneering this final frontier for a lifetime of better brain health is so important and can profoundly affect each and every one of us.