Skip to content

courselab/so2-reisvictor1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

Copyright (c) 2021 Monaco F. J. monaco@usp.br

SYSeg is free software and can be distributed under the terms of GNU General Public License version 3 of the license or, at your discretion, any later version. See section Licensing bellow for further information.

SYSeg - System Software by Example

SYSeg (System Software, e.g.) is a collection of source-code examples and programming exercises intended to illustrate general concepts and techniques related to system software design and implementation.

About

SYSeg has been compiled from class notes in undergraduate courses in Computer Science and Engineering, and is meant to be useful for students and instructors interested in low-level programming.

The collection addresses concepts such as application binary interface (ABI), runtime system, program build chain, operating systems and related subjects, with source-code examples illustrating the implementation of shared libraries, dynamic linking, address relocation, position-independent code, POSIX API, file systems, build automation, among other topics.

SYSeg official repository is at https https://gitlab.com/monaco/syseg.

Currently, the material is focused on the x86 platform.

Quick start

Before you dig into the contents, read this.

Most code examples and programming exercises require auxiliary artifacts (including the documentation!) which must be built beforehand.

In order to get those items built you must perform the setup procedure.

Please, read doc/syseg.md and proceed as explained.

There you will also find instructions on how to use SYSeg code examples, as well as the requirements and dependencies your system needs to meet in order to build and execute SYSeg tools.

IMPORTANT

In case you have rushed through this file and has not been convinced to read the essential documentation, this is an encouragement note:

please, do read doc/syseg.md

It'll assuredly save you time.

This file is named README for a reason.

Content overview

SYSeg contents.

  • Directory eg contains the main source code examples.
  • Directory try contains suggested programming exercises.
  • Directory tools contains auxiliary tools used by examples and exercises.
  • Directory doc contains SYSeg documentation.
  • Directory extra contains side notes, arcane features and hacker lore.
  • Directory draft contains work-in-progress material (likely buggy)

Each subdirectory contains a README file further explaining its contents.

Contributing

Should you like to contribute code, please, refer to the file CONTRIBUTING.md.

Bug reports and suggestions are always welcome.

Feel free to open and issue at the version-control repository.

The file AUTHORS lists all contributors and acknowledgments, with respective contact information.

I have a matter

SYSeg is a work in progress and, as such, may contain suboptimal code and potential technical innacuracies resulting of reliance on imprecise or misleading references. If you ever detect one such problem, it would be great if you could drop the author a note.

If it is not much trouble, please open an issue at the repository and apply it the lable 'matter'. There, explain what should be improved (well, if you are in the mood of submitting a PR/MR, that would be great!)

Licensing

SYSeg (system-software, exempli gratia) Copyright (c) 2021 Monaco F. J. monaco@usp.br.

SYSeg is free software and can be distributed under the terms of GNU General Public License version 3 of the license or, at your discretion, any later version. Third-party source files distributed along with SYSeg are covered by their respective licenses, as annotated in each individual file.

See the terms of each license under the directory LICENSES.