[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-6507":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":16,"starSnapshotCount":16,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},6507,"ostep-projects","remzi-arpacidusseau\u002Fostep-projects","remzi-arpacidusseau","Projects for an undergraduate OS course","",null,"C",5806,1548,79,13,0,1,9,74,5,40.57,false,"master",true,[],"2026-06-12 02:01:25","\n# Projects for an Operating Systems Class\n\nThis repository holds a number of projects that can be used in an operating\nsystems class aimed at upper-level undergraduates and (in some cases)\nbeginning graduate students. They are based on years of teaching such a course\nat the University of Wisconsin-Madison.\n\nAlso (increasingly) available are some tests to see if your code works; eventually\nevery project will have a set of tests available. The testing framework that is\ncurrently available is found [here](https:\u002F\u002Fgithub.com\u002Fremzi-arpacidusseau\u002Fostep-projects\u002Ftree\u002Fmaster\u002Ftester).\nA specific testing script, found in each project directory, can be used to run\nthe tests against your code. \n\nFor example, in the initial utilities project, the relatively simple `wcat`\nprogram that you create can be tested by running the `test-wcat.sh` script.\nThis could be accomplished by the following commands:\n```sh\nprompt> git clone https:\u002F\u002Fgithub.com\u002Fremzi-arpacidusseau\u002Fostep-projects\nprompt> cd ostep-projects\u002Finitial-utilities\u002Fwcat\nprompt> emacs -nw wcat.c \nprompt> gcc -o wcat wcat.c -Wall \nprompt> .\u002Ftest-wcat.sh\ntest 1: passed\ntest 2: passed\ntest 3: passed\ntest 4: passed\ntest 5: passed\ntest 6: passed\ntest 7: passed\nprompt> \n```\nOf course, this sequence assumes (a) you use `emacs` (you should!), (b) your\ncode is written in one shot (impressive!), and (c) that it works perfectly\n(well done!). Even for simple assignments, it is likely that the\ncompile\u002Frun\u002Fdebug cycle might take a few iterations.\n\n## C\u002FLinux Projects\n\n### Initial Projects\n\nThese projects are meant to get you warmed up with programming in the C\u002FUNIX\nenvironment. None are meant to be particularly hard, but should be enough so\nthat you can get more comfortable programming. \n\nRealize the best thing you can do to learn to program in any environment is to\nprogram **a lot**. These small projects are only the beginning of that\njourney; you'll have to do more on your own to truly become proficient.\n\n* [Unix Utilities](initial-utilities) (cat, grep, zip\u002Funzip)\n* Sort (text-based)\n* Sort (binary)\n* [Reverse](initial-reverse) (very simple reverse program)\n\n### Processes and Scheduling\n\n* [Shell](processes-shell)\n\n### Virtual Memory\n\n* Memory Allocator\n\n### Concurrency\n\n* [Web Server](concurrency-webserver)\n* [Parallel Zip](concurrency-pzip)\n* [MapReduce](concurrency-mapreduce)\n* Web Crawler\n\n### File Systems\n\n* [File System Checker](filesystems-checker)\n\n### Distributed Systems\n\n\n## Kernel Hacking Projects (xv6)\n\nThese projects all are to be done inside the\n[xv6](https:\u002F\u002Fpdos.csail.mit.edu\u002F6.828\u002F2017\u002Fxv6.html) kernel based on an early\nversion of Unix and developed at MIT. Unlike the C\u002FLinux projects, these give\nyou direct experience inside a real, working operating system (albeit a simple\none).\n\nRead the [install notes](INSTALL-xv6.md) to see how to download the latest xv6 \nand install the tools you'll need.\n\n### Initial Projects\n\n* [Intro To xv6](initial-xv6)\n\n### Processes and Scheduling\n\n* [Scheduling (Lottery)](scheduling-xv6-lottery)\n\n### Virtual Memory\n\n* [Virtual Memory (Null Pointer and Read-Only Regions)](vm-xv6-intro)\n\n### Concurrency\n\n* [Kernel Threads (Basic Implementation)](concurrency-xv6-threads)\n\n### File Systems\n\n\n\n","该项目为本科生操作系统课程提供了一系列实践项目。核心功能包括从基础的Unix工具编写到更复杂的并发处理、虚拟内存管理以及文件系统检查等，旨在通过实际编程加深学生对操作系统概念的理解与应用。技术上主要使用C语言，并在Linux环境下运行，部分项目还涉及xv6内核的修改与扩展，为学习者提供了直接接触真实操作系统内部工作的机会。此外，每个项目都配备了自动化测试脚本，帮助学生验证代码正确性。适合于计算机科学专业高年级本科生或初阶研究生在操作系统相关课程中使用，以增强其编程能力和系统级思考能力。",2,"2026-06-11 03:07:20","top_language"]