Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add IO to OpenEducation methodology #75

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

Mihnea0Firoiu
Copy link

@Mihnea0Firoiu Mihnea0Firoiu commented Aug 5, 2024

Prerequisite Checklist

  • Read the contribution guidelines regarding submitting new changes to the project;
  • Tested your changes against relevant architectures and platforms;
  • Updated relevant documentation (if needed).

Description of changes

Align the IO course to the OpenEdu methodology.
Change the content of laboratories and change the "storyline" to:

  • The Linux file-interface
    • file descriptors
    • file operations (I/O syscalls)
    • pipes and redirections
  • Inter-process Communication
    • unix-sockets
    • network-sockets
    • client-server model
  • Optimizations
    • I/O multiplexing
    • Async I/O
    • zero-copy

Besides these, in quides/ you can find adjacent topics not mandatory to finish the labs, such as file-descriptor table and open file table, file-mappings, kernel caching, and sendfile benchmarking.

@github-actions github-actions bot added area/reading Update to reading content area/tasks Update to tasks kind/new New content / item labels Aug 5, 2024
@teodutu teodutu marked this pull request as ready for review August 5, 2024 15:53
@teodutu teodutu added the needs-rendering The PR makes changes to the website that need to be rendered label Aug 5, 2024
@teodutu teodutu added needs-rendering The PR makes changes to the website that need to be rendered and removed needs-rendering The PR makes changes to the website that need to be rendered labels Aug 11, 2024
Copy link

@teodutu teodutu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Check my comments to see some easy first fixes and also why the build fails. Then when it passes I'll make a more in-depth review.

  • Move the task descriptions from the reading/ files to each task's README.md
  • Remove references to the common makefiles (.../common/makefile/*.mk). Copy their content to each makefile that includes them so the tasks don't depend on outside resources.

@teodutu teodutu added needs-rendering The PR makes changes to the website that need to be rendered and removed needs-rendering The PR makes changes to the website that need to be rendered labels Sep 27, 2024
Copy link

@teodutu teodutu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The build fails because chapters/io/arena/drills/tasks/mini-shell/ is missing its support/ folder which causes the Makefile symlink to point to an invalid path.

@Alex-deVis Alex-deVis added needs-rendering The PR makes changes to the website that need to be rendered and removed needs-rendering The PR makes changes to the website that need to be rendered labels Nov 8, 2024
@Alex-deVis Alex-deVis self-assigned this Nov 8, 2024
Copy link

github-actions bot commented Nov 8, 2024

@Alex-deVis
Copy link

@razvand, since I also made changes to the content itself, I think you should also review this.

@github-actions github-actions bot added the area/questions Update to questions content label Nov 8, 2024
@Alex-deVis Alex-deVis force-pushed the Mihnea0Firoiu/IO branch 6 times, most recently from 5fd9558 to 7e8cb71 Compare November 8, 2024 17:08
@Alex-deVis Alex-deVis force-pushed the Mihnea0Firoiu/IO branch 9 times, most recently from af7d673 to 965059c Compare November 8, 2024 20:50
@github-actions github-actions bot added area/guides Update to guides content topic/compute Related to "Compute" chapter labels Nov 9, 2024
@Alex-deVis Alex-deVis added needs-rendering The PR makes changes to the website that need to be rendered and removed needs-rendering The PR makes changes to the website that need to be rendered labels Nov 9, 2024
Copy link

github-actions bot commented Nov 9, 2024

@github-actions github-actions bot added the area/infra Update to infrastructure / scripts label Nov 9, 2024
Tasks and guides are stored in tasks/<task>/README.md, but are
referenced as <task.md> for simplicity.
This commit accounts for this when solving links.

Signed-off-by: Alex Apostolescu <[email protected]>
Previously, only links from labs were rerouted.
This commit updates the links from all file types, namely: guides,
tasks, questions, reading, and media.

Signed-off-by: Alex Apostolescu <[email protected]>
Questons are media files are placed in directories on their own, on the
same level.
This commit accounts for this when generating the .view files, and
prepends '../' to media links in question files.

Signed-off-by: Alex Apostolescu <[email protected]>
Using greedy regexes collapses consecutive links when solving them e.g.
[a](b) [c](d) gets collapsed to [a](d).
This commits prevents this using non-greedy regexes.

Signed-off-by: Alex Apostolescu <[email protected]>
Show links that do not match expected patterns after solving references.

Signed-off-by: Alex Apostolescu <[email protected]>
This commit restructures the IO chapter according to OpenEdu methodology.
This comprises of:
  - refactoring and changing the order of chapters
  - generating support files from solution
  - breaking arena into smaller sections
  - fixing Makefiles from tasks to be self-contained

Signed-off-by: Mihnea Firoiu <[email protected]>
Signed-off-by: Alex Apostolescu <[email protected]>

solve checkpatch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/guides Update to guides content area/infra Update to infrastructure / scripts area/questions Update to questions content area/reading Update to reading content area/tasks Update to tasks kind/new New content / item needs-rendering The PR makes changes to the website that need to be rendered topic/compute Related to "Compute" chapter
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants