Hacker News new | ask | show | jobs
by sometimesshit 1829 days ago
> I had a Rust job for around half a year, where people build web servers and came from a C and C++ background

I don't think this is system programming rather network programming.

You should try embedded or try to write drivers

Better yet write a mini OS your own that interface with hardware

Edit: Wow, I'm getting down voted. I guess political correctness

5 comments

> I don't think this is system programming rather network programming.

This is probably why you are getting downvoted. Squabling about semantics / gatekeeping what counts as systems-programming isn't useful. It probably doesn't answer OPs question, and it is rather rude to assume that what OP meant by "systems programming" is wrong just because it is different from what you mean by "systems programming".

edit: maybe it was your dead comment that caused the downvotes.

I think a good approach to learning systems programming would be to find a piece of hardware, read through its datasheet, and attempt to implement its driver. Or program a microcontroller in rust. Or try to get "hello world" to display on a PC operate without an OS.

There are a lot of neat, and not-too-intimidating things that will give you a good appreciation of the techniques used in systems programming you don't see in other areas. Eg reading technical documentation (datasheets, Reference Manuals etc), reading and writing registers, familiarizing yourself with memory layout, and communications protocols. Writing a HAL to see how you can abstract over register writes to make high-level code.

In other words, I agree, and don't think this post's parent was gatekeeping; it's the definition I had assumed as well.

Web servers would be counted as systems software by most people. I've been a 'systems' person my whole career, part of the system community, publishing at systems conference and doing work in a systems research group, and I'd count web servers as systems and so would most people I know.
Drivers are not all system software there is.
I meant to be hardware drivers like Display drivers.

The OP asked about System Programming not System software.

Driver is an interface and you can write application software on top of it.

> The OP asked about System Programming not System software.

System programming obviously involves writing system software.

in what world could the negative response to your pedantic and gatekeeping comment be considered "political correctness"