Skip to content

Latest commit

 

History

85 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#+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.

About

A collection of small programs, to be used as references and learning material. Covers a variety of techniques.

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Sponsor this project

Used by

Contributors

Languages