Why do process names start with the letter k in Linux?












3















When using the top command on a linux server, I can see multiple root processes starting with the letter k, like for example kthreadd, kblockd, khelper, kacpi_notify, ksmd, kswapd0, khugepaged, ksmd and much more.



I assume it's not a coincidence; what does the k stand for here?










share|improve this question




















  • 1





    A bit googling tells you "kernel"

    – deviantfan
    Jun 10 '16 at 15:34











  • @deviantfan I guessed "k" for "kernel" without googling :)

    – DavidPostill
    Jun 10 '16 at 15:35






  • 1





    @DavidPostill That was meant as a hint to OP that writing questions for this is not necessary, not that we all need Google for this.

    – deviantfan
    Jun 10 '16 at 15:37


















3















When using the top command on a linux server, I can see multiple root processes starting with the letter k, like for example kthreadd, kblockd, khelper, kacpi_notify, ksmd, kswapd0, khugepaged, ksmd and much more.



I assume it's not a coincidence; what does the k stand for here?










share|improve this question




















  • 1





    A bit googling tells you "kernel"

    – deviantfan
    Jun 10 '16 at 15:34











  • @deviantfan I guessed "k" for "kernel" without googling :)

    – DavidPostill
    Jun 10 '16 at 15:35






  • 1





    @DavidPostill That was meant as a hint to OP that writing questions for this is not necessary, not that we all need Google for this.

    – deviantfan
    Jun 10 '16 at 15:37
















3












3








3








When using the top command on a linux server, I can see multiple root processes starting with the letter k, like for example kthreadd, kblockd, khelper, kacpi_notify, ksmd, kswapd0, khugepaged, ksmd and much more.



I assume it's not a coincidence; what does the k stand for here?










share|improve this question
















When using the top command on a linux server, I can see multiple root processes starting with the letter k, like for example kthreadd, kblockd, khelper, kacpi_notify, ksmd, kswapd0, khugepaged, ksmd and much more.



I assume it's not a coincidence; what does the k stand for here?







linux process






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 22 at 4:24









Blackwood

2,89671728




2,89671728










asked Jun 10 '16 at 15:31









Nicolas CNicolas C

17318




17318








  • 1





    A bit googling tells you "kernel"

    – deviantfan
    Jun 10 '16 at 15:34











  • @deviantfan I guessed "k" for "kernel" without googling :)

    – DavidPostill
    Jun 10 '16 at 15:35






  • 1





    @DavidPostill That was meant as a hint to OP that writing questions for this is not necessary, not that we all need Google for this.

    – deviantfan
    Jun 10 '16 at 15:37
















  • 1





    A bit googling tells you "kernel"

    – deviantfan
    Jun 10 '16 at 15:34











  • @deviantfan I guessed "k" for "kernel" without googling :)

    – DavidPostill
    Jun 10 '16 at 15:35






  • 1





    @DavidPostill That was meant as a hint to OP that writing questions for this is not necessary, not that we all need Google for this.

    – deviantfan
    Jun 10 '16 at 15:37










1




1





A bit googling tells you "kernel"

– deviantfan
Jun 10 '16 at 15:34





A bit googling tells you "kernel"

– deviantfan
Jun 10 '16 at 15:34













@deviantfan I guessed "k" for "kernel" without googling :)

– DavidPostill
Jun 10 '16 at 15:35





@deviantfan I guessed "k" for "kernel" without googling :)

– DavidPostill
Jun 10 '16 at 15:35




1




1





@DavidPostill That was meant as a hint to OP that writing questions for this is not necessary, not that we all need Google for this.

– deviantfan
Jun 10 '16 at 15:37







@DavidPostill That was meant as a hint to OP that writing questions for this is not necessary, not that we all need Google for this.

– deviantfan
Jun 10 '16 at 15:37












1 Answer
1






active

oldest

votes


















7














Those aren’t processes but kernel threads:




Threads are "light weight processes" (LWPs). [...]



[...]



Kernel-space threads often are implemented in the kernel using several tables (each task gets a table of threads). In this case, the kernel schedules each thread within the timeslice of each process. There is a little more overhead with mode switching from user->kernel-> user and loading of larger contexts, but initial performance measures indicate a negligible increase in time.



Advantages. Since the clocktick will determine the switching times, a task is less likely to hog the timeslice from the other threads within the task. Also I/O blocking is not a problem. Lastly, if properly coded, the process automatically can take advantage of SMPs and will run incrementally faster with each added CPU.




Related reading






share|improve this answer

























    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "3"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1087714%2fwhy-do-process-names-start-with-the-letter-k-in-linux%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    7














    Those aren’t processes but kernel threads:




    Threads are "light weight processes" (LWPs). [...]



    [...]



    Kernel-space threads often are implemented in the kernel using several tables (each task gets a table of threads). In this case, the kernel schedules each thread within the timeslice of each process. There is a little more overhead with mode switching from user->kernel-> user and loading of larger contexts, but initial performance measures indicate a negligible increase in time.



    Advantages. Since the clocktick will determine the switching times, a task is less likely to hog the timeslice from the other threads within the task. Also I/O blocking is not a problem. Lastly, if properly coded, the process automatically can take advantage of SMPs and will run incrementally faster with each added CPU.




    Related reading






    share|improve this answer






























      7














      Those aren’t processes but kernel threads:




      Threads are "light weight processes" (LWPs). [...]



      [...]



      Kernel-space threads often are implemented in the kernel using several tables (each task gets a table of threads). In this case, the kernel schedules each thread within the timeslice of each process. There is a little more overhead with mode switching from user->kernel-> user and loading of larger contexts, but initial performance measures indicate a negligible increase in time.



      Advantages. Since the clocktick will determine the switching times, a task is less likely to hog the timeslice from the other threads within the task. Also I/O blocking is not a problem. Lastly, if properly coded, the process automatically can take advantage of SMPs and will run incrementally faster with each added CPU.




      Related reading






      share|improve this answer




























        7












        7








        7







        Those aren’t processes but kernel threads:




        Threads are "light weight processes" (LWPs). [...]



        [...]



        Kernel-space threads often are implemented in the kernel using several tables (each task gets a table of threads). In this case, the kernel schedules each thread within the timeslice of each process. There is a little more overhead with mode switching from user->kernel-> user and loading of larger contexts, but initial performance measures indicate a negligible increase in time.



        Advantages. Since the clocktick will determine the switching times, a task is less likely to hog the timeslice from the other threads within the task. Also I/O blocking is not a problem. Lastly, if properly coded, the process automatically can take advantage of SMPs and will run incrementally faster with each added CPU.




        Related reading






        share|improve this answer















        Those aren’t processes but kernel threads:




        Threads are "light weight processes" (LWPs). [...]



        [...]



        Kernel-space threads often are implemented in the kernel using several tables (each task gets a table of threads). In this case, the kernel schedules each thread within the timeslice of each process. There is a little more overhead with mode switching from user->kernel-> user and loading of larger contexts, but initial performance measures indicate a negligible increase in time.



        Advantages. Since the clocktick will determine the switching times, a task is less likely to hog the timeslice from the other threads within the task. Also I/O blocking is not a problem. Lastly, if properly coded, the process automatically can take advantage of SMPs and will run incrementally faster with each added CPU.




        Related reading







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Mar 20 '17 at 10:17









        Community

        1




        1










        answered Jun 10 '16 at 15:34









        Daniel BDaniel B

        34.3k76587




        34.3k76587






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Super User!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1087714%2fwhy-do-process-names-start-with-the-letter-k-in-linux%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown