I'm definitely going to talk about.
We're definitely going to talk about SHFSIB, we have lots to talk about there.
The morning everyone.
So, uh, first off, let's talk about where we are. So
Braden
working on the midterm.
We.
Right. So we're, we're working on grading, that'll come.
Give us some time does a lot of stuff to get through here and the TA is of course we're pretty busy.
Because, you know, there and deal with their own stuff for around this middle of the semester.
If Yep, I won't. I'm
so starting after the break. I'm going to open up interview slots.
So I'm going to basically have us have a spreadsheet and teams, where you'll sign up for a slot, there's no point in putting that there until the mid terms of grated because we've talked about the greatest midterms.
So once they're graded I'll post solutions for the midterm, and then we'll do that.
Please don't.
Yes.
I may have various accommodations for students or sick and other things going on. So, some students have not taken the midterm so please don't talk about the midterm on teams.
If you have specific questions about it I can you know it's really burning you I can, I can talk about it privately but we've got other material to discuss.
So in terms of where we are, want to talk about what was the textbook.
So we really up to this point have mostly been in the process of process API. Where do I live doing systems programming now we're going to start talking about stuff that's in the rest of the textbook and actually the thing we're actually going to work
on first, is actually persistence, and then we'll talk about virtualization concurrency and stuff. So, what I would suggest, you know, if you really want to get ahead of things start looking at.
be 35 through 5135 to 5051 textbook.
So chapters 35 to 51 cover things that are going to be talking about in various forms, I would suggest you know kind of looking through that flipping through it looking for stuff there.
It's, there's a lot of stuff that the reason why I say that it's all there is because we're going to be talking about me really going to be talking now about 39 and 40.
So, 3940 have stuff that's, you know, I think particularly useful, but the other chapters are also very much because it's just so one thing I can say about the authors of the textbook is they are actually experts and file systems.
So, they would bring a wealth of knowledge to it and so they've written a lot about it and there's lots of cool stuff in there so if you really want to learn stuff I definitely recommend going through and reading these, but there's a lot there and you're
as as as you know from what we did you see what the midterm and the assignments and the emphasis on what I'm asking about.
So like reading.
Yeah.
So, as far as tutorial. So now we're.
Let's go.
So we actually are not even really halfway through the lectures here, the midterm was early. And in fact, I kind of see a logical division and how things are up to this point, up to basically through lecture nine, we were essentially talking and then
the other time was review, but through lecture nine we were discussing.
Really the user space view of things. And, and, and this tutorial is really for regular applications now system calls Look how applications look just all the code and things and you know going from a several languages system calls and things.
The user space courses what we focused on from here on out, we're going to talk about how those abstractions are built. Now, tutorial five is still user space, mostly, but it's getting into abstractions that are really live in the kernel.
And then after this we're going to be really more talking about what's going on in the kernel.
So along those lines. If you should have spent some time at this point working on tutorial five. I'm sure many of you have not because I'm sure you were other classes but,
You know, I will assume you have, but, but actually what what I'm going to talk about today I think will be more interesting. If you've gone through the tutorial but if you're not, you know, maybe come back and look at this.
So what In this tutorial, you're doing and what we're trying to teach you about is, is really. First of all staff.
So here is, so stop. There's also command line program that does stop which actually works.
So, if you run the staff at the command line, it gives you all of this information, and this is mostly the thing that you get when you run stat here this is essentially a textual representation of the structure that you get when you run stat on a file
And what's interesting about this structure is. There's a lot of details here that only makes sense when you understand how files are stored on disk. It's really telling you a lot about the data structure because, again, You know, it's persistent storage.
It's a data structure.
But what sort of data structure.
So,
so, so we talk about files and files and this is really a data structure for.
Sorry, call names.
Pass.
So that's what that's what a data, you know, that's what a file system is it's mapping a path so if I say like home so my what you know desktop lecturer 11.
You know that's the name, and then the file is the contents of this file here I'm editing, like what I type here you know it's like till your desktop, that's you know Tilda represents my home directory which is also my desktop, and then lecture 11, that's
a file that's, you know, that's what I've got here.
But the question is is.
So, so this mapping of names to files has to be implemented in some way.
How is it implemented.
But that's what we're exploring. So,
so you could, so the natural data structures to think about in a file system is so,
so you know, directory is a list of files,
a directory is a kind of file.
So this is kind of your basic thing of you know you have a directory that directories a list of files. And then, You know regular files contain data.
But,
so, units like file systems, they aren't actually organized around directories and regular files per se. There's another data structure that is central say a note the name of that data structure is.
It's an I know that's the central data structure of a file system. Now a tree is actually.
And you know,
so a file system is actually tree like.
But, but the central data structure of
But before was one other piece that you have to understand to understand file systems
data structure.
So this is the, you know, file systems our data structures know file systems are data structures
for storing directories and files in a, in a block and block oriented storage.
Storing directories and files in a, in a block and block oriented storage. So why do I say this
addressable.
So RAM is bite addressable, so.
So
right so we access Ram, You specify an address, and then you get one or more bites with each bite having its own address.
You know, this is how pointers work this is you know we saw this and assembly language is there, but.
instead of bytes, we get blocks.
So blocks.
So blocks is not fundamentally different except instead of the addresses, referring to individual bytes. The, the address the block number refers to individual blocks, and each block.
You know, each block is so many bytes long.
So you specify a bite.
In on a file system, what a bite on disk.
So, no se on an SSD or a disk. You say, I want to access this book, this bite. This bike is in.
It's not your house the address of the bite you have the block the bite is in, and then you say, Well, where is it in there so may have the block. Maybe it's the 48 or 46,000 block.
And then inside that block you it's you know 50 bytes in.
You have to have both those things you have to have a blocker Tressler block offset kit.
Yeah.
But is this why you put items in rammed one of manipulate its you put your load data into ram because RAM is faster. You, and orientation some human principle could do things with it but we can operate a grand will we operate our registers registered
get stored in RAM and RAM Nick is put in persistent memory can blocks the different size, so.
doesn't it make finding data harder on certainly bite addressable storage would be more convenient, but it's just the nature, we have to work with the hardware was.
And, you know, this is also why we added obstructions. We don't normally want to deal with develop as a programmer, with blocks blocks are these fixed size, I mean it's just an inconvenient.
So,
so, so when you access a file on disk, what you're actually doing is accessing data stored in a set of blocks on disk, and that they know.
So really.
really good say to our first approximation, what's the job of the file system is to turn blocks into files, because blocks are really annoying thing.
Yeah, so you can have so a file into a file can take up arbitrary numbers of blocks. And in fact, if you have only one.
If you have a file,
So, one.
So a file was one byte of data will take up one block.
So, so yeah there's no, so there's.
so small files basically are inherently wasteful.
Normally, if you're talking about things that are presumably stored.
If you have a lot of small values that you won't have a name for you could, in principle, just have been miraculous files and directories.
But that would waste a huge amount of storage so we normally do something else that we have a little database or something like you could say the registry on Windows is, like, if you look at how the registries setup, it's this hierarchical key value stores
like what is just put it in files, wealth because of you put in files you'd waste huge amounts of data because each registry entry is like just, you know, a couple of bites typically, so you'd be wasting entire blocks on each of them so it's just not
efficient.
Could different devices have different sizes of blocks, all the sizes fixed on each block device. Yes. Yes, they can. It doesn't differ by OS. It differs by device.
In fact,
So let me show you. So,
so SCSI our scuzzy stands for small computer systems interface for various historical reasons. Most of the block devices that you have on your current system will their passwords will be looked kind of like scuzzy devices, even if they're SSD, these are
the things, it's asked to with the protocol that's used the protocols there's adult adult for scuzzy and then everything uses it now.
Um, but if you look at this file here you'll see all the devices that I have here.
And like these, I'm
okay. I'm
okay so like this. Okay, no that's just all the devices so I want.
I see this should be
okay.
Wow.
Yeah, there's no devices.
Okay, anyway.
Never mind.
So, the block sizes fixed.
Yeah, you can't yeah blocks and blocks are fixed size you can't do that. And in fact, so I was just trying to show you something. Oh, look that up I'm trying to see if I can show something that says the block size.
mostly devices nowadays have 4k or 8k size blocks.
So, But when we do this.
Why do I stop. I'm
sorry do this stop here. You'll notice it says
here is the size, number of bytes.
And then it says also blocks.
Eight.
So that means that it is taking up eight blocks but actually what these are, is what this block numbers actually one k blocks.
By default, and in fact IODIO block is 4096 what this is saying, you understand why that is, though.
That's a little odd. It's not right.
We
should do it.
Yeah, I don't know why you're saying pocketed Oh, 512 byte blocks.
That's why that's fibroid called bike locks. So what this is saying is this is saying it takes up for one k blocks, ie, but the IO block is 4096. So this is saying, very confusing.
So when you get the number of blocks, it doesn't actually tell you the number of blocks where it tells you the number of bytes used on disk divided by default block size here.
When you do LS dash las what it's saying here is this for, that's the.
That is the number of it basically what this is saying is it's taking up for 1024 byte blocks, which basically means the file system size here the block size is 4k.
So it's taking up one block at one block is reporting is for.
And you go over here to and that of course makes sense because it's 2440 bytes. So, you know, you know, you know, that's where yet. Now if we instead.
Um, let's see now I know I can do
file blocks, So this is block size. When said 24 count equals 10.
So, if the block size on disk was actually one k blocks. This should take up.
10, but it should take up 12, so it's a check to make sure I'm right.
Yes.
So you see it takes up 12, it will always be a multiple four, because the file system is in 4k blocks. I've made this 10 K. And so we got this so if i instead.
And I now do
this for an hour, we're going to make this nine.
Still 12.
But,
bro. she wants to come in. fine.
One second mercy. Busy showing something.
This.
And now, I've written eight K.
Now, it takes up eight.
Hello.
So.
So what I mean by.
So how do you know if it's taken one K. Yeah.
i Roshi Rosie.
How are we doing rushy rushy, He's not looking at me Roshi
look away, what are we doing.
Okay, here we go.
I suspect he wants food, but he can wait.
Anyway.
Okay, now you're going to sleep here okay fine slobber on my hand.
He's a big slobber.
Um, so, how many, how many blocks does this actually mean how do you know how many it's taking up. Well, you just look here and you see how this tells you how many one k blocks and from this from how this changes, you can infer that the smallest unit
of storage is 4k.
If you look at the man page for LS it'll tell you how many of you can actually specify the block size given to LS and it will divide it by this. So like if I say, What is it.
Here we go. So I can say
scale sizes by size and printing them.
Box
broke so let's go back here.
So there. So if I specify the block sizes 4096, then it gives me too.
But it also does it here.
So it's not quite what I wanted.
So
way dashboard is
there a way to specify them.
Let's go back to this.
So, uh, yeah block size set per box. Can you change the block size of submission permissions No, you can't.
So this is block size the feature of the hardware.
Now you might say.
So, so I prefer spinning hard drive.
So the talk, SSD is recharged spinning hard drives, you have different things.
You have different reasons why but it's just the physical medium doesn't allow for reading and writing of individual bites you read and write, sets of bites on.
No sectors boys on the same size.
So do we have eight blocks, what we actually had was so confused looks like we are playing with 4k blocks practice number one.
So, which should you use for tasks, it all depends on the real.
the real problem is locks as a concept are only visible to the colonel user space can't see it.
Although it sees the effects. And so you can infer what the block size must be based on what the colonel reports to you but the colonel doesn't just say, this is the block size, I think for various historical reasons I don't know.
So it's, it's a confusing. It's annoying. What, but in practice, it's not that confusing because you're never actually.
So in user space, you can't do operations on a per block basis. So knowing about the block size, lets you know about how much space things are going to take up when you use them on disk, but you can actually address blocks individually.
You only deal with files and directories. So in some sense, it doesn't matter except to know this is an implementation characteristic.
Oh yeah, so, so what there is. So, normally, so.
So file systems have their own block size, which is generally in multiple have to have the at least have the physical block size.
What's our question.
So okay.
So, so, yeah, basically you can have your physical block size. it's whatever it is and the reason why is.
Oh,
Ok.
Ok so anyway so I'm messing fractions of a physical body through most of the designer.
what's more on file block size mostly grid and the physical block size or else it's not switching access invalid memory is just your, it's going to be very inefficient because every time you read say at one k block, you would actually, let's say if the
physical block side was 4k, and you read one k blocks of time, you could just choose 321 k block, but then you actually got 4k.
So, what did you do with the rest. Either you're squishing and other blocks in there. And you've read all of them and now you're ignoring them, or
you're like, using a quarter of the storage for each block you're only using one k of the 4k block, it'd be kind of silly.
Yeah.
Yeah, so.
So what are we doing with the in the tutorial here is you're playing with files and file systems. So in the first part, what you're playing with is this.
So what do we first doing here we're now looking at.
I haven't, I have to finish my explanation because I've talked about blocks.
Can't talk about things yeah cuz I haven't talked about, I know it's the most important concept here.
So the file system data structure has to determine how to use blocks was officially a store directories and files.
How.
Why is this a tricky problem, because remember.
you also have to have directories fit into blocks and blocks are
your blocks are fixed size so we have to have it gets complicated if you think about how do you do this because directories can be arbitrary size and files can be arbitrary sized yet, we're putting in these fixed size chunks and so we have to organize
things so that we can access all this. And there's also one other characteristic of file systems that we have to account for.
So, this is another weirdness, which has some utility, but also some works. So let's go to, let's go to our show here.
So, if I now try to
What's up, just disappear things up a little bit so we're now in a directory here.
We have this directory here.
I'm going to make a file.
So I've got a file f1.
If I copy this file.
I found one. I have f1, f2, they're exactly the same.
They both have their own storage because I've copied it.
I just signed with a larger block size increase IO speed, potentially Yes, it's larger block size and general faster, but you potentially waste more storage.
So, so you have file one file to be made a copy.
We can also do symbolic links.
Now we have f1 an s3 s3 refers to f1 by name. So if I can't f1, I get that and a cat, a cat at three.
They're both referring to the same file. If I now, if I move f1 to f1.
And I can't now, f3, it will say no such file or directory, because f3 is referring to f1 and I changed the name of f1 to f1 dat renamed and so this name references invalid.
But if I move. f1 definitely named up to f1,
the symbolic link works.
But we have one other kind of Lincoln Unix we have hard links.
So I can do ln now with the dash us just ln f1, f4.
Yeah.
Yeah, exactly so so symbolic links are shortcuts.
Yes, except that shortcuts on Windows cannot be used everywhere that a regular file can and symbolic links on Unix can essentially be used everywhere.
Almost I mean they, you just do a normal open the symbolic link will be followed and you'll go to whatever it was referring to shortcuts you have to do it.
I mean, not every person can just open a shortcut I mean you see shortcuts in your desktop and Windows but windows does have a symbolic link kind of mechanism in there but that's not what shortcuts are typically implemented as so it's.
Yeah.
Yes, you can do some mock links to symbolic links you definitely can. There is a limit. However, I'm not sure what it is but there's a limit to how many symbolic links can refer to some backlinks because otherwise it can cause problems.
But it's a good number, it's not that small, so it's not really an issue, back to us. So I've done this. I've done, I've just done ln f1 to f4.
And everything is as we expected.
And the sense of cat f1 Is there a cat.
f4, it's there.
But there's a couple of differences. So now, if I move f1 f1 renamed
for still works. I didn't break it.
f3 is broken but for is not. That's why it's called a hard line, because even if we change the name, it still works.
If we change the name is still works. But there's another weird thing. And then once you look at the structure entry.
Notice this number that we've kind of been ignoring this whole time before, before I did this whole operation. These were all ones.
What the moment I did this added an f4.
The number changed to,
as, as did this change to two, as well as f1 change to to
know it's just the name.
Is there aren't we in past the show that's a hard link.
No.
Because here's the thing.
Oh.
All regular files basically are hard links.
So the I know is a data structure this is. So, instead of it so you have a directory.
So I nodes contains pointers to blocks with file data, and the directory is just a name to I node mappings.
So when you have an unsafe fall, you have a ram and when you, when you give it to an IRA to commit to just the hardware does the actual data copying from random persistent memory.
Basically, yes.
It's a bit. There's a couple of steps in there but yes, when you like right now when I hit save. What it's doing is it's writing the contents of RAM, in the process to the file on disk through using a right system called an open or right and the close.
Neil Smith potentially several rights
up. But now you're wondering like can we see I nodes, we can see I knows
about the dash, I option.
If I add the dash, I option.
This tell me the I know numbers. and notice here, everything has an eye node.
And notice here that the I know number here.
So I'll just I'll just show specifically.
So you'll notice that f1 and f4 have the same I know number.
While
f1 f2 have different I know numbers. Now, how can we see this, I can say echo.
Notice there's still the same. And I echo goodbye for so if I kept at one.
It's changed.
So the question is to all that so.
So you might say, the new files k all star with for somebody so the reason it all starts with 4787, is because this is my file system here, this is, you know,
This is my file system. It's a 1.8 terabyte file system.
He has a lot of I know it's because there's lots of files.
So, what this is saying is, I think there are literally, you know this, they're saying there's 47 million I know the least is the 47 872 or 46. You know, I know.
Quick 1.3 terabyte us Yes. So, so you all know it's have reference to the physical blocks or the virtual blocks. So, I nodes will have reference to file system blocks which are, you know, I wouldn't really call them, I call them virtual box.
Yeah, which, which then have a mapping to physical blocks Yes, but the mapping from virtual blocks the physical boxes just a multiplier, it's you know it's, you know, well, there can be other things but yeah so it's it's a reference to a file system,
because the file system is all there and then there has to be a translation of those file system blocks to what the physical blocks are but that mapping is simple.
So, so yeah so there's, you know, there's a lot of files here every file has its own I node.
Now, one thing to realize is that I know numbers.
You might say, Well, why do I need to spam file systems, when my trial file systems here. Well, look at my system here, my system has a bunch of file systems.
That's what df does df is don't file systems. And this is why also says one k blocks. You know, it's the other things here. So, run is a temp Fs so this is actually a file system that's just in RAM slash is my home directory HDB HD to.
That's right that slashes my route file system.
So my data is is mapped to HD to this is actually where I'm.
Where am I now, I am. I think I'm in interesting too.
Yeah, I'm in someone data, your home, home is, is, is, I've mapped it to HD too. So, what this is is I actually have a laptop here.
When you have a program that's a huge ram hog like Chrome, and it needs to save stuff does it continue to just memory space on disk.
Yes, that's called swap, we will talk about it when we talk about virtual memory that's necessary spots, you know,
No.
Martin, I say file system blocks boxes and boxes just Virtual Box. There's that you don't add an extra level in there.
What's run user.
So,
so run is a, is a thing for so.
So what run user 1000. This is referring to UID 1000.
So this is stuff that various processes on my system.
Basically this is a way for process to communicate with each other on the system. I'm running a desktop environment so there's a lot of processes running.
If you look in run user, you know, and the user ID have it on in your class VM the leaf, fewer unless you're using a graphical, you know desktop.
There's more stuff here.
But there has to be with my name pipes and stuff which we have not talking about.
But first, just realized that there are many file systems.
So file system can be used but does not have to be based on physical storage provider hard drive as estate.
All contents can come from anywhere now this matters. Because if I do this df.
It turns out RUN RUN lock are an essay Hm, these are all have tight temp Fs. So they are based in RAM, they're basically ram discs. So, if you reboot your computer the contents of these will be erased.
But, this, and this is a, this is an envy me drive, this is actually this is the envy me drive in my laptop, Dev mapper summit data, it's an encrypted partition external SSD.
That is no classify USB three that's a separate thing, but there are more file systems in this, this is not all the file systems here these are the ones that have storage df by default excludes a lot of things, if, if I say instead def dash, a that gives
me all of them.
We get this. And I have a whole bunch of them. So let's just look this kind of things that I have here. So a lot of these, you know, snap, snap to actually have their own file systems.
I have a number of snaps on here I have for demo, you know, give him by have know my chromium, I have a Firefox one so each of those are doing their own file system so that thing will explain a bit but by more interested in our the persist proc Dev.
Dev pts. These particularly system proc. These are means for interacting with the colonel their file systems, But you know. So the trick is.
So, this is a weird thing you're looking at how can I file system have no blocks we look at these things they say it has zero blocks.
Even has zero blocks, it's like zero blocks zero used zero available going like that doesn't make much sense, because there are, there is an actual storage associated with them.
Yeah.
Yeah. Snap is a package management.
So, so, by the way, if you're talking about other file systems.
So,
for.
So these are all forces for Linux.
Try to remember what the H is, what are the HDFS HDFS, and then there's a new
API pass rather though these are these are houses or Mac OS.
Okay, so I'm Carson I'm getting to that real quick.
So these are all so there's lots of different kinds of file systems.
So, what I'm saying with POC, when you go over here with slash proc slash sis by go into slash proc.
There's a whole bunch of files here.
And I can do things like cat version.
There's certainly data there but if I do an ls la version.
It says that its length is zero. This is wrong.
Clearly,
I even say La as it says it takes up zero blocks, because there isn't actually a storage associated, what we're doing is, when we request pocket version, we're asking the kernel, for its version and the colonel goes oh, here's the version here if you
want to get information on running processes, that's in these directories, we're using a file system interface, but we're not actually reading data from any persistent storage, we're reading data structures in kernel memory.
Now, it could calculate this and say oh how long is that version string and it could kind of these, but it basically goes.
That'd be too much work.
Doesn't really matter.
So it doesn't bother.
because it's making your passing goes.
What would it report LS report for the eye noses lockbox, I'm good.
set by
which it does give I know numbers.
Interesting. That wasn't quite what I was expecting.
Yeah. I wonder if these are pointers.
Oh no no oh look. So, some of them have very large numbers but then others of them like
they all have the same I know number.
They're all I know that a team
does I know one.
And there's I know a team, and then there's all these other ones yeah the I know numbers are all weird.
So, but these are, these questions you're asking this is basically what I want you to do in the tutorials, is I'm going to give you tools, I want you to explore and see what the heck's going on to try to make a mental model of this.
Is there a reason behind those numbers one through 18.
Those numbers.
Wait. The 18th I'm messing up.
Right.
I'm sorry. That's not a team, these are the numbers right here, this is the unknown number here. 18 is from October, 18, and being stupid there. So, it's not, it's not a team.
Yeah, so like here. This one, so this is like it saying, April 1, that's the thing but like know the I know number is 919463 818-766-3066 230-663-3212.
Those the I know numbers.
And then similarly if you go into slash. So what's even funnier as you look in slash says, These are the ones is like Park and sometimes be quite large files in such says these are much smaller.
So like features.
So it's like oh supported.
Like, this is all key value store, so everything in this is a single value. So, if these were starting blocks, it would be very bad.
But no, it takes up zero blocks.
Oh.
Oh no no but this says we have legs.
4096.
But they take up zero box.
But they do have a logical size.
It's happy with the current need to keep track of which proc is which made me do that. So, it doesn't have all the colonel has to do all the colonel has to do is be able to, when you do an open of a specific file.
It has to when you open that file and have to say, what are we talking about.
Because when you do and we will talk about how this works in the kernel and you'll see how this happens but what the colonel just asked you is you didn't open request from that it has to give you a file descriptor and ask you remember what the file descriptor
refers to ensure the file and so whenever you do a read from that file descriptor. He knows what data structures to access in the kernel.
That's all it needs.
So it
will be seeing how this is all implemented it's very elegant, how it's all, it's all put together.
But I'm so it.
It turns out the API of file opening gives it enough state to be able to figure it out but it does have to staff things away along as he goes in order to be able to keep track of things but basically, it doesn't have to literally slash proc doesn't exist
until you access it.
And as you're accessing it will retain enough state to do that but the moment you stop accessing it, it won't take up any space, because really it's all generated by code on the fly.
So, what are we doing.
So let's. So, what are we doing in the first part, the first part, you're looking at, I knows.
That's what you're doing. And you're also playing with a thing called a system called called a map. And what that does is it maps the contents of a file into memory, but it doesn't actually load everything into, so.
So as you access that memory the colonel will automatically read and write the file as needed.
The rest can stay on disk, but they'll actually what's members, so that's that's what Part A is about playing with him.
And then, in be, you're playing with mounting and mounting file systems.
And so the idea here is that.
So, if I stick a USB. So like for example if I
have this directory called flash media. So, so much here so if I stick in a USB stick into my computer.
It appears here.
If I can do it.
There we go. So here it is.
I have a USB stick here.
I'm going to stick this into my computer.
Do I have a nice go there.
Okay.
So you see the moment I stuck that in a director was form and notice, so that's okay.
Like this is a yeah this was a.
This was an install disk.
I was this for Linux.
No, I think this was for Windows.
Don't remember when I use this. Anyway, this is a, I think there's a Windows and start but you notice that all the files on the USB stick, sit under this directory in media Soma here.
And the moment I unplug the USB drive.
I pull it out.
It's gone. So that's basically when I attach the USB drive, I mounted.
This device, and all its file contents were there and when I removed it was unmuted automatically now.
So now, So, let's see what channel.
json I'm not sure the context of your question I can try to just know that but so
if you change em that values in memory, the source of the map source will change to, if it's a read write a map. Yes, exactly. If you end up a file to to memory it'll change it.
So in, so we have this problem in that.
I want you to play with file systems.
But I don't really have device, I could set up the VM. So there was another drive you can attach to your to your virtual computer and he could try doing, we're gonna have to do with a physical computer, but those are all kind of painful.
So, but instead what I'm doing is you're making a file in that file you're making a file system because you're just because you're treating it like a block device and then you're mounting it, I'm just about out of time, I will explain this more on Thursday.
What this, what this whole loop back file system idea is I'll try to draw some pictures and see if I explain that, it's a bit of a confusing concept but it's very important to understand, especially if you're thinking about virtual machines and such.
But the other part of this is SSH Fs.
And well, SSH GFS remember just like proc.
He's accessing virtual files that are coming from the colonel SSH Fs accesses virtual files for the local system but they're real files on a remote system.
So you remotely access that and then you know can access all those things. So for example, I can
see if I can do this here.
So let me ask me if I sh.
So this is my VM here. I need to run updates.
So,
what.
I can't.
I'm
sorry I
messed up on homeostasis.
Yeah I have that problem here at my home directory was owned by route.
That's, I guess I have been creating directories on this so it doesn't matter. So log into this.
Yeah, secure show.
Secure show. So, so I've got this directory here, I can see all this stuff here, not what I can do is I can log out here on Chimera my desktop
suited for us.
So you see now.
I am so now I have made the files of homeostasis available on my local system of chi mera that remote systems data.
I'm now this is my local system. But when I go into, you know, if I go into homeostasis.
I'm actually accessing it there.
So you see you know I touched this file a nail was here.
And now I can
do it.
Okay so
basis.
now it's gone.
So I'll explain what I'm doing here more by one, and just started doing this year so you can see it in the recording.
Look here, you see, you know, I felt a Neil was here, is there.
Yeah, touch just creates empty file. Yep.
Touch also updates the timestamp of a file. So like if you want to make a file have the current timestamp, that's there but more commonly use it just to make an empty file.
Anyway, we are out of town, out of time, town of time, so I will continue with this. On Thursday, and continue showing you the ins and outs of file systems.
A note that you'll have another tutorial.