Комментарии:
Unreal. Just right level of detail. Please please continue!!
ОтветитьI have a horrible idea to write my own printf that recurses on %s. Oh no what have you done lol. Really enjoying this series so far, thank you!
ОтветитьExcellent. Thanks!
ОтветитьThis is Ben Eater level technical explanation. Really well done, I’m loving it.
Personally I’m following quite easily but when I start to bog down because of esoteric naming conventions or a gap in my knowledge, you’ve already done the hard work and I’m pulled along nicely. Excellent work.
I have enjoyed this video. Thx.
ОтветитьYeah, love it. Fun stuff. So interesting (though totally understandable) that the kernel and userland have entirely different printfs... and this simple one is... so simple and elegant! Cool stuff. (Might be fun to look at the userland one sometime, though I imagine that gets much uglier...)
Also, I've used va_args stuff lots in the past... though you're right that it was mostly when writing library functions, especially wrappers for (vsn)printf. :)
Goated.
ОтветитьWhy are letters so legible in thumbnail but so fuzzy in the video, I mean why r letters so fuzzy in the video when they r so crisp in the thumbnail? Secondly, please ensure the audio is high especially when it is such a long video and that too technical, I mean u can't be holding the mobile 2 the ear for such a video, for any video for that matter
ОтветитьContent's 'ok', but I find the delivery annoying, perhaps it's my age, but the USE of AQI (Google that with Stephen Fry), and the constant 'like' usage. Grrrr
One of the most interesting things about printf(), in term of its implementation, and now that we have the varargs macros, is in that it should return the number of characters output; yours is a void function, and as you pointed out, it's cut-down; but it's trickier than it sounds. I also think that to explain variadic functions, one should walk the format string and the stack manually, in code, i.e., . . . . imho is best explained and coded first without using stdarg. Switched away before the end, but did you explain the different calling conventions, and how they effect variadics? For example, . . . with __fastcall?
Thanks....the level was fine,,,,,,,,,☑
ОтветитьI am self taught on C, on but very limited as a programmer, I really enjoy your deep dive into the code.
ОтветитьWhat a good video and Amazing series
ОтветитьReally enjoying these, the length and detail are great, keep them coming!
Ответитьjust right!
ОтветитьBasically implement putc, this might print to screen, uart, leds or whatever else.
ОтветитьCan’t wait for the next video
ОтветитьThe printint function is really nice, tho I don't quite understand why the buffer is 16 long and not 11? From my point of view I try to think of the maximum number being inputted here which should be a signed 32-bit integer and thus 10 digits long.
ОтветитьSo do you say that when writing to the console, the WHOLE system (not only the process) freezes and waits for the character to be sent? This is not how I experienced writing to the console ... what do I get wrong?
ОтветитьThis is fascinating. I guess one of the worst things you can do is print a lot of messages in kernel mode - this slows your system down to crawl (in this case 38.4kHz). I've seen this a lot; now I know why. Thank you very much!
ОтветитьWhy do they use two different methods of printing hex? %x and %p are handled differently.
Ответитьthis helps a lot! please please please don't stop posting
Ответитьi believe the details are amazing, hoping for more of this series
ОтветитьLoving your recent video 👏
ОтветитьGreat Video again. Detaillevel is correct.
ОтветитьI like the fact that you are so enthusiastic about it too ! I really wish I had you as a teacher
ОтветитьBrilliant! I knew something like this was going on under the hood of a kernal but to see it in the flesh is very interesting. looking forward to the rest of this series.
ОтветитьThis video, in particular, has given me so much respect for the people that come up with all of this stuff, and shown me how much I take "simple" things like printf for granted
ОтветитьGreat video. I’ve loved this type of low-level programming since the beginning of my career and you explained concepts really well. This is an excellent complement for OS Lectures, and actually I have found your videos more useful because you show real code.
Those two algorithms for printing numbers base 10 and 16, and pointers are brilliant.
"void main()" :: get off my yard, kiddo!
ОтветитьA source dive into the batman-adv kernel module I would find very interesting. It is a routing protocol operating on layer 2.
ОтветитьI found the detailed explanation of the printf function a bit boring. The other two episodes I liked more.
ОтветитьThis is great! Ive been reimplementing xv6 line by line so I can learn more about operating systems. This will help me get a better understanding as well
ОтветитьHey!
Nice one :)
Will you still explain how an OS would implement and expose glibc to its programs?
Hopefully, the va_arg function has a call to the panic function on error, like when there is more % than arguments after fmt :) Thanks for the explanation!
ОтветитьCool that you went through it all. I guess you can't print %4.4x or something similar and a shame floating point isn't included - kinda weak printf. But a great educational thing for sure!
ОтветитьThis series is sooooo good... 🔥
Ответитьlove this series
Ответитьi enjoyed in every second very informative video <3
ОтветитьLike many forks here said, this video is really amazing and very informative and unique. I absolutely love this series. Great job man, you are my hero.
ОтветитьWonderful. Just the right level of details. Thank you very much
ОтветитьLoved this, please do more
ОтветитьAwesome series, keep them coming!
Ответитьyou explain why 'volatile' is needed and give the example of calling that interupt off register write twice (pasting it in). in fact the code is already there that shows the need. At exit the same reg is written to reenable registers. A compiler would see x= 0, then later x = 42 (or whatever) and seeing that x is not used in between it would simply ignore the first write. BTW , excellent series, for me its slightly too slow. Gonna take about 3 months to get to a shell prompt :-). You didnt explain the boot process, ie how we get from a powered on processor to something thats running our code, you first episode starts with 'ok we have this code at 0x80000000'
Ответитьsuggestions - sqlite, its a lovely code base
ОтветитьAbsolutely love these videos, the level of detail is perfect! Makes learning about the inner workings of unix like os alot less daunting. Thank you!!
ОтветитьThe series is a great idea and I think you're really nailing it. I think the level of detail and explanation is a great balance. I'm far from a C expert but it's enough info for me to get by with a google here and there. I only wish you were making them faster :D but I know it takes time to make high quality content. I really appreciate the decision to use risc-v and xv6.
ОтветитьCan't wait for part 4, this is becoming more and more interesting as time passes. Keep it up!
ОтветитьThank you for the detailed explanations. Fantastic video!
Ответить