/r/systems
This is the home page of the /r/systems community on reddit.
This group is related to low-level programming issues involving the design and implementation of data structures and management techniques, compilers, operating systems and computer architectures. The hope is that people provide references to peer-reviewed work or strictly-analytical pieces.
We also have an IRC channel on irc.freenode.net, ##systems. If you don't have an IRC client, you may use a web-based client at http://webchat.freenode.net/?channels=%23%23systems
/r/systems
Let's look back at some memorable moments and interesting insights from last year.
Your top 10 posts:
Probably a dumb question, but having never taken any compiler/OS course, I couldnt find any answer online. Say, I have a program, which calls a shared library API , and that needs a pointer to be passed, which the library will fill with data. So, in my func_a(), if I create a local variable, pass the address of this to the library, when the library tries to fill that pointer, how will it work? Because my basic OS knowledge was that, each program has its own virtual addr space, so passing my local variable' addr to that lib, and if the lib tries to dereference, how does addr translation work? Wouldnt the lib have its own virtual addr space and could conflict my local addr space?
void func_a()
{
struct local lcl;
get_lcl_filled(&lcl);
}
----- library;
void get_lcl_filled( struct local * p_lcl)
{
struct local temp;
strcpy(temp.name, "ABC");
p_lcl->id = 123;
strcpy(p_lcl->name, temp.name);
return;
}
Everything I know about (TCP) congestion control in data center is quite old, having covered the basics in an undergraduate computer networking class. I also realize the state of the art has moved along quite a lot -- modern networks have multiple links, different topologies and load balance across them, ECN is more common place and algorithms based on BW-delay product, explicit admission control and RTT measurements are commonplace. Finally, I also realize that there are schemes and approaches that I probably don't even know of given I haven't followed this field closely.
There seems to be a complex play between workloads, desired properties, network topologies and algorithms and I'm looking for anything a primer/summary/lecture notes/class on the underlying principles and concepts on which modern algorithms are being designed. Anything that would allow a person 20 years out-of-date to come up to speed in the developments that have happened in the last 20 years.
As a bonus I would also appreciate any links to papers/resources on how modern data center topologies are constructed and used (if any exist).
I realise there may not be a "one resource" but a series of papers; for those that follow this field, what would you recommend?
So I recently got interested in systems programming and I like it. I have been learning Go and Rust. I know to expand the potential projects I can do, it would useful to learn operating systems, distributed systems, compilers and probably take a computer systems class. Throughout the process I’d hopefully find what I like and dig deeper.
However, I don’t have an idea of what makes a decent systems programmer. I believe that it would be a good thing to have a sense of an ideal I can work towards. It doesn’t have to be objective. I think one would be useful to make me plan for my study and progress. Currently I just have project ideas which idk if it’s all I should do.
Maybe I have a skewed sense of what I should do in this space. I would appreciate any direction.
I studied that in Linux, user level threads are mapped 1:1 to kernel level threads, and threads have the same type of PCB that we are for processes. About Windows, what's the difference with Linux? I studied that Windows threads are mapped m:n with pools of worker threads. So:
Let's look back at some memorable moments and interesting insights from last year.
Your top 10 posts: