People are getting offended by the title, but it’s really not that deep 😂 Please go touch grass if you’re getting triggered by something like that. Otherwise great video! Don’t mind the comments and keep up the great work.
"Please go touch grass if you’re getting triggered by something like that." So basically you don't think people are justified in objecting to sweeping derogatory statements about their profession? I think it's you who should go touch grass and let people have a voice instead of belittling them for having a different opinion to yours.
Some people are crapping on this video due to its fundamental and simple nature that SHOULD be known by devs. News flash, I've met tons of devs that only code in JavaScript and have no idea how a computer works. So this video is perfect for that audience where they don't do "backend" work
Newer devs can get away with missing a lot of fundamentals, and still be productive, but maybe not so efficient. Back in the DOS 3.2/3.3 days, I had to write a program that read the real time clock chip on a Leading Edge computer, I believe they were Model D machines, and then set the date and then in the operating system. My electronics instructor was helping me with it, and we had to determine what the clock chip was, then locate the data sheet for it, then convert what it read from the clock chip into the format that DOS wanted, and do a syscall to write that time into the memory. This was all written in 8086/8088 Assembly Language. And this was before most people had even heard of the Internet, and 80836 computers were the hot new thing. This all came about, because we upgraded the math lab computers to have hard drives, and the Leading Edge version of DOS 2.11 didn't support a 30MB hard drive.
Nice video. I'd say most devs who took an Operating Systems class at university would at least have a vague idea about system calls. Only a fraction ever actually write code where performance is so important that you have to look at the mechanics of system calls or how often you use library methods that rely on a syscall, so I am not surprised that they might have forgotten the specifics. I haven't solved a calculus problem in ages, so if you show me a Fourier series equation today, I'd look like a total idiot, even though I was good at it 15 years ago and have a degree in Electrical Engineering 😅
I learned all of this in systems programming but totally forgot. We had to rewrite malloc from scratch in that class which was cool, but it was also a nightmare.
My take is it's an informative video. It's hard to balance information and entertainment. If you go to deep into networking (which isnt as simple as socket then send) you'd be here all day. This level of understanding is important just like i think all CS degrees should require assembler classes but alas im a dying breed. Good video for what it is.
I'm pretty sure forking and klling orphans and syscalls and task scheduling are something every cs student must take to pass their uni's equivalent of OS management course / module.
It depends on what percent of developers are computer scientists/engineers because these majors study operating systems in university including system calls (though it's all theory)
I think most devs know what system calls are. I also think most devs rarely if ever actually interect wtih them. (With the exception of some open source lib writers and low level systems programmers) For example if I'm writing an application that needs to handle io I don't do it by using system calls directly. I do it by pulling in a dependency that handles the difference in io between operating systems. This saves a ton of work for me.
Great video! You managed to explain a pretty complex subject in a simple and easy to understand way. I also very much appreciated the dynamic red arrow in most slides which managed to highlight they key information that is being communicated and helped engage and improve attention. If I were asked to give some positive criticism about the video, I would tell you to consider making some of the briefly displayed slides a little longer, to give the reader time to understand what they are seeing in the slide (some of the not so simple slides were displayed for under 5 seconds making it hard to understand what the graph is representing, all while having to process the audible explanation). Another thing that comes to mind is to consider slowing down your talk speed when you're providing a piece of information that requires more concentration on the audience part to understand. Keep up the good work ✌️
I feel like you are leaving a bit, for example you should have differentiated the actual system calls and library "system call" functions that look like system calls, like on Linux, fork() is not a syscall, it is implemented by clone() and clone3(), and also between different CPU architectures syscalls are not the same! Also, no mention of how syscalls work on non-Unix OSes (e.g. Windows NT)? Finally, you should have included a way to invoke a raw syscall, and see the result with strace!
Nice, very true that switching context is expensive, it makes complete sense. It would be nice, perhaps, to add some code examples, to really show how to optimize. You made me think, I guess if your code has to open a bunch of files it's cheaper if you do it all at once than from time to time?
Wrong at every level. Kernel Mode is not "for the system" but for part of the kernel. Some parts might be in User Mode (on x86 a different Ring). Parts of some apps are running in Kernel Mode such as eBPF on Linux. Direct access to hardware is naturally also available in User Mode, but it has to ask the Kernel to allow it at first, not necessarily to handle it. And so on...
If you're an average programmer or mediocre programmer (working on the frontend and backend), you will not find this useful. But if you want to do low-level programming like embedded or kernel development, compilers, databases, etc. you need to know all those concepts. Even if you don't do low-level programming, it's still useful to learn about operating systems.
I'm one of the 1%, do I get a coffee for free or in which way am I special now 🤒? But for real: when you're a into Linux and C programming, a bit more knowledge and you should be at the 1%. So many Javascript writers out there 🙂?
These are very basic facts about API that every developer understands. And if they did a degree or read any os book, it's definitely covered there. Click bate title and not a lot of value for 5 minutes. Expect better.
umm... not everyone has read an OS book, or remembers everything from their degree... tbh you shouldn't generalize and assume that everyone has the same knowledge as you. being an expert doesn't imply everyone is an expert. quite narcissistic.
@@TheCoder-1924 Saying 99% of developers (which is a stupid estimate anyway and a generalisation which you condemn) doesn't know what a syscall call is, it's a complete spit in the face click bate to any developer. The quality of the video is without a question - it clearly explains what it is and provides useful information. But what you are saying is completely irrelevant. I simply point out to the author not to fall into the awful trend of click bating. There is nothing narcissistic about it, nor am I an expert in anything.
@@LinuxIsBetter-p8f having a vague idea of what a syscall is, is not the same as understanding it. I don't think the video is perfect but to say it has no value for 5 minutes (when almost every second is useful information) is mean tbh. like I do agree the title is a bit clickbaity but the video itself is excellent for the number of subscribers the channel has. just my opinion. you can say with less harsh words... but you have some point about inaccurate statistic. english is my second language but regardless for me I have learned lots here, and will continue to watch much more of the videos on OS (as it is a weak point. I'm not expert here like you assume all viewers are).
@@TheCoder-1924 My intention is to not to be mean, nor do I assume myself or anyone else as an expert. Here is the thing though - going past the "vague idea", the video simply defines what a system call is, gives a few examples like read(), mentions trap tables. This is very basic stuff. Is that bad? No! These things can be difficult to understand, but when someone with 8 years of experience in development (not me!) sees this video, they think they are going to learn something about a system call. After all, 99% of developers don't know about them... What are the odds they do? I think the expectation here is a bit beyond a Wikipedia page summary. I felt disappointed, and they will be too. And this kind of thing makes this platform absolute piss show. Make good content for appropriate audience, don't wrap it something it's not.
Idk what you mean by developers, but 99% is too high. If you haven't even heard of system calls. Idk who taught you programming. Ps. By "you" i'm referring to the reader, not the content creator.
This statistic was pulled from an uninitialized variable in a poorly documented legacy codebase, buried deep in a spaghetti-code function that hasn’t been touched since the intern dev who wrote it left the company.
@TheCodingGopher lol, that's why I was asking by what you mean by developers? Because if those were proper software engineers. I think the percent should be lower
@@asagiai4965 Yeah, the title may be a bit exaggerated. In my opinion, while many developers may have heard of syscalls in passing, only a few truly understand their inner workings, and even fewer have hands-on experience optimizing them.
Lmao false. There's a ton of developers writing useful and valuable software who don't know this stuff. Should they? Absolutely, but it's not going to stop them from getting a paycheck.
@@xevious4142 I see you miss the picture here. You can call yourself a doctor, heck you can even _work_ as a doctor without being a proper doctor but that runs a severe risk of legal prosecution. Working as a developer without being one comes with less risks, as you excellently pointed out. Still that only proves I'm right, thanks mate.
@@HoSza1last time I checked, programming Perl is programming So a Perl dev is a programmer Sometimes, the simplicity of a task means it isn't worth it to build it in C Thus the people solving the simple tasks shouldn't need to know syscalls Does my app that sends an automated email really need to implement the entire SSL and SMTP stack? Should it be that optimized? Written in assembly? Heck no! "Does a bee really need to know the physics of how a flower makes pollen to make honey?" I'd argue no The bee just makes honey with the pollen and can't care less how it was made It applies in this case too
People are getting offended by the title, but it’s really not that deep 😂 Please go touch grass if you’re getting triggered by something like that.
Otherwise great video! Don’t mind the comments and keep up the great work.
"Please go touch grass if you’re getting triggered by something like that." So basically you don't think people are justified in objecting to sweeping derogatory statements about their profession? I think it's you who should go touch grass and let people have a voice instead of belittling them for having a different opinion to yours.
@@brandyballoon Please go and touch some grass & grow up , its a video title, dont like it then dont watch the video simple
99% of developers do all their coding at least five layers above system calls
Nice video. However, adding references to the articles and figures shown in the video in the description would be highly appreciated, as well.
Noted, I'll add references for future videos!
It will likely not include every figure - but the main readings / articles / research papers will be included
Read a book you absolute tiktok brain.
tbh i don't even get normal calls because i have no friends
lmao 🤣
99.9% of developers quit before they actually know what theyre doing
Some people are crapping on this video due to its fundamental and simple nature that SHOULD be known by devs.
News flash, I've met tons of devs that only code in JavaScript and have no idea how a computer works.
So this video is perfect for that audience where they don't do "backend" work
Newer devs can get away with missing a lot of fundamentals, and still be productive, but maybe not so efficient. Back in the DOS 3.2/3.3 days, I had to write a program that read the real time clock chip on a Leading Edge computer, I believe they were Model D machines, and then set the date and then in the operating system. My electronics instructor was helping me with it, and we had to determine what the clock chip was, then locate the data sheet for it, then convert what it read from the clock chip into the format that DOS wanted, and do a syscall to write that time into the memory. This was all written in 8086/8088 Assembly Language. And this was before most people had even heard of the Internet, and 80836 computers were the hot new thing. This all came about, because we upgraded the math lab computers to have hard drives, and the Leading Edge version of DOS 2.11 didn't support a 30MB hard drive.
Lol, neither do Java programmers understand these stuff. All they know are the Spring framework annotations and HTTP POST JSON "microservices", lol.
Hands Down one of the best explanation on syscalls 🙂↕️
99% [source needed]
73.6% of all statistics are made up
@@TheCodingGopherclassique statistic as amateur. I love it !
Interacting with the outside world... I don't know... It's cozy here inside.
As a CS grad, I prefer to lie on my couch
@@TheCodingGopher
Same. Instead of frequent going outside requests, I batch my tasks and go outside once a week to buy something or do something :)
@@Gameplayer55055 That's some solid performance optimization :)
Nice video. I'd say most devs who took an Operating Systems class at university would at least have a vague idea about system calls. Only a fraction ever actually write code where performance is so important that you have to look at the mechanics of system calls or how often you use library methods that rely on a syscall, so I am not surprised that they might have forgotten the specifics. I haven't solved a calculus problem in ages, so if you show me a Fourier series equation today, I'd look like a total idiot, even though I was good at it 15 years ago and have a degree in Electrical Engineering 😅
I learned all of this in systems programming but totally forgot. We had to rewrite malloc from scratch in that class which was cool, but it was also a nightmare.
Some of y'all haven't touched c and it shows
That sounds pretty dirty haha.
c as in pu c
your vids are getting better and better :) this was a really interesting video, hope to see more like it
My take is it's an informative video. It's hard to balance information and entertainment. If you go to deep into networking (which isnt as simple as socket then send) you'd be here all day. This level of understanding is important just like i think all CS degrees should require assembler classes but alas im a dying breed. Good video for what it is.
I kinda knew all of that, I guess couple years of hacking the PlayStation vita kernel pays off I guess?
I'm pretty sure forking and klling orphans and syscalls and task scheduling are something every cs student must take to pass their uni's equivalent of OS management course / module.
Me too
It depends on what percent of developers are computer scientists/engineers because these majors study operating systems in university including system calls (though it's all theory)
AWESOME no fluff explanation.
I think most devs know what system calls are. I also think most devs rarely if ever actually interect wtih them. (With the exception of some open source lib writers and low level systems programmers)
For example if I'm writing an application that needs to handle io I don't do it by using system calls directly. I do it by pulling in a dependency that handles the difference in io between operating systems. This saves a ton of work for me.
Having worked with nepo baby soft eng masters degree holders and other such peers, title is accurate.
Fundamental to computing does not equal fundamental to a programmers day to day
1:10 Not in Temple OS, for programs written in *Holy C* . 😂
Me who writes emulators: Hmm. Interesting
what kind? can u please tell me what i need to know to be able to write emulators
You have to have fought in the Emu War
Great video! You managed to explain a pretty complex subject in a simple and easy to understand way. I also very much appreciated the dynamic red arrow in most slides which managed to highlight they key information that is being communicated and helped engage and improve attention.
If I were asked to give some positive criticism about the video, I would tell you to consider making some of the briefly displayed slides a little longer, to give the reader time to understand what they are seeing in the slide (some of the not so simple slides were displayed for under 5 seconds making it hard to understand what the graph is representing, all while having to process the audible explanation).
Another thing that comes to mind is to consider slowing down your talk speed when you're providing a piece of information that requires more concentration on the audience part to understand.
Keep up the good work ✌️
Very solid feedback. Duly noted! Thanks for watching! Cheers 🥂
thanks for the video! very good knowledge share
:)
I feel like you are leaving a bit, for example you should have differentiated the actual system calls and library "system call" functions that look like system calls, like on Linux, fork() is not a syscall, it is implemented by clone() and clone3(), and also between different CPU architectures syscalls are not the same! Also, no mention of how syscalls work on non-Unix OSes (e.g. Windows NT)? Finally, you should have included a way to invoke a raw syscall, and see the result with strace!
Solid call outs. Duly noted! I'll cover this in a follow-up video
introduce what is io_uring and its background please.
Added to my backlog!
great explanation
can’t believe i get to see this first with a membership 🔥🔥🔥
Most of what you said was true, but nowadays theres also the likes of eBPF and similar which allows some of this stuff to happen in userland.
Imagine if the OS had to ask permission from the hardware to access its circuitry every time it needed to calculate or store data.
Nice, very true that switching context is expensive, it makes complete sense. It would be nice, perhaps, to add some code examples, to really show how to optimize. You made me think, I guess if your code has to open a bunch of files it's cheaper if you do it all at once than from time to time?
Wrong at every level. Kernel Mode is not "for the system" but for part of the kernel. Some parts might be in User Mode (on x86 a different Ring). Parts of some apps are running in Kernel Mode such as eBPF on Linux.
Direct access to hardware is naturally also available in User Mode, but it has to ask the Kernel to allow it at first, not necessarily to handle it.
And so on...
great video!
Doing something other than math? syscall.
Why is this so hard for academics to teach ?
great editing here... please release more video on OS concept. I will watch
Stay tuned!
I once made my own shell... since then fell in love with the systems programming
A lot of comments here came from the 99 percent lol
Most devs have no need to know this TBH. We've moved on from "everyone knows how their car works and how to fix it" phase already.
If you're an average programmer or mediocre programmer (working on the frontend and backend), you will not find this useful.
But if you want to do low-level programming like embedded or kernel development, compilers, databases, etc. you need to know all those concepts. Even if you don't do low-level programming, it's still useful to learn about operating systems.
@@oxioxp obviously, yet most developers aren't doing that :P
It's cool to know, but JS johnny doesn't need that to make his webapp.
I'm one of the 1%, do I get a coffee for free or in which way am I special now 🤒?
But for real: when you're a into Linux and C programming, a bit more knowledge and you should be at the 1%. So many Javascript writers out there 🙂?
These are very basic facts about API that every developer understands. And if they did a degree or read any os book, it's definitely covered there. Click bate title and not a lot of value for 5 minutes. Expect better.
umm... not everyone has read an OS book, or remembers everything from their degree... tbh you shouldn't generalize and assume that everyone has the same knowledge as you. being an expert doesn't imply everyone is an expert. quite narcissistic.
@@TheCoder-1924
Saying 99% of developers (which is a stupid estimate anyway and a generalisation which you condemn) doesn't know what a syscall call is, it's a complete spit in the face click bate to any developer.
The quality of the video is without a question - it clearly explains what it is and provides useful information.
But what you are saying is completely irrelevant. I simply point out to the author not to fall into the awful trend of click bating. There is nothing narcissistic about it, nor am I an expert in anything.
@@LinuxIsBetter-p8f having a vague idea of what a syscall is, is not the same as understanding it. I don't think the video is perfect but to say it has no value for 5 minutes (when almost every second is useful information) is mean tbh. like I do agree the title is a bit clickbaity but the video itself is excellent for the number of subscribers the channel has. just my opinion. you can say with less harsh words... but you have some point about inaccurate statistic. english is my second language but regardless for me I have learned lots here, and will continue to watch much more of the videos on OS (as it is a weak point. I'm not expert here like you assume all viewers are).
@@TheCoder-1924 My intention is to not to be mean, nor do I assume myself or anyone else as an expert.
Here is the thing though - going past the "vague idea", the video simply defines what a system call is, gives a few examples like read(), mentions trap tables. This is very basic stuff. Is that bad? No! These things can be difficult to understand, but when someone with 8 years of experience in development (not me!) sees this video, they think they are going to learn something about a system call. After all, 99% of developers don't know about them... What are the odds they do? I think the expectation here is a bit beyond a Wikipedia page summary.
I felt disappointed, and they will be too. And this kind of thing makes this platform absolute piss show.
Make good content for appropriate audience, don't wrap it something it's not.
@@LinuxIsBetter-p8f It's not that deep. I'd love to watch your explanation on the topic or any topic at that. Let me know when you release the video.
Idk what you mean by developers, but 99% is too high.
If you haven't even heard of system calls. Idk who taught you programming.
Ps. By "you" i'm referring to the reader, not the content creator.
>If you haven't even heard of system calls. Idk who taught you programming.
The average developer straight from bootcamps.
This statistic was pulled from an uninitialized variable in a poorly documented legacy codebase, buried deep in a spaghetti-code function that hasn’t been touched since the intern dev who wrote it left the company.
@Crixer234 the sad bootcamp experience. Though at least they should have teach a little bit. They don't need to deep dive.
@TheCodingGopher lol, that's why I was asking by what you mean by developers? Because if those were proper software engineers. I think the percent should be lower
@@asagiai4965 Yeah, the title may be a bit exaggerated. In my opinion, while many developers may have heard of syscalls in passing, only a few truly understand their inner workings, and even fewer have hands-on experience optimizing them.
%99 doesnt understand
%1 are the ones who wrote syscalls
A follow-up detailing the differences between interrupts and exceptions would be useful. Not all system calls are created equal.
Added to my queue :)
You can't call yourself a software developer unless you know 100% of the facts collected here.
Lmao false. There's a ton of developers writing useful and valuable software who don't know this stuff. Should they? Absolutely, but it's not going to stop them from getting a paycheck.
@@xevious4142 I see you miss the picture here. You can call yourself a doctor, heck you can even _work_ as a doctor without being a proper doctor but that runs a severe risk of legal prosecution. Working as a developer without being one comes with less risks, as you excellently pointed out. Still that only proves I'm right, thanks mate.
@@HoSza1 stay mad bro
@@HoSza1last time I checked, programming Perl is programming
So a Perl dev is a programmer
Sometimes, the simplicity of a task means it isn't worth it to build it in C
Thus the people solving the simple tasks shouldn't need to know syscalls
Does my app that sends an automated email really need to implement the entire SSL and SMTP stack?
Should it be that optimized?
Written in assembly?
Heck no!
"Does a bee really need to know the physics of how a flower makes pollen to make honey?"
I'd argue no
The bee just makes honey with the pollen and can't care less how it was made
It applies in this case too
@@xevious4142 try again
Anybody else clicked on this, knowing full well what system calls are and just looking for SAO Alicization mentions?
I've watched SAO, but what's the reference here?
Just obvious stuff. Nothing deeper than what everyone knows.