×
Community Blog "When Can the Operating System Be Recognized?" A 16-Year Insistence of Open-Source Developers

"When Can the Operating System Be Recognized?" A 16-Year Insistence of Open-Source Developers

This article is an in-depth interview with Tao Ma, Chairman of OpenAnolis.

By Tao Ma

1

Part 1: How to Support the Development of a High-Threshold Linux Kernel

Biaowei Zhuang: First of all, would you like to introduce your story with open-source?

Tao Ma: I worked at IBM before I joined Oracle in 2006. At that time, I was not doing open-source, but I was still interested in Linux. So, I took part in the project when Oracle had just set up a team for operating system/kernel in China. At first, my supervisor asked about my idea. Since I had never done open-source before and my foundation was relatively weak, I chose to do the test. I started with Linux testing at the earliest. After about four or five months, I found that I could also do an operating system and a kernel, and then I went to do open-source. It is found that open-source, like testing, also needs to communicate with researchers. After doing it, I found that the international developer who do kernel development are very nice and are easy to communicate with. Open-source is a very interesting thing.

When I first joined Oracle, I had two mentors, one of them was a foreigner. I think he was my first teacher. I learn two lessons from him that gave me a preliminary understanding of open-source (or those doing open-source). The first one was about open-source developers. Everyone starts from beginning, so they are very friendly to those who have just joined open-source and will provide all kinds of help. This has a subtle influence on my new colleagues to open-source.

The second is that when I first joined the kernel family, the Linux kernel was developed through mailing lists. When you propose a patch to the open-source community, senior developers will review your patch in detail and give you a lot of advice. Although you are a newcomer and your patch is very junior, they will give you some opinions after reviewing carefully, such as how to write the patch and what format problems should be paid attention to. The whole open-source community is very friendly to beginners, and it is like a big family.

I would like to share a story with you. When I first did the testing, I was still unconfident as a developer and very nervous. Therefore, after I finished the first task (a small contribution) to the Linux kernel, I wrote my name incorrectly when submitting the patch. At that time, it was in English, so it should be Tao Ma, but I wrote Tao Mao in a panic.

Biaowei Zhuang: At first, they gave you a lot of feedback in the community, so what kind of feedback is usually there?

Tao Ma: There are all kinds of feedback. I want to share the process of Linux kernel R&D and how it helps beginners.

In general, kernel developers will start with the earliest and simplest problems. The Linux kernel has a website for beginners, and there will be some articles suitable for beginners. In addition, when you start the kernel R&D, you will generally mention an RFC (Request for changes/comments) and propose your idea to the community first (for example, if you think a module or something in the kernel needs some changes).

I think the kernel is a very closely cooperative organization. The kernel code has tens of millions of lines. It is divided into different maintainers. Linux is the largest maintainer. There are many levels below. Each level has its maintainer. For example, if you want to propose a feature, you should find the organization corresponding to the feature and propose an RFC. Then, the maintainer or senior developers of this group will give you a comment and give you a very detailed explanation. If this maintainer thinks your idea is very good, you can start to do it.

In many cases, when you submit an RFC, you can submit patches continuously. When you submit the first version of the patch, the maintainer will review it and give you some reference opinions. Generally, the requirements are very strict at the beginning. From the simplest format, there can be no space at the beginning of a line of code, it must start with a tab key, and the length of a line cannot be greater than 80 (the earliest). Another example is how to write the parameter format when naming a function, such as where to use spaces, where to use spaces, where to use spaces, spaces between equal signs, etc.

The kernel has tens of millions of lines of code. If there is no strict requirement, the readability is very poor, so the coding style is strictly required. Suggestions will be given from the simplest coding style and then to the logic of the later code design, whether there are any problems with error handling, whether there are any problems in the structure, and whether your modification of other modules will cause some problems. All the suggestions are very detailed.

I have a patch set that was finally submitted after more than 20 versions. Every time I submit, the maintainer will give me feedback, and finally, I am numb. My experience is nice. Someone may write 40 or 50 versions. So, the whole R&D mechanism of the Linux kernel is very strict, including code requirements and project quality control. I learned a lot from the experience. In Linux kernel R&D, each line of code needs a lot of effort.

Biaowei Zhuang: As you just described, the Linux kernel community or many open-source communities is equivalent to a very good training mechanism. A beginner, a student, or even an amateur, as long as he is bold enough to propose the first patch, someone will help him improve the patch, but why are many people still afraid to do this?

