ACPI is a complete design disaster in every way. But we're kind of stuck with it.-- Linus
Organization, planning, and documentation relate to the concept of 'coupling' in software design. If part of a computer program depends on the internal details of another part, the two parts are tightly coupled. If the two parts talk to each other through a well-defined interface that hides the internal structure of each part, the coupling is loose. When changes are required, tight coupling means that changes in one part may require matching changes in the other part, which will in turn affect other parts of the program. Loose coupling allows you to change one part without having to change the other part. This saves a huge amount of effort and leads to a better product. To make loose coupling work, you must define and document the interfaces between different parts of the program.-- Guy Macon
The real problem with THROWAWAY CODE comes when it isn't thrown away.-- Big Ball of Mud
The best way to have a really great idea is to have a thousand ideas.-- Bruce Sterling
ANSI C is basically the language for gods. The language for somebody who wants to control everything, right? You can keep your scripting languages, your toy stuff...-- Linus
Architecture is about decisions that are hard to change later.seen on Slashdot
Today's mathematical culture suffers from a style of publication, in which the results and the reasoning justifying them are published quite explicitly but in which all the pondering is rigorously suppressed, as if the need to ponder were a vulgar infirmity about which we don't talk in civilized company.-- Edsger Dijkstra
Hence, it should not surprise us that many of the established superprogrammers are freaks in some sense of the word: they look funny; they wear funny clothes; they refuse to work regular hours; they don't get along with normal people; and so forth.-- from How to be a Superprogrammer, by Ed Yourdon
The word "essay" comes from the French verb "essayer", which means "to try". An essay, in the original sense, is something you write to try to figure something out. This happens in software too. I think some of the best programs were essays, in the sense that the authors didn't know when they started exactly what they were trying to write.Paul Graham
[Writing an OS] can be overwhelming and you can burn youself out. Don't be afraid to admit you don't know something and put it to one side. When the time comes you'll know it and you'll be able to spend the time on the problem that it needs.Kristian Van Der Vliet, Syllable OS
I worked 22 years in the industry, and I noticed that operating systems get cancer with age.Jean-Louis Gassée, founder of Be
And don't EVER make the mistake that you can design something better than what you get from ruthless massively parallel trial-and-error with a feedback cycle. That's giving your intelligence _much_ too much credit.Linus
The field is young. The subject domain is vast and difficult to catalog. The goal (creating high-quality software in an efficient, predictable manner) is lofty. But new sciences always flail around with qualitative, short-lived results in their early years. The newness of a field does not mean it is less important or less worthy of our best study. The newness of software engineering, to the contrary, means it is ripe with opportunities for seminal discoveries.from Why Software Engineering Is Not B.S., by Charles Connell
I have seen most dramatic results since I began urging [incremental development] on the project builders in my Software Engineering Laboratory class.from No Silver Bullet, by Frederick P. Brooks, Jr.The morale effects are startling. Enthusiasm jumps when there is a running system, even a simple one. Efforts redouble when the first picture from a new graphics software system appears on the screen,even if it is only a rectangle. One always has, at every stage in the process, a working system. I find that teams can grow much more complex entities in four months than they can build.
I would generally agree that microkernels are probably the wave of the future. However, it is in my opinion easier to implement a monolithic kernel. It is also easier for it to turn into a mess in a hurry as it is modified.Ken Thompson in the (in)famous LINUX is obsolete Usenet thread
Ignore everyone who tells you kernel hacking is hard, special or different. It's a large program, and bug fixing or driver tweaking can be a best starting point. It is however not magic, nor written in a secret language that only deep initiates with beards can read.Alan CoxPlay with it, try things, break it horribly and enjoy yourself. I started on the networking code because it didn't work very well. Everything I knew about TCP/IP I had downloaded the same day I started hacking the net code. My first attempts were not pretty but it was *fun*.
Verum ipsum factum (Understanding arises through making)Giambattista Vico, Italian philosopher (1668-1744)