Skip to content

TTSS0529/x86_64-libasm-runtime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

x86_64-libasm-runtime

Reimplementation of essential libc functions and linked list utilities in x86_64 assembly
Designed for low-level systems programming, runtime development, and performance-oriented C/C++ applications.


🚀 Project Overview

This project is a runtime library implemented in x86_64 assembly, focusing on a minimal subset of libc functions and basic data structures. It follows the System V AMD64 ABI and Linux x86_64 syscall conventions.

Key features:

  • ⚙️ Core libc-like functions (string, memory, etc.)
  • 🔗 Basic linked list implementation
  • 🧠 Strict adherence to x86_64 System V ABI
  • 📡 Direct interaction with Linux kernel syscalls (no libc dependency)
  • 🛠️ Easy to build and integrate into larger low-level libraries or runtime projects

The project demonstrates a deep understanding of assembly, ABI conventions, operating system interfaces, and low-level optimization, which is valuable for positions in systems programming and runtime development.


🎯 Motivation

High-level libraries like glibc or musl abstract away many runtime details. This project allows you to:

  • Understand function calling conventions, stack frames, and register usage
  • Gain hands-on experience with syscall interfaces in user space
  • Build independent low-level libraries with minimal dependencies
  • Showcase skills relevant to systems programming, kernel/driver development, and embedded runtime environments

📁 Project Structure

.
├── includes/           # Assembly & C headers
├── srcs/               # Assembly source files and C test file
├── Makefile            # Build scripts
└── libasm.pdf          # Design and implementation documentation

🛠 Build & Usage

Clone the repository:

git clone https://github.com/TTSS0529/x86_64-libasm-runtime.git
cd x86_64-libasm-runtime

Build the library using Make:

make

The resulting object files or static library can be linked into C/C++ projects.

Test results:

make test
./asm_test_bonus

Core Highlights

🧠 Syscall Layer

Assembly routines interact directly with the Linux kernel through syscall instructions, minimizing overhead and dependencies.

📜 ABI Compliance

All functions strictly follow the System V AMD64 ABI, ensuring compatibility with C code and predictable behavior across different calling contexts.

🔍 Linked List & Utilities

Provides fundamental linked list operations and memory/string utilities suitable for runtime use in low-level programs.


💡 Career Relevance

This project highlights your expertise in:

  • Low-level C/C++ programming
  • Runtime library implementation
  • System call and ABI conventions
  • Performance and memory optimization

It is particularly relevant for roles such as:

  • Systems Programmer
  • Embedded C/C++ Developer
  • Runtime/Compiler Engineer
  • Operating System or Kernel Developer

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

Reimplementation of essential libc functions and linked list utilities in x86_64 assembly, following the System V ABI and syscall conventions.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages