https://github.com/babkock/learning
A collection of small programs, to be used as references and learning material. Covers a variety of techniques.
https://github.com/babkock/learning
beginner-friendly bootloader c cpp17 http-server linux-app linux-shell multithreading mutex-lock ncurses pointers socket-io tcp-client tcp-server tutorial tutorials x11 xcb
Last synced: 8 months ago
JSON representation
A collection of small programs, to be used as references and learning material. Covers a variety of techniques.
- Host: GitHub
- URL: https://github.com/babkock/learning
- Owner: Babkock
- License: gpl-2.0
- Created: 2019-09-16T04:08:05.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2025-02-07T18:07:32.000Z (11 months ago)
- Last Synced: 2025-04-05T10:01:41.359Z (9 months ago)
- Topics: beginner-friendly, bootloader, c, cpp17, http-server, linux-app, linux-shell, multithreading, mutex-lock, ncurses, pointers, socket-io, tcp-client, tcp-server, tutorial, tutorials, x11, xcb
- Language: C
- Homepage: https://gitlab.com/Babkock/learning
- Size: 158 KB
- Stars: 6
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
#+TITLE: learning
#+AUTHOR: Tanner Babcock
#+EMAIL: babkock@protonmail.com
#+LANGUAGE: en
[[https://gitlab.com/Babkock/learning/-/commits/master][https://gitlab.com/Babkock/learning/badges/master/pipeline.svg]]
[[https://github.com/Babkock/learning/actions/workflows/c-cpp.yml/badge.svg]]
[[https://img.shields.io/badge/License-GPL_v2-blue.svg]]
Very old C and C++ programs, with some new C programs, and some assembly code. Goes over a variety of Unix/Linux programming techniques. Some of these programs require the linking of external libraries. Instructions on how to compile these programs are included in the source code and in the lessons.
Some programs utilize command-line arguments. Remember, if you ever see =int main(int argc, char *argv[])= instead of =int main(void)= , that means the program accepts command-line arguments. Each of these programs are noted in the lessons.
* Lessons
- [[https://github.com/Babkock/learning/tree/master/boot][Bootloader]]
- [[https://github.com/Babkock/learning/tree/master/etc][Curses/Colors/C++ Classes]]
- [[https://github.com/Babkock/learning/tree/master/network][Networking/Communication]]
- [[https://github.com/Babkock/learning/tree/master/point][Pointers]]
- [[https://github.com/Babkock/learning/tree/master/sys][System Calls]]
- [[https://github.com/Babkock/learning/tree/master/thread][Threads]]
- [[https://github.com/Babkock/learning/tree/master/x][X Window System]]
* Examples
- *[[https://github.com/Babkock/learning/blob/master/boot/disk.asm][Bootloader]] and [[https://github.com/Babkock/learning/blob/master/boot/kernel/bootsect.asm][kernel]]* for use with QEMU
- TCP [[https://github.com/Babkock/learning/blob/master/network/client.c][client]] and [[https://github.com/Babkock/learning/blob/master/network/multiserver.c][server]] with multiple requests
- *[[https://github.com/Babkock/learning/blob/master/network/http.c][Working HTTP server]]*
- [[https://github.com/Babkock/learning/blob/master/x/xft.c][XFT font drawing]]
- [[https://github.com/Babkock/learning/blob/master/sys/tick.c][Reading]] and [[https://github.com/Babkock/learning/blob/master/sys/speak.c][writing]] FIFO
- [[https://github.com/Babkock/learning/blob/master/point/linklist.c][Linked list]] with [[https://github.com/Babkock/learning/blob/master/point/linkpush.c][push]] and [[https://github.com/Babkock/learning/blob/master/point/linkpop.c][pop]] functions
- [[https://github.com/Babkock/learning/blob/master/etc/curses.c][Simple Ncurses program]] that writes vertically in the terminal
- [[https://github.com/Babkock/learning/blob/master/thread/threads.c][Threads]] with [[https://github.com/Babkock/learning/blob/master/thread/mutex.c][mutex]]
- [[https://github.com/Babkock/learning/blob/master/point/hashmap.c][Hash map]] and [[https://github.com/Babkock/learning/blob/master/point/hashtable.c][hash table]]
- [[https://github.com/Babkock/learning/blob/master/time.c][Time calculator]]
- [[https://github.com/Babkock/learning/blob/master/sys/shell.c][Simple shell]]
- [[https://github.com/Babkock/learning/blob/master/sys/symlink.c][Symbolic links]]
- [[https://github.com/Babkock/learning/blob/master/bits.c][Bitwise operations]]
- [[https://github.com/Babkock/learning/blob/master/point/bitfield.c][Bit field]]
Thanks for checking these out.