Flexing in C without lib C. Writing hello world to stdout without any libraries.
0:00 G’day
1:02 Simple C project
4:12 No stdlib
6:05 Our own _start
8:22 Our own write function
12:11 Syscall vs C function call
13:03 Our own syscall
15:22 compiler_flags.txt
16:09 See ya!
* Code
#assembler
#c
#programming
#x86
source

the problem with no libc is that it's no longer portable
Tsoding used free standing C to be able to compile directly to web assembly, without emscripten. I tried this and I was able to render a pixels using C directly to the html canvas without javascript, just used it for instantiate the web assembly binary. Great video, definitely an interesting topic.
Kan jy afrikaans praat?
Amazing video! 16 minutes just flew. Is there any book you suggest to study these low level concepts?
are you scottish?
Thanks for this series! Very useful!
next. write in binary,
So to understand that i need to understand assembly but and cpu architecture, where can i learn that ?
My guy is showing us how to avoid STD (Standard) and I'm here for it
Nice, I made a software raytracer using nothing but x86 64 linux syscalls and C, freestanding is quite fun
Hello! GREAT video! I would like to ask you, instead of creating the start.s Assebly file, which is linked during compilation with the main.c C file, could you pass the Assembly instructions in the main.c file, using inline Assembly (like '__asm__' …), since the C language supports inline Assembly code? That would be an extremely interesting variation! 😀
I saw this on my home feed, now I'm going to watch the rest of series. Thanks for your efforts!
lol. After a while all c developers end up reimplementing libc ;P
Really like the str_len compiler demostration! Thanks for the nostdlib-c/compile_flags.txt .. Nvim is happy now..
Been there, done that. SCO Unix had a completely broken lib3c, and any serious program could only rely on lib2. Also, malloc/free was broken, so programs can only use statically allocated arrays and such. Or manually call sbrk(), which seemed to work.
(*screams*) one punch man……
Great video, I just have a question, where did you learn all of these ASM stuff, I am trying to learn, but I am not really find a good way/resource which I have found enjoyable.
i made a 1k intro a little bit ago! i made it in c with a bunch of inline asm; it used direct system calls to put some pretty patterns on /dev/fb0 and didn't link against a single library 😛
Its like the anti ai slop
when i see someone
use a fancy shell prompt, create makefile, use .phony … before starting writing code.
i remember myself when i started using it, i think it's cool.
old professional dev, not use this fancy thing as much as possible. so this channel for beginners not me even the title was do good.
Just thought I’d throw in with everyone else in saying this was great and I encourage you to keep doing it.
can't have enough of this dude. flex all the way all the time!
I miss this type of content: not a basic C, but relatively short and well narrated journey into the weeds. Thanks a lot.
It will be very good if you do it for embedded systems like arduino because they have limited resources and we learn it by seeing it on actul hardware and what we can achive and save , for best practice and complexty you may program esp32 using arduino platform , good video
I followed your steps and got 16K binary which is a bit more than I expected. What could it be?
This is very cool. Can you show how to implement the sine function? I want to dip my toes into retro console development so this video series might come in handy.
what is libary? 🤔
Great stuff!
Looks to be much complicated than necessary.
I just wanted to say thank you… I need a series like this as I'm preparing to set out to develop a New C Runtime for a project I'm working on that will bring modern features to C but I must first discard the standard runtime libraries, 60 years of standards body slop… I just stumbled across this and I'm following you now… I really like what I'm seeing on your channel it's quite relevant to the stuff that I'm working on. Again thank you.
Maybe you already know this but since you have a Makefile and use clangd you could also install bear and run the following to generate a compile_commands.json based on the makefile “make clean; bear — make” versus using compile_flags.txt
Is that a washed-out Belgian Dutch accent?
Clicked on the video for fun, ended up with finally understanding makefiles 😂
I told C to go fuck itself and build my own language. Its one hell of a foolish language to be honest.
What kind of headphone u use? Seems like Sony one
So this is why C was considered a high level language.
Now I found this channel.Very,very good.Thank you.And ,of course,LIKE and SUBSCRIBE.