CMU’s 15-213, Introduction to Computer Systems is an amazing course. It teaches you elements of Operating Systems and System Software in a way few undergraduate level courses do. The course covers everything from how systems interpret software, all the way to how addressing, signals and locks work on a higher level. What makes it brilliant is the applicability of the course. Whether you’re a budding Systems guy or a Web developer (mean no harm :P), it’s got something for everyone.
Quoting from the course website:
The ICS course provides a programmer’s view of how computer systems execute programs, store information, and communicate. It enables students to become more effective programmers, especially in dealing with issues of performance, portability and robustness. It also serves as a foundation for courses on compilers, networks, operating systems, and computer architecture, where a deeper understanding of systems-level issues is required. Topics covered include: machine-level code and its generation by optimizing compilers, performance evaluation and optimization, computer arithmetic, memory organization and management, networking technology and protocols, and supporting concurrent computation.
And you the best part, it’s publicly available along with lectures and assignments.
Ok, so since you’re interested let’s talk links:
That should pretty much set you up. The prescribed book is brilliant. I recommend buying yourself a copy and working in along with the lectures.
Ok, so you need working virtual-box and docker install.