Anda di halaman 1dari 3

Why computers crash Why computers crash

C rashing is painful, at the very


least implying lengthy reboots,
loss of data, hair-wrenching
debugging sessions, or random hardware
faults which may take weeks to track down. At
a more extreme end of the spectrum, the crash
further elaborates a notion of interface
which is key to crashing.
There can be little doubt that
crashing offers a rich menu of food for
thought, and it’s worth clarifying
crashing in relation to the simplest
accessing what is forbidden for a
process, what is outside the current
system of notation or the rehearsed
bounds of an application. For
example, the all too familiar
segmentation fault occurs when a
abstraction, and complexity within
the OS and kernel are quite obvious
factors here and the example of the
GNU/Hurd operating system (see
LinuxUser &Developer 49) highlights
such issues with practical zeal. In
of hard real time software responsible for, say, computational matter. Crashing exists program tries to access memory contrast to a traditional monolithic
the movements of a space probe, can literally always in relation to a necessarily locations which haven’t been kernel, which provides for a larger
Presenting the very be translated into a less than soft crash. programmable machine. A machine allocated for the program’s own use. target and for a heavier fall, the GNU
What can go wrong will go wrong, as does not crash unless it is a Turing Within an impossible realm of Hurd’s microkernel approach, which
antithesis of functional Moore’s law gives way to Murphy’s law and machine (TM). Without rehearsing a perfect abstractions or of supreme
the necessary complexity which eats up the full theory, which can readily be found black boxing, with totally private data,
computing, the crash is an marketplace’s fresh cycles invokes a brittle online, a TM, which represents the there can be no crashing, in that
crash at the interface of person and processor. limits of computability through crashing can be viewed as leakage.
Crashing shows
area ripe for exploration, Crash is all about visibility, the making of such defining that which can be Witness the terms of a buffer overflow. us how
laws and forces apparent, and if we can see computable, can readily be simulated. The battle against crashing waged politics enters
exposing as it does the beyond the frustration and practical issues, A state machine takes a ride down a daily by overworked programmers
computation, and
such as forensics, data recovery and tape, looking up symbols it could well be understood in terms of a
rich seam between troubleshooting, associated with crashing, it encounters along the way, which, in war against code and data promiscuity.
it’s not just about
does reveal itself as an area ripe for concert with the current state, further Crashing erases the private, and functionality or
writable and runnable, and philosophical and social enquiry, both in determine the behaviour and state of ironically, closed source systems which getting the job
offering radical insights
relation to free software and to notions of
entropy and quantum computing.
the machine through specifying a
transition function. However, if such
provide no public access to code
remain bug-ridden and crash-ready
done
Crashing, largely a realm in which an encountered symbol does not exist without easy remedy. Under such
into the contemporary programmed systems fail to expect within our table of transition OSes, crashing can only provoke
the unexpected, illuminates the functions, or multiple symbols are invocations and cursing under the reduces the amount of policy within
interface between man brittle nature of many so-called encountered, then we have a blackest of arts, or a serious wiping the kernel and leaves most services
high-level programming problem. The Turing machine crashes clean of the slate. running in userspace where errors
and machine. languages. Rigorous type or halts, and from here we can Crash is also all about uncertainty; won’t impact on the total system,
and error checking can position crashing within the gripping the so called blue screen of death, the should make for a more robust
Martin Howse dons a hard only go so far; a context of the limits of computability ghastly screen colour of a crashed system. Indeed, the notion of crashing
catalogue of mishaps as defined by Alan Turing’s famous Windows system, which truly comes can further expose interesting and
hat to mine deep into this and outages related halting problem; that a program out of the blue. Just as repetition somewhat political questions
to the buffer cannot possibly compute whether occupies an important position within regarding kernel and user space, and
rich geology overflow, under another program will crash or halt. the field of information science and how and where kernel, OS and apps

Always crashing which data leaks out beyond the FREE COMPUTING, FREE LOVE more specifically error correction, so can be defined and divided. After all,
programmer’s narrowly defined The field of crashing, in relation to repeated crashes can well serve to the separation of protected
confines, would fill a large contemporary computing, is provide much needed information as kernelspace from open userspace is
volume. The overlap of the necessarily more complex, and to hardware and software problems, deemed necessary in order to reduce
physical sciences and information crashing can well be viewed as an and thence remedies can be applied. the risk of crashing.
theory, a view of the world essential and dangerous partner to A repeated crash highlights the
primarily as information as complexity and abstraction. But crash system’s own flaws. And crashing CRASHING IN THE OPEN
pioneered by Konrad Zuse’s work as defined within a Turing model still always stands in vigorous relation to Crashing thus implies and exposes
in the late 1960s, expands the holds good; Crash as a halting of both system architecture and the hierarchies; a super superuser reigning
realm of crashing beyond Operating System or application heavily intertwined development or in kernel space reins in users and their
considerations of code, and functionality, crashing as doing or licensing model. Modularity, processes within a realm of restricted

