F
F
Flarx2015-10-31 16:52:53
IT education
Flarx, 2015-10-31 16:52:53

System programming, where to start?

A long time ago I had a dream to do systems programming . Writing emulators , interpreters, wasps and more. Now I'm a big boy, but I don't know where to start. A search on the topic emulation does not really give anything. Help a newbie. I know c#, some c++. Throw, please, literature, articles and other information. Share your experience.
PS At first I will use Windows, but in the future (far) I think I will switch to Archlinux.
PPS I think that before mastering assembler, you need to learn more about everything.
PPPS "PS By the way, let me ask what kind of assembler you are going to master: ARM? MIPS? AMD64?"
Arm was going.

Answer the question

In order to leave comments, you need to log in

8 answer(s)
D
dordzhiev, 2015-10-31
@Flarx

First C, then you read Tanenbaum's book. And how to proceed, you will decide for yourself, knowledge will be enough.

V
Vladimir Martyanov, 2015-10-31
@vilgeforce

Learn pure C.

O
Oleg Tsilyurik, 2015-10-31
@Olej

I know c#, some c++.

Forget it.
In what you call "system programming" there is nothing to do with either one or the other.
And forget it.
Only Linux (well, if you really want to - FreeBSD, OpenSolaris, QNX, ...)
Fumbling with Windows will not give you anything, neither in terms of experience, nor in terms of knowledge.
But you will need the assembler last, if you need it at all ...
PS By the way, let me ask you, what kind of assembler are you going to master: ARM? MIPS? AMD64? ...

M
MiiNiPaa, 2015-10-31
@MiiNiPaa

Start by trying to write an NES emulator. The documentation is complete, this topic has been sucked from all sides.

PPS I think that before mastering assembler, you need to learn more about everything.
Learning assembly itself will bring a lot of information about the design of processors, and the absence of syntactic sugar will bring knowledge of how this sugar is implemented in languages.

A
Alexey Cheremisin, 2015-10-31
@leahch

Start small, buy a stm32f4-discovery stm32 card, load freertos into it and blink the diodes.
Well, or in Linux, make a simple driver according to the book of Ori Pomerants, it is everywhere in the public domain, the original is here www.tldp.org/LDP/lkmpg/2.6/html/index.html

S
Sergey, 2015-10-31
Protko @Fesor

to emulate something you need to know how it works in reality. If you know how what you're trying to emulate works, you can figure out how to do it programmatically.
Conclusion - we read books, for example, Tanenbaum, we understand how what you want to emulate works, etc. In a word... google not "how to do what I want" but split the task into subtasks, etc.

I
Ilya Bobkov, 2015-10-31
@heksen

Write system service under windows

B
beduin01, 2015-10-31
@beduin01

Learn Rust and D.
On the first one, you can write at a very low level, on the second, in theory, too, but there will be a small overhead that system engineers do not like.
If you know Chinese, you can read what they write about bootloaders here) forum.dlang.org/thread/[email protected]

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question