11.07.2015 Views

Encyclopedia of Computer Science and Technology

Encyclopedia of Computer Science and Technology

Encyclopedia of Computer Science and Technology

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

264 kernelcould send a message to the button program object, whichwould be programmed to respond in specific ways.After leaving Xerox PARC in 1983, Kay briefly servedas chief scientist at Atari <strong>and</strong> then moved to Apple, wherehe worked on Macintosh <strong>and</strong> other advanced projects. In1996, Kay became a Disney Fellow <strong>and</strong> Vice President <strong>of</strong>Research <strong>and</strong> Development at Walt Disney Imagineering.In 2001 Kay founded Viewpoints Research Institute, a nonpr<strong>of</strong>itorganization devoted to developing advanced learningenvironments for children. One such project is Squeak,a streamlined but powerful version <strong>of</strong> Smalltalk that Kaystarted developing in 1995. Another, eToys, is a multiplatform,media-rich, environment that can be used for educationor “just” play. Behind it all is Kay’s continuing effortto do no less than reinvent programming <strong>and</strong> peoples’ relationshipto computer environments.Kay’s numerous honors include the ACM Turing Award(2003) for contributions to object-oriented programming<strong>and</strong> the Kyoto Prize (2004).Further ReadingAlter, Allan E. “Alan Kay: The PC Must Be Revamped—Now.” CIOInsight. Available online. URL: http://www.cioinsight.com/article2/0,1540,2089567,00.asp. Accessed August 1, 2007.Gasch, Scott. “Alan Kay.” Available online. URL: http://ei.cs.vt.edu/~history/GASCH.KAY.HTML. Accessed August 12, 2007.Kay, Alan. “The Early History <strong>of</strong> Smalltalk.” In Thomas J. Bergin,Jr., <strong>and</strong> Richard G. Gibson, Jr., eds. History <strong>of</strong> ProgrammingLanguages II. New York: ACM; Reading, Mass.: Addison-Wesley,1996.Shasha, Dennis, <strong>and</strong> Cathy Lazere, eds. Out <strong>of</strong> their Minds: TheLives <strong>and</strong> Discoveries <strong>of</strong> 15 Great <strong>Computer</strong> Scientists. NewYork: Copernicus, 1995.Viewpoints Research Institute. Available online. URL: http://www.vpri.org/. Accessed August 12, 2007.kernelThe idea behind an operating system kernel is that thereis a relatively small core set <strong>of</strong> “primitive” functions thatare necessary for the operation <strong>of</strong> system services (see alsooperating system). These functions can be provided in asingle component that can be adapted <strong>and</strong> updated as desirable.The fundamental services include:• Process control—scheduling how the processes (programsor threads <strong>of</strong> execution within programs) sharethe CPU, switching execution between processes, creatingnew processes, <strong>and</strong> terminating existing ones(see multitasking).• Interprocess communication—sending “messages”between processes enabling them to share data orcoordinate their data processing.• memory management—allocating <strong>and</strong> freeing upmemory as requested by processes as well as implementingvirtual memory, where physical storage istreated as an extension <strong>of</strong> main (RAM) memory. (Seememory management.)The kernel is an intermediary between users <strong>and</strong> programs <strong>and</strong> thehardware system. It provides the functions necessary for allocating<strong>and</strong> controlling processes <strong>and</strong> system resources.• File system services—creating, opening, reading from,writing to, closing, <strong>and</strong> deleting files. This includes maintaininga structure (such as a list <strong>of</strong> nodes) that specifiesthe relationship between directories <strong>and</strong> files. (See file.)In addition to these most basic services, some operatingsystems may have larger kernels that include securityfunctions (such as maintaining different classes <strong>of</strong> userswith different privileges), low-level support for peripheraldevices, <strong>and</strong> networking (such as TCP/IP).The decision about what functions to include in the kernel<strong>and</strong> which to provide through device drivers or systemextensions is an important part <strong>of</strong> the design <strong>of</strong> operatingsystems. Many early systems responded to the very limitedsupply <strong>of</strong> RAM by designing a “microkernel” that could fitentirely in a small amount <strong>of</strong> memory reserved permanentlyfor it. Today, with memory a relatively cheap resource, kernelstend to be larger <strong>and</strong> include functions that are pageddynamically into <strong>and</strong> out <strong>of</strong> memory.In the UNIX world (<strong>and</strong> particularly with Linux) thekernel is constantly being improved through informal collaborativeefforts. Many Linux enthusiasts regularly installnew versions <strong>of</strong> the kernel in order to stay on the “leadingedge,” while more conservative users can opt for waitinguntil the next stable version <strong>of</strong> the kernel is released.Further ReadingBovet, Daniel, <strong>and</strong> Marco Cesati. Underst<strong>and</strong>ing the Linux Kernel.3rd ed. Sebastapol, Calif.: O’Reilly, 2005.Love, Robert. Linux Kernel Development. 2nd ed. Indianapolis:Novell Press, 2005.Torvalds, Linus. “LinuxWorld: The Story <strong>of</strong> the Linux Kernel.”linuxtoday. Available online. URL: http://www.linuxtoday.com/developer/1999032500910PS. Accessed August 12, 2007.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!