34 LinuxUser & Developer LinuxUser & Developer 35


Why computers crash

power. On a practical level witness the advances of free software. Messages from
multiple ways under which users running as Crashing and openness exist in strange the gods are
root can crash and destroy their own systems relation, with one warring partner
by accident. It would be too dangerous to provoking and yet strengthening the other
surely resistant
mention such familiar examples here. through the necessity for exposure. At first to grepping.
Running as root pushes far beyond the less glance free software with its implied and Crashing becomes
than apt but commonly applied metaphor of visible modularity provides for a smaller a far more
riding a motorcycle without a helmet. The crash fall out. Though the GUI may crash
practical example of the GNU/Hurd project, and freeze, the user knows that the OS can
enlightening
though far from finished, does away with be accessed at a lower level of abstraction. activity under
such distinctions at the same time as fighting Under proprietary systems, such exposure openness
the curse of the crash. Perhaps there are and access is not possible. The system is
other ways of designing an OS without solely as it appears, or as can be inferred. An
entering a pact with the devil where power is actively and openly developed system also ill explored regions, perhaps centring
traded for solidity. And it’s also thus easy to allows for plentiful debugging hooks into mostly on resource management, such as
see, within a context exposed by crashing, the system which can be used to recover the functionality of the virtual memory
why the GNU/Hurd, with its design which and analyse important data pertaining to manager, but also unravelling the tight knit
stresses userland versatility, really is the only the crash. An open source crash toolkit of processor and kernel which dictates a
choice for a GNU generation. provides for valuable insights into how both good degree of policy and architecture.
Crashing shows us how politics enters OS and the contemporary machine Though any OS may choose to abstract a
computation, and it’s not just about function. Crashing as subject matter for functional model away from that dictated
functionality or getting the job done as has further study offers a compelling route into by the likes of Intel or AMD, the double
always been the battle cry of crashed out examining an OS and architecture; demands of security and speed frequently
closed source OS users rejecting the spotlighting a good range of essential, often mean that kernel coders are held at the
mercy of the chip.

A taxonomy of the crash A SCHOOL FOR CRASHING


It may come as no surprise that the most
Much crash research has confined its attentions to the purely practical, and in so doing accomplished students within such a college
the wider picture has been ignored, and repetition has resulted due to a lack of of crashing reside very much within the frat
consensus on a shared system of classification or taxonomy. It may thus prove useful to house of cracking. Those who code exploits
iterate over the types of crash and perhaps attempt some sort of necessarily incomplete need a thorough understanding of the tiny
classification, distinguishing in the process possible causes and effects. Crashing is a gaps between machine and kernel which can
reasonably generic operation, of course with the proviso that more or less open OSes will readily be crowbarred open and put to new
extend the visibility implied by crash, thus shattering the dark glass of GUI and shell and use. Such territory overlaps well with the
exposing the raw innards of the beast. terrain of crashing, and indeed crackers may
Thus such a taxonomy will concentrate on specifying crashes under a GNU/Linux well content themselves with wiping out a
system under the implied hierarchy of application, GUI, shell, kernel and x86 architecture machine of no use for further remote
with a grand user and kernel space divide severing this schematic. Crashes could be exploitations. With little to guide their
classified according to either visibility or access (such as being able to interpret a crash studies beyond source code and few written
dump) on the one hand and probable cause on the other, with the symptomatic lying works which can enlighten this realm, would
somewhere between. A classification could begin with an application crash, or serious be scholars of the crash will often find
loss of functionality, as signalled by a freeze, or error message such as a segmentation themselves referring to on and offline
fault. We can of course always drop back to the shell and kill the offending process, or journals such as Phrack, sieving rare grains of
make use of Xkill. knowledge from both code and
Such a loss can be extended to the GUI, with a freeze or lock up here proving perhaps commentary. Crashing exists in unique
more fatal if access to keyboard and mouse is denied. In such instances it may be relation to such subcultures which can also
possible to hook into the system at a lower level, perhaps through SSH or Telnet, or via a be viewed in terms of openness; the
serial console. Loss of access to basic resources either through poor management, exposure of all facts and knowledge,
memory leaks or exploits such as a fork bomb could equally well cause system lockups however dangerous, regarding a system.
which may extend as far as barring all comers. With all entry points denied, a classic Information wants to be free even if such
crash or freeze, followed by necessary reboot, is encountered. freedom implies a knowledge which can
Such a classification corresponds well with the findings of the crash systems, furnishing a direct parallel
Ballista project, initiated by Carnegie Mellon University, which with the very freedom of data which enacts
also outlined a taxonomy whose imaginative acronym CRASH the crash.
stands for Crash, Restart, Abort, Silent and Hindering, with the Crash exposes a vast range of social,
latter two terms referring to application error codes. In this political and computational issues at the
instance, Restart would mean a spontaneous reboot; probably same time as itself acting or signifying
the most hardware-bound component within our classification. exposure. Crash can readily be seen as the

36 LinuxUser & Developer


Why computers crash Why computers crash

exposure of the programmable and machinic overseeing grand kernel. Indeed a relevant acting, short of low level probes, as our only IT’S NOT MY FAULT Masters, in his excellent regular series Information birth of quantum computing.
in that what perhaps was not necessarily question is how a crashed OS can report and interface, the kernel can provide much Panic.c, within the kernel source tree, on kernel development. In the case of wants to be Claude Shannon’s work within the
viewed as a machine or as coded is now comment on its own fate. Open source needed information on any crash, standing is the last port of call prior to a page fault, the memory manager in parallel fields of entropy, redefining
free even if
revealed as such. Crash returns the user to a software equally dispels such myths. as it does in a very special symptomatic or destination crash. Grepping for the hardware will signal to the kernel this concept within the context of
lower state of abstraction; a crash within a Messages from the gods are surely resistant indeed symbiotic relation to this domain. For contained panic function throughout when a process accesses a memory such freedom information, and error correction acts
GUI can be resolved within the shell and we to grepping. Crashing becomes a far more it could be argued that, aside from plentiful the source reveals a vast number of address that is not currently mapped implies a as a powerful lens for the subject of
can often find some way to hook in to a enlightening activity under openness. and well documented processor and functionalities read and willing to make to a physical location. Fault.c within knowledge crashing at the overlap of the physical
frozen machine either through premeditated Crash research is all about digging deep hardware bugs such as the famous F0 or this final journey. Init functions are a the arch/i386/mm kernel source and information. The contemporary
which can
use of the serial port, or through supremely into the obvious or the explicit, asking F00F bugs under early Pentiums, the kernel is serious contender, crashing out on a directory resolves the issue, which view of physics as a matter of
low level bit snooping. Crash implies both questions of that which is often taken for that which crashes and even causes a crash; sinking boot ship in the case of a may simply be due to having crash information further illuminates the
exposure and a cynical delight in that naive granted. As we’ve seen crashing can be used terminating promiscuous processes or bailing misconfigured kernel. Exit.c, which swapped the page out to disk. The systems field, broadening the terms of
revelation: witness the huge number of as a tool to ask questions of operating out before a flailing kernel code base does takes care of process termination, is handling here is simple, but other interface and openness which
hacker sites and magazines devoting pages systems, to ask where and why lines have more damage. At this point it’s apparent that another hot favourite, with panic more extreme cases, such as trying to crashing addresses.
to images of the blue screen of death or been drawn and where and how security can causality exists only from a practical access an invalid address or trying to Crash well intertwines, as both
other such crash artifacts in public places be assessed. And given a thoroughly modern perspective. Kernel panic, which many new write to executable code, have far ancestor and curse, with
such as railway stations, at airports or on field of equivalence of hardware and users will have encountered in the context of Panic is well more serious results. The kernel hands contemporary theories, such as those
ATMs in high streets. The delight in exposure software, through re-configurable booting a poorly configured newly compiled associated out a SIGSEGV or segfault signal to of quantum computing expert Seth
is all the more acute when running an computing, where does the kernel and thus kernel, is a suitably apt phrase. Panic is well with confusion, the offending process. Lloyd, which situate the universe as a
interface which attempts to hide its true
nature. A GNU/Linux command line crash
crashing stand within this open trinity of
machine, kernel and user application? When
associated with confusion, and occurs when
the kernel is cornered with no idea of a
and occurs Of course, we’re talking userspace
here. The kernel maps directly to a
vast information processor computing
its own existence. In a move which
would find few fans, yet a crash within a hardware can abstract and organise itself, decent next move. when the physical address as it would be too neatly ties in the Los Alamos lab, joint
bland graphical display at a high level of the maternal position of OS in containing, Two main varieties of kernel panic enable us kernel is tough to maintain page tables for hothouse nursery for both computing
abstraction from the machine, such as a train securing, organising and scheduling to further elaborate a system of crash cornered with itseld residing in virtual memory. and the atomic bomb, Lloyd argues
timetable display, is suitably attractive. At the
same time these crashes expose tangible
processes or demands in relation to available
resources changes. An OS is all about
classification (see A taxonomy of the crash). A
total lock up signals a hard panic, which, if
no idea of a However, we can use the kmalloc
function to allocate space in virtual
that the ultimate laptop could well be
considered as a one kilogram piece of
information and hackers can thus find out consistency and standards in relation to the we’re lucky enough to be in console mode, is decent next memory. A page fault under vmalloc, matter, or information, converted
exactly what OS some municipal or public interface for a user to the complex, open often accompanied by the phrase “Aieee!” and move used by a good many kernel modules, completely to energy, radiation which
device is running. world of computation. Crash highlights the a full record of the kernel’s stack which can well can be fixed up by updating page can also be considered as information.
Yet such exposure of the programmed and necessary and inevitable loss and leakage be used to debug the crash. A soft panic, called in cases such as attempting to tables. However, if we encounter a Such a device exists today in the form
the machinic, has just replaced one taken for within such translation or interface, exposing which may not prove to be fatal or may well kill the kernel’s initialisation process. bad reference reading or writing data of a 20-megaton hydrogen bomb.
granted level or mode of operation with the trade-off with flexibility which be followed by a hard panic, logs a rather References to Oops can be found from userspace, then it’s straight into Crashing could well be considered in
another within a hierarchy. An error message contemporary OSes operating under poor charming Oops phrase as well as a good deal throughout the kernel in connection Oops. Or, in the vibrant words of the such a light; an illumination brighter
takes on the heavenly status of a models of network security enact. of information including our friend the stack with both the panic function and the relevant kernel code commentary, than a thousand suns.
communication from the gods backtrace, contents of the CPU’s registers, the well titled die function, found in traps. “We’ll have to terminate things with
and is thus assumed to be DON’T PANIC code the CPU was executing and a call trace, c; code which provides a decent run extreme prejudice.”
causally correct in its
weighty, static diagnosis.
Digging deep into cause and effect
crash-wise is a tricky business and as
and a list of functions that the process was in at
the time of the OOPS. All of this information
down of processor exception codes.
There are 19 such codes under the x86
Registers and virtual address are
printed and the die function is
Key Links
OOPS! An Introduction to Linux Kernel Debugging
Its equally programmed soon as hardware faults and interrupts provides essential material for forensics, and which signal exceptions such as an called, crashing out at the exploit- urbanmyth.org/linux/oops
nature is often enter the picture, particularly in excellent guides such as the online OOPS! illegal instruction or a divide by zero. ridden interface of kernel and
Collection of Software Bugs
ignored. Such instances of spontaneous reboots, An Introduction to Linux Kernel Debugging Panic may well ensue, depending userspace. The VM is all about www5.in.tum.de/~huckle/bugse.html
messages surely crashing really does reveal itself as a walks the user through relevant use of a range on the exception and whether we are separation with an opposing crash
Linux Crash HOWTO
come from labyrinthine terrain. Stress testing (as of crash tools such as ksymoops and in kernel or userspace or servicing an operating as the inevitable revenge www.faqs.org/docs/Linux-HOWTO/Linux-Crash-HOWTO.html
somewhere covered in LinuxUser & Developer 37) is objdump. Such Sherlock-like activity is highly interrupt. Another major die client is of promiscuous leakage.
Kernel debugging
outside the probably the best way to highlight such addictive, and forensics provides a good the virtual memory (VM) manager Crashing resides firmly within the www.kernelhacking.org/docs/kernelhacking-HOWTO/indexs09.html
OS, from faults, through a rather tortuous process of introduction to navigating and understanding whose functionality is also called from context of entropy, a more scientific
Oops
some elimination. Yet before such test can even be the kernel source code. Grep is our friend here our traps.c, when the processor expression of Murphy’s law which we lxr.linux.no/source/Documentation/oops-tracing.txt
conducted, the kernel must be broached as when it comes to tracking down code signals a page fault to the kernel. kicked off with. The notion of entropy
Debugging
the next level down within the hierarchy of snippets which can teach us much about the We’re on the track of the common or has well survived the journey from the en.wikibooks.org/wiki/Linux_kernel#Debugging
abstraction. Raised above the processor and world of crashing. garden segmentation fault or segfault beginning of the industrial age,
Understanding The Linux Virtual Memory Manager
here, but, given Linux’s VM model, a through basic theories of information www.csn.ul.ie/~mel/projects/vm/guide/html/understand
page fault may be perfectly innocent. to contemporary and quantum
Ballista
The VM, which stands in good computing. Indeed the notion of www-2.cs.cmu.edu/afs/cs.cmu.edu/project/edrc-ballista/www
relation to crashing, responsible as it entropy, with particular reference to
Crash symposium
is for process segregation, abstracts Maxwell’s paradoxical demon of crash.1010.co.uk
the physical memory for a number of 1871, could well be argued to occupy
Seth Lloyd
reasons. VM management is well a key position within ideas and www-me.mit.edu/people/personal/slloyd.htm
covered elsewhere, particularly by Jon thought experiments leading to the
History of Los Alamos
www.lanl.gov/history/index.shtml

“We’ll have to terminate things with extreme prejudice”

38 LinuxUser & Developer LinuxUser & Developer 39

Anda mungkin juga menyukai