The inspiration for writing this article was obtained after reading a similar publication for the x86 architecture .
This material will help those who want to understand how the programs are built from the inside, what happens before entering the main and why all this is done. Also I'll show you how to use some of the features of the glibc library. And in the end, as in the original article , the traversed path will be visually represented. Most of the article is a parsing of the glibc library.
So, let's start our trip. We will use Linux x86-64, and as a debugging tool - lldb. Also sometimes we will disassemble the program with objdump.
The source text is normal Hello, world (hello.cpp):
std::cout << "Hello, world!" << std::endl;
My dear UMumble users! I must confess to you that I am a very happy man, but the last 16 years of my 32, I am watching an escalating picture of the struggle between a society and the absurdity of being. The fact is that many of my friends work in large companies, where they are ruthlessly oppressed by an office samsara. In my case I have never had a tight schedule and the strict corporate machine on my back; therefore, I lift up praises to God every day and night. Being far away from these problems I am engaged in science at the Research Institute of System Technology (and I have my own IT business, which helps me to make money for living). Using this miracle system analysis, I will try to summarize everything I know on the topic in the article.
The website habrahabr.ru has a lot of articles about the completed projects (startups), advice on how to become successful and how to finish the game.
So, advice on how to fail the project:
1) If you need in a project graphics, everyone should try to be an artist in the team. If the job is given to one artist, all should to take part in the discussion of result, give advice and generally help in every way. The artist constantly should redraw and revise in order to please everyone at once. In general, democracy is the best way to solve all the problems in the project.
2) The concept is not needed, why should you waste the time? The main thing is to start as quickly as possible to write code and the ideas and concept should come on the way. Who will quickly begin to program that will be able to book the most interesting tasks.
Today I would like to represent our small project named "UMumble" to You, and I suppose I will start from the beginning.
How did this idea start up?
One evening, surfing the Internet I came across an interesting project that combined a news portal with interestingly organized IT community. But why was it interesting to me?
At first sight, it was a common IT community voting for certain news items, thereby digging them up to the top (in seems to me that I have already seen it, for sure at digg.com). But getting deeper into it I noticed that its articles were quite professional although there was no editor at the resource. The articles were written by the community itself, and the community voted for them using special rating system. One could vote for anything including the users (thereby raising their positions at the rating table or banning them to write at the resource), topics, questions, comments etc. And such collective actions of the community prohibited (allowed for) certain activities .It was a sort of a role game. Considering that the resource was not English but quite, I discussed it and consulted with my colleagues and a decision to create a similar project was made. That's how "UMumble" appeared.