Oops. At around 20:00, I say that, within a directory, you can have both a file and directory of the same name, e.g. a file named foo and a directory named foo. This is wrong: every file/directory name must be unique within the containing directory.
PENDANTturnips I agree. He chooses his words very carefully to pack a lot of information into a single sentence. I have to pause once in a while to absorb what he says, you could try that out :)
+Brian I like the speed at which you explain things. I'm sick of videos that have little information and worse of all repeat the exact same things over and over again. Sure sometimes instructors talk too fast, but I prefer informative versus redundant.
These are fantastic. Clear explanation, dense yet succinct and non-redundant. I am taking notes and rewatching. Finally the mystery of the computer is starting to disentagle!
Brian these videos are great. I've just discovered your channel and I hope I end up watching them all. It's good to have a theoretical understanding of the things that underlie my own work which is coding in a scripting language. Keep 'em coming!
This and Hardware basics are the only things you need to see to know how computers work. I learned this all at university but often I missed forest for the trees. These series rounded all the things in my head nicely. I think I'll have to watch every single video on this channel.
I had my final today in an Operating Systems class and all of this stuff would've been so useful to see earlier. When I watched this, I was able to follow very well. It was nice to see the order you presented everything, it had a nice flow to it :3
Hey Brian, Just seeing this video and I have to say, there is a need for more content like this. Most high level developers don't understand some of these fundamentals and its really important
When this video started out, I thought it was going to be a sleeping pill. I was wrong, I have a LOT more confidence in what an operating system is and the components of. Thank you, Mr. Will.
I agree. Its rare to find people with expertise that make such videos. Him, Ben Eater, and 3B1B are the smartest and most knowledgable when it comes to math and computer science in general
What a fantastic video. I’ll have to make a point though. Although this video says basics, it’s not for beginners. It’s for those who already know most of these concepts, although not clearly and thoroughly, and can use this video as a guide to strengthen basic concepts. Once again, fantastic video!
This is a good video. I like the fact that you put the word "Basics" into the title. You are describing an OS using a monolithic structure. This is an understandable prejudice since Windows, Unix, Linux and Mac OS use this structure, however it is not the only possible OS architecture.
Intel's Hyperthreading adapts superscaling to run multiple threads (usually 2) on one core. Effectively, the OS can treat one core as 2 'logical' cores'. I've seen conflicting reports of how effective this is, so I can't say whether it's better to run two threads on the same physical core, or on separate physical cores, or whether it doesn't matter.
12:30 Damn I remember having to restart flash games back in the day because they would crash after a while because of memory leaks, nice to somewhat understand why now
It's a 23 minute video, but since I've only watched this video of yours as a standalone, you've spewed so much information that it took me over two hours to just decipher it all Especially since you speak so fast, and there's little graphic description to accompany the verbal barrage
When he explained how the stack memory and heap and everything was allocated and mapped I started thinking that it just seemed very inefficient. I know that's how it works but still, I think there's a better way. Also I think those fragmented heaps could be handled. Maybe not prevented but definitely handled by without human intervention.
You need quite a bit of knowledge already to really make much use of this video. For anyone who wants to really understand this video I recommend watching ISA MIPS, OS process handling (interrupts and process control blocks), device drivers vs. device controllers, Filesystems and Partitions tutorials before watching this.
The bottom-up address space seems to make sense for the little-endian storage of data...especially to an Irish viewer (as Ogham script is literally just etched upward along a sharp edge on a rock or a post). Except...execution of code progresses up the addresses too, and Logisim, for one thing, shows data addresses increasing DOWN the ROM and RAM.
Hello Brian, nice video, rly gave me the understanding of the basics. However nearly at 13:49 you are saying that each process can only access the RAM that was specifically mapped to it by an OS. Then how do cheat engine and similar programs work? They are able to access the memory of other processes or?
+Igor Fedotov I overstated it there. Some OS's allow a process to muck with internals of another process via syscalls if the process has sufficient privileges. This can be useful for things like debuggers. (Not sure that's what's going on with a typical cheat engine though. Anyone know more?)
@ 21:13 does it means that "partition 1" resides under "partition 2" and then "partition 3" resides under "partition 1" and therefore partition 1 & 3 are the subset of partition 2 ?
How is the program actually ran? U said that when we return from a stack frame, we use the return address to go back to the parent call. But the actual instructions are stored in the stack? Or does this return address reference memory to the instructions stored in the text area of the memory?
According to my understanding, page fault is when cpu generates an address whose page is not on ram and we need to bring that page to ram from hard disk.
So, you said that when a system gives a process a heap chunk, the process tracks the space the heap uses as well as the system. Why not have the system inform the process of all it's heap spaces whenever new heap is asked for? Then the system could defragment the space by shuffling the heap spaces to keep the free space as large as possible, doing this only when new heap is required and passing back the the heap address spaces to the process. Would this not be possible, or is it bad for some reason? (though obviously, certain controls may be desired to keep the defrag from happening too often and other issues naturally)
What you are referring is called compaction or defragmentation. It requires lot of time and the memory should be be dynamically relocatable for it.(correct me if I am wrong)
I heard that instruction pipeline allows one core to work with several instruction threads at the same time, I thought that those threads are the processes running simultaneously. But you say that one core is capable of executing one thread at a time. So a single process is actually divided into several threads or what?
The pipeline how stuff moves through the whole CPU, load store unit, control unit, mmu, alu, fpu, etc. Pipelining allows you to start say loading the next instruction while you're still running the last.
If a CPU had a voice, this is it.
We need a Mr.Data Text-to-speech lol :D
He has a good voice, it's clear and easy to listen to.
And GPU would be his wife.
That is a great comment
**he sounds like technoblade**
that is the best voice from tutorials I ever heard.
This is THE best OS intro I found so far in youtube.
still the best one?
Oops. At around 20:00, I say that, within a directory, you can have both a file and directory of the same name, e.g. a file named foo and a directory named foo. This is wrong: every file/directory name must be unique within the containing directory.
God damn I love your videos, but one thing I have to criticize is that sometimes you talk too fast.
PENDANTturnips I agree. He chooses his words very carefully to pack a lot of information into a single sentence. I have to pause once in a while to absorb what he says, you could try that out :)
+Brian I like the speed at which you explain things. I'm sick of videos that have little information and worse of all repeat the exact same things over and over again. Sure sometimes instructors talk too fast, but I prefer informative versus redundant.
Brian Will Thank you. Thank you, thank you, thank you! Very informational. Very detailed, very in depth yet quite understandable. I loved it.
I think this video is perfect for preparing half a semester of an operating system course. Thank you, Sir.
Deep voice is deep.
...and monotone
@@saveUyghurs yes
These are fantastic. Clear explanation, dense yet succinct and non-redundant. I am taking notes and rewatching. Finally the mystery of the computer is starting to disentagle!
Brian these videos are great. I've just discovered your channel and I hope I end up watching them all. It's good to have a theoretical understanding of the things that underlie my own work which is coding in a scripting language. Keep 'em coming!
This and Hardware basics are the only things you need to see to know how computers work. I learned this all at university but often I missed forest for the trees. These series rounded all the things in my head nicely. I think I'll have to watch every single video on this channel.
don't listen to this guy, this video doesn't even summarily scratch the surface of the subject.
I love this video. I turn it on from time to time just to hear his voice and refresh my knowledge. Thanks Brian
I had my final today in an Operating Systems class and all of this stuff would've been so useful to see earlier. When I watched this, I was able to follow very well. It was nice to see the order you presented everything, it had a nice flow to it :3
Hey Brian, Just seeing this video and I have to say, there is a need for more content like this. Most high level developers don't understand some of these fundamentals and its really important
When this video started out, I thought it was going to be a sleeping pill. I was wrong, I have a LOT more confidence in what an operating system is and the components of. Thank you, Mr. Will.
A complete refresher on Operating Systems. Took me back to college days!
A great, condensed and clear summary. Thanks Brian
Excellent presentation of OS Basics. Thank you!
Best CS video on the Internet. Period.
It’s a really really enjoyable thing to listen to your voice. I mean, the tone and fluency of your voice exaggerate the effect of my study. Thank you!
My eyes were begging me to let them rest, but I had to finish the video. Unreal clarity in your explanations! Most would need 1h to do the same.
If you change the speed to 0.5, it gives the illusion that Brian sounds drunk! Great videos Brian, thanks!
Luke Griffiths i
He was actually drunk recording this and sped it up later.
You've explained everything pretty well.
Thank you for the video.
It feels like I'm connected through the matrix and your voice is like Morpheus injecting information into my head
I like it, subscribed.
thanks champ.
Awesome video, just as informative as any college lecture. Thanks for making!
This is great, well presented and the voice was perfect for me to follow.
Great video. One of the best I've watched. Thank you.
watched the whole thing in one sitting… Feeling High! Thanks For The Valuable Information!! Liked Your Voice.
bruh it's only 23 mins long lol
@@HK-sw3vi bruh it's a 3 year old comment :p
This is a really clear explanation. Thank you Brian!
wow thanks this really helped my find out whether to get a Manuel or auto transmission in my new ute.
This man actually sounds like he knows what he is talking about
Unlike most random OSdev tutorials on CZcams
I agree. Its rare to find people with expertise that make such videos. Him, Ben Eater, and 3B1B are the smartest and most knowledgable when it comes to math and computer science in general
Bruh... Your videos are SO informative ! Really love them!
What a fantastic video. I’ll have to make a point though. Although this video says basics, it’s not for beginners. It’s for those who already know most of these concepts, although not clearly and thoroughly, and can use this video as a guide to strengthen basic concepts.
Once again, fantastic video!
Video Well made. Very on point. I love it when people put effort into their work.
Thank Brian for this awesome video, it helps me alot!
What a clear straight forward video, really good
Nice explanation. You're definitely talented in knowledge sharing, thank you!
concise agnostic overview of OS (and some CPU) fundamentals. thank you.
Great video. packed with information
thanks for this video.
just today i started learning this course
amazing.
you are one of my favorite computer topic explainers
you are gifted. keep sharing the gift
Exactly the kind of content I was looking for! Thanks a lot :)
Absolutely phenomenal , loved it , thanks much
I can't stress how helpful your videos are. I love u c:
A joy, this video is a joy..
And tge channel is a treasure.
This is exactly what I was looking for thank you
Amazing summary! Thank you good sir!
This is a good video. I like the fact that you put the word "Basics" into the title. You are describing an OS using a monolithic structure. This is an understandable prejudice since Windows, Unix, Linux and Mac OS use this structure, however it is not the only possible OS architecture.
Brilliantly explained !
This was very helpful. Thank you!
Wow this is great video and I learned so much thanks a lot! Keep it up
Very nice, thank you for explanations!
You sound like a radio host lol. Great video!
Awesome video. Thank you!
Its a very nice and useful tutorial ..
Thank You.!
Big fan of Brain's. Informative. Pithy. Thanks.
These videos are excellent
Intel's Hyperthreading adapts superscaling to run multiple threads (usually 2) on one core. Effectively, the OS can treat one core as 2 'logical' cores'. I've seen conflicting reports of how effective this is, so I can't say whether it's better to run two threads on the same physical core, or on separate physical cores, or whether it doesn't matter.
This is the same way the an OS can treat one disk as two "logical" disks.
It is always better to have two separate physical cores than to interleave two threads on the same core.
Very good ! ... thanks for making this video
This video is brilliant!
Your audio quality is really nice.
Oh so that's what "stack overflow" means, I feel like I'm in on a very nerdy joke now
same haha
Brilliant, thank you.
Excellent fucking video. So many questions answered. Thanks a bunch!
great video!!' english is not my mother tongue however i managed to grasp your lecture by the plain and descriptive presentation
Brian, you are doing god's work! Keep up :)
this is pretty awesome!
this is incredible
best video on CZcams
This is really educational and well explained. I just wish your voice didn't make me so sleepy.
12:30 Damn I remember having to restart flash games back in the day because they would crash after a while because of memory leaks, nice to somewhat understand why now
It's a 23 minute video, but since I've only watched this video of yours as a standalone, you've spewed so much information that it took me over two hours to just decipher it all
Especially since you speak so fast, and there's little graphic description to accompany the verbal barrage
this video is good after you have studied the topic as a sort of checklist recap to make sure you understand everything
But when a stack overflow occurs on my computer, I usually solve my programming problems!
This so good!!
The architecture I have been working on eliminates the need for pre-emptive multitasking
GREAT, informative
This dude's videos are the fundamentals that all these coding boot camps don't teach you, but should know.
Great video 👍
This is awesome.
When he explained how the stack memory and heap and everything was allocated and mapped I started thinking that it just seemed very inefficient. I know that's how it works but still, I think there's a better way.
Also I think those fragmented heaps could be handled. Maybe not prevented but definitely handled by without human intervention.
OMG DUDE THIS VIDEO IS SO COOL!! SO EDUCATIVEE! TY!! IF YOU CAN , please meake more videos like this :D they are so cool!
I wonder what it takes to know so much about computers. What level of formal education do you have?
You need quite a bit of knowledge already to really make much use of this video. For anyone who wants to really understand this video I recommend watching ISA MIPS, OS process handling (interrupts and process control blocks), device drivers vs. device controllers, Filesystems and Partitions tutorials before watching this.
thanks, fam. I was confused. Doing my individual research before heading to the proper IT fields.
What tutorials did you read? Mind linking a few you found useful? I am rusty on OS fundamentals.
Can we get access to the slides that are presented in this video, it's a very good and informative video ?
The bottom-up address space seems to make sense for the little-endian storage of data...especially to an Irish viewer (as Ogham script is literally just etched upward along a sharp edge on a rock or a post). Except...execution of code progresses up the addresses too, and Logisim, for one thing, shows data addresses increasing DOWN the ROM and RAM.
great video
Hi Brian, The linked url for the full series seems to be down. Is there any alternative site for the series?
This vid is quality!!
Amazing !!!
Hello Brian, nice video, rly gave me the understanding of the basics. However nearly at 13:49 you are saying that each process can only access the RAM that was specifically mapped to it by an OS. Then how do cheat engine and similar programs work? They are able to access the memory of other processes or?
+Igor Fedotov syscalls
+Igor Fedotov I overstated it there. Some OS's allow a process to muck with internals of another process via syscalls if the process has sufficient privileges. This can be useful for things like debuggers. (Not sure that's what's going on with a typical cheat engine though. Anyone know more?)
@ 21:13 does it means that "partition 1" resides under "partition 2" and then "partition 3" resides under "partition 1" and therefore partition 1 & 3 are the subset of partition 2 ?
You got one badass voice.
How is the program actually ran? U said that when we return from a stack frame, we use the return address to go back to the parent call. But the actual instructions are stored in the stack? Or does this return address reference memory to the instructions stored in the text area of the memory?
Why do we switch from the user's stack to a kernel stack when we enter the kernel ( e.g. for a system call ) ?
nice video!
Brian Will make informative videos.
Can I ask a question. Where I can apply the idea 'Data Structures ' in this video? And why it is used?
Wht u mean? Stack data structure is used
How about machine learning code? Doesn’t those codes change on runtime?
"Still, creating multiple partitions serves some niche use-cases"
Like running OpenBSD.
According to my understanding, page fault is when cpu generates an address whose page is not on ram and we need to bring that page to ram from hard disk.
Thank you
So, you said that when a system gives a process a heap chunk, the process tracks the space the heap uses as well as the system. Why not have the system inform the process of all it's heap spaces whenever new heap is asked for? Then the system could defragment the space by shuffling the heap spaces to keep the free space as large as possible, doing this only when new heap is required and passing back the the heap address spaces to the process.
Would this not be possible, or is it bad for some reason? (though obviously, certain controls may be desired to keep the defrag from happening too often and other issues naturally)
What you are referring is called compaction or defragmentation. It requires lot of time and the memory should be be dynamically relocatable for it.(correct me if I am wrong)
I heard that instruction pipeline allows one core to work with several instruction threads at the same time, I thought that those threads are the processes running simultaneously. But you say that one core is capable of executing one thread at a time. So a single process is actually divided into several threads or what?
The pipeline how stuff moves through the whole CPU, load store unit, control unit, mmu, alu, fpu, etc. Pipelining allows you to start say loading the next instruction while you're still running the last.