GithubHelp home page GithubHelp logo

heroxz / linuxapi Goto Github PK

View Code? Open in Web Editor NEW

This project forked from veltzer/demos-linux

0.0 2.0 0.0 1.92 MB

Demos for instruction and exploration of the linux C/C++ API

License: GNU General Public License v3.0

linuxapi's Introduction

The Linux API project

This project is a source code repository for instructors or expert programmers who want to explore the Linux C/C++ API. It has about 600 examples (as of 06/2013) I found are useful in explaining the Linux API. The idea is to provide a good coverage of all major features and to resolve disputes about exactly how a certain API works.

Topics covered by the examples

  • Multi-threading
  • Multi-processing
  • Locking
  • Calling system calls without C
  • Performance
  • Coding in assembly
  • Various compiler directives
  • Many more...

Platforms supported

  • i386
  • ia64
  • Other platforms will be supported if someone is willing to do the work. I usually work on intel 32 bit so I regularly check the code on ia32 and occasionaly use a virtual machine to check that the code works on ia64.

Contributing

This project needs help. fork, commit and request me to pull. Just open a github account, modify and add examples, commit and ask me to pull... A lot of the code is documented but some of it is not. More documentation would be welcome. I would give attribution to whomever contributes.

License

Code is licensed GPL3 and I hold the copyright unless explicity stolen as attributed in the source code. I encourage people to use this source code as aid for instructing courses. Please give me some credit if you do wind up using this package and consider dropping me a note about the fact that you did use the package so I could feel good...

Similar projects

Michael Kerrisk, the maintainer and author of many of the Linux manual pages has a similar project he calls TLPI (The Linux Programming Interface) of programs he used in his book of the same title. You can find it here http://man7.org/tlpi/code/.

Using it

  • you need python on your machine: try: python --version if python is missing then: for deb based distributions (debian, ubuntu, ...) do: sudo apt-get install python for rpm based distributions (fedora, redhat, centos,...) do: sudo yum install python

  • clone the examples: git clone [email protected]:veltzer/linuxapi.git

  • cd into it: cd linuxapi

  • install the missing packages and headers needed to compile and run this project ./scripts/ubuntu_install.py

  • compile: make

  • some of the examples may not compile for you because of missing libraries. Don't worry: you can build each specific example by issuing: make src/examples/performance/cache_misser.elf the name of the elf binary is the same as the example source code with .elf instead of .[c|cc]. You must be at the root of the project to issue the 'make' command.

  • the most important part: tweak the examples, try to prove me (my comments) wrong, have fun!

    Mark Veltzer [email protected], 2011-2013

linuxapi's People

Contributors

veltzer avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.