Tao Ma: The Linux kernel community does have a very good training mechanism. I think there are two reasons many people fear doing this. First, the entire Linux kernel code is too large. A beginner may be at a loss and does not know where to find a suitable entry point. The kernel website lists some suggestions, but it is not very friendly to beginners because the learning curve is too steep.

Second, most people must be in Europe and North America, especially North America. In many cases, you will probably have to wait until the evening or the next day. In addition, although they are nice for newcomers, they will be very strict with the code. If you are not firm enough, you may not be able to submit even after sending more than 20 editions, and you will give up. It may take a few days from getting started to giving up.

Part 2: Cloud Popularization Redefines Operating System Development

Biaowei Zhuang: When was OpenAnolis founded?

Tao Ma: It was brewing in 2019 and was started at the end of 2020. It was officially announced at the Apsara Conference 2021.

OpenAnolis hopes to do it together with other manufacturers and companies. We have some groups for answering questions. We can get feedback from users and help the developers of other enterprises in China .

2
Picture: OpenAnolis Operating System Debut at the Apsara Conference

Of course, more consideration is given to how to operate this open-source well so more people can use it. It can be popularized among Chinese operating system developers. I think this is a virtuous circle. In the past, there may have only been three, five, or a dozen people who could do open-source. Now, if we want to do the whole open-source, we need to have a lot of supporting facilities, such as cooperation with universities, enterprises, developers, etc.

Biaowei Zhuang: I believe people will also be more curious about OpenAnolis. What is the difference between the OpenAnolis operating system and other operating systems developed based on Linux? What is its goal?

Tao Ma: I have been in Alibaba for 11 years, and I often mention the principle of customer first. What I need to think about when developing OpenAnolis is what kind of customer problems I want to solve. If I don't solve any customer problems, I will do it blindly or for the sake of open-source, which will not last long.

In the short term, CentOS suspension is a very urgent problem for customers. CentOS 8 has been suspended since the end of December 2021. CentOS 7 announced that it will be suspended in 2024, leaving us a very short time. What will be the problem during the suspension? There is no technical support. There are now a large number of users in China on CentOS 7 and CentOS 8. The simplest and most basic solution to their survival problem is related to what OpenAnolis should do in the short term.

In the long run, there must be progress after substitution. After solving customer needs or urgent needs, we will try to be independent and controllable in the future. Although the strength is relatively weak now, there is still a great opportunity. Since everyone has noticed this problem, they are also accumulating their strength, including gathering the strength of all partners in the community.

What should the future operating system look like? What kind of operating system will we build? I would also like to add that Alibaba Cloud has also done a lot of work in the field of cloud computing. Its technical capabilities in the fields of computing, storage, network, and security are all ranked first. Since we have achieved the leading position in the field of cloud computing, if we can give these cloud capabilities to the operating system and make the operating system different, it is possible to help us subvert the design and planning of the entire operating system in the future.

If we follow the old path of Linux, the gap in accumulation will be larger than in foreign countries. This is a fact, and we do not deny it. However, with the popularity of the cloud, we have the opportunity to redefine it. Even if we still use Linux, I am personally confident that we are trying to re-plan the future of this operating system. This is also why I think we can still do some things. It is also a chance given by the times.

Biaowei Zhuang: When we run an open-source community, how will we operate? Do you think of the other party as a member of the community or as a customer? How do you view the members, participants, contributors, and enthusiasts of these communities when you operate?

Tao Ma: There are still many roles in the community. Some users will ask some questions, including how to install, how to fix problems, or raise some bugs. Some co-developers want to add some features and do some functions. There are also some college students, including some college teachers.

I think there are two points. First, the customer first principle is not a conflicting relationship. Regardless of his role and identity, we will generally think he is a customer to a certain degree. However, if we must subdivide the product, it must be our first customer who uses the product. Developers, students, and enthusiasts are second customers. Why should you distinguish between the first customer and the second customer? First, when their views or opinions contest, there is a rule that we have to follow and serve the end customer. If there is no conflict, everyone should be served well. Second, the establishment of the OpenAnolis laboratory allows everyone to use it better. At the same time, it allows everyone to better participate in the community. I think the difference between the operating system and other open-source software is that the operating system will be used more or less. So, they are all my customers in theory, or they may be my customers in the future.

3
Picture: Home Page of OpenAnolis Laboratory

Biaowei Zhuang: We focus on customer satisfaction. These are all customer-oriented thinking. If we are developing a community, we often emphasize the sense of belonging to the community. How would you understand the difference or connection between satisfaction and belonging?

Tao Ma: I will talk about how I get a sense of community belonging. When I was in Oracle, I developed a cluster file system at that time. I had Oracle's customer, and he used this cluster file system. I think that a developer's satisfaction with belonging is far greater than a satisfaction with customers.

At that time, when I was doing community development, I also wrote code at home during the Spring Festival and discussed problems with them. My code is accepted, used, and has become influential in the community. This is a sense of community belonging for me. When I serve my clients, I have to consider whether they will use this thing and whether there are any bugs. There are two feelings. Therefore, I think it is very important to have a sense of belonging in OpenAnolis.

Biaowei Zhuang: If we are not only doing market operations but also doing an open-source community, the sense of belonging may be more important than satisfaction. When we talk about Apache, we think of Community over Code. We are also saying that the community has a kind of cohesion and a sense of atmosphere so we can produce a high-quality community that can satisfy users.

Tao Ma: If the community wants to flourish, the sense of belonging of the community, including the sense of honor of all participating developers, is very important. This will make people unconsciously spend all their spare time and enjoy it.

Biaowei Zhuang: What kind of people are there in OpenAnolis? What are their participation and contribution?

Tao Ma: Developers in the OpenAnolis are divided into two categories. One category is corporate. For example, developers from companies have contributed more. Another category is amateur developers, who may contribute less because of less time and weak skills.

Currently, the main participants in the community are mostly manufacturers and some individual developers. College students may be more interested. For employers, if no company supports their work, it is difficult to persist for a long time.

This year, the community will hold more activities to enable students and amateur developers to integrate better. When personal interest or enthusiasm is aroused, these people will play a significant role in the community. This is a direction of OpenAnolis's efforts and a core driving force for the long-term development of the community.

Biaowei Zhuang: When you talked about your personal experience earlier, you said if someone wants to participate in the development of the operating system kernel community, the learning curve is very steep, so many students, especially beginners, will be discouraged. Has OpenAnolis tried to make some efforts in this regard to help others reduce this steep learning curve?

Tao Ma: We are trying to do this. The kernel learning curve is steep because it has a large number of lines of code and involves a large number of modules. There are many concepts for a beginner who doesn't understand anything to learn, including memory management, process scheduling, storage management, and network. The relationship between codes is inextricably linked. These are very difficult for beginners. They may forget what they have learned yesterday.

So, from my experience, I want to design some simple tasks for beginners to do first. How do we define simple tasks? We will split the operating system into various modules and write a guidance for some very small functions in the module to help the developers. Then, the developers can join the co-construction of OpenAnolis.

There is another benefit to doing a Linux kernel community. When your patch enters the main line of the Linux kernel, it is equivalent to your name entering. You will become the developer of the entire Linux kernel, and your name will also appear in each Commit Log. It is for developers to show off.

We can help developers build a ladder and make it easier for them to do this. It is still difficult for a beginner without a ladder.

Biaowei Zhuang: Does OpenAnolis have courses that cooperate with university teachers or schools in operating systems?

Tao Ma: Yes, it does. First, we cooperate with Chen Yu, a teacher from Tsinghua University. He also does the operating system. Before that, there was an operating system competition for colleges and universities across the country. OpenAnolis gave some operating system-related topics, hoping to cultivate their interest in operating systems.

Second, in cooperation with Peking University, the OpenAnolis entered the classroom. We opened an excellent course for graduate students at Peking University in the School of Software and Microelectronics, teaching them how to make some core components in the operating system.

4
Picture: OpenAnolis Community Entering Peking University

We also participated in the Ministry of Education's industry-university cooperation and collaborative education program, which is broader than the former two. We will cooperate with college teachers by writing some teaching materials and doing some experiments. I think there are many books on operating systems. What we lack is how to experiment with operating systems. It is more important for them to submit patches, send patches, or optimize the kernel. The OpenAnolis laboratory is convenient for developers to operate, and I hope more people can use it.

Biaowei Zhuang: I think everyone knows that it takes a lot of effort to do this. It takes long-term work to cultivate a small number of operating system talents. The open-source technology field that college students are most concerned about now may not be the operating system. What can OpenAnolis do to show the value or temptation of this operating system to them?

