{"id":18925114,"url":"https://github.com/lyonsyonii/zeos","last_synced_at":"2025-08-22T02:08:40.819Z","repository":{"id":257308444,"uuid":"857811236","full_name":"LyonSyonII/zeos","owner":"LyonSyonII","description":"SO2 project","archived":false,"fork":false,"pushed_at":"2024-12-20T11:59:05.000Z","size":13388,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-24T23:43:02.982Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LyonSyonII.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-09-15T17:08:27.000Z","updated_at":"2024-10-11T11:02:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"ecf35df4-70d8-4a41-9b53-6253f7abf733","html_url":"https://github.com/LyonSyonII/zeos","commit_stats":null,"previous_names":["lyonsyonii/zeos"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/LyonSyonII/zeos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LyonSyonII%2Fzeos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LyonSyonII%2Fzeos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LyonSyonII%2Fzeos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LyonSyonII%2Fzeos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LyonSyonII","download_url":"https://codeload.github.com/LyonSyonII/zeos/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LyonSyonII%2Fzeos/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271574431,"owners_count":24783319,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-22T02:00:08.480Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T11:09:37.712Z","updated_at":"2025-08-22T02:08:40.753Z","avatar_url":"https://github.com/LyonSyonII.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e Uriel Camí \u0026 Liam Garriga\n\n# ZEOS - FiB UPC (2024-2025)\n\n## Directory Structure\n\n- [SO2] bootsect.S: boot sector definition\n- [SO2] build.c: build process\n- clock.c: Clock interrupt management\n- [SO2] devices.c: sys_write_console\n- entry.S: Interrupt/Syscall (HW/SW) + Exception handlers + SAVE_ALL/RESTORE_ALL macros\n- hardware.c: enable hardware interrupt mask\n- interrupt.c: set_idt + print_page_fault\n- [SO2] io.c: Console output\n- keyboard.c: Keyboard interrupt management + char_map\n- libc_sys.S: libc syscall wrappers\n- libc.c: utils + syscall wrapper API + errno\n- [SO2] list.c: linked list implementation\n- [SO2] mm.c: Memory definition and initialization\n- [SO2] sched.c: Stub Scheduler implementation\n- sys_call_table.S: Syscall id definition\n- sys.c: Syscall routine implementations\n- system.c: Kernel main (boot, init, launch user code)\n- user.c: User code\n- utils.c: copy_from_XXX, access_ok, itox, ...\n\n## TO-DO\n- [x] Complete Zeos code.\n    - [x] Implement the macro RESTORE_ALL.\n    - [x] Implement the macro EOI.\n- [x] Implement the keyboard management.\n    - [x] Implement the keyboard service routine.\n    - [x] Implement the keyboard handler.\n    - [x] Initialize the IDT with the keyboard handler\n    - [x] Enable the interrupt.\n- [x] Implement the write system call.\n    - Hem d'utilitzar `sysenter` (fer el que fa `int` manualment)\n      Excepte canvi d'usuari a sistema i IDT\n      Hem de guardar la direccio del handler global a registres de MSR a l'inici del sistema `wrmsr/rdmsr`\n      Perdem la posicio de la pila d'usuari `%ebp` i posicio de codi (etiqueta), les guardem a la pila\n    - Copiem parametres a EDX, ECX, EBX\n      Si en tenim massa, guardem a la pila i un dels parametres sera la direccio de la pila on es troben\n- [x] Implement the clock management.\n- [x] Implement the gettime system call.\n- [x] Implement the page fault exception management.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flyonsyonii%2Fzeos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flyonsyonii%2Fzeos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flyonsyonii%2Fzeos/lists"}