Just last week we were doing an assignment on how to create a client-server architecture for a simple program That echo the requests from the client using sockets. We were using the c programming language and it was really interesting to learn how actually a server listens and accepts request and how it forks so as a to handle different clients while at the same time listening. This was what i needed to reinforce what i learnt and i felt really proud that i was actually understanding some concepts you were talking about. Im just a beginner in this field but i have so much fire and curiosity about the backend. I totally enjoyed this.!!❤
@@abc-ym4zs there is something as linux programmer's manual document. This contains all the system calls provided by the linux/unix OS which you can utilise to interact with the kernel i.e. ask for resources like memory, I/O, networking etc.
I'm transitioning into backend from frontend and i wanted to learn and understand high and low level concept before building projects. and your courses have been very helpful. The netowking, backend and database engineering concepts.. have been really helpful to me. I do have a request though, a course on systems design would be great. Keep doing the good work..
Great videos, i hopped from game dev doing lower levels where you didn't just need to understand the lower APIs but the hardware architecture to a point, in web dev you need to spend many times more effort to even just get a poorly explained abstraction of what the thing below you is doing much less a good lesson on the technology. Not everybody needs to be capable of lower lower coding, but I'm firmly of the opinion that understanding the layer below you is necessary to become truly good.
You are the best Hussein. I have a question as we keep accepting connections inside a single process it will open a new file descriptor where reading and writing happen there is always a limitation to the number of open files per process even though this number is configurable it is hard to determine what is the reasonable number.
To anyone watching this, I purchased and am partway thru 3 of Hussein's Udemy courses and they're great! Same quality walkthroughs but on a much wider variety topics. Only feedback would be: more evenly timed videos (some are 50mins..) and less digression off-current-topic.
Thanks a lot for such amazing teachings. It has been really helpful to me.. You are the best!! However I have a question regarding this walkthrough.. How does this complete setup and 4 queues (SYN, ACCEPT, RECEIVE, SEND) behave when there are many concurrent HTTP requests vs when there are many web socket connections (or long lived connections like SSE ) ?
Hi sir can you tell me…if my computer is attacked with ransomware and photos and videos are encrypted…can the hackers use my photos and videos? Can they see them and import them?
The io_uring part gets very interesting. Why call `accept` a bunch when you can have the kernel accept new connections automatically, and tell you about it. Why copy data on `recv` when you can have the kernel choose a buffer you've registered and tell you which one it chose. Even without these, that IO model is quite efficient when compared to epoll
Hey Hussein, I really love the great content you share and how you share it! I'm also a senior software engineer who started a YT channel a few years ago and have 2 Udemy courses that I would love to dedicate more time to them to share more of what I learned in my career. Yet, it takes me a lot of effort to create content with the quality I'm satisfied with. When I see inspiring content creators like you, I wonder if you produce your content as a side hustle or if it's your full-time job. I see how you reflect and analyze things in order to understand them deeper and share lessons, but I notice also that the pressure in our full-time job as software engineers often doesn't give us enough time to reflect, analyze then share knowledge about what we learned. I appreciate your feedback regarding your own experience as an engineer and content creator!
It's useless knowledge, cause you will never have to use it or have to know to become backed developers. 😅😅😅😅 He just read a blog about a topic and thought 🤔 to make a video of it.
@@RichardHumulock you are absolutely wrong. To be a good backend developer you need to know backend topics (db, concurrency, caching etc..) not os related topics which is a waste of time. It might sound cool all of this but trust me you will never have to use it in your life as a backend developer
Fundamentals of Operating Systems course oscourse.win
Finally, someone who's going beyond just explaining the API of the libraries! Don't stop man, you're making great content!
Second this. Many others only copy paste codes without knowing what happens behind the scenes.
I see lot of RUclipsrs just scratch the surface and people comment you are the best.
I like how thorough and detailed explanation you do.
Amazing walkthrough 👏 I can’t imagine how this would look if you explain all this steps by using one use case! Anyway it’s just amazing 🌹
Listen at 1.75 speed.
2.0x
1.0x
Slow is smooth. Smooth is fast.
Thank you....
Grab my new course Discovering Backend Bottlenecks: Unlocking Peak Performance
performance.husseinnasser.com
So happy the algorithm brought this channel my way. Love the deep dives Hussein does 👏🏽
Just last week we were doing an assignment on how to create a client-server architecture for a simple program That echo the requests from the client using sockets.
We were using the c programming language and it was really interesting to learn how actually a server listens and accepts request and how it forks so as a to handle different clients while at the same time listening.
This was what i needed to reinforce what i learnt and i felt really proud that i was actually understanding some concepts you were talking about.
Im just a beginner in this field but i have so much fire and curiosity about the backend. I totally enjoyed this.!!❤
that makes sense , can i know where u get this assinement from ?
is it from a course or the collage
@@othmanalyusifey356 yeah it's from college. The unit is called Network programming
@@othmanalyusifey356most likely a network engineering assignment for unix networking programming
Where to learn this socket programming cab u recommend any good channel and where to learn about cpu and OS please bro I am facing difficulty
@@abc-ym4zs there is something as linux programmer's manual document. This contains all the system calls provided by the linux/unix OS which you can utilise to interact with the kernel i.e. ask for resources like memory, I/O, networking etc.
Thanks!
Love the format, great explanation.
Your channel is a gold mine of information
I'm transitioning into backend from frontend and i wanted to learn and understand high and low level concept before building projects. and your courses have been very helpful. The netowking, backend and database engineering concepts.. have been really helpful to me. I do have a request though, a course on systems design would be great. Keep doing the good work..
This is GOLD !! Thanks Hussein for this amazing content.
There is so much knowledge here. ILYSM Hussein
Watching this I released more dopamine than watching a Netflix movie. ♥
Same here i am just consuming his content at night like i am watching NetFlix
this helps me in my basics so much!
Perfect content, as usual. Thanks Hussein
I missed your long videos. This one was a fab. Please keep making more such videos
Great videos, i hopped from game dev doing lower levels where you didn't just need to understand the lower APIs but the hardware architecture to a point, in web dev you need to spend many times more effort to even just get a poorly explained abstraction of what the thing below you is doing much less a good lesson on the technology.
Not everybody needs to be capable of lower lower coding, but I'm firmly of the opinion that understanding the layer below you is necessary to become truly good.
This is by far the best thing on internet!
you're amazing!
you are a game changer.
thanks for that man
You are the best Hussein. I have a question as we keep accepting connections inside a single process it will open a new file descriptor where reading and writing happen there is always a limitation to the number of open files per process even though this number is configurable it is hard to determine what is the reasonable number.
Hussein is such a bad ass
Is there any book reference for the tcp / network part you mentioned on the video? To help understand tcp protocol better.
TCP Illustrated.
@@gauravaws20 By W. Richard Stevens?
@@GuilhermeGavioli yup
To anyone watching this, I purchased and am partway thru 3 of Hussein's Udemy courses and they're great! Same quality walkthroughs but on a much wider variety topics.
Only feedback would be: more evenly timed videos (some are 50mins..) and less digression off-current-topic.
Great content as always! Thanks a lot.
Respect your cpu🫡
Dude , great content. But please use some pictures, diagrams to drive message through. It gets very difficult to sit through after a while
Couldn't imagine these process in containerized environment :)
Thanks a lot for such amazing teachings. It has been really helpful to me.. You are the best!!
However I have a question regarding this walkthrough.. How does this complete setup and 4 queues (SYN, ACCEPT, RECEIVE, SEND) behave when there are many concurrent HTTP requests vs when there are many web socket connections (or long lived connections like SSE ) ?
This session is conceptually loaded and well explained. Thank you 🙏
you’re an asset to the world
Hi sir can you tell me…if my computer is attacked with ransomware and photos and videos are encrypted…can the hackers use my photos and videos? Can they see them and import them?
Crazy Good content 🔥
Great material
The io_uring part gets very interesting. Why call `accept` a bunch when you can have the kernel accept new connections automatically, and tell you about it. Why copy data on `recv` when you can have the kernel choose a buffer you've registered and tell you which one it chose. Even without these, that IO model is quite efficient when compared to epoll
It’s a game changer
bro is in love with computer science :)
You have to cover superconductor at room temp ongoing reports.
Great video
I feel like a Staff level Software Engineer now 🎉🎉
Hey Hussein, I really love the great content you share and how you share it!
I'm also a senior software engineer who started a YT channel a few years ago and have 2 Udemy courses that I would love to dedicate more time to them to share more of what I learned in my career.
Yet, it takes me a lot of effort to create content with the quality I'm satisfied with. When I see inspiring content creators like you, I wonder if you produce your content as a side hustle or if it's your full-time job.
I see how you reflect and analyze things in order to understand them deeper and share lessons, but I notice also that the pressure in our full-time job as software engineers often doesn't give us enough time to reflect, analyze then share knowledge about what we learned.
I appreciate your feedback regarding your own experience as an engineer and content creator!
its called abstraction, not closing your eyes
Thank you .
Can I create a blog out of this video? I'll give you the credits
what about non-block socket
ily Hussein, keep it up please. This is like steroids to my backend carreer
Starts at @04:00
Thank you for making things understandable for dumb developers like me :)
just when i thought i am good backend lol
this video forcing me to write a simple backend framework to feel with my skin what is happening exactly
The best bottleneck youtube channel :))))
you're like the only arab guy I'm proud of 😁
This was too fast for me can you talk slower?
"Kenekşın"
hello
new
This guy should speak with some energy.
I like the way he talks. it gives me time to think along the way.
He does? lol.He speaks naturally.
It's useless knowledge, cause you will never have to use it or have to know to become backed developers. 😅😅😅😅 He just read a blog about a topic and thought 🤔 to make a video of it.
to be a good one you need to know it lol
@@RichardHumulock you are absolutely wrong. To be a good backend developer you need to know backend topics (db, concurrency, caching etc..) not os related topics which is a waste of time. It might sound cool all of this but trust me you will never have to use it in your life as a backend developer