{"id":28454086,"url":"https://github.com/jlecomte/simplix","last_synced_at":"2025-08-03T20:42:05.068Z","repository":{"id":2931183,"uuid":"3942591","full_name":"jlecomte/simplix","owner":"jlecomte","description":"My hobby operating system, written for fun back in 2007...","archived":false,"fork":false,"pushed_at":"2012-05-11T16:21:55.000Z","size":178,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-06T18:53:15.064Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jlecomte.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-04-05T18:12:35.000Z","updated_at":"2022-06-06T16:33:57.000Z","dependencies_parsed_at":"2022-09-10T01:12:10.001Z","dependency_job_id":null,"html_url":"https://github.com/jlecomte/simplix","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jlecomte/simplix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlecomte%2Fsimplix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlecomte%2Fsimplix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlecomte%2Fsimplix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlecomte%2Fsimplix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jlecomte","download_url":"https://codeload.github.com/jlecomte/simplix/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlecomte%2Fsimplix/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262381240,"owners_count":23302200,"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","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":"2025-06-06T18:40:43.615Z","updated_at":"2025-06-28T05:31:18.742Z","avatar_url":"https://github.com/jlecomte.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simplix\n\n## Introduction\n\nBack in university, I took a few classes dealing with operating system design.\nThese classes were extremely theoretical and, in some ways, helped me\nthroughout my curriculum and my career, serving as a solid base I could then\nbuild upon to gain new knowledge. However, after spending a few years working\nwith high level languages in sandboxed environments, one tends to forget how\nthings work at lower levels, and that sometimes leads to less than optimal\nhigher level code.\n\nIn 2007, faced with that situation, I decided it was time for me to brush up on\nmy core CS skills. However, I needed a tangible goal. And then I thought: why\nnot write an operating system? OK, not a full blown operating system of course,\nbut the seed of a very basic one (calling Simplix an operating system is a bit\nof a stretch since it cannot be used for anything actually useful) One that\nother people could look at and actually understand (Even MINIX, which was\ndesigned to be easy to understand by students, is not that easy to grasp\nwithout spending a lot of time hunched over the code)\n\n## High level characteristics\n\n* Target architecture: PC with a single Intel 386 or better CPU\n* Monolithic, interruptible, non preemptible kernel\n* Hardware interrupt handling using the Intel 8259 PIC\n* Software interrupt handling\n* Advanced management of physical memory:\n\n    * High performance page allocator\n    * High performance memory allocator (kmalloc/kfree)\n\n* Support for kernel threads and user space processes\n* Simple scheduling algorithm\n* Support for virtual memory using segmentation\n* Support for system calls: exit, fork, waitpid, getpid, getppid, time, stime, sleep and brk.\n* Peripherals: keyboard, video screen\n* Basic IDE device driver and RAM disk driver\n* Basic user space library\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjlecomte%2Fsimplix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjlecomte%2Fsimplix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjlecomte%2Fsimplix/lists"}