{
    "content": [
        {
            "type": "text",
            "text": "# boot (man)\n\n## NAME\n\nboot - System bootup process based on UNIX System V Release 4\n\n## DESCRIPTION\n\nThe  bootup  process (or \"boot sequence\") varies in details among systems, but can be roughly\ndivided into phases controlled by the following components:\n\n## TLDR\n\n> Build tooling for the Clojure programming language.\n\n- Start a REPL session either with the project or standalone:\n  `boot repl`\n- Build a single `uberjar`:\n  `boot jar`\n- Generate scaffolding for a new project based on a template:\n  `boot --dependencies boot/new new --template {{template_name}} --name {{project_name}}`\n- Build for development (if using the boot/new template):\n  `boot dev`\n- Build for production (if using the boot/new template):\n  `boot prod`\n- Display help for a specific task:\n  `boot {{task}} --help`\n\n*Source: tldr-pages*\n\n## Sections\n\n- **NAME**\n- **DESCRIPTION** (7 subsections)\n- **FILES**\n- **SEE ALSO**\n- **COLOPHON**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "boot",
        "section": "",
        "mode": "man",
        "summary": "boot - System bootup process based on UNIX System V Release 4",
        "synopsis": null,
        "tldr_summary": "Build tooling for the Clojure programming language.",
        "tldr_examples": [
            {
                "description": "Start a REPL session either with the project or standalone",
                "command": "boot repl"
            },
            {
                "description": "Build a single `uberjar`",
                "command": "boot jar"
            },
            {
                "description": "Generate scaffolding for a new project based on a template",
                "command": "boot --dependencies boot/new new --template {{template_name}} --name {{project_name}}"
            },
            {
                "description": "Build for development (if using the boot/new template)",
                "command": "boot dev"
            },
            {
                "description": "Build for production (if using the boot/new template)",
                "command": "boot prod"
            },
            {
                "description": "Display help for a specific task",
                "command": "boot {{task}} --help"
            }
        ],
        "tldr_source": "official",
        "flags": [],
        "examples": [],
        "see_also": [
            {
                "name": "init",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/init/1/json"
            },
            {
                "name": "systemd",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/systemd/1/json"
            },
            {
                "name": "inittab",
                "section": "5",
                "url": "https://www.chedong.com/phpMan.php/man/inittab/5/json"
            },
            {
                "name": "bootparam",
                "section": "7",
                "url": "https://www.chedong.com/phpMan.php/man/bootparam/7/json"
            },
            {
                "name": "bootup",
                "section": "7",
                "url": "https://www.chedong.com/phpMan.php/man/bootup/7/json"
            },
            {
                "name": "runlevel",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/runlevel/8/json"
            },
            {
                "name": "shutdown",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/shutdown/8/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 15,
                "subsections": [
                    {
                        "name": "Hardware",
                        "lines": 18
                    },
                    {
                        "name": "OS loader",
                        "lines": 19
                    },
                    {
                        "name": "Kernel",
                        "lines": 14
                    },
                    {
                        "name": "Root user-space process",
                        "lines": 18
                    },
                    {
                        "name": "Boot scripts",
                        "lines": 11
                    },
                    {
                        "name": "Sequencing directories",
                        "lines": 18
                    },
                    {
                        "name": "Boot configuration",
                        "lines": 11
                    }
                ]
            },
            {
                "name": "FILES",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "COLOPHON",
                "lines": 7,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "boot - System bootup process based on UNIX System V Release 4\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "The  bootup  process (or \"boot sequence\") varies in details among systems, but can be roughly\ndivided into phases controlled by the following components:\n\n1.  hardware\n\n2.  operating system (OS) loader\n\n3.  kernel\n\n4.  root user-space process (init and inittab)\n\n5.  boot scripts\n\nEach of these is described below in more detail.\n",
                "subsections": [
                    {
                        "name": "Hardware",
                        "content": "After power-on or hard reset, control is given to a program stored in read-only memory  (nor‐\nmally  PROM);  for  historical reasons involving the personal computer, this program is often\ncalled \"the BIOS\".\n\nThis program normally performs a basic self-test of the machine and accesses nonvolatile mem‐\nory to read further parameters.  This memory in the PC is battery-backed CMOS memory, so most\npeople refer to it as \"the CMOS\"; outside of the PC world, it is usually called  \"the  NVRAM\"\n(nonvolatile RAM).\n\nThe  parameters stored in the NVRAM vary among systems, but as a minimum, they should specify\nwhich device can supply an OS loader, or at least which devices may be probed for one; such a\ndevice  is  known  as  \"the boot device\".  The hardware boot stage loads the OS loader from a\nfixed position on the boot device, and then transfers control to it.\n\nNote:  The device from which the OS loader is read may be attached via a  network,  in  which\ncase  the  details  of  booting are further specified by protocols such as DHCP, TFTP,\nPXE, Etherboot, etc.\n"
                    },
                    {
                        "name": "OS loader",
                        "content": "The main job of the OS loader is to locate the kernel on some device, load it,  and  run  it.\nMost  OS  loaders  allow  interactive use, in order to enable specification of an alternative\nkernel (maybe a backup in case the one last compiled isn't functioning) and to pass  optional\nparameters to the kernel.\n\nIn  a  traditional PC, the OS loader is located in the initial 512-byte block of the boot de‐\nvice; this block is known as \"the MBR\" (Master Boot Record).\n\nIn most systems, the OS loader is very limited due to various constraints.   Even  on  non-PC\nsystems,  there  are some limitations on the size and complexity of this loader, but the size\nlimitation of the PC MBR (512 bytes, including the partition table) makes it almost  impossi‐\nble to squeeze much functionality into it.\n\nTherefore,  most  systems  split the role of loading the OS between a primary OS loader and a\nsecondary OS loader; this secondary OS loader may be located within a larger portion of  per‐\nsistent storage, such as a disk partition.\n\nIn Linux, the OS loader is often either lilo(8) or grub(8).\n"
                    },
                    {
                        "name": "Kernel",
                        "content": "When  the  kernel  is loaded, it initializes various components of the computer and operating\nsystem; each portion of software responsible for such a task is usually consider  \"a  driver\"\nfor  the  applicable component.  The kernel starts the virtual memory swapper (it is a kernel\nprocess, called \"kswapd\" in a modern Linux kernel), and mounts some filesystem  at  the  root\npath, /.\n\nSome of the parameters that may be passed to the kernel relate to these activities (for exam‐\nple, the default root filesystem can be overridden); for further information on Linux  kernel\nparameters, read bootparam(7).\n\nOnly then does the kernel create the initial userland process, which is given the number 1 as\nits PID (process ID).  Traditionally, this process executes the program /sbin/init, to  which\nare passed the parameters that haven't already been handled by the kernel.\n"
                    },
                    {
                        "name": "Root user-space process",
                        "content": "Note:  The following description applies to an OS based on UNIX System V Release 4.  However,\na number of widely used systems have adopted a related but fundamentally different ap‐\nproach known as systemd(1), for which the bootup process is detailed in its associated\nbootup(7).\n\nWhen /sbin/init starts, it reads /etc/inittab for further instructions.   This  file  defines\nwhat should be run when the /sbin/init program is instructed to enter a particular run-level,\ngiving the administrator an easy way to establish an environment for some  usage;  each  run-\nlevel is associated with a set of services (for example, run-level S is single-user mode, and\nrun-level 2 entails running most network services).\n\nThe administrator may change the current run-level via init(1), and query  the  current  run-\nlevel via runlevel(8).\n\nHowever,  since  it  is  not  convenient  to manage individual services by editing this file,\n/etc/inittab only bootstraps a set of scripts that actually start/stop  the  individual  ser‐\nvices.\n"
                    },
                    {
                        "name": "Boot scripts",
                        "content": "Note:  The following description applies to an OS based on UNIX System V Release 4.  However,\na number of widely used systems (Slackware Linux, FreeBSD, OpenBSD)  have  a  somewhat\ndifferent scheme for boot scripts.\n\nFor each managed service (mail, nfs server, cron, etc.), there is a single startup script lo‐\ncated in a specific directory (/etc/init.d in most versions of Linux).  Each of these scripts\naccepts  as  a single argument the word \"start\" (causing it to start the service) or the word\n\"stop\" (causing it to stop the service).  The script  may  optionally  accept  other  \"conve‐\nnience\"  parameters  (e.g., \"restart\" to stop and then start, \"status\" to display the service\nstatus, etc.).  Running the script without parameters displays the possible arguments.\n"
                    },
                    {
                        "name": "Sequencing directories",
                        "content": "To make specific scripts start/stop at specific run-levels and in a specific order, there are\nsequencing directories, normally of the form  /etc/rc[0-6S].d.  In each of these directories,\nthere are links (usually symbolic) to the scripts in the /etc/init.d directory.\n\nA primary script (usually /etc/rc) is called from inittab(5); this primary script calls  each\nservice's  script  via a link in the relevant sequencing directory.  Each link whose name be‐\ngins with 'S' is called with the argument \"start\" (thereby starting the service).  Each  link\nwhose name begins with 'K' is called with the argument \"stop\" (thereby stopping the service).\n\nTo  define  the starting or stopping order within the same run-level, the name of a link con‐\ntains an order-number.  Also, for clarity, the name of a link usually ends with the  name  of\nthe  service  to  which  it  refers.  For example, the link /etc/rc2.d/S80sendmail starts the\nsendmail service on runlevel 2.  This happens after /etc/rc2.d/S12syslog is  run  but  before\n/etc/rc2.d/S90xfs is run.\n\nTo  manage  these links is to manage the boot order and run-levels; under many systems, there\nare tools to help with this task (e.g., chkconfig(8)).\n"
                    },
                    {
                        "name": "Boot configuration",
                        "content": "A program that provides a service is often called a \"daemon\".  Usually, a daemon may  receive\nvarious command-line options and parameters.  To allow a system administrator to change these\ninputs without editing an entire boot script, some separate configuration file is  used,  and\nis  located in a specific directory where an associated boot script may find it (/etc/syscon‐\nfig on older Red Hat systems).\n\nIn older UNIX systems, such a file contained the actual command line options  for  a  daemon,\nbut  in  modern  Linux systems (and also in HP-UX), it just contains shell variables.  A boot\nscript in /etc/init.d reads and includes its configuration file (that is,  it  \"sources\"  its\nconfiguration file) and then uses the variable values.\n"
                    }
                ]
            },
            "FILES": {
                "content": "/etc/init.d/, /etc/rc[S0-6].d/, /etc/sysconfig/\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "init(1), systemd(1), inittab(5), bootparam(7), bootup(7), runlevel(8), shutdown(8)\n",
                "subsections": []
            },
            "COLOPHON": {
                "content": "This  page  is  part  of  release  5.10 of the Linux man-pages project.  A description of the\nproject, information about reporting bugs, and the latest version of this page, can be  found\nat https://www.kernel.org/doc/man-pages/.\n\n\n\nLinux                                        2015-03-11                                      BOOT(7)",
                "subsections": []
            }
        }
    }
}