Domain: osdl.jp
Stories and comments across the archive that link to osdl.jp.
Comments · 11
-
Here's How to Test Your New KernelYou should test your new kernel more thoroughly than by just casually trying it out on your machine. You can help the kernel developers significantly by doing so. You should also never deploy a new kernel on a production machine, even from a stable source version, unless you have rigorously tested it. While it may work great for everyone else, you may be personally blessed with the discovery of your very own bug, a bug which may cause data loss or significant downtime.
You should also be aware the Linus gets to release a new kernel whenever he wants. He does this when he thinks its the right time, for reasons that don't always involve reliability. He posts a new kernel release when he feels its ready, often without testing it particularly rigorously, and it has happened quite a few times that Linus has released a new "stable" kernel that turns out to be quite broken. It is actually quite common for the stable releases of the non-86 architectures to be quite buggy.
Finally, Linus announced on linux-kernel that the reason he released the first 2.4 stable kernel (2.4.0) was because he wanted more widespread testing, not because he felt it was ready to use. I wouldn't be surprised if he does this with 2.6. Both 2.2 and 2.4 went through several releases before they were really stabilized, and 2.4 has never been as reliable as the later 2.2 versions.
That's why I ask you to read:
The Open Source Development Lab's Japan development center used to have japanese translations of them but they don't seem to be online anymore. I'll track them down and post them here when I can find them.I am actively seeking further translations of these and the other articles that are at The Linux Quality Database. The articles are all under the GNU Free Documentation License so you can just grab them and translate away.
Thank you for your attention.
-
How to help test the kernelBack around when 2.4 was released I wrote a couple articles about how to help test the kernel. They are also helpful when evaluating a new kernel for production systems - you should never just run even a stable kernel on a production system, for while it may work OK for everyone else, it may not work for you.
- Why We Should All Test the New Linux Kernel - Japanese
- Using Test Suites to Validate the Linux Kernel - Japanese
I am looking for translations into other languages for all my Linux Quality Database articles - there are other articles on web application quality and C++ programming, and more will be posted from time to time.
They are all under the GNU Free Documentation License, but for reasons explained in Which License for Free Documentation? I am planning to change the license soon to another one.
-
How to help test the kernelBack around when 2.4 was released I wrote a couple articles about how to help test the kernel. They are also helpful when evaluating a new kernel for production systems - you should never just run even a stable kernel on a production system, for while it may work OK for everyone else, it may not work for you.
- Why We Should All Test the New Linux Kernel - Japanese
- Using Test Suites to Validate the Linux Kernel - Japanese
I am looking for translations into other languages for all my Linux Quality Database articles - there are other articles on web application quality and C++ programming, and more will be posted from time to time.
They are all under the GNU Free Documentation License, but for reasons explained in Which License for Free Documentation? I am planning to change the license soon to another one.
-
How to help test the kernelBack around when 2.4 was released I wrote a couple articles about how to help test the kernel. They are also helpful when evaluating a new kernel for production systems - you should never just run even a stable kernel on a production system, for while it may work OK for everyone else, it may not work for you.
- Why We Should All Test the New Linux Kernel - Japanese
- Using Test Suites to Validate the Linux Kernel - Japanese
I am looking for translations into other languages for all my Linux Quality Database articles - there are other articles on web application quality and C++ programming, and more will be posted from time to time.
They are all under the GNU Free Documentation License, but for reasons explained in Which License for Free Documentation? I am planning to change the license soon to another one.
-
Tips on testing your new kernelYou should thoroughly test your new kernel before putting it into production. Even if the kernel works well for everyone else, you could personally discover a new bug. You could save yourself a lot of pain by testing first, as well as help the kernel developers.
A while back I wrote a couple articles on Linux kernel testing:
The Open Source Development Lab kindly provides Japanese translations here.(The articles are under the GNU Free Documentation License. I would be quite stoked if you copied or translated them. There are articles on other quality topics here.)
-
What I hoped to do with the Linux Quality DatabaseA few months before 2.4 was released, I proposed to develop a custom bug database for the Linux Kernel. The website I started for it is The Linux Quality Database.
Unfortunately, the dot-com crash ensued just as I was getting started, and things have been a little too hectic since then for me to do much about it.
A number of people suggested I use bugzilla, and I thought a lot about it, but didn't want to use it, at least not in its current form, because it lacks a feature that I feel is critical for a bug database that is to be used to track operating system development: storage of preset machine configurations.
Perhaps the people with the new kernel bugzilla can put this in.
What I envisisioned was a way for the user to specify the hardware configuration of their machines by drawing on a database of all known hardware. (Just making that database would be a big job in itself). The user could give a name to each configuration.
Then when reporting a bug, the user would be presented with a popup menu or scrolling list of their configuration presets. There would be a way to make variations for a particular bug report, to indicate that a board had been added or removed from the stored preset.
Then the user would upload their kernel
.config file.This would allow the kernel developers to search for combinations of hardware that is or isn't installed along with kernel config options that are selected or not set.
This would help a lot to identify situations where FooBar Corp's ethernet board doesn't work when you've got a WhizzyVideo card installed.
I would also encourage people to report the configurations for successful kernel tests. That would help to build confidence as well as to identify untested areas so more attention could be paid to them.
Unfortunately, I'm just a guy working alone and although some have offerred to help, I have been working too hard just to survive to even coordinate the development of such a database.
However, I have found some time to write some articles on various aspects of Linux and web software quality and post them at the site. Writing is what I like to do to relax when I'm not programming - I write articles like these whenever I can, despite despite what the anklebiters have to say about them.
The OSDL was kind enough to mirror my two kernel testing articles and even translate them into Japanese. You can mirror or translate them if you like, as they are under the GNU Free Documentation License. I would be particularly pleased if any of my articles were translated into more languages.
The two kernel testing articles are:
- Why We Should All Test the New Linux Kernel ( Japanese translation)
- Using Test Suites to Validate the Linux Kernel ( Japanese translation)
But I found the OSDL's interest in my articles quite encouraging.
A lot of people are griping about not being able to file bugs anonymously with bugzilla. I had always intended to allow anonymous bug reports, although I would encourage users to log in so we could follow up with them.
Also some people are saying in other comments that bug reports that aren't emailed to the linux-kernel mailing lists won't be as good as the traditional ones. But I'd like to point out that linux-kernel is one of the highest traffic mailing lists around, and the discussions are extremely technical and often heated. Patches also fall on the floor all the time, as I found when someone posted a patch that fixed the problem I reported when I first subscribed.
I felt then and still feel that linux-kernel is too intimidating for the average linux user, so most will choose not to partipate in kernel QA. A bug database with a nice web interface where the reporter doesn't have to participate in the mailing list traffic can only encourage more people to post bugs. And a bug database would make it possible to log successes without overwhelming the list.
It would also be possible to publish an XML interface to the database, so people could log reports programmatically. That would help for identifying configuration information, for example you could run a program that would do what lspci does and upload it to your account at the bugbase.
-
What I hoped to do with the Linux Quality DatabaseA few months before 2.4 was released, I proposed to develop a custom bug database for the Linux Kernel. The website I started for it is The Linux Quality Database.
Unfortunately, the dot-com crash ensued just as I was getting started, and things have been a little too hectic since then for me to do much about it.
A number of people suggested I use bugzilla, and I thought a lot about it, but didn't want to use it, at least not in its current form, because it lacks a feature that I feel is critical for a bug database that is to be used to track operating system development: storage of preset machine configurations.
Perhaps the people with the new kernel bugzilla can put this in.
What I envisisioned was a way for the user to specify the hardware configuration of their machines by drawing on a database of all known hardware. (Just making that database would be a big job in itself). The user could give a name to each configuration.
Then when reporting a bug, the user would be presented with a popup menu or scrolling list of their configuration presets. There would be a way to make variations for a particular bug report, to indicate that a board had been added or removed from the stored preset.
Then the user would upload their kernel
.config file.This would allow the kernel developers to search for combinations of hardware that is or isn't installed along with kernel config options that are selected or not set.
This would help a lot to identify situations where FooBar Corp's ethernet board doesn't work when you've got a WhizzyVideo card installed.
I would also encourage people to report the configurations for successful kernel tests. That would help to build confidence as well as to identify untested areas so more attention could be paid to them.
Unfortunately, I'm just a guy working alone and although some have offerred to help, I have been working too hard just to survive to even coordinate the development of such a database.
However, I have found some time to write some articles on various aspects of Linux and web software quality and post them at the site. Writing is what I like to do to relax when I'm not programming - I write articles like these whenever I can, despite despite what the anklebiters have to say about them.
The OSDL was kind enough to mirror my two kernel testing articles and even translate them into Japanese. You can mirror or translate them if you like, as they are under the GNU Free Documentation License. I would be particularly pleased if any of my articles were translated into more languages.
The two kernel testing articles are:
- Why We Should All Test the New Linux Kernel ( Japanese translation)
- Using Test Suites to Validate the Linux Kernel ( Japanese translation)
But I found the OSDL's interest in my articles quite encouraging.
A lot of people are griping about not being able to file bugs anonymously with bugzilla. I had always intended to allow anonymous bug reports, although I would encourage users to log in so we could follow up with them.
Also some people are saying in other comments that bug reports that aren't emailed to the linux-kernel mailing lists won't be as good as the traditional ones. But I'd like to point out that linux-kernel is one of the highest traffic mailing lists around, and the discussions are extremely technical and often heated. Patches also fall on the floor all the time, as I found when someone posted a patch that fixed the problem I reported when I first subscribed.
I felt then and still feel that linux-kernel is too intimidating for the average linux user, so most will choose not to partipate in kernel QA. A bug database with a nice web interface where the reporter doesn't have to participate in the mailing list traffic can only encourage more people to post bugs. And a bug database would make it possible to log successes without overwhelming the list.
It would also be possible to publish an XML interface to the database, so people could log reports programmatically. That would help for identifying configuration information, for example you could run a program that would do what lspci does and upload it to your account at the bugbase.
-
Linux kernel articles in Chinese and JapaneseAdvogato's member zhaoway has written a couple of technical articles on Linux that are published in Chinese by IBM developerWorks: I think with IBM investing in the Chinese Linux market, to the point of funding the education of Chinese kernel programmers by publishing articles like the ones Zhaoway is writing, we don't have much to worry from Microsoft.
Also, the Open Source Development Lab's Japan Development Center was kind enough to recently translate a couple of my Linux kernel testing articles into Japanese:
- Why We Should All Test the New Linux Kernel - Japanese - English
- Using Test Suites to Validate the Linux Kernel - Japanese - English
I would personally be quite stoked if anyone translated any of the articles to other languages. There is also an article on web server application testing as well as one on C++ programming. I have more planned and invite others to contribute articles that have the general aim of improving the quality of Free Software.
-
Linux kernel articles in Chinese and JapaneseAdvogato's member zhaoway has written a couple of technical articles on Linux that are published in Chinese by IBM developerWorks: I think with IBM investing in the Chinese Linux market, to the point of funding the education of Chinese kernel programmers by publishing articles like the ones Zhaoway is writing, we don't have much to worry from Microsoft.
Also, the Open Source Development Lab's Japan Development Center was kind enough to recently translate a couple of my Linux kernel testing articles into Japanese:
- Why We Should All Test the New Linux Kernel - Japanese - English
- Using Test Suites to Validate the Linux Kernel - Japanese - English
I would personally be quite stoked if anyone translated any of the articles to other languages. There is also an article on web server application testing as well as one on C++ programming. I have more planned and invite others to contribute articles that have the general aim of improving the quality of Free Software.
-
Linux kernel articles in Chinese and JapaneseAdvogato's member zhaoway has written a couple of technical articles on Linux that are published in Chinese by IBM developerWorks: I think with IBM investing in the Chinese Linux market, to the point of funding the education of Chinese kernel programmers by publishing articles like the ones Zhaoway is writing, we don't have much to worry from Microsoft.
Also, the Open Source Development Lab's Japan Development Center was kind enough to recently translate a couple of my Linux kernel testing articles into Japanese:
- Why We Should All Test the New Linux Kernel - Japanese - English
- Using Test Suites to Validate the Linux Kernel - Japanese - English
I would personally be quite stoked if anyone translated any of the articles to other languages. There is also an article on web server application testing as well as one on C++ programming. I have more planned and invite others to contribute articles that have the general aim of improving the quality of Free Software.
-
Linux Quality Database and Other ThoughtsI'm a very ardent supporter of Free Software in concept. However, while there are many excellent examples of high quality Free Software products, there are even more that are of very poor quality, and the confusing patchwork produced by integrating this jumble into a typical Linux installation leaves a great deal to be desired.
I'm very impressed with the work of the kernel developers, but when I first joined the linux-kernel mailing list to resolve a bug when I started testing the 2.3 kernels a few months before 2.4 shipped, I found the process of reporting a bug and making sure it got fixed quite intimidating. I think it takes more intestinal fortitude than most people who might otherwise want to help the developers are likely to have.
That's why I started The Linux Quality Database.
My original concept was to provide a powerful bug database to enable end users to conveniently file more useful and informative bug reports, combined with sophisticated search facilities to aid the kernel developers in looking up bug reports.
For example, one might be able to search by the values of kernel
.config file entries as well as hardware that is or isn't present in the user's system. This isn't something you can do with bugzilla, although possibly it could be extended to do so.Unfortunately the dot-com crash happened and I had to bust my ass just to survive so I haven't got anywhere with the bug database yet.
But I also had the idea of using the site to educate other programmers, testers and users about how they can improve the quality of all Free Software, not just the kernel. So I started writing articles on various topics as they occured to me and posting them in the articles section. All my articles are under the GNU Free Documentation license. The Open Source Development Lab mirrors a couple of them and I'm quite stoked to report has made Japanese translations.
I invite others to contribute articles or advice, and of course since the articles are under the GFDL you are welcome to republish them elsewhere or include them in distributions of Linux or other software.
The articles available so far are:
- Why We Should All Test the New Linux Kernel
- Using Test Suites to Validate the Linux Kernel
- Use Validators and Load Generators to Test Your Web Applications
- Pointers to C++ Member Functions
I think it's important to take personal responsibility for improving software quality. Rather than griping about Microsoft, your managers or your coworkers, strive to write better code yourself, educate your coworkers (for example by writing articles like I do), and stand up for yourself when the management attempts to bully you into writing bad code.
Don't just try hard. That's like pushing against a stone wall. Learn better practices, and also reflect upon past experiences in your own work and that of others to understand what works well and what doesn't.
In the last couple of years I have found that adopting unit testing and automated functional testing, as well as frequent use of assertions has enormously improved the quality of my own work.
They have also improved my productivity and made my experience of developing it much more pleasant. It's also impressed my clients because my code works so much better than that developed by their own programmers in house, so that despite their urgency to get code into production yesterday, they have been very supportive of my automated testing strategy and my high personal standards for quality - and they are starting to adopt some of what I do into their own process.
The best book I have found for teaching automated testing is John Lakos' Large Scale C++ Software Design. While much of it is of course C++ specific, the majority of it applies to any language.
One important thing to understand is that programs that have a rat's nest of dependencies between modules are difficult if not impossible to unit test - Lakos details methods to quantify, understand and manage dependencies within a program, not only to aid testing, but to enable module reuse (so modules can be used in other programs without dragging everything else along), aiding comprehension by developers and speeding build times.