Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to be proficient in Linux

2025-01-31 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Servers >

Share

Shulou(Shulou.com)06/02 Report--

Many students do not touch Linux much, and they know nothing about the development of Linux channels. Today's trend shows more and more that, as an excellent software developer or computer IT professional, mastering Linux is a very important capital and method to make a living.

Next, I will combine my several years of personal development experience, and Linux, but also UNIX-like systems, and open source software culture, to talk about Linux learning methods and some things that should be paid attention to.

As I just said, many students may not even know what Linux is, let alone UNIX. So let's start with the basics, we won't talk much about the history of Linux and UNIX, and we'll just get started.

The introduction to Linux is very simple, the question is whether you are patient, whether you like to toss around, and whether you do not reject overhauls such as reinstallation. It can be said that you can't learn Linux well without twists and turns. Brother Bird said that to really understand the zoning mechanism of Linux, you are quite proficient in the use of LVM, and you can't accumulate without more than 20 times of Linux installation experience, so you must not be afraid of twists and turns.

Since everyone used Windows before, I also try my best to take care of these "rookies". My recommendation is that if you are exposed to Linux for the first time, try it in a virtual machine first. I recommend Virtual Box for virtual machines. I don't advocate using VM because VM is closed-source and charged, and I don't want to promote piracy. Of course, if you have enough Money, you can try VM, but what I want to say is that even if it is VM, it is not necessarily good.

Paid software is not necessarily good.

First of all, Virtual Box is very small, Windows platform installation package around 80MB, and VM easily 600MB, although powerful, but also a lot of resource consumption, not to mention your needs Virtual Box can fully meet. So, it's your choice.

How to use a virtual machine is your business. I won't teach you this, because it's very simple. If not, either Google or Baidu is fine. If you are good at English, you can read the official documents directly. Now let's introduce the knowledge of Linux distribution.

As you can see, the Linux distribution is not Linux,Linux only refers to the kernel of the operating system, as a class-born you don't want me to explain, I don't have time.

The distributions I recommend are as follows:

UBUNTU is suitable for pure rookies, pursuing stable official support, weak requirements for system stability, like the latest applications, and relatively less fond of messy developers.

Debian, a release version that is much more difficult than UBUNTU, is characterized by a stable and easy-to-use package management system, but its disadvantage is lack of enterprise support and development drive for the community.

Arch, the first choice for developers chasing fashion, has the advantage of fast package update, seamless upgrade, one installation can basically run all the time, there is no version concept like UBUNTU, the professional point is called rolling upgrade, keep your system up-to-date. Shortcomings are obviously easy to see and unstable. At the same time, the installation configuration is more troublesome than Debian.

Gentoo, no matter how difficult it is compared to Arch, tests the comprehensive level of users, from system installation to fine-tuning, kernel compilation is the first choice for experts and * * to show their own technical means and to configure systems that meet their requirements as needed.

Slackware is similar to Gentoo.

CentOS, a community-maintained replica of RedHat, is recompiled entirely using the source code of RedHat, and is theoretically the best compatible with RedHat. If you focus on Linux servers, such as network management and erection, then CentOS is your choice.

LFS, the ultimate * showcase tool, installs and compiles the system entirely from source code. Before installation, all you have to do is follow your instructions, step by step, command by command, package by package to build your Linux, completely under your own control, whatever you want. If you make LFS, prove that your Linux skills have been quite good, if you can take LFS documents to learn and use, and then transplant Linux from the source code to embedded systems, I dare say that Chinese enterprises you can mix very well.

1. Linux Foundation

You have to pick a system that suits you, install it in the virtual machine, and start using it. If you want to learn Linux quickly, my advice is to forget the graphical interface, not to think about whether the graphical interface can provide the answer to your question, but to look around the world, to ask, how to use the command line to solve your problem.

In this process, you'd better master the Linux commands well, at least know the commonly used commands, and set up your own knowledge base, which contains all the knowledge you have accumulated.

2. The development of Linux platform and Bash script programming [JAVA].

In the next stage, you need to learn about the Linux platform's development of Cmax Candle +, as well as Bash scripting, and Java if you are very interested in Java. Similarly, it is recommended that you abandon the graphical interface IDE, starting with VIM, why VIM, not Emacs, I do not intend to start an editor war, but I think VIM is suitable for beginners, suitable for developers with clumsy hands and slow heads. Emacs has too many keys, too complex, I am very afraid. Then there is GCC,Make,Eclipse (Java,C++ or).

Although C++ is listed in Eclipse, I don't recommend using IDE to develop Clippers, because this is not the culture of Linux and it is easy for you to ignore some issues that you should pay attention to. IDE makes you lazy, lazy like a pig. If you are interested in debugging and testing, you have to learn GDB very well, and if not GDB, it is also a required course. This is the first step in development. Note that I didn't mention a word about the Linux system API, and don't worry about it at this stage. All you have to do is accumulate experience, development experience on the Linux platform.

My recommended book is as follows: C language programming. C language, white paper is certainly better. C++ recommended C++ Primer Plus, Java I do not like, do not recommend, with a list of other people's books: java entry books. Tools recommend VIM official manual, GCC Chinese documentation, GDB Chinese documentation, GNU open source software development guide (e-book), assembly language programming (so that you have a preliminary understanding of libraries, links, embedded assembly, compiler optimization options, no depth).

