This repository contains several coding projects written in C for a Linux environment.
Please note: only the files listed below were entirely or partially written by me. All other files included in a given project were provided as starter code.
file(s) written/modified:
- lookup1.c
- lookup2.c
demonstrates understanding of:
- working with file functions including mmap, fseek, fread
file(s) written/modified:
- alloc.c
demonstrates understanding of:
- memory allocation
- efficient memory management
- performance optimization
file(s) written/modified:
- parmake.c
demonstrates understanding of:
- parallel programming with dependencies
- using thread-safe data structure
- resource allocation graph (RAG)
- deadlock detection
- syncronization
file(s) written/modified:
- cracker1.c
- cracker2.c
demonstrates understanding of:
- multithreaded programming
- using thread-safe data structure
- using synchronization primitives
file(s) written/modified:
- libdrm.c
demonstrates understanding of:
- synchronization primitives
- deadlock detection via resource allocation graph
file(s) written/modified:
- mapreduce.c
demonstrates understanding of:
- interprocess communication (IPC)
- pipes
- files and file descriptors
- how Google’s MapReduce works
file(s) written/modified:
- client.c
- server.c
demonstrates understanding of:
- networking components (including building a working client and server)
- network error handling
- epoll and non-blocking I/O
file(s) written/modified:
- dd.c
demonstrates understanding of:
- working with files and file commands in a Linux environment
file(s) written/modified:
- minixfs.c
demonstrates understanding of:
- working with files via inodes in the kernel
- filesystem operations
- traversing direct and indirect data blocks
- modifying file permissions
file(s) written/modified:
- shell.c
demonstrates understanding of:
- how C’s shell works
- the fork, exec, wait pattern
- processes
- signals
file(s) written/modified:
- vector.c
- sstring.c
demonstrates understanding of:
- implementing a C++ style vector in C
- using dynamic/heap memory
- using malloc, calloc, realloc, and free
- function pointers
- Object Oriented Programming (OOP) in C
- String manipulation in C
file(s) written/modified:
- part1-functions.c
- part2-main.c
demonstrates understanding of:
- pointers
- strings
- functions
- function pointers
file(s) written/modified:
- barrier.c
- queue.c
- semamore.c
demonstrates understanding of:
- synchronization primitives
- working with multiple threads
- writing thread-safe programs
file(s) written/modified:
- camelCaser.c
- camelCaser_tests.c
demonstrates understanding of:
- test driven development, unit testing
- string manipulation
- programming in C
file(s) written/modified:
- mmu.c
demonstrates understanding of:
- working with virtual memory (including page tables)
- virtual address translation process
- MMU: Memory Management Unit
- TLB: Translation Lookaside Buffer