Visit Paul's websites:
From Computing to Computational Thinking (computize.org)
Becoming a Computational Thinker: Success in the Digital Age (computize.org/CTer)
Oh, no it froze again! I know how annoying it is when your computing device suddenly stops working, not responding to any input, from the mouse, touch screen/pad, or keyboard. You could call the help desk but that would be troublesome and very time consuming. Often, the help desk would suggest that you reboot your device.
So what is rebooting? When is it needed? Why does it work? How do you initiate a reboot when the device is stuck? We are going to talk about these and related issues so that you can quickly get unstuck and carry on with your important work.
This article is part of our Computational Thinking (CT) blog. You can find other interesting articles in aroundKent (aroundkent.net), an online magazine, and also in the author’s new book
Becoming A Computational Thinker: Success in the Digital Age
See the website computize.org/CTer for more information.
In computing, the term “boot” refers to creating an operating system (OS) when you turn on a computer from a powered-off state. An OS is a critical program required to make a computer work. Without an OS, any computing device is just a brick. If a computer were a physical person, then the OS would be its brain.
Computers come in many forms: desktop, laptop, tablet, smartphone, servers in the cloud, and other devices such as WiFi routers and smart TVs. The same computer hardware with a different OS would literally be a different computer. Popular operating systems include Windows, macOS, Linux, iOS, and Android.
Under the control of an operating system, a computer can execute any app (application program) stored in its memory. Popular apps include web browsers, word processors, PDF readers, video/audio players, online chat/conference software, and so on.
But when a computer is first powered on, its RAM (memory) is basically blank space. There is not yet any program code in it. The first thing the computer hardware does after being powered on is to load a boot loader program to begin the building of the OS which is done in stages. This “coming into being” process has been described figuratively as “pulling yourself up by the bootstraps.” Hence we have the term bootstraping or booting for short (Figure 1).
While it is impossible to pull yourself up by the bootstraps physically, it is actually just what happens when an operating system gives birth to itself.
When a computer is powered on, it first performs the hardware Power On Self Test (POST) then runs the booting code to establish the full OS in a sequence of well-defined stages. Here is a simplified overview you can read through quickly. There is no need to dwell on details.
5. Kernel Initialization: Once loaded, the kernel initializes hardware components, sets up memory management, and starts essential system services. The kernel mounts the root filesystem, which contains the core system files and directories needed for the operating system to function. For example, the root filestem is C:\ on Windows, and / on Linux and macOS.
6. Starting System Services: The kernel starts one or more master processes. A master process is always present and controls and manages all other programs and services provided by the operating system.
7. The master process launches various background services required for system operation, such as networking, logging, and device management services. These background processes are also called daemons because they are hidden from users but always active. Then, the system enters a multi-user state.
8. User Login and Session Start: Users can log in via graphical or command-line interfaces. Upon login, user-specific settings and environments are loaded, and a user session is started, typically involving the launch of a desktop environment or command shell.
9. Full System Readiness: The system is now fully operational, with hardware and software components initialized and ready for use. Users can start applications, perform tasks, and interact with the system as needed.
As soon as booting completes, your device becomes fully functional. As you use your device, there will be occasions when the booting process, or a part of the booting process, will need a redo, that is rebooting.
Rebooting can be triggered by the system or initiated by the user in various situations:
If a reboot takes place by itself, then a user just have to wait for it to complete. In case you wish to suspend (put to sleep), restart, or shutdown your system, you would normally use the power icon (Figure 4) which can be found easily on most systems.
Furthermore, if your system supports voice input, you can also give verbal commands to restart/reboot and do other things. For example, on Windows you can use:
"Hey Cortana, lock my computer."
"Hey Cortana, shut down my computer." "Hey Cortana, restart my computer."
You can also find such commands on other operating systems.
When a system is stuck or unresponsive, instead of the power icon, you need a different way to trigger a reboot/restart.
There are two types of boot, cold boot and warm boot. The former is starting the computer from a completely powered-off state. The latter is restarting the computer without turning off the power, usually done by the operating system’s restart function. Restart is faster because it bypasses the POST and hardware initialization steps.
Here are several methods for users to initiate a restart/reboot, depending on the level of responsiveness of the system:
A reboot/restart usually takes a few minutes. It may take longer when doing system updates.
Now we know how to reboot. Let’s list the types of problems a reboot can solve:
Rebooting a computer/device can solve a variety of problems by essentially resetting the system, clearing out temporary states, and starting fresh. Here’s why a reboot/restart can be effective and the types of problems it can address:
Basically, a reboot/restart wipes the slate clean (Figure 7) and gives you a new start.
Often, multiple apps are running when a system reboots/restarts. The very first thing is that these apps are asked to quit by themselves or be closed forcefully.
A reboot/restart gives you a clean slate. But all previously running apps are also gone, unless they are restored. Different operating systems offer their own ways to support the restoration of apps after a reboot/restart. This feature, known as session restore, is popular with users.
To enable session restore: on Windows, set the app restart option in the settings menu and also via the task manager; on macOS use system preferences; on Linux use features in the GNOME or KDE desktop environment. No such feature is currently available on smartphones.
When an app is stuck or not working properly, you may not need a whole-system reboot. Try to quit and start that single app. To kill (force quit) an app you can use the task manager or commands (kill, taskkill) on major operating systems.
We see how a reboot often can fix things. But we also realize a reboot can break things, because it may apply a faulty update or some program may stop working in the updated environment.
According to a CNBC news article “How a software update from cyber firm CrowdStrike caused one of the world’s biggest IT blackouts” (July 19, 2024):
“A fault with an update issued by cybersecurity company CrowdStrike led to a cascade effect among global IT systems Friday, with industries ranging from banking to airlines facing outages.
Banks and health-care providers saw their services disrupted and TV broadcasters went offline as businesses worldwide grappled with the ongoing outage. Air travel has been hit hard, too, with planes grounded and services delayed.
At the heart of the issue is Texas-based cybersecurity vendor CrowdStrike. On Friday, the cybersecurity firm experienced a major disruption following an issue with a software update.”
Basically, CrowdStrike issued a software update that had a problem. Fortunately, the faulty software update only affected Windows operating systems where a reboot installed it. However, nearly 8.5 million Microsoft devices were disabled, according to a Microsoft blog post.
Computers are a new type of machines. They are universal because they can load and run any app. That means computers can achieve any tasks that can be programmed. That is almost anything you can think of.
The universality property comes from the unique ability of loading, storing, and running any program in the RAM memory. The operating system manages a computer and all other apps. It is the first program to be loaded and stored into a blank RAM memory. This giving birth to itself process is called booting and is performed every time a computer is turned on from a powered-off state.
When an OS installs updates or runs into difficulties, such as getting stuck or becoming unresponsive to user input, a reboot is usually required. And now we understand why.
A reboot can not only return the OS to its original state, but also apply fixes and updates to the system. In our real lives, we can only wish to wipe out errors and mistakes. What we can do is to improve and update our ways so that we can perform better in the future. If we keep track of our own desired self-improvements, we can use that data to do a personal reboot just like installing a computer update. Wouldn’t that be nice?
ABOUT PAUL
A Ph.D. and faculty member from MIT, Paul Wang (王 士 弘) became a Computer Science professor (Kent State University) in 1981, and served as a Director at the Institute for Computational Mathematics at Kent from 1986 to 2011. He retired in 2012 and is now professor emeritus at Kent State University.
Paul is a leading expert in Symbolic and Algebraic Computation (SAC). He has conducted over forty research projects funded by government and industry, authored many well-regarded Computer Science textbooks, most also translated into foreign languages, and released many software tools. He received the Ohio Governor's Award for University Faculty Entrepreneurship (2001). Paul supervised 14 Ph.D. and over 26 Master-degree students.
His Ph.D. dissertation, advised by Joel Moses, was on Evaluation of Definite Integrals by Symbolic Manipulation. Paul's main research interests include Symbolic and Algebraic Computation (SAC), polynomial factoring and GCD algorithms, automatic code generation, Internet Accessible Mathematical Computation (IAMC), enabling technologies for and classroom delivery of Web-based Mathematics Education (WME), as well as parallel and distributed SAC. Paul has made significant contributions to many parts of the MAXIMA computer algebra system. See these online demos for an experience with MAXIMA.
Paul continues to work jointly with others nationally and internationally in computer science teaching and research, write textbooks, IT consult as sofpower.com, and manage his Web development business webtong.com