If you can't pass this stage, you don't have to go down, this is the bottom line, the most basic foundation, otherwise leave, don't hog Linux development. The program made by unprofessional Linux developers is contrary to the Linux culture or UNIX culture, the program can not go far, it can not be like these miraculous things like Bash,VIM. So if you can't do a good job, just leave.

3. Advanced programming in UNIX environment

Advanced programming in UNIX environment can be called a masterpiece, a classic in the classics.

Then enter the Linux system programming, no choice, APUE,UNIX environment advanced programming, read over and over again, read 10 times is too little, if you can read this book in college, the content has been practiced, there are works, your oral expression skills are strong enough, you can convince all the examiners during the interview.

(it may be a bit of an exaggeration, but APUE is definitely biblical reading, and even Windows programmers draw nourishment from it, the Google founder's desk book, Zalbok's bedside book. )

After reading this book, you will have a good understanding of Linux system programming. What is the difference between Linux and Windows platform development? What are their advantages and disadvantages? My summary is as follows: it is hard to develop Windows platform. Microsoft's system API is always expanding. If you want to use the latest and most efficient functions, you must always learn the functions that are most suitable for the current popular system. Linux is not. There are only about 100 API at the core of the Linux system. You can memorize them with good memory. And it remains the same for a long time, why not, because it is compatible with UNIX and conforms to the POSIX standard. Therefore, the development of Linux platform is mostly focused on low-level or server programming.

This is its advantage, of course graphics is the weakness of Linux, but from a developer's point of view, I don't care, because I can adapt to the command line, if there is a better graphical interface, I will take it as a gift. In addition, Windows closed source, you do not know what the system does, always be led by the nose by Microsoft, think that if Microsoft says that Win8 does not support QQ, then Tencent must not cry to death. While Linux is completely open source, if you don't like it, you can change it yourself, as long as you have enough technology.

In addition, although Windows is used by many people, it is used in a single situation and focuses on the desktop. And Linux has developed in all aspects, especially in cloud computing, server software, embedded areas, enterprise applications have broad prospects, and first-class compatibility, because the support for POSIX can run seamlessly on UNIX systems, whether Apple's Mac or IBM's AS400 series, are fully supported. In addition, Linux's development environment support is absolutely first-class, regardless of whether it is Chappend CentralPHPPHPMagol Javascript. Even C# supports it. Microsoft is not very friendly except for the Visual Stdio suite, is it?

If you have a lot of feelings after watching APUE, want to verify some of your ideas or experience, recommend UNIX programming art, the world's top * will share his views with you.

4. Choice direction: network, graphics, embedded, device driver

Network direction: server software writing and high-performance concurrent programming

Now it's time for triage. Generally speaking, I am divided into four directions: network, graphics, embedded, device driver.

If you choose the network, and then subdivide, I am not familiar with the others, just say server software writing and high-performance concurrent programming. Relatively speaking, this is the most technical in network programming, but also at the bottom. Need a lot of experience, read a lot of books, do a lot of projects.

My opinion is to read books in the following order:

APUE read deeper-especially processes, threads, IPC, sockets

Multicore programming-Pthread must be eaten through, you are very NB

UNIX Network programming-Volume 1, Volume 2

Detailed explanation of TCP/IP Network-when you read the above two books again, you should read it.

5.TCP/IP Network detailed explanation-Volume 2 I think it's enough to see Volume 2. Of course, Volume 3 is better. Work hard and try to read it.

6.Lighttpd source code-this server is also famous

7.Nginx source code-less source code than Apache,Nginx, if you can look at it roughly, it's NB. The main purpose of looking at the source code is to learn socket programming and concurrency control. I'm excited to think about it. If you have these skills, you can try to send resumes to Blizzard, write server backend for them, and think that Warcraft all over the world runs on your server software.

Linux kernel TCP/IP protocol stack-learn more about the implementation of TCP/IP

If you still like driver design, you can take a look at the underlying protocols, such as link layer, routers, network cards, network device drivers and embedded system software.

Of course, the average Internet company, even Baidu level should not hesitate to hire you. It just takes time and experience to read these books, so do it before the age of 35. Change jobs to a place that gives you the future!

Graphic direction, I think the graphic direction is also very promising, the following aspects.

The industry and game development of Opengl are more mature abroad.

Special effects of film and television animation, such as Pixar, are also more mature abroad.

GPU computing technology, can be applied to browser web page rendering, the use of GPU computing resources, due to open source reasons, there are many documentation programs to refer to. If you can develop into Firefox, or google to do browser development, it should be very good.

Embedded direction: embedded direction is not said, Linux is very important.

Master multiple architectures, not only X86, ARM, SCM and so on must be understood. I don't understand the hardware. I foresee that you will die halfway, and I also want to go in the embedded direction, but I think I can't even compete with the students who study electronics when it comes to teaching embedded methods in school. I would like to advise you to understand the hardware before doing it. If you go to embedded application development, you can only wish you good luck. Don't run into a company like Nokia,Hp, or you will be miserable.

Driver design:

The software development cycle is very long, the hardware is different, very fast. There are so many new hardware produced every month, how to make them work on Linux? this is your homework. As the compatibility of Linux is excellent, if it is not too low-level drivers, the basic C language can be done, the impact of the architecture is not great, because of the system support, you may be able to make a few changes on the ARM to use PC hardware, so do hardware driver development unlike embedded, the request for hardware common sense is very high.

Be able to skillfully establish common services, lnmp,ftp,dns,smba, if there is a problem, can be eliminated in time. Often use Linux, will be able to become a great god.

Original link: http://www.magedu.com/71706.html

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Servers

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report