Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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++.


Stanford 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/

[2] https://pdos.csail.mit.edu/6.828/2018/schedule.html


Thanks 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.)


You 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-compu...

[2] 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+3T20...

[4] https://courses.edx.org/courses/course-v1:MITx+6.004.3x+2T20...

[5] https://ocw.mit.edu/courses/electrical-engineering-and-compu...


Thank you so much for these resources.


XINU 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


Is 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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: