Developer on Alibaba Coud: Build your first app with APIs, SDKs, and tutorials on the Alibaba Cloud. Read more ＞
I and Linux-general Linux technology-Linux technology and application information. The following is a detailed description. Translation: linky_fan @ www.linuxfans.org
Making the distribution, Part 1
Birth of the Gentoo Linux
Me and Linux
Nowadays, linux is no longer just a literal name for every linux enthusiast. What she presents has exceeded anything that many developers have come into contact, linux is more powerful, fascinating, and praised than them. When I was a system administrator at the University of New Mexico, I had a hard time connecting to linux. At that time, because our NT server was running very well, I had a lot of spare time to use it, in this way, the first linux operating system was installed on a Pentium 166 host, and the next process of continuous learning and in-depth understanding made me more and more fascinated by linux ......
At first, I learned many details about linux: network access, backup, and samba. Then I created a qmail and apache server and learned python programming and shell programming. I also set up a small LAN and then invited linux back home. After trying many release versions, I finally chose the Stampede Linux version (note: this version has not been updated since 2001) detailed message can look at the http://distrowatch.com/table.php? Distribution = stampede
Do you know how to learn linux? : First, try to figure out the basic things of linux. Second, when you have mastered the basics, learn to customize your linux, the accumulation of knowledge is proportional to your depth. Since linux does not hide anything, as linux becomes more and more handy for you, you can start exploring technologies and tools to implement these technologies.
The potential of Linux
Linux provides a lot of things I have never seen before. If I have to use a word to describe these incredible things, I will choose the word "potential: this capability is used to maintain, change, and improve things. It can even break through the constraints of some inherent rules. When I upgraded the kernel to an updated version, I simply improved the performance of this linux, what's even more exciting is that this change is happening almost all the time. I am also a part of this kind of progress. With the development of linux, I am constantly improving. For me, this feeling is really great.
If you and I are the same kind of people, you may have seen the next-generation operating systems prepared by the big companies in Redmond and Cupertino before you enter the open-source and linux worlds. They are indeed as perfect as you wish, however, those things are always just an illusory shadow. Then linux came to us as we waited. Although the genie was not as perfect as we expected, she provided the opportunity for boys and girls who liked to change her hands. In this way, we look forward to a more powerful operating system while talking about hack our linux. One day later, we suddenly found that the powerful operating system we were waiting for was in our own hands, also decided to continue on the linux Road.
Another thing I learned is the impact of Linux on people. This topic may sound a little new, right? Linux is not just a bunch of source code, but it is actually a "Community". From the beginning, relying on this community to solve our problems, to giving us time and experience to help others, we gradually become part of this community.
IRC (Internet relay chat) is both a good place to make friends and a place to pass the time. The # stampede channel on irc.openprojects.net has become my official nest ^-^ on the network. This is where I answered my questions and was the first time I answered my friend's questions. # The stampede channel requires many users with installation experience to help new users solve various problems they encountered after their installation. As problems encountered by new users in the installation process become more common in irc, many experienced users of Stampede Linux gradually lose their enthusiasm at the beginning. However, I am still very excited, because I know the solution to many cainiao problems, and I cannot answer those questions! Of course, I am not the only one who is happy with solving newbie problems. There are also a lot of people. I also admit that I am selfish and want to learn more from more experienced developers (not Stampede developers.
How to get started
When a friend asks me how to join an open-source project, I tell them that they are first looking for something they can do for others, even if there are just some basic questions. A sincere desire to help others is a pass to the Linux community, because this sincere wish is also rooted in the hearts of every open-source project developer (not just a Linux project ), it should also be rooted there.
If you go down this road, you will inevitably encounter more experienced comrades than you, and you will learn more from them, just like when a newbie learned from you. On the other hand, when you accumulate more experience and encounter some problems, you will use a new method to solve it, instead of using a set of ideas that you used previously. Some developers you encounter sometimes make some suggestions and sometimes need some help. They are more likely to invite you to join their development team. If your support becomes the focus, they may smile and pass by you. If you have helped a lot of people, you will surely be noticed in the community. Both Stampede and I have had these stories.
Gradually, I developed Stampede more and more deeply, and soon I became a formal Stampede developer. Encouraged by Matt Wood, the leader of Stampede, I started to upgrade the original. slp Mechanism for the Stampede Linux package. The. slpsoftware package contains a. tar.bz2 software package and a fixed-length footer that contains the Software Description and software package creator. There are two main problems with this implementation: The content actually contained in the footer cannot reach the specified number of bytes; this format does not reserve any room for expansion (that is, if there is no way to add additional information that may be needed in the future ). Obviously, these problems require a major operation to survive.
After working with the old Stampede developers for a while, I drew up a draft to address the above issues. After a while, I began to use Python to write some original implementation solutions. The new format (codenamed slpv6) is similar to the IFF format in the Amiga world. The Next Generation. slp format contains 2 32 fields (Note 1). The field types are 2 32, and the maximum data segment of each field is also 2 32 bytes. The new format not only has good scalability, but also is more compact, concise, and easy to parse than plain text. Binary Code and text can be stored in such a format. This architecture will bring unlimited possibilities for its future development. My idea is to add the dynamic headers of this new version to the end of the package file, so that this new version. in the future, the slp format can serve Stempede users for quite a period of time and maintain good compatibility with standard UNIX file files.
Slpv6 development is progressing smoothly, and all senior developers are very happy to see my achievements. Unfortunately, two newly added Stampede developers want to control their own slpv6 projects. Because they did not appreciate the development direction I chose, they spent a lot of effort in slander and cracking down on this new slpv6 system, although I spent a lot of time continuing my development and joining the discussion to respond to their attacks, this did not fundamentally solve the problem. In the end, everything becomes clear. They are only good at debate, and it is obvious that they will not stop unless they go their own way. Fortunately, my project is still recognized and supported by senior developers. However, these discussions gradually put me back on some burdens, and also had some bad effects on the development of Stampede. Alas .......
Unfortunately, I couldn't make these guys disappear. I could still talk to those advanced developers on the # stampede channel, but now I have to quit. Every time I enter that channel, they start to become unfriendly, and they are always destroying what I want to do. These guys will use a variety of methods, such as a developer meeting (in fact, they just want to insult me in front of other senior developers ). They also tried to use the voting method to control Stempede. Of course, the voting will only be held when they can get more support. But I never gave up my slpv6 development in this situation from start to end. Needless to say, Senior developers like my development projects and support me to continue (without their support, I cannot overcome so many difficulties to continue ).
Measure the test taker's knowledge about these heterogeneous products.
I used to call these two guys and developers of this type "heterogeneous ". Although my development work became unpleasant, I still learned how to deal with them. In this regard, I would like to provide you with a comprehensive picture of these "heterogeneous: their quality, methods they adopt, and how can you as a project leader combat these "heterogeneous" or change them at the minimum possible cost.
To eliminate potential emotional dangers, you need to have a prerequisite: willpower. If you cannot respond to your opponent in a polite and resolute manner, things will become terrible. The purpose of "heterogeneous" is to gain control of your project as much as possible, which will make him or her feel more powerful. First, they will give one-sided accusations and complaints to developers of a project or project, and they will also block constructive proposals for the project. Of course, these guys won't lend a helping hand to the project until they get the Project Administrator's position. The purpose is to convince you that the problem can be solved only by relying on their "unique and literate" vision, so that you have to grant them sufficient permissions to implement the problem.
If accusations and complaints do not play any role, these "heterogeneous" will ask for a developer meeting. This will give them a chance to split your development team. When they feel that they have received the support of most people, they will hold a vote (of course they know that they will win ). If they haven't won the vote or the vote is rejected, they will propose a meeting next week to split your team again and then the endless loop.
If the meeting method does not work, "heterogeneous" will become the innovator. They will use a more democratic (that is, easier to manipulate) approach to replace the previously oppressed and unfair decision-making schemes. These methods often include convincing you to do anything for most people in your development team. Heterogeneous users prefer this method because you have no way to discard the results of most voting statements (live ). When you permit these things to happen, you have handed over the "key" to your "Lexus" to them, which will render you incapable.
Another method used by "heterogeneous" developers is to anger your main developers and let them go, and then try to re-organize the management team of the project when your development team is in disorder. If all your efforts fail, they will gather as many rebels as possible and put them in your project. It hurts!
Deal with these heterogeneous
It is quite easy to distinguish these guys. They don't write a line of code (and don't want to write it). On the contrary, they spend a lot of time discussing more important issues (by the way, management issues ). If you are a project manager, it is very easy to deal with them. You just need to tell them that you will not consider their so-called suggestions before you see high-quality code. Or, before they put forward a "constructive" criticism, they should emphasize the constructive help for a project, including the Management Personnel who obey the project. It would be great if they begin to Compile High-Quality Code and are increasingly easy to use for this project. If not, warn them to leave. After you ignore these guys for a while, they will choose to leave or write some code while taking action, and the world will be so clean.
Unfortunately, Stampede's senior developers did not take more management measures for "heterogeneous. In other words, they have granted these two guys endless tangle with me (and others. Although these senior developers always appreciated my project, they did not do more for those two guys. Then one day I decided to create my own release, because I thought it was easier to do this than to endure those two guys. I quit the Stampede development team and began to develop some plans and drafts for my own release.
Within a period of time, I felt a little incredible about leaving a project for two low-level developers. In fact, the actual situations they did not involve actually show that this project has serious management problems, if high-level developers cannot or are unwilling to confirm that Stampede's development results are gratifying and beneficial, I think I will not stay there.
The first thing I did after leaving Stampede was a long sigh of relief. Oh ......, The whole world is clean. Now I have enough time to think about the outlines of my own Linux distributions and what new contributions will be made to the layout of Linux distributions. One thing that interest Stampede is its native performance (thanks to the experimental pgcc compiler it uses and optimized for the Pentium processor ), therefore, I decided to consider performance first. In addition to a lower CPU usage, I also want it to be simpler. By default, many release versions (especially those popular thermal shrinking plastic packages) start too many daemons to open an xterm (terminal in X environment) after that, there is no more available RAM in the system. I hope that my release will be smaller and stronger, so I will focus on maximizing the performance of the hardware platform running this operating system. Therefore, I made up my mind to conduct an overall test and solve all the performance problems in detail.
However, I really lack the corresponding resources, because I am the only developer of this release! How can I develop products like Redhat or Caldera on my own? The solution is to use automatic control technology. I have to write some scripts so that everything can be done automatically, so that I can get twice the result with half the effort. After all, computers are doing better in these aspects, right?
Soon I found that writing some automated scripts is far from enough. I need to design a complete set of mechanisms to generate a complete Linux system from the source code. I tested it as an ebuild system and started working. The ebuild system can automatically create all the binary files required by a single release, including an automated solution for a series of processes from extracting the source code and completing the corresponding patches to compiling and packaging. After a basic and original ebuild can work, I started to make some key components necessary for a Linux release (such as gcc, glibc, binutils, util-linux, and friends) write an ebuild script. By re-writing the initialization script (based on the previously designed initialization script for Stampede), the original Stampede development system gradually evolved into a system of my own, next I used to test every new software package I created myself.
A few months later I had a complete and self-developed Linux version. I gave her a name named "Enoch" and then sat down and smiled. But what changes the development of Enoch and Gentoo? The next article will show you how Enoch evolved into Gentoo and many new challenges I will face on this road.
Coming soon ^_^
The original article is as follows:
Making the distribution, Part 2
From Enoch to Gentoo, via minor setbacks and initialize ate run-ins
The first step of Enoch
In my previous articles, I told you the reason for my stay with the Stampede Development Team, the greatest time and the last reason for leaving (that is, to leave those with low-level political purposes, those guys who want to control the project are far away ). Because of these nosy interference, I feel that it is much easier to assemble a Linux release than to improve Stampede under that harsh condition. Fortunately, I left Stampede with full experience. These experiences are related to my work in Stampede (should it be substantive ?) It is inseparable. Maintaining some software packages, designing initialization scripts, or leading slpv6 (next-generation software package management system) has greatly enriched my related knowledge and experience.
Enoch is a code for the version I started working on. Thanks to the intelligent package management and upgrade system developed for it, it will be a fast version. I have to admit that this intelligent system occupies a large part of the entire version, because it is unacceptable for me to spend time in repetitive work, therefore, the system in development must automatically complete those things for me. On the other hand, the source code is used to build the entire release version (better than those "spin off" versions, such as RedHat). It is also necessary to divide the work and squeeze as much free time as possible to do the work.
After starting and running the most basic Enoch system, I went back to irc.openprojects.net and opened my # enoch channel. Where I gradually gathered a team of 10 developers. In the early days, we spent the whole day gathering in IRC to create our release. With our selfless efforts and the concerted efforts of everyone, Enoch is changing every day in the Process of constantly eliminating bugs and new bugs, both the degree of specialization and various functions have become increasingly outstanding.
The first stumbling block of Enoch
On an inevitable day, Enoch encountered its first stumbling block. After adding Xfree86, glib, and gtk +, I decided to import xmms (an MP3/CD playing Software Based on X11/gtk +) into my release version, because it's time to adjust it with music! But when you start xmms after it is installed... X is deadlocked! At first, I thought it was caused by the optimization parameters of the compiler I used ("-O6-mpentiumpro ?). The first solution is to compile with the standard compiler options, but the problem remains unsolved. Then I had to look for a solution everywhere. I spent the whole week of development time tracking this error. One day, I received an email from an Enoch user named Omegardan, and he also encountered the xmms deadlock problem.
After a period of communication and n hours of detection, we found that the cause of the deadlock is the POSIX thread Descriptor (POSIX threads-related issue ). For some reason, the pthread_mutex_trylock () function does not return the value it should return. As the creator of a Linux version, this type of bug is something I really don't want to meet. I expect developers to be able to release the perfect source code so that I can focus on improving Linux usability, rather than spending time fixing others' source code bugs. Of course, soon I found that this kind of hope is just a good idea, and the same mistake sometimes appears.
After finding the problem, we found that it is not a problem of xmms itself, and also a problem of gtk + or glib from time to time, nor is it a problem of Xfree86 3.3.5 no thread-safe and deadlock, it is amazing that the POSIX thread execution in Linux exists. Specifically, there is a bug in some code of the gnu c library (glibc) of version 2.1.2. I was shocked that such a serious bug exists in such a core part of Linux (and the glibc version we use for Enoch is its release version, it is not a prerelease version or a CVS version !).
So how can we solve this problem? We can't come up with a repair solution right away, but after browsing the e-mail list of a bunch of glibc developers, I accidentally found that another person encountered the same problem, then, the glibc developer found the patch in his reply email, which solved the thread problem for us. But I wondered why RedHat 6, which was also using glibc 2.1.2, was not affected by this bug (when RedHat 6 was released earlier than that patch ). To find out the answer, I downloaded the glibc SRPM package (source RPM) in RedHat to see how they used the patch.
RedHat has their own glibc patch to solve the problem of pthread_mutex_trylock () function. Obviously, they encountered the same problem and fixed it themselves. However, since RedHat does not return the patch to the glibc development community, other people cannot share the patch. However, it may be that RedHat has returned the patch to the glibc development community, but glibc developers have not accepted the patch. Or this bug is triggered only when binutils of a specific version is connected to a compiler of a specific version, however, the binutils and compiler versions used by RedHat are not specific versions (although RedHat still provides this patch ). I guess we will never know what the truth is, but one thing I learned is that the RedHat SRPM contains many customized patches and enhanced code, these codes and patches never seem to be returned to the original developers. I will give you an exciting speech.
When you aggregate a large variety of source code into a Linux release, it is very important for developers to feedback all the bug fixes and patches you have prepared to the original software package, as I have learned, this is one of the many ways that release developers contribute to Linux. We happen to be a group of people, in order to bring together many different programs and software so that they can work as a whole. In the future, we will also feed back our modifications and patches to the original software developers so that other users and subsequent releases can benefit from them. If you just leave the patch on your own, this will not be helpful to anyone, and many people will waste a lot of time on the same issues. This disregard of others violates the spirit and purpose of the entire open-source world. At the same time, it is only harmful to the Development of Linux. Maybe I should say this is a big "BUG" for us ".
Unfortunately, some releases (Ah ke) (RedHat) do not share their achievements with the entire open-source community as some other versions (Debian) Do.
When we tried to solve the glibc thread problem, I sent an email to Ulrich Drepper (he is a member of Cygnus and plays an important role in glibc development ). I mentioned in e-mail the POSIX thread problem we encountered and the performance we used pgcc in Enoch for optimization. In his reply, he mentioned this (I will explain it ): "Our Own compilers included in CodeFusion make executable code faster than other compilers, such as pgcc compiled code." Obviously, I am very interested in the mysterious turbo compiler developed by Cygnus.
So I applied to get a demo copy of Cygnus Codefusion 1.0 so that I could test its performance. Omegadan and I were surprised by the test results, as Ulrich mentioned. The x86 backend improves the execution efficiency of cpu-intersive executable files by 90% (such as bzip2 ). Almost every program can get at least 10% real-world performance improvement from it, and all we do is change the compiler. The Enoch speed has also been improved by 30%-40%. At the same time, the performance has also improved a lot, which is more than what we previously improved when we switched the compiler from gcc to pgcc. Obviously, after testing this compiler, we hope to include this compiler in Enoch. Fortunately, the source code contained in CodeFusion CD follows GPL, in this way, the use of this compiler in Enoch has been fully recognized .........., at least we think so.
Occurrence of abnormal events
In order to use this compiler in Enoch, I sent an email to the head of Cygnus's marketing department, but expected "oh, I have used it. Thank you for using our compiler !" This reply was not received. Instead, we replaced it with the phrase "Although we are technically authorized to use the Cygnus compiler, however, we strongly recommend that you do not use the compiler or the source code that contains it in Enoch. Then, in my reply, I asked them the following question: "Since it is unwilling to allow others to use its source code, why is the source code of GPL still released in the License regulations ?" As a guess, I think they actually don't want to release their source code in GPL mode, but since this compiler is from egcs (published in GPL mode ), they have no choice but to publish in GPL mode.
This is a good example of how GPL can prevent this from happening when a company wants to use open-source code to produce private products. One of my guesses is that Cygnus is worried that our use of this compiler will hit sales of their entire product framework, even more strange is that neither their marketing solutions nor InfoWorld previews mention the new compiler included in CodeFusion, because CodeFusion sells a set of "development IDE" instead of a compiler.
To ease their paranoid attitude, I made a suggestion that we should place the CodeFusion endorsement file on our Enoch homepage and add a link to stimulate CodeFusion sales. From my personal point of view, I don't think a "turbo" Enoch will affect CodeFusion (although it is an IDE product) sales. But I am still trying to make them happy, for example, telling them that the IDE component is a commercial product, and we have no hope or intention to use Enoch to release it.
I sent this (generous) request to Cygnus via email, but I did receive another strange reply. They wanted all of our authoritative rights on the "market element" (apparently, this also included content on our website), which was so shocking. Cyguns's marketing team seems to have no idea about the Linux community and the operation of GPL. Now, I finally decided to terminate the connection with Cygnus, because no one knows what will happen when it goes on like this. At the same time, we have prepared two versions for Enoch: one is the internal "turbo" version, and the other is the public "non-turbo" version. In fact, the decision is to stay in the future.
But a few months later, they switched the backend of CodeFusion x86 to gcc 2.95.2. Now, not only those who know the "secret GPL compiler" contained in CodeFusion CD can benefit from it, almost everyone can benefit from this new outstanding backend. Then we decided to proceed and try to use gcc to replace the CodeFusion compiler. With gcc 2.95.2 becoming more and more mature, we can release Cygnus (at the same time, RedHat has spent a lot of money to buy this CodeFusion .) (Note: the backend of the new x86 version gcc 2.95.2 provides a very important speed improvement for the new Linux release, it also contributed a lot to the speed improvement of FreeBSD 4.0 compared with version 3.3.6. Have you noticed the differences between the two improvements ?)
Thanks to this and other experiences, I have a deep understanding of the companies that use open source as their main means of profit. Although there is nothing wrong with the personal willingness to produce private closed-source software, it makes no sense for an open-source enterprise to stir up or refuse to cooperate with other open-source companies; similarly, it does not make sense to not support GPL or other products. This is a practical and practical point of view.
The free exchange of ideas and code is the foundation for open-source enterprises to make profits. They should fully realize this. In turn, opposition and GPL standards will only undermine the environment in which they depend on development and prosperity. In other words, the open-source environment is the soil of your career. It makes sense to protect the purity of this soil.
I also know that it is tempting to keep some code secrets in a short period of time to accumulate wealth, the advanced code and special technology provide a great opportunity for people to gain an advantage in the competition, so as to gain increasing sales performance and benefits. However, when your goal is to become a unique product provider, and the commercial component of this product is greater than that of open source, the Open Source world will not permit such exclusive use of open source or related things, this is the significance of open source.
Return to Enoch
Now, I come out of my soap box and continue my story.
As Enoch has become better and better, the rename plan has been put on our agenda, and "Gentoo Linux" was born. Then, we are working towards Gentoo Linux 1.0. At about this time, I decided to upgrade my celon 300 M (overclock to micron M and very stable) old computer, the new platform is a brand new Abit BP6 main board (the dual-celon Interface found on the market ). After I sold my old motherboard, I concentrated my two celon 366 systems, then brought celon 366 to 500 Mhz, and started working. But I noticed that my new machine is not very stable.
Apparently, my first response was to change the frequency back to 366 Mhz, but then I encountered a more strange problem: no matter how long the CPU was running at full speed, the system would not be deadlocked; however, once the system is idle for one night, the system may be deadlocked completely. Yes, this is an idle bug ---- Oh! After some investigation, I found that other users encountered the same problem on this motherboard. The reason is that a chip (probably a PCI Controller) on the BP6 board is a little different from the standard specification or is odd. This is the main cause of the deadlock in Linux when it is idle.
I gradually got upset because I was unable to purchase other PC components, and Gentoo's development had to be terminated. I also began to be somewhat pessimistic about Linux and decided to turn to FreeBSD. Yes, it is indeed FreeBSD! This part ends. We will see you again in Part3 :)
Making the distribution, Part 3
The author strays from Linux and then returns
At the end of the previous article, I mentioned that Gentoo development was stopped because the newly upgraded dual-celon motherboard (Abit BP6) had a weird deadlock during idle time. Although the solution is to replace the motherboard, I have no funds to replace the motherboard, this also affected my confidence in Linux and made me decide to interrupt Gentoo development and turn to FreeBSD. What I need is a system that can run normally, and Linux is not doing well at this time (the deadlock from one day to the night, I think it's time to get in touch with FreeBSD. After installing FreeBSD on the machine, I started to repeat it again. In the next few months, I almost never touched another Linux finger.
Impression of FreeBSD
First, I really like FreeBSD. I feel that this operating system is a perfect combination of systems, and almost every part of it is equally delicate, and this exquisite system does not exist in the Linux World. My satisfaction actually comes from the man pages that are very adequate in FreeBSD, which is not as useless as many software in Linux that only has the GNU info documentation.
Most importantly, I was very impressed with the ports system for maintaining and upgrading the system in FreeBSD. Unlike Linux maintenance and upgrade, ports uses not binary software packages, but directly downloads and compiles the required source code from the original software site. Whether you install Samba or upgrade the core system, It is compiled on your machine using source code. This implementation method is similar to the Mechanism I set up in Gentoo Linux. From this point and many other aspects, FreeBSD's design fits the feeling I would expect as a developer and a system administrator. In this way, FreeBSD has created a comfortable working environment for me for several months, and I am also happy to spend some time exploring and acquiring knowledge in this excellent operating system.
Advantages of FreeBSD
Many differences between Linux and FreeBSD come from different development architectures. The development architecture of Linux is very loose. We just rely on different releases to combine many parts scattered on the Internet into a complete Linux, freeBSD and other BSD systems (OpenBSD and NetBSD) have a unique core team to ensure the uniformity and coordination of source code, in this way, at least each type of BSD has a set of unified source code settings. This is a great thing, and it is also the main reason why FreeBSD feels different from the Linux "patch Set.
Next, we will make a comparison on pure technology. Many FreeBSD fans claim that FreeBSD is more suitable for running on servers than Linux. They will tell you that FreeBSD performs better under high load conditions, in addition, its TCP/IP stack is relatively better (if you compare it with FreeBSD in Linux 2.2 or earlier versions ). FreeBSD is indeed a good server operating system, which is beyond doubt, but this is only the case when FreeBSD is a kernel version earlier than Linux 2.2. As a fan of the new kernel version, I used the 2.4 Test Kernel on my computer for a long time. It is really great, from the excellent TCP/IP stack to the re-designed "netfilter" system. I think in the near future, new performance standards will be defined by Linux, and "free UNIX" will face powerful Linux challenges in the business field.
Different from applications in the server field, Linux has an absolute share of advantages in desktop applications (compared with BSD, Linux is completely vulnerable to Win and MAC ). All the latest desktop applications must first appear on Linux. Linux is ahead of BSD in terms of 3D acceleration and sound card support. As the kernel of version 2.4 approaches, Linux will continue to maintain its dominant position on this site.
I don't like FreeBSD's UFS file system. Although UFS is more robust than Linux's ext2 file system, the price is the sleepy turtle speed. Now there is also a UFS file system extension called "soft update", which aggregates small I/O operations into large file blocks and then writes them to the physical hard disk to speed up the file system, even if the "soft update" mechanism greatly improves the performance of the UFS file system, I cannot say that UFS is superior to ext2 in all aspects of comparison. Of course, UFS and "soft update" are more reliable, and FreeBSD may beat Linux in the file system war, but do not forget, the loss to FreeBSD is only the current version 2.2 or earlier version of Linux, which does not mean that it will happen in the future.
Now, let's change the topic. We compare the current Linux 2.2, 2.4, and FreeBSD versions. Reiserfs (a new log-type file system) has brought us a burst of surprises, while Linux also has the ready-to-use ext3, IBM's JFS and XFS file systems, these file systems provide high reliability while providing excellent performance. Reiserfs gave Linux an opportunity to surpass FreeBSD in the file system. This is why I think Linux 2.4 will undergo a major reversal, freeBSD's traditional strength may disappear in the face of the 2.4 kernel in the future.
Back to Gentoo Development
A few months later, I decided to return to the Linux world again. I installed Gentoo on a new machine. First, returning to Gentoo development is a post-computing decision-I have spent a lot of time making myself a Linux User, now, with BSD in mind, I think it is not worthwhile to waste all the previously learned knowledge. In addition, after updating Gentoo Linux, I found several new reasons for "Why come back to Linux again" for a short period of time, that is, the improvement of the kernel and file system mentioned above. FreeBSD is a peaceful home, but it is so quiet that it also contains confusion. On the contrary, the Linux world is full of vigor and rapid development. If you are looking for excitement and innovation, there is no doubt that Linux is the secret you desire.
The progress of Linux from 2.0 to 2.2 is disappointing, but the 2.4 era is definitely worth waiting for. For this reason, Gentoo Linux has returned to us, that kind of excitement also returned to my heart.
Another key factor for Gentoo Linux's rebirth is our development team leader, Achim Gottinger. I would like to extend my sincere thanks to him for his help (enabling me to start development of Gentoo Linux again. Before returning to the Linux World, I began to contact Achim Gottinger via email. In almost every email of Achim, I could see some new ones. ebuild is an urgent bug to be fixed. After I went back to the Linux World and started Gentoo development again, Achim continued to contribute his time and energy to putting the release on the right track. Until recently, Achim and I were the only two developers of Gentoo Linux, which was also out of choice. Because we all use almost the same release version, and because of Achim technology, we can easily complete a huge workload so that I don't think joining a third developer will be helpful to our progress. Now Achim is the head of Gentoo Linux development team, and Gentoo has a major improvement in almost every day. We have already come here, and we have prepared the CVS tree to provide a collaborative development platform for later users. We have carefully and gradually expanded the Gentoo development team and started to implement it.
I don't think the time spent on BSD is a waste. In fact, it gives me a great opportunity to reflect on the problems in the Linux community and what Gentoo Linux should do to improve these shortcomings ..
In the new Gentoo Linux version, I decided not to use pgcc or any very optimized parameters to compile all the software packages, because the stability should be put first, by default, we will use reasonable Optimization Options ("-O2-mpentium "), but it also provides users with simple and custom optimization options to meet the desire of some compatriots to get the most "bleed edge" system (completed through our Automation System.
FreeBSD gave me a question about "how does an automated custom system work ?" This is a good question. I decided to add some FreeBSD features to our automated custom system (now called Portage) to create a new generation of ports system.
Portage can be said to be the heart of Gentoo Linux. It has more than a simple package management mechanism or a system management mechanism. With the setup and script of the production tool included in Portage, you can build a complete release system from the source code. But more importantly for me, Portage provides users with a way to fully access Gentoo Linux to build intelligence. For our developers, this means that when Gentoo Linux continues to develop, we also record the production process of a release. The ease-of-use and readability of Portage also provides more and more people with a window to snoop into Linux, and opens the door for later users to contribute their code and scripts.
Portage is a way for us to demonstrate Linux technology and principles for others. By learning to create scripts automatically, you can see how many different packages adapt to each other and combine them into a whole. If you need it, you can also grab the entire CVS tree from our site and then hack yourself and create your own Linux release. We firmly believe that this is a good thing-we hope to give knowledge to people eager for this knowledge so that they can bring Linux into a new field.
At first, many people with different backgrounds joined the development of Gentoo. I am not surprised at this because our developers have many different plans on how to ultimately obtain economic benefits on Gentoo. There are basically two types of developers: one is opposed to using Gentoo for profit-seeking, and the other is very interested in making Gentoo Linux a successful commercial product. This is a place where we are expected to disagree. The first group thinks that commercial operations contain adverse effects such as corruption, while the second group thinks that there are not so many negative factors.
In the past Enoch, it was difficult for me to break down whether I had any advantages or disadvantages for commercial components. I have verified the fact that Linux distributions like Debian are truly loyal to "freedom" and I like it. Compared with other commercial releases, the ease of use they bring to users includes providing a complete installation instruction on their respective websites, which is also a good thing I want to learn from.
Similarly, I sincerely hope Gentoo Linux can become a successful commercial version. For this purpose, I strive to find a balance between business and open source, however, I have not been able to find such a golden splitting point until recently.
What to do
How can we achieve a balance between commercialization and non-commercialization? The key point is that we must not forget the basics and fundamentals of Gentoo Linux as an open source software. All our efforts must follow this Foundation. This is not only an affirmation of open-source software, but also an encouragement and support for open-source software and open-source release development, nor will it be right to use this kind of open-source attitude to get business returns. More importantly, we will never adopt a commercial model, because this will impede other releases from using our source code. Our development team is open and close to everyone, and Gentoo Linux, a free release, is not only acceptable to everyone, but will continue to be encouraged by many people. We must be the advocates of the open-source movement, an advocate who carries this idea into action rather than staying at the text level.
If a company needs to use Gentoo Linux for a commercial Linux-based requirement, they can get the code from our CVS tree and use it immediately, because all our scattered work is based on GPL. We are confident that all Gentoo-based Linux derivatives follow the GNU Public License and will not restrict others from using our code anywhere.
We want as many people as possible to benefit from our work, but we also want to benefit as much as possible from your increase in Gentoo Linux. If most of your company's products are based on Gentoo Linux, we hope that you can send all the classifier modifications and improvements to us so that we can join the CVS tree to benefit more people. You can also benefit from our modifications after you keep and improve your submitted changes. We also encourage cooperation between commercial and non-commercial entities. For example: companies that use Gentoo Linux in their ISP systems administrators or that use Gentoo Linux to build commercial servers can benefit from each other's improvements to Gentoo Linux. It is time to facilitate free code exchange among people, which can only be done by open-source software.
The path to the future
Now it's very close to the release of Gentoo Linux 1.0 (it may have been released when you read this article on developerWorks, think about whether the current 2006.0 is a kind of feeling ^-^ ??). But what is the future direction of Gentoo Linux?
As we move towards version 2.0, I hope to continue to improve the performance of Portage as the core of Gentoo Linux, because any major advances in Gentoo Linux will start from Portage. I will continue the process of converting the main code from bash to python, this will add us to new designs (such as the object-oriented new stuff designed for our fully automated construction system ).
In addition to the modification of the Portage, I also want to be cautious about finding excellent technology and joining our development team with developers of the same version as we use. After expanding the development team, we can add more automated custom scripts for Gentoo Linux. More importantly, an appropriately expanded development team can make Gentoo Linux stand on top of the Linux technology. This is fun :)
We also hope that commercial Linux technology companies can use Gentoo Linux as the basis of their products. Now we have such a relationship, and there will be more in the future, and such a commitment to collaboration is fun and very beneficial to Gentoo Linux users.
Finally, I want to talk about how to make a meaningful contribution to the Linux community. Although there are many available releases, Gentoo Linux still has many things not available in other versions. We are confident in the future development of Gentoo Linux, and we hope you will feel the same way.
The original article is as follows:
This article is an English version of an article which is originally in the Chinese language on aliyun.com and is provided for information purposes only. This website makes no representation or warranty of any kind, either expressed or implied, as to the accuracy, completeness ownership or
reliability of the article or any translations thereof. If you have any concerns or complaints relating to the article, please send an email, providing a detailed description of the concern or
complaint, to email@example.com. A staff member will contact you within 5 working days. Once verified, infringing content will be removed immediately.
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
and provide relevant evidence. A staff member will contact you within 5 working days.