3 ms·
Does any one have other resources I can look into as well. I’m still a relatively new programmer but I really want to get a deeper understanding of how OSes wor
by bigmit37 8y ago
Does any one have other resources I can look into as well. I’m still a relatively new programmer but I really want to get a deeper understanding of how OSes work.
I’m assuming I need to use either C/C++ or Rust? I only Python and am currently learning C++.
- charlysl 8y agoStanford CS140e - An Experimental Course on Operating Systems [1]: students implement a simple, clean operating system (virtual memory, processes, file system) on a Raspberry Pi 3 in the Rust programming language and use the result to run a variety of devices MIT 6.828 - Operating System Engineering [2]: This course studies fundamental design and implementation ideas in the engineering of operating systems. Lectures are based on a study of UNIX and research papers. Topics include virtual memory, threads, context switches, kernels, interrupts, system calls, interprocess communication, coordination, and the interaction between software and hardware. Individual laboratory assignments involve implementation of a small operating system in C, with some x86 assembly [1] https://web.stanford.edu/class/cs140e/about/ https://web.stanford.edu/class/cs140e/about/ [2] https://pdos.csail.mit.edu/6.828/2018/schedule.html https://pdos.csail.mit.edu/6.828/2018/schedule.html
- movedx 8y agoThanks for these links. Very useful indeed. I've been looking for something to get me into C and Rust, so I can learn the lower level stuff, and get me away from higher level web technologies (which I play with all day, everyday.)
- charlysl 8y agoYou are welcome. Please note that the MIT 6.828 is really tough but will turn you into a bad-ass C hacker. It relies on MIT 6.004 - Computation Structures [1] (has edx mooc [2,3,4]) and MIT 6.033 - Computer Systems Engineering [5] as pre-requisites given that they teach you the fundamentals of computer architecture (digital abstraction, gates, circuits, processors, assembler, memory, cashes, pipelining, virtual memory, interrupts/io, buses, what have you) and system design (basically, managing complexity); they are not programming courses, but I recommend them if you have the time and interest, they are an awesome and principled way of learning the core concepts that you really need to have down before dabbling with OSs. [1] https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-004-computation-structures-spring-2009/ https://ocw.mit.edu/courses/electrical-engineering-and-compu... [2] https://courses.edx.org/courses/course-v1:MITx+6.004.1x_3+3T2016/course/ https://courses.edx.org/courses/course-v1:MITx+6.004.1x_3+3T... [3] https://courses.edx.org/courses/course-v1:MITx+6.004.2x+3T2015/course/ https://courses.edx.org/courses/course-v1:MITx+6.004.2x+3T20... [4] https://courses.edx.org/courses/course-v1:MITx+6.004.3x+2T2016/course/ https://courses.edx.org/courses/course-v1:MITx+6.004.3x+2T20... [5] https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-033-computer-system-engineering-spring-2009/ https://ocw.mit.edu/courses/electrical-engineering-and-compu...
- bigmit37 8y agoThank you so much for these resources.
- molteanu 8y agoXINU OS worked for me. You can work with a beaglebone or a raspberry pi. There is a nice book for explaining every piece of the OS (IO, scheduler, memory management, etc.) and the source code is all there for you to tweak, browse, read or do whatever. HN discussion here: https://news.ycombinator.com/item?id=10643757 https://news.ycombinator.com/item?id=10643757
- bogomipz 8y agoIs there an accompanying book for the Xinu on the Pi now then? I looked a while back and I only saw it for the Beaglebone Black.