Tao Ma: I think the most important thing in the operating system is to build a ladder to make it easier. If there is a ladder, I think many people will be willing to do it.

There were relatively fewer students doing operating systems in the university. It cannot be denied, but it is different now. Currently, there are many operating system companies in the country. These companies can provide college students a lot of employment opportunities. It is a good sign that tens of thousands of people are doing operating systems.

Part 3: High-Quality Development Contributes to Ecological Prosperity

Biaowei Zhuang: From the perspective of OpenAnolis, how can we understand the ecology, and how can the ecology be said to be prosperous?

Tao Ma: I think about it all the time. When we do Linux operating system, we must look at the Linux kernel. Various companies rank top in the number of Linux kernel patches each year. Intel, Google, Facebook, etc. are all making Linux kernels. The most important point is that all companies participating in R&D in the open-source community must have a business model suitable for the company.

Because looking at the list of Linux kernel devotees, the top ten are basically major companies. There may be a hobbyist ranking below tenth. It is a good thing to have a hobbyist, but more importantly, these companies that need heads can make great contributions to this community. These big companies participate in the community. They are willing to invest hundreds or even thousands of people. It is of very important significance for this community.

The community should help the participating enterprises find a very reasonable business model, which is the core of the healthy development of the community. Personally, the ecology of this open-source community is successful if we do the following two points well. First, many companies are involved in serving the community. Second, all companies can find their reasonable business models in the community and can build their core competitiveness around the business model.

Biaowei Zhuang: The OpenAnolis community wants to construct its ecology in many open-source operating systems. What are its advantages? What characteristics does it display?

Tao Ma: I would like to explain with a few examples. First, the OpenAnolis cannot be separated from China's national conditions and current development. Loongson recently merged the GCC of the LoongArch architecture into the Linux GCC main line. However, it has been a year or two since the LoongArch architecture appeared. There is no way to get any help from the upstream community during this period because it has not yet entered. What if domestic enterprises want to use it at this time? At this time, an operating system release is needed to fill this gap. OpenAnolis can provide such a platform for customers to use Godson in advance, including the products of other domestic chip manufacturers.

For example, some international distributors do not support domestic chips very well. There may be some market or other factors to consider. However, the domestic chip manufacturers are growing rapidly, including Ali Yitian, Godson, Zhaoxin, and Shenwei. An operating system is needed to support them. These manufacturers can obtain it from OpenAnolis.

Second, the cloud has some influence on the operating system. Alibaba Cloud has done a lot of work here, which may affect the development of the operating system in the future. First, the hardware and software in China are developing rapidly. An operating system community like OpenAnolis is needed to meet the demand quickly. Second, after reaching an agreement with the upstream area, the upstream patch backport can be returned. However, we need to be able to meet the needs of all customers during this time. This is the greatest value we can bring to the enterprise.

Biaowei Zhuang: What do you think of the relationship between community and commercialization?

Tao Ma: The core is still the commercialization of enterprises. Enterprises will provide customers with their commercial distributions based on OpenAnolis. However, it is a community version, and there are two big problems.

First, the response to customers is not as fast as commercial companies. You will likely send an issue to someone, but he may not see it until tomorrow because he is busy at that time. When it happens, commercial companies can provide clear SLA guarantees.

Second, commercial companies provide very serious bottom-up services. For example, they send engineers to the site to troubleshoot problems and provide software upgrade services and full lifecycle management. For a community, there may be several LTS versions on the latest release version of focus. If there is a problem, it may also consider the cost of repair, but commercial companies have a complete system. We contribute to the capabilities of the operating system. They do their commercial services around these capabilities, which is equivalent to a complementary model.

Biaowei Zhuang: What can Alibaba earn from this?

Tao Ma: Alibaba does not monetize from the business of operating systems. What are our commercial interests? All systems running on OpenAnolis can run well on the Alibaba Cloud. As long as the OpenAnolis is used, it will be thought that Alibaba participated in and made great contributions to the OpenAnolis. The enterprise will consider Alibaba Cloud when choosing to go to the cloud.

Biaowei Zhuang: Chromium is dominated by Google. When you want to be a container and want to be a cloud-native, you will choose Google because of Chromium. This will be of great help to Google Cloud. Do you have such a goal in the OpenAnolis community?

