I have been writing a real-time operating system kernel over the past few days. I will make it public later, hoping to do my part for the development of domestic it. Recently, many students and friends have no direction like me. So I want to share my experience with you and hope to help my new friends. In a twinkling of an eye, I have been studying and working in the IT industry for more than seven years. During this period, I used Web pages, wrote MIS, databases, and applied I have worked on communication software, hardware drivers, and protocol stacks. Now I am working on operating system kernel and IC-related development. They had a lot of detours and suffered a lot. I am on a three-stream College, and most people in the same city do not know. Not because the school is not good. I hope that I can find a good job based on my school reputation. All hopes are pinned on your own efforts. I started my study during the holidays. I remember the first book I bought was "Computer Basics dos3.0". Don't be scared. At that time, I had popularized dos6.22, but I saw books such as dos4.0, 5.0, and 6.0 in the bookstore. This is the fourth, fifth, and sixth book. I remember looking for dos1.0 everywhere. Now I think I did not find it. :) before the start of the school After learning Pascal, there was no computer or anyone to ask, and I didn't even have the idea of what a program was, I had to memorize the code and write it on paper. I had a 486 instance until I was a sophomore. How many processes did I write with paper before that? I can't remember the sequence clearly. I only know that the longest I wrote over 30 pages of A4 draft paper. My C language, C ++ And VC are all started under such conditions. Therefore, the conditions can be overcome. I hope that the number of conditions that I have experienced can be improved. Bitter students have a little confidence. My first computer was in my brother-in-law's machine room. I was so excited, but I I was dumpfounded immediately on the computer. They used win3.1 in the English version. I had a good understanding of DOS and I was so worried about it. The word was accidentally made into a full screen, and I couldn't return it. At that time, I was so anxious. I broke the machine. The first C language program is the classic helloworld. After several weeks There are very few opportunities, and no book tells me that the development environment (tc2.0) needs to be set, and At the beginning, I did not know how to compile the program. I was very intelligent and changed the extended program name from .cto .exe. Note. I finished C and x86 compilation, data structure, and C ++ in my freshman year. Because I spent all my energy on self-study This is good for the three types of schools, and they still graduate even after they reach the 10 or 20 course. But I am so hard. We can see how rigid computer education is in our country. The sophomore year was prepared to learn VC and BC. At that time, it was difficult to choose between them. Later, I chose VC. It was nothing more than two books in the bookstore. That is 6 yuan cheaper. My efforts are unmatched in my class. I learned day and night, especially when I had a computer, Many times my father taught me in the middle of the night to say that I am not dead. I have always felt that my foundation is poor, my memory is not good, and my conditions are not good. So I think it is only a little more time to catch up with others. Many of my friends later said that I have the talent to learn computer, Make me laugh and cry. I used 486, 16 M memory, and 1g hard disk. At that time, the configuration of my students was p166mmx. I installed It takes nearly two hours to compile a program generated by the bc5.0 wizard. The monitor is a second-hand device with a very high radiation, and the boot screen Sparks. It looks cool :), once a program writes After too long, I thought that the background of the white editor had changed to purple. I thought that the monitor was broken, and then I found my eyes could not work. But it is strange to say that my eyesight is still 1.5 today. It is a miracle. But it is accompanied by a broken machine. After two years, I learned about VC, Delphi, and sqlserver. Later, the machine typed for my aunt. According to her One day, she was playing happily. A smoke was drilled out of the monitor with a flame in it before it went into bed. I got a chance to practice in a computer research institute during my junior year holiday. I am not so much a volunteer as I do. I have worked in two projects. You did not get a penny in the month. However, these two months have helped me a lot in my development, and I learned more about the society. Of course, I don't know anything about it. I got familiar with the network and learned Delphi and Oracle. Because the work is very serious, I got a good comments. I started to work with an elders on projects. 4. I had my own income, and I went to two other MIS companies for part-time jobs in my senior year. Although I didn't have much money, I had 100 million students I am very satisfied with over 0 yuan of income. I finally used my own money to change my computer. When I was a senior, I started looking for a job. I already have a lot of work experience (of course, it's very naive), and I started to hear my parents want to go to that research institute, I hope I can go to that department after my internship, but I don't know why I finally fell short of it. This kind of organization is quite bureaucratic. In one breath, I got to work as a team leader for MIS in a part-time company. When I graduated from my junior year to one year After a variety of MIS, from gas, tobacco factory, public security, railway, food to colleges and universities, what is rich to do, work is also very hard We often work overtime and stay up all night, from talking with customers about requirements to designing, coding, testing, and delivery. At that time, I felt very A sense of accomplishment, I feel pretty good. Now I think it's really superficial. New students can easily be misled, and various development tools are dazzled. Companies are very important, but such work will always be a low-level developer. Don't tell me what a system analysis is like. How difficult it is. Do you think that designing your own demands is system analysis and design? How many companies are well qualified? I am an ISO9000 internal auditor and have received many trainings at rational, I got four certificates and another company asked me to do CMM. I have heard many of these, but many things have changed in China. Nature, a company can be standardized without Passing ISO9000 or CMM. I am now in a company that has decades of History Enterprise Management is not comparable to that of domestic enterprises. As a graduate who has never entered the community before It is almost impossible for students to master system analysis and design in a short time. object-oriented and UML are just a tool and the key It is the idea of people, not that you are familiar with C ++ and rose to make a good design. On the contrary, if you have a high You can use C to write programs that are more modular than others. There is a strange circle in the software development industry in China. Many people think that VC> Delphi> VB is really great. Funny. I have developed these software. To put it bluntly, they are all tools. Which one should I choose based on the application's needs? Instead of the upper layer. If you choose to use a development tool with a strong face, you can only describe You are very thin. If the hierarchy is used, these tools are not hierarchical, because they are used by some system AP I. Microsoft's friends will not think you are amazing because you remember how many APIs or classes they have. You will always It's just their customers. They value money in your pockets. I have also done system kernel, and I have encapsulated many AP I, I will not focus on customers who use these APIs for secondary development, unless they can make their own unique settings . As for some people who think that C ++> C is even more appealing, you may as well inquire about how many operating systems are there. The kernel is written in C ++, and several real-time systems use C ++. Of course, I am not saying that C ++ is not good, but currently C ++ cannot match C in core and real-time systems. c ++ is suitable for application system development. Institute In my opinion, it is not about what tools and languages you use, but about what you do. Your design reflects your skills Operation Level. After a year of hard work, I felt very depressed. Most of my work was done by skilled workers, and I didn't have much technical skills. And cannot see the direction. So I decided to leave the city to go to Shanghai to seek better development and intend to give up on me. Previously, MIS was transferred to the communication industry. I can't help but mention my girlfriend. We met her half a year before coming to Shanghai. she was an intern at our company The company sent her to write documents for me, and our feelings grew fast. She told me a lot about her family's reform and opening up Her mother loved playing cards, lost millions, and owed a lot of debt to her first nouveau riche. She had a boyfriend, but she No feelings, just because he gave her mother more than 20 thousand yuan, and later forced her to write a loan of 40 thousand yuan, her boyfriend She betrayed her and beat her more than once. Now she is forced to get married, or she will pay back the money. This person is still an old college student. Teacher! Her mother spent her father's tuition because she had no way to get a diploma in arrears. Her mother now has I took out my savings and received some money from my friends. I paid her tuition and showed it to her mother. Ill (later I learned that the money for seeing a doctor is exhausted, even if her mother is ill, I don't know, but she does not Method ). At this time, my family knew something and resolutely opposed me to be with her. Her old boyfriend also tried Damage. In desperation, we decided to leave this sad city early and stay away from our home. Due to the rush of time, I only prepared 4000 yuan, and her only a few hundred yuan was required by her mother. I bought three tickets, one at noon. The two are for the night. At noon, my family sent me to the ship. They left me and got off the ship. I took the night with her. The ship left the city where I lived with her for many years and took away only a debt. We have never been to Shanghai. He is stubborn and unwilling to bother his classmates and friends. We arrived in Shanghai at half past six pm. I don't know where to go. We went to a hotel for 20 yuan. This room didn't even have a window. The weather in February was cool. The room was very sultry. The next day, we started to rent a house because we didn't have much money. It took us a week. I don't know how many rounds I had in Pudong and found a 400-piece house, but we all I don't know about Shanghai, but I have to pay for three times and half a month of intermediary fees. After I buy some pots and pans, we only have 80 0 RMB, and work has not been settled yet. The 800 RMB should support us to get the first month's salary. In order to save money, we I cook for myself. I only spend two yuan to buy food every day. She is very fond of eating (or her willingness to go hungry often in College ). I can't bear it until now. Her old boyfriend did not let her go and often called to show her And came to Shanghai to see her. She also said a lot about threatening her. She was too kind and said that he had helped her before. I don't want to be familiar with him. In the future, I will wait for an interview notification every day at home. I originally wanted to quickly find a mis Company But she insisted that I should not give up on my own ideals, and finally worked hard. Home communication companies, even though 4000 yuan of salary cannot catch up with the price offered by MIS, it is enough to survive in Shanghai. She also After finding a job, she cried at work on the first day. This was the first time she came to Shanghai to shed tears. As a brand new industry, I have reduced myself to zero. The VC, Delphi, and database I have learned are not useful, I am facing the knowledge of embedded systems, protocols, and signaling systems that I have never touched before. I know that I have not left, so I tried my best to learn, just like a fresh graduate, and I finally got familiar with it over the past six months. I was recognized by the company and received a higher salary. In the days to come, we save money and owe My friend paid more than 10 thousand yuan, and the day was on track. At this time, my girlfriend told me that she wanted to take a postgraduate exam, and I also supported it. So she resigned at home to prepare for the exam. In addition, I would like to thank my project manager for being a product manager of a large communication company, I learned a lot from him and gave me a lot of selfless help. In Give me enough space and trust. I remember my company arranged for me to maintain an Access Server software, because the amount of code is not enough. It is too small (50 thousand rows), and the materials and documents are not complete. It is very difficult for me to maintain it, so I want to repeat it again, The company's leaders are not very supportive, and may feel that the workload is too heavy, but he strongly supports me. In private, he asked me to let it go, My maintenance work is busy. With his support, I spent half a year completing the software for accessing the server, and And implements a relatively complete TCP/IP protocol stack. Here I learned about embedded system design, driver development, TC P/IP and a lot of communication knowledge, I spent a year finally turned myself from MIS development to the communication industry, and stabilized Heel. I have developed a large number of direct hardware operations, and I am no longer affected by Microsoft's operating systems, such as Vc and delhpi. The constraints of the sending tool, I finally saw another blank space. I like to follow the root of the problem. With the development, software development and hardware become more and more closely linked. Lack of knowledge creates obstacles to my development, and chip technology is basically in the hands of foreign companies. System-level design is a huge constraint. The first profit (and often the most lucrative) of a new product ) IC companies such as Intel and Motorola often make money, and domestic manufacturers can only drink some soup. So I am determined to solve myself It has already encountered hardware technical barriers and intends to leave the communications industry to enter the relevant fields of icdesign. Of course, I understand that if I know very little about hardware, no IC company will be kind enough to recruit me. Personnel. Therefore, I must lay a solid foundation and learn some relevant knowledge to prepare for the future. Like starting from Mi I have read a lot of books about communication, and I have done a radius billing sorter for an ISP. This communication company gave me this opportunity. My communication company is engaged in system design and has many pcs. B Layout hardware staff, I usually pay attention to learning from them. Because I am working on software, I am not reading hardware materials in the company. So I had to watch it at home. I have been working overtime for a year since I first came to work in Shanghai. I usually go to bed around half past five and start from the next day. I work early. If there are not many people on the subway I also read books. Of course, it won't be smooth sailing. If you have any questions you really don't understand, you can get up and ask the hardware staff. Their help made my learning progress much faster, because I learned it in the absence of human resources, half of my time is I am very fortunate to have spent some time solving problems. I have such a learning environment. In the next year, I learned how to view the hardware schematic, and how to design simple hardware. (There is still a small gap in analog circuits). This is the case. When you install software, others always recognize it. You are a software developer and may not be recognized by others when you start to learn hardware. A friend of also told me A person cannot finish learning everything. I also understand this, but I want You have done better. However, when you are familiar with hardware, everyone will think that you are familiar with both hardware and software. I'm used to it. At this time, I can take the hardware materials to the company, and no one will be surprised. I am proud that I have made an IAD (Softswitch terminal device) system solution through my own efforts, including software The selection and design of hardware have been recognized by the company and colleagues, and I am very pleased. Technology is complementary. When my hardware has made some progress, my software design has also been greatly improved. I can understand the problem from a deeper level. The CPU used for accessing the server is Motorola powerpc860. You all know that 860 QMC and the batch data transmission of software usually adopt the BD table method, and hardware personnel are used to driving the data. A fixed BD table is used. Data is copied from the BD table to the user buffer or from the user buffer every time data is received or sent. BEI to the BD table, because of the deep understanding, I re-implemented this process, using dynamic BD table, drive Receives data from a network port and submits it to my software for layer-3 switching until it is sent from another interface. There is a copy. This design greatly improves the performance and makes the system indicators close to the theoretical value. Combination of software and hardware It took my design level a step. I am writing this operating system. After compilation, I decompile the program into an assembly. Find out the code that is not optimized, and then adjust it in the C program. For example, many CPUs do not have special multiplication methods. Command, we should all know that a multiplication operation on such CPU usually takes a lot of instruction cycles, Some friends will say this, I know, I will try to avoid using the X number, but it is often not that simple, you know How is the subscript operation of arrays in C language implemented? Take a closer look at the disassembly code and you will understand that The C compiler sometimes generates a displacement command, but sometimes it is implemented by multiplication. It is a world of difference, so you can improve the system performance to the extreme if you understand these problems .? I will not talk much about these questions. If you are interested, you can discuss them later. In other words, I sincerely hope that friends who are more in-depth in software will have the opportunity to learn hardware and other things. Related Knowledge, especially for underlying development and embedded design. This is of great help to improve the software technology. No You only know a lot of things, but you don't know why. My point is in my current IC company proj. ECT manager is also verified. He told us that the current software manager for the 802.11 chip product was originally The hardware design of this chip was originally made of software, and now it is working on IC. There are many similar examples, This is not very popular in China. I have some experiences to share with you. Only after I do my job well can I learn from my work. Big technology, so that the company's boss will not dislike, In the entry stage, I usually do not ask those senior people But ask some friends with relatively low qualifications, such as students who have just graduated, because they will often tell you in detail However, senior people usually think that your question is too simple, so the answer is very simple. I am sorry to ask more questions. And so on After a certain technical level, I will ask them, and they can give you a deeper answer. In addition, some friends say I have a good chance. They also hope to have a new job. Unfortunately, they have no chance. I only have to smile, but I have a chance. Everyone should know that I was not born in any it family. :) no one promoted me all the way. My mother died earlier. My stepmother (I call her Aunt) watched me try to come over. I am still writing programs in my S, and she says I can learn from the hard work of wood. My ultimate goal is IC rather than PCB, so my next preparation begins to learn about icdesign. The same I did not understand the icdesign, and I had to rely on myself for the next step. I bought a lot of related books and checked a lot on the Internet. Materials, I spent a lot of time learning VHDL, and used software for some simple design and simulation (No ASIC, only for FPGA). With the deep learning, I gradually understand the basic process of IC design. The hardships of this road. At this time, I have prepared for job-hopping. The design company submitted a resume and passed a long interview (more than four hours ). I'm satisfied with everything else, My salary is not satisfactory. I also understand the reason, because I am a newcomer in this industry and I have no experience, I once again Cleared. The boss of the company asked me if I could accept it for more than 6000 months. I know that he is also responsible for the work. Think about my communication lines Basically, my friends in the industry have an annual salary of more than 0.1 million yuan, and the monthly salary of over yuan is also everywhere. My friends have also helped me introduce it to me. I was hesitant about how to choose a company with good treatment. I love my career and yearn for my pursuit, But I am also an ordinary person. I also need to support my family. I also want to buy a house and buy a car earlier. Life gives me Difficulties. At the age of 63, Einstein said, "If a person has never achieved the greatest scientific achievement before the age of 30, then he will never Yes ." This sentence gave me a lot of pressure and vibration. I am 26 years old and only four years away. I have to catch it. Over the past few years, I have worked hard to reach the highest technical peak. For this ideal, in order to be able to leave your dreams more Recently, I chose this IC company. I understand that my salary is almost the same as that of my master's students, But for the future development, we can only endure it, and everything has to begin again. Changing the industry is a very painful process, especially from A proud position changes to a strange position, it feels like drilling out of the warm quilt and jumping into the ice water, let Unacceptable. In the original communication company, I was the only employee who had raised his salary five times in two years. They have given me great recognition, and I am often entrusted with important responsibilities at work. But now it's all in the past, in the new company I am just a newcomer, and no one knows or cares about my past achievements. I decided to start over and think of myself For new students, I should use my own efforts to get the company's approval. It is very painful to enter a new industry, I told I have to endure all this. Although there are a lot of temptations outside, since I have made a choice, I am not allowed to put it easily. Discard. I have been working in this new company for more than a month. It started to be very difficult and now I have adapted to it. First At the end of the month, the team leader talked to me and said that I was one of the best new employees. It is definitely an affirmation of my efforts. I would like to thank my girlfriend for her great support and encouragement, She encouraged me every time when I was shaken, so that I could stick to my own ideals. When I first came to Shanghai, she told me not to barely go. I am doing mis. This time, she gave me the temptation to withstand a monthly salary of over. Without her, I may not be able to get my grades today. The current company has its own operating system, its own CPU, DSP and other chips. Here I can learn about the world With the most advanced technology, our design and development are no longer completely dependent on others' hardware and systems, which makes me very happy. I plan After my work is on the right track, I will try my best to learn new knowledge and realize my ideal. In the next two years, I have set several goals for myself: I. Strive to do my job well and get the approval of the company and colleagues in terms of work; 2. Learn IC hardware design knowledge, consult with colleagues, and use all opportunities to practice more; 3. Implement the main part of my real-time operating system, complete the TCP/IP protocol stack module, and release the source code for free; 4. Marry my girlfriend and buy a small house. This is the most important thing, because I understand that my career can come back, Precious feelings are hard to be recovered. |