Joke Collection Website - Joke collection - In the following conversation, what does simple low-level development mean? Can you provide a few websites he mentioned? I am a software engineering major! I am a sophomore! Thank you! gt;.lt;

In the following conversation, what does simple low-level development mean? Can you provide a few websites he mentioned? I am a software engineering major! I am a sophomore! Thank you! gt;.lt;

Hello poster, my brother is also a software engineering major. He graduated more than half a year ago and is currently working hard in the legendary "low-level development". I will summarize the new information in the past six months as follows. I hope the poster will not be blamed for his unfairness.

1. If you are doing low-level development on an operating system, you actually need to have a good understanding of the operating system. For example, when writing the underlying driver code of WINDOWS, you need to have a detailed understanding of the WDM driver framework of WINDOWS. According to Just follow the framework; if you are writing a driver for LINUX, the same is probably true, but I have never written a LINUX driver. The ultimate goal is to have a good understanding of the operating system, be able to customize the operating system, and complete some functions that ordinary application software cannot complete.

2. If you are writing a driver on a microcontroller or a specific type of CPU or development board, you need to have some understanding of the CPU instruction set, which is usually assembled, because this layer of operations The system does not have it. It can only be compiled into the language of the CPU (a binary thing) on ??the compiler, and then written to certain specific locations in the memory or hard disk, and waits for the CPU to load these codes and run them after it is powered on. , but LINUX is an open source kernel. If you are more powerful, you can even transplant LINUX to your own development board. However, kernel transplantation is not a game, it is not that easy, it requires unremitting efforts!

If you are engaged in the development of 1, such as anti-virus software, etc., which are divided into platforms. If it is WINDOWS, take a look at the WDM and NT driver processes. If it is the underlying development of LINUX, look at the previous ones. Find the driver and take a look and follow suit! If you want to go deeper, you can only read the LINUX kernel source code (it is recommended to read books on operating system principles). If you are engaged in development in Type 2, you must understand everything from embedded to digital circuits (it is recommended to read the principles of computer composition).