Tao Ma: It is Alibaba's commercial interest. I am now the representing Chairman of OpenAnolis, so I hope that all companies involved in OpenAnolis can find their commercial interests.

Biaowei Zhuang: You are the Chairman of OpenAnolis and an employee of Alibaba. You may also be a contributor to the Linux community. How do you manage it?

Tao Ma: Thank the OpenAnolis community for giving me an opportunity. When I was in Oracle, Taobao, or Alibaba Cloud, I contributed to this community on behalf of the company. However, if you think beyond the company's thinking mode and look at this matter from the perspective of the community, you will find that the perspective of considering the problem will change. For example, as the Chairman of the OpenAnolis community, you should consider how to make all enterprises in the community profit from it. If the community wants to develop for a long time, it needs to balance. Alibaba can't dominate. If one is dominant, how can this community continue? In many cases, we must consider the problem from the perspective of the Director of the OpenAnolis community to make the community more just, fair, and open.

Biaowei Zhuang: Now you need to run a local community on your own. What are the main challenges?

Tao Ma: Objectively speaking, OpenAnolis is a Linux community after all, so there are many similarities and differences compared with other Linux communities. The similarity is the learning of open-source mentioned earlier is still relatively steep. It is difficult for everyone to train fans into new developers.

However, I would like to share a few differences. The first point is that in the past, most of China's Linux development participants were participants, and few of them were leaders. Now, there are OpenAnolis and openEuler. We have our characteristics and different starting points, but I think one thing is the same. Together, we will promote the development of China's operating system industry and gather the talents in China's entire operating system. Therefore, to make an operating system in China, first of all, we should take root in China and think about how to build China's operating system industry and train Chinese operating system talents. It is very difficult, but time has given us opportunities. We still have to stick to it and should be confident. It's much better now than it was in 2006. The second point is that the domestic emphasis on the operating system industry and the basic software industry are not what they used to be, so I think we have the opportunity to make it, and we need to do it well.

Biaowei Zhuang: Do you want to operate the OpenAnolis community more like a Linux kernel community, or do you choose to base it in China and have its characteristics and its style? What is your choice?

Tao Ma: First of all, from my perspective, after all, China needs to communicate with the world. We can see that the core Linux kernel R&D talents or senior people are all international talents. Therefore, I think the first thing to do is to have a very harmonious relationship with the international community and integrate with the upstream and downstream. Currently, our various patches will not be hidden in the OpenAnolis community and will not contribute to the Linux upstream community. At the same time, we will constantly push the upstream community. If the upstream community (Linux) accepts it, I will pull it back again, and we will continue to do this work.

Second, I think it is necessary to be based on different domestic environments and have some different common sense and methods. The simplest thing is that international users are using mailing lists. There are DingTalk groups and WeChat groups in China. However, the situation is also different in countries outside of China. We can use new forms like DingTalk groups and WeChat groups to attract these group members to the community and allow them to participate in community development.

Biaowei Zhuang: If there was a very good developer in your community, would you like to help train them directly in the Linux kernel community, or would you help them submit their idea to the kernel after they finished the work in the community?

Tao Ma: I can answer directly. We will firstly encourage them to go to the upstream community. A classmate of our team just mentioned some patches to the upstream community and was invited to attend the summit on file system held in the United States. We will encourage everyone to participate in the international community and the standard setting of the international community. If you always keep them in a small circle, they will never grow up. Just like training children, you have to let them see the world and let them know that behind a capable person, there are always other capable people so they can grow better. Therefore, will we not stop it, and we will encourage all community personnel to actively participate in the contribution to the upstream community and build our influence in the upstream community. Our goal is to influence the entire future Linux community, which is our core goal.

Biaowei Zhuang: Is there any experience or lessons in the operation of the OpenAnolis community?

Tao Ma: There are lessons and experiences. I want to share an experience and a lesson.

