Has /bin/sh always been a symbolic link?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
-1
down vote

favorite












In Ubuntu, /bin/sh is a symbolic link that points to /bin/dash.



Has there been a Unix or Unix-like operating system where /bin/sh was an actual shell and not a symbolic link that points to a shell?







share|improve this question
















  • 2




    Yes, it used to be the Bourne Shell, and more ancient than bash. dash is a cut-down static linked version. see cyberciti.biz/faq/…
    – Rui F Ribeiro
    Jan 5 at 21:36











  • Minor nit-pick — dash isn’t usually statically linked, it just doesn’t need much in the way of libraries.
    – Stephen Kitt
    Jan 6 at 10:42














up vote
-1
down vote

favorite












In Ubuntu, /bin/sh is a symbolic link that points to /bin/dash.



Has there been a Unix or Unix-like operating system where /bin/sh was an actual shell and not a symbolic link that points to a shell?







share|improve this question
















  • 2




    Yes, it used to be the Bourne Shell, and more ancient than bash. dash is a cut-down static linked version. see cyberciti.biz/faq/…
    – Rui F Ribeiro
    Jan 5 at 21:36











  • Minor nit-pick — dash isn’t usually statically linked, it just doesn’t need much in the way of libraries.
    – Stephen Kitt
    Jan 6 at 10:42












up vote
-1
down vote

favorite









up vote
-1
down vote

favorite











In Ubuntu, /bin/sh is a symbolic link that points to /bin/dash.



Has there been a Unix or Unix-like operating system where /bin/sh was an actual shell and not a symbolic link that points to a shell?







share|improve this question












In Ubuntu, /bin/sh is a symbolic link that points to /bin/dash.



Has there been a Unix or Unix-like operating system where /bin/sh was an actual shell and not a symbolic link that points to a shell?









share|improve this question











share|improve this question




share|improve this question










asked Jan 5 at 21:35









user268325

703




703







  • 2




    Yes, it used to be the Bourne Shell, and more ancient than bash. dash is a cut-down static linked version. see cyberciti.biz/faq/…
    – Rui F Ribeiro
    Jan 5 at 21:36











  • Minor nit-pick — dash isn’t usually statically linked, it just doesn’t need much in the way of libraries.
    – Stephen Kitt
    Jan 6 at 10:42












  • 2




    Yes, it used to be the Bourne Shell, and more ancient than bash. dash is a cut-down static linked version. see cyberciti.biz/faq/…
    – Rui F Ribeiro
    Jan 5 at 21:36











  • Minor nit-pick — dash isn’t usually statically linked, it just doesn’t need much in the way of libraries.
    – Stephen Kitt
    Jan 6 at 10:42







2




2




Yes, it used to be the Bourne Shell, and more ancient than bash. dash is a cut-down static linked version. see cyberciti.biz/faq/…
– Rui F Ribeiro
Jan 5 at 21:36





Yes, it used to be the Bourne Shell, and more ancient than bash. dash is a cut-down static linked version. see cyberciti.biz/faq/…
– Rui F Ribeiro
Jan 5 at 21:36













Minor nit-pick — dash isn’t usually statically linked, it just doesn’t need much in the way of libraries.
– Stephen Kitt
Jan 6 at 10:42




Minor nit-pick — dash isn’t usually statically linked, it just doesn’t need much in the way of libraries.
– Stephen Kitt
Jan 6 at 10:42










2 Answers
2






active

oldest

votes

















up vote
6
down vote













In Ubuntu, it was not always a symlink to dash. This occurred with the release of Ubuntu 6.10. An extensive document explaining the rationale for the change can be found here.



From that document:




The major reason to switch the default shell was efficiency. bash is
an excellent full-featured shell appropriate for interactive use;
indeed, it is still the default login shell. However, it is rather
large and slow to start up and operate by comparison with dash. A
large number of shell instances are started as part of the Ubuntu boot
process. Rather than change each of them individually to run
explicitly under /bin/dash, a change which would require significant
ongoing maintenance and which would be liable to regress if not paid
close attention, the Ubuntu core development team felt that it was
best simply to change the default shell. The boot speed improvements
in Ubuntu 6.10 were often incorrectly attributed to Upstart, which is
a fine platform for future development of the init system but in
Ubuntu 6.10 was primarily running in System V compatibility mode with
only small behavioural changes. These improvements were in fact
largely due to the changed /bin/sh.







