A Conceivable Origin of Machine Consciousness in the IDLE process

09/28/2009 ∙ by Norbert Bátfai, et al. ∙ University of Debrecen (UD) 0

In this short paper, we would like to call professional community's attention to a daring idea that is surely unhelpful, but is exciting for programmers and anyway conflicts with the trend of energy consumption in computer systems.



There are no comments yet.


page 1

page 2

page 3

page 4

This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

1 Introduction

Operating systems are very sophisticated programs that can create a dream world for users, in which there are processes, files, windows and etc. In a similar manner, the human consciousness has also created a perfect dream world for us, in which there are smells, colors, words, numbers an so on. However operating systems are still passive programs in this sense that they do exactly what we programmed into them. It is not at all surprising because machines have neither free will nor consciousness today. Namely, in the case of operating systems, the IDLE process will be scheduled if there is nothing to do in the system. In the idle process our computer is doing nothing.

A brief outline of the content of this paper is as follows. In the next section, we introduce the idea of Upright Operating Systems in conceptual level. In section 3, first step will have been taken towards implementation in such a way that we will have a closer look to the replacing IDLE process in Minix operating system.

2 Upright Operating Systems

We set ourselves the aim of making some computing task in the idle process of the kernel. An open source operating system needs to be selected if this goal is to be achieved. We have chosen the Minix3 system [Herder et al., 2006]. The operating systems in which the IDLE process is replaced with some computing task will be called Upright Operating Systems.

The using of the word ”Upright” is an indication of the Upright Man, more specifically of the period of becoming human during which Homo Erectus may have taken an upright position.

2.1 What would be the cons?

Why would a computing have to be supported in the kernel space? Why not sufficient a simple, entirely user level server program, which is started by the user, whenever the user wishes to run it? In addition to the exclusion of the classical IDLE process goes against the trend of energy consumption in computer systems.

2.2 What would be the pros?

We have only one argument that is principled or even also ethical: this would not be a stoppable program. We will not be able to stop the computing whenever we decide to use an Upright Operating Systems.

2.3 What should we compute?

What computing should be taken at kernel level? Essentially, two approaches may be envisaged. In the first approach, the operating system would observe itself operating, in such a way that it would make notes during its operation, which notes will be processed in idle periods. For example, in the case of Minix, the IPC traffic may be observed by the Minix kernel [Tanenbaum and Woodhull, 2005, examples on pp. 219], which in turn enabled the kernel to modify settings of a possible SJF (Shortest Job First) or a preemptive SJF (Shortest Remaining Time First) scheduler.

In the other approach, the operating system, for example, with maintaining a common AIML (Artificial Intelligence Markup Language,

[Epstein et al., 2008, chap. 13]) file, would converge toward human consciousness. But we should remark that the most ideas arisen in this approach are also implementable in the user level and are typically distributed.

2.3.1 Time delayed systems

It is an interesting question, how can Libet and Kornhuber’s results on the timing of consciousness [Libet et al., 1979], [Kornhuber et al., 1976] be implemented into an upright operating system?

3 Implementations

The first step towards implementation is to replace the IDLE process. In the case of choosing Minix operating system, it is easy to find the source code which implements IDLE process [Tanenbaum and Woodhull, 2005]. It can be found in file kernel/arch/i386/klib386.s. Here the IDLE process is not only a simple infinity loop, but which contains HLT statement which reduces the CPU energy consumption.

We don’t have to do nothing else than to replace the idle_task reference with an own one in the system image table in source kernel/table.c. Our simple own ”Hello, World!” style uos_task that demonstrates replacing idle_task defined in source kernel/uos.c is the following.

#include "kernel.h"
#include "../lib/other/random.c"
/* ==================================================== *
 *                       uos_task                       *
 *===================================================== */
PUBLIC void uos_task()
  long l = LONG_MIN;

  for (;;) {
    if (random() < l++) {
      kprintf("Hello, Vilag!\n");
      l = LONG_MIN;

4 Conclusion and further work

In the near future, we are going to accomplish the same firs step described above in Linux kernel. For the time being, we are thinking about the question: what computing should be taken at kernel level?


  • Epstein et al. [2008] R. Epstein, G. Roberts, and G. Beber. Parsing the Turing Test: Philosophical and Methodological Issues in the Quest for the Thinking Computer. Springer Publishing Company, Incorporated, 2008. ISBN 1402096240, 9781402096242.
  • Herder et al. [2006] J. N. Herder, H. Bos, B. Gras, P. Homburg, and A. S. Tanenbaum. Minix 3: a highly reliable, self-repairing operating system. SIGOPS Oper. Syst. Rev., 40(3):80–89, 2006. ISSN 0163-5980. doi: http://doi.acm.org/10.1145/1151374.1151391.
  • Kornhuber et al. [1976] H. H. Kornhuber, L. Deecke, and P. Scheid. Voluntary finger movement in man: Cerebral potentials and theory. Biological Cybernetics, (23), 1976.
  • Libet et al. [1979] B. Libet, E. Wright, B. Feinstein, , and D. K. Pearl. Subjective referral of the timing for a conscious sensory experience. Brain, (102):193–224, 1979.
  • Tanenbaum and Woodhull [2005] A. S. Tanenbaum and A. S. Woodhull. Operating Systems Design and Implementation (3rd Edition). Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 2005. ISBN 0131429388.