We originally thought it would be difficult to operate an operating system community in China. However, I found that if we can find a common point and build a good infrastructure or platform for developers, it is still relatively possible, even in areas where basic software is so difficult. On the other hand, the prospect of domestic open-source communities is very promising. It is not difficult to open-source in China now. If you want to open-source in China and set up a company through open-source, there is a good chance. Then, let's talk about a lesson. It may be more interesting. Most of the time, my thought may still stag on the style of doing things with international users. We need to make some changes in China. In China, we have become accustomed to using instant messaging tools, such as DingTalk and WeChat. However, if you are living outside of China, you may still use email. You may get an answer the next day. This is normal because of the time difference. When the user asks a question, if you don't reply in the DingTalk group or WeChat group after an hour or two, they may be a little impatient. In the past, I thought international users responded fast, but now, the pace in China is faster. Therefore, in the initial stage, we still have to actively respond to all user problems, especially those who have adapted to this fast-paced culture.

When holding a technical committee or board meeting, I demand a quick response when users ask questions in the group. Now, we also have some duty systems that allow users to get answers quickly when using the operating system or when they encounter some problems in the development process. The community has built a relatively perfect answering system. Many of them will ask some very anxious questions, such as installation. They need the answer urgently, and our duty system can tell them what to do very quickly. However, it often takes the next day for international users to talk to you. Everyone is used to it, but it's still different in China.

5
Picture: OpenAnolis Community First Council Meeting

Biaowei Zhuang: There are still many details in the process of community operation. These details involve some very difficult trade-offs.

Tao Ma: That's right. Now, everyone is in the exploratory stage. If more people from different countries participate in the future, there will be different ideas. I think this is what a community must face when it matures. The OpenAnolis community is advancing in groping.

I have been in the Linux upstream community for so many years, but the communities operating in China, including the communities I operate, still differ a lot. I was a developer before, and I had never done any operation or construction of community infrastructure before. I am constantly operating, learning, and making progress.

Biaowei Zhuang: Are there any other operating students in the community besides you as the Chairman of the board? Are there students that have full-time operations?

Tao Ma: There are full-time operation students. However, I think a mature open-source community operation cannot purely rely on operation or operation students. They regard the problem from a perspective of operation instead of a perspective of a developer. When making decisions, there will be differences. For the operation students, attention will be given to the number of developers, PR, and issues, but this problem sometimes conflicts with developers. I also actively participate in the community operation work, looking at the problem from the perspective of a developer. So, I can provide more suggestions for the community.

Biaowei Zhuang: If you have been in a community, you can perceive the atmosphere in this community. If you are a person who operates purely based on numerical values, you have no idea what happened in the community or the atmosphere of the community.

Tao Ma: The community needs a variety of different people. People who operate must understand developers, and developers must understand operators. This way, everyone understands each other. They can use each other's language and stand in each other's perspectives. This is the only way the community can operate better. Otherwise, developers will think they have nothing to do with us, no matter how beautiful the numbers are.

Biaowei Zhuang: Last question, would you like to recommend or share any books or movies and TV plays you have been reading?

Tao Ma: I recommend Forrest Gump (1994). It gives the similar feeing with open-source. “Life is like a box of chocolates, you never know what you're gonna get.” I think this is very similar to open-source. In the process of open-source, there will be all kinds of messy problems, especially when running an open-source community. There will be all kinds of problems, developers, and people in different roles. There really will be all kinds of wonderful experiences waiting for you.

Second, it inspires us to have ideals. I had a very respectful supervisor that often said, "idea, action, persistence." It is the same between Forrest Gump and open-source. If you want to do open-source, first of all, you need to have some ideals, including building the OpenAnolis community. If you only think about doing something, it is difficult to stick to it. Second, act just like Forrest Gump. The third is persistence. I think persistence is really important, especially for operating systems, which is a long-term process with slow results. It takes a long time to do the R&D of the operating system, including the whole process of doing the operating system. A variety of tests needs to be done to release a version because many businesses are running on the operating system. So, if you can't stick to this thing, it's hard to be productive. It is a silent process to do a good job in operating system R&D, community, and ecology, which takes a long time. Developing an upper-level application, such as a frontend framework, may soon be used by many people. However, if you want to make an operating system, it will be very slow and very long, and there will be a big gap.Buidling other conmunities is also the same, I think it takes excessive efforts especially to build operating systems.

Biaowei Zhuang: Yes, I agree with it very much, and I like that film too. I watched it many times in college.

Tao Ma: It's right, and it's very inspirational, and I think when I first saw it, it is like a story. When you have experienced more, you also feel that many times you need a spiritual force to support you to do this thing. On most occasions, you have to be persistent and be able to persist in doing one thing.

0 0 0
Share on

OpenAnolis

85 posts | 5 followers

You may also like

Comments