share|improve this answer



























    up vote
    4
    down vote













    sh cannot have always been a symbolic link, as symbolic links were only introduced in 4.2 BSD (1977) and the older Sixth Edition of Unix has



    $ tar tvzf v6root.tar.gz | grep 5888
    -rwxrwxr-x 0 3 3 5888 May 13 1975 ./bin/sh
    $


    You can see BSDs today that do not have /bin/sh as a symbolic link. For examples:



    • On OpenBSD it is a hard link to the Korn shell (OpenBSD's variant of pdksh):
      $ ls -il /bin/,k,rksh
      26004 -r-xr-xr-x 3 root bin 469976 Feb 26 2016 /bin/ksh
      26004 -r-xr-xr-x 3 root bin 469976 Feb 26 2016 /bin/rksh
      26004 -r-xr-xr-x 3 root bin 469976 Feb 26 2016 /bin/sh
      $


    • On FreeBSD it is a descendant of the Almquist shell:
      % ls -il /bin/sh
      561595 -r-xr-xr-x 1 root wheel 143432 Jan 7 2017 /bin/sh
      %






    share|improve this answer


















    • 3




      I can push back the dates a little earlier. The second editions's login program called /bin/sh. Symlinks were in BSD at least as far back as 4.1c
      – Mark Plotnick
      Jan 5 at 22:32











    Your Answer







    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "106"
    ;
    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',
    convertImagesToLinks: false,
    noModals: false,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );








     

    draft saved


    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f415092%2fhas-bin-sh-always-been-a-symbolic-link%23new-answer', 'question_page');

    );

    Post as a guest






























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    6
    down vote













    In Ubuntu, it was not always a symlink to dash. This occurred with the release of Ubuntu 6.10. An extensive document explaining the rationale for the change can be found here.



    From that document:




    The major reason to switch the default shell was efficiency. bash is
    an excellent full-featured shell appropriate for interactive use;
    indeed, it is still the default login shell. However, it is rather
    large and slow to start up and operate by comparison with dash. A
    large number of shell instances are started as part of the Ubuntu boot
    process. Rather than change each of them individually to run
    explicitly under /bin/dash, a change which would require significant
    ongoing maintenance and which would be liable to regress if not paid
    close attention, the Ubuntu core development team felt that it was
    best simply to change the default shell. The boot speed improvements
    in Ubuntu 6.10 were often incorrectly attributed to Upstart, which is
    a fine platform for future development of the init system but in
    Ubuntu 6.10 was primarily running in System V compatibility mode with
    only small behavioural changes. These improvements were in fact
    largely due to the changed /bin/sh.







    share|improve this answer
























      up vote
      6
      down vote













      In Ubuntu, it was not always a symlink to dash. This occurred with the release of Ubuntu 6.10. An extensive document explaining the rationale for the change can be found here.



      From that document:




      The major reason to switch the default shell was efficiency. bash is
      an excellent full-featured shell appropriate for interactive use;
      indeed, it is still the default login shell. However, it is rather
      large and slow to start up and operate by comparison with dash. A
      large number of shell instances are started as part of the Ubuntu boot
      process. Rather than change each of them individually to run
      explicitly under /bin/dash, a change which would require significant
      ongoing maintenance and which would be liable to regress if not paid
      close attention, the Ubuntu core development team felt that it was
      best simply to change the default shell. The boot speed improvements
      in Ubuntu 6.10 were often incorrectly attributed to Upstart, which is
      a fine platform for future development of the init system but in
      Ubuntu 6.10 was primarily running in System V compatibility mode with
      only small behavioural changes. These improvements were in fact
      largely due to the changed /bin/sh.







      share|improve this answer






















        up vote
        6
        down vote










        up vote
        6
        down vote









        In Ubuntu, it was not always a symlink to dash. This occurred with the release of Ubuntu 6.10. An extensive document explaining the rationale for the change can be found here.



        From that document:




        The major reason to switch the default shell was efficiency. bash is
        an excellent full-featured shell appropriate for interactive use;
        indeed, it is still the default login shell. However, it is rather
        large and slow to start up and operate by comparison with dash. A
        large number of shell instances are started as part of the Ubuntu boot
        process. Rather than change each of them individually to run
        explicitly under /bin/dash, a change which would require significant
        ongoing maintenance and which would be liable to regress if not paid
        close attention, the Ubuntu core development team felt that it was
        best simply to change the default shell. The boot speed improvements
        in Ubuntu 6.10 were often incorrectly attributed to Upstart, which is
        a fine platform for future development of the init system but in
        Ubuntu 6.10 was primarily running in System V compatibility mode with
        only small behavioural changes. These improvements were in fact
        largely due to the changed /bin/sh.







        share|improve this answer












        In Ubuntu, it was not always a symlink to dash. This occurred with the release of Ubuntu 6.10. An extensive document explaining the rationale for the change can be found here.



        From that document:




        The major reason to switch the default shell was efficiency. bash is
        an excellent full-featured shell appropriate for interactive use;
        indeed, it is still the default login shell. However, it is rather
        large and slow to start up and operate by comparison with dash. A
        large number of shell instances are started as part of the Ubuntu boot
        process. Rather than change each of them individually to run
        explicitly under /bin/dash, a change which would require significant
        ongoing maintenance and which would be liable to regress if not paid
        close attention, the Ubuntu core development team felt that it was
        best simply to change the default shell. The boot speed improvements
        in Ubuntu 6.10 were often incorrectly attributed to Upstart, which is
        a fine platform for future development of the init system but in
        Ubuntu 6.10 was primarily running in System V compatibility mode with
        only small behavioural changes. These improvements were in fact
        largely due to the changed /bin/sh.








        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jan 5 at 21:39









        DopeGhoti

        40.5k54979




        40.5k54979






















            up vote
            4
            down vote













            sh cannot have always been a symbolic link, as symbolic links were only introduced in 4.2 BSD (1977) and the older Sixth Edition of Unix has



            $ tar tvzf v6root.tar.gz | grep 5888
            -rwxrwxr-x 0 3 3 5888 May 13 1975 ./bin/sh
            $


            You can see BSDs today that do not have /bin/sh as a symbolic link. For examples:



            • On OpenBSD it is a hard link to the Korn shell (OpenBSD's variant of pdksh):
              $ ls -il /bin/,k,rksh
              26004 -r-xr-xr-x 3 root bin 469976 Feb 26 2016 /bin/ksh
              26004 -r-xr-xr-x 3 root bin 469976 Feb 26 2016 /bin/rksh
              26004 -r-xr-xr-x 3 root bin 469976 Feb 26 2016 /bin/sh
              $


            • On FreeBSD it is a descendant of the Almquist shell:
              % ls -il /bin/sh
              561595 -r-xr-xr-x 1 root wheel 143432 Jan 7 2017 /bin/sh
              %






            share|improve this answer


















            • 3




              I can push back the dates a little earlier. The second editions's login program called /bin/sh. Symlinks were in BSD at least as far back as 4.1c
              – Mark Plotnick
              Jan 5 at 22:32















            up vote
            4
            down vote













            sh cannot have always been a symbolic link, as symbolic links were only introduced in 4.2 BSD (1977) and the older Sixth Edition of Unix has



            $ tar tvzf v6root.tar.gz | grep 5888
            -rwxrwxr-x 0 3 3 5888 May 13 1975 ./bin/sh
            $


            You can see BSDs today that do not have /bin/sh as a symbolic link. For examples:



            • On OpenBSD it is a hard link to the Korn shell (OpenBSD's variant of pdksh):
              $ ls -il /bin/,k,rksh
              26004 -r-xr-xr-x 3 root bin 469976 Feb 26 2016 /bin/ksh
              26004 -r-xr-xr-x 3 root bin 469976 Feb 26 2016 /bin/rksh
              26004 -r-xr-xr-x 3 root bin 469976 Feb 26 2016 /bin/sh
              $


            • On FreeBSD it is a descendant of the Almquist shell:
              % ls -il /bin/sh
              561595 -r-xr-xr-x 1 root wheel 143432 Jan 7 2017 /bin/sh
              %






            share|improve this answer


















            • 3




              I can push back the dates a little earlier. The second editions's login program called /bin/sh. Symlinks were in BSD at least as far back as 4.1c
              – Mark Plotnick
              Jan 5 at 22:32













            up vote
            4
            down vote










            up vote
            4
            down vote









            sh cannot have always been a symbolic link, as symbolic links were only introduced in 4.2 BSD (1977) and the older Sixth Edition of Unix has



            $ tar tvzf v6root.tar.gz | grep 5888
            -rwxrwxr-x 0 3 3 5888 May 13 1975 ./bin/sh
            $


            You can see BSDs today that do not have /bin/sh as a symbolic link. For examples:



            • On OpenBSD it is a hard link to the Korn shell (OpenBSD's variant of pdksh):
              $ ls -il /bin/,k,rksh
              26004 -r-xr-xr-x 3 root bin 469976 Feb 26 2016 /bin/ksh
              26004 -r-xr-xr-x 3 root bin 469976 Feb 26 2016 /bin/rksh
              26004 -r-xr-xr-x 3 root bin 469976 Feb 26 2016 /bin/sh
              $


            • On FreeBSD it is a descendant of the Almquist shell:
              % ls -il /bin/sh
              561595 -r-xr-xr-x 1 root wheel 143432 Jan 7 2017 /bin/sh
              %






            share|improve this answer














            sh cannot have always been a symbolic link, as symbolic links were only introduced in 4.2 BSD (1977) and the older Sixth Edition of Unix has



            $ tar tvzf v6root.tar.gz | grep 5888
            -rwxrwxr-x 0 3 3 5888 May 13 1975 ./bin/sh
            $


            You can see BSDs today that do not have /bin/sh as a symbolic link. For examples:



            • On OpenBSD it is a hard link to the Korn shell (OpenBSD's variant of pdksh):
              $ ls -il /bin/,k,rksh
              26004 -r-xr-xr-x 3 root bin 469976 Feb 26 2016 /bin/ksh
              26004 -r-xr-xr-x 3 root bin 469976 Feb 26 2016 /bin/rksh
              26004 -r-xr-xr-x 3 root bin 469976 Feb 26 2016 /bin/sh
              $


            • On FreeBSD it is a descendant of the Almquist shell:
              % ls -il /bin/sh
              561595 -r-xr-xr-x 1 root wheel 143432 Jan 7 2017 /bin/sh
              %







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Jan 5 at 23:07









            Stéphane Chazelas

            281k53518849




            281k53518849










            answered Jan 5 at 22:20









            thrig

            22.3k12852




            22.3k12852







            • 3




              I can push back the dates a little earlier. The second editions's login program called /bin/sh. Symlinks were in BSD at least as far back as 4.1c
              – Mark Plotnick
              Jan 5 at 22:32













            • 3




              I can push back the dates a little earlier. The second editions's login program called /bin/sh. Symlinks were in BSD at least as far back as 4.1c
              – Mark Plotnick
              Jan 5 at 22:32








            3




            3




            I can push back the dates a little earlier. The second editions's login program called /bin/sh. Symlinks were in BSD at least as far back as 4.1c
            – Mark Plotnick
            Jan 5 at 22:32





            I can push back the dates a little earlier. The second editions's login program called /bin/sh. Symlinks were in BSD at least as far back as 4.1c
            – Mark Plotnick
            Jan 5 at 22:32













             

            draft saved


            draft discarded


























             


            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f415092%2fhas-bin-sh-always-been-a-symbolic-link%23new-answer', 'question_page');

            );

            Post as a guest













































































            Popular posts from this blog

            Peggy Mitchell

            Palaiologos

            The Forum (Inglewood, California)