암키스트 셸
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
암키스트 셸(ash)은 1989년 케네스 알름키스트가 개발한 유닉스 셸로, POSIX 표준을 준수하며 빠르고 가벼운 특징을 가진다. ash는 본 셸과 호환되며, FreeBSD, NetBSD, DragonFly BSD, MINIX 및 일부 리눅스 배포판에서 기본 셸로 사용된다. 데비안 암키스트 셸(dash)은 ash의 NetBSD 버전을 리눅스로 이식한 것으로, Bash보다 가볍고 POSIX 호환성이 뛰어나다. dash는 데비안과 우분투에서 기본 /bin/sh로 채택되어 셸 스크립트 실행 속도를 향상시키는 데 기여했다. 임베디드 리눅스 시스템에서도 널리 활용된다.
더 읽어볼만한 페이지
- 1989년 소프트웨어 - 한/글
한/글은 1980년대 후반부터 개발된 대한민국의 대표적인 워드프로세서로, 다양한 운영체제 지원, 정부 전자 문서 시스템에서의 역할, 꾸준한 기능 발전과 사용자 편의성 및 국제 표준을 고려한 업데이트를 통해 발전해왔다. - 1989년 소프트웨어 - 마이크로소프트 오피스
마이크로소프트 오피스는 마이크로소프트에서 개발한 사무용 소프트웨어 제품군으로, 워드 프로세서, 스프레드시트, 프레젠테이션 도구 등 다양한 응용 프로그램을 포함하며, 1989년 맥용으로 처음 출시된 이후 다양한 플랫폼에서 사용 가능하며, 구독형 서비스인 마이크로소프트 365로 전환을 가속화하고 있다. - 유닉스 셸 - 유닉스 계열
유닉스 계열은 유닉스 운영체제의 특징과 설계를 공유하는 운영체제들을 지칭하며, 유전적, 상표, 기능적 유닉스로 분류되고 macOS는 상표 유닉스이자 유전적 유닉스에 해당하며 리눅스는 기능적 유닉스의 대표적인 예이다. - 유닉스 셸 - 본 셸
본 셸은 스티븐 본이 개발하여 1979년 유닉스에 포함된 셸로, 셸 스크립트, 제어 흐름, 변수, 시그널 처리 등의 기능을 제공하며 여러 셸에 영향을 주었고 현재도 널리 사용된다. - 텍스트 지향 프로그래밍 언어 - Tcl
Tcl은 존 오스터하우트가 개발한 명령어 기반의 프로그래밍 언어로, Tk 툴킷과 결합하여 GUI 스크립팅 환경으로 발전했으며, 다양한 운영체제에서 사용 가능하고 C, C++, Java 등 다른 언어와의 인터페이스를 지원한다. - 텍스트 지향 프로그래밍 언어 - PHP
PHP는 라스무스 러도프가 개발한 범용 스크립팅 언어로, 웹 개발에 널리 사용되며 LAMP 아키텍처의 핵심 요소이다.
암키스트 셸 - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
개발자 | 케네스 암퀴스트 |
최초 릴리스 | 1989년 5월 30일 |
프로그래밍 언어 | C |
운영 체제 | 유닉스 계열 |
플랫폼 | 크로스 플랫폼 |
장르 | 유닉스 셸 |
기타 | |
웹사이트 | 구글 |
2. 역사
Dash는 NetBSD 버전의 암키스트 셸(ash)을 1997년 초반 Herbert Xu가 리눅스로 이식한 것이다. 2002년에 dash로 이름이 바뀌었다.[16]
ash와 유사하게 Dash는 셸 스크립트를 Bash 보다 훨씬 빠르게 실행시키면서 더 작은 수의 라이브러리에 의존한다. 그래서 업그레이드 문제나 디스크 문제에 조금 더 신뢰성이 높다고 여겨진다[16]. Dash는 플로피 디스크에 셸을 설치할 때, 루트 유저 셸, /bin/sh 대체용, 작성한 셸 스크립트의 POSIX 호환성을 체크하기 위한 테스트 환경 등에서 사용된다.
Dash는 데비안에서 ash의 /bin/sh 기본 대체 셸로 Debian Leny에 들어갈 예정이었지만[17][18], 실제로는 Debian squeeze에 기본 /bin/sh로 배포되었다[19]. 2006년 9월 우분투 6.10 릴리즈에 기본 /bin/sh로 배포되었다.[20] 우분투에서 변경하는 과정에서, (선언을 하지 않고) Bash 종속 함수들을 사용하는 스크립트들이 다수 발견되었다.[21][22] 이러한 오류를 피하기 위해 Bash 종속적인 스크립트들은 현재 표준에 맞게 수정되거나, 맨 첫 줄에 셔뱅을 이용해서 어떤 인터프리터를 사용할 것인지 명시적으로 선언하도록 하였다.
2. 1. 암키스트 셸 (ash)
'''ash'''는 1989년 5월 30일 Rich Salz가 승인하고 중재한 comp.sources.unix영어 유즈넷 뉴스 그룹에 게시물을 통해 처음 출시된 유닉스 셸이다.[1] Kenneth Almquist에 의해 개발되었으며, System V 셸을 재구현하여 대부분의 기능과 일부 추가 기능을 제공한다.[1]ash는 빠르고 작으며, POSIX 표준 사양과 호환된다. Almquist는 라인 편집이나 명령어 기록 기능은 컴퓨터 터미널 장치 드라이버로 이동되어야 한다고 생각했기 때문에 이러한 기능을 제공하지 않았다. 그러나 현재 변형은 이를 지원한다.
ash는 경량(92K)이기 때문에 메모리가 적은 머신에 적합하지만, bash, tcsh, zsh와 같은 셸의 모든 부가 기능을 제공하지는 않는다. 리눅스에서 대부분의 스크립트는 최소한 일부 bash 고유 구문을 사용하는 것으로 보이지만, Bourne 셸과 호환되는 대부분의 셸 스크립트를 실행한다.
ash는 FreeBSD, NetBSD, DragonFly BSD, MINIX 및 일부 리눅스 배포판에서 기본 셸(`/bin/sh`)로 설치된다. 특히, NetBSD는 /bin/sh로 ash를 사용한다. Android는 Android 4.0까지 ash를 사용했으며, 이후 mksh로 전환했다.[4] MINIX 3.2는 POSIX와 다른 test 기능을 가진 원래의 ash 버전을 사용했지만,[3] MINIX 3.3에서 교체되었다.
2. 2. 데비안 암키스트 셸 (dash)
'''데비안 암키스트 셸'''(dash)은 Bash보다 훨씬 더 가벼운 POSIX 호환 유닉스 셸이다. 더 작은 디스크 용량을 사용하지만, 기능이 그리 많지는 않다.Dash는 NetBSD 버전의 암키스트 셸(ash)을 1997년 초반 Herbert Xu가 리눅스로 이식한 것이다. 2002년에 dash로 이름이 바뀌었다.[16]
허버트 쉬는 1997년 NetBSD에서 `ash`를 데비안 리눅스로 이식했다. 2002년 9월, 버전 0.4.1 릴리스와 함께 '''대시''' ('''데비안 알름퀴스트 셸''')로 이름이 변경되었다. 쉬의 주요 우선 순위는 POSIX 준수와 슬림한 구현이었다.[2]
이전 버전과 마찬가지로, 대시는 국제화와 지역화나 멀티 바이트 문자 인코딩(둘 다 POSIX에서 요구됨)을 지원하지 않는다. GNU Readline을 기반으로 한 라인 편집 및 히스토리 지원은 선택 사항이다.
3. 데비안 및 우분투 채택
우분투는 2006년에 Dash를 기본 `/bin/sh`[6][7]로 채택하기로 결정했다. Dash를 사용하는 이유는 이전 버전의 데비안과 우분투가 이 목적으로 Bash를 사용했던 것에 비해, 더 빠른 셸 스크립트 실행[8], 특히 운영체제 시작 중에 더 빠른 실행이 가능했기 때문이다. 하지만 Bash는 여전히 대화형 사용을 위한 기본 로그인 셸이다.[9] Dash는 2006년 10월에 출시된 6.10 릴리스부터 우분투에서 기본 `/bin/sh`가 되었다.[7] 이후 2011년 2월에 출시된 데비안 6 (Squeeze)에서도 Bash를 대체하여 기본 `/bin/sh`가 되었다.[6]
이러한 변화의 결과로, 많은 셸 스크립트들이 shebang 라인에 제대로 선언하지 않고 Bash 고유의 기능("bashism")을 사용하고 있다는 것이 발견되었다.[10][11] 이 문제는 처음 우분투에서 발견되었으며, 우분투 유지보수 담당자들은 모든 스크립트가 POSIX 표준을 준수하도록 결정했다. 이러한 변경 사항은 나중에 데비안으로 상위 릴리스 되었고, 데비안 역시 결국 Dash를 기본 `/bin/sh`로 채택했다. 그 결과, 데비안 정책은 스크립트 개발자들이 편의를 위해 Dash에 병합된 확장 기능(`local`, `echo -n`, `test -a / -o`)을 제외하고는 대체로 POSIX 호환 셸을 가정하도록 수정되었다.[12][13]
4. 임베디드 리눅스 활용
암키스트 셸(ash, 주로 Dash 포크)은 임베디드 리눅스 시스템에서 널리 사용된다. Dash 버전 0.3.8-5는 이 분야에서 자주 사용되는 만능 실행 파일인 BusyBox에 통합되었으며, DSLinux, Alpine Linux, Tiny Core Linux 및 OpenWrt, Tomato 및 DD-WRT와 같은 리눅스 기반 라우터 펌웨어와 같은 배포판에서 사용된다.[16] 많은 상업 시스템 공급업체에서도 이 셸을 포함하는데, 이는 GPL 소프트웨어가 아닌, 예를 들어 Sophos XG에서 "Advanced Shell"로 오해를 불러일으키는 라이선스를 가지고 있기 때문이다.
참조
[1]
웹사이트
v19i001: A reimplementation of the System V shell, Part01/08
https://groups.googl[...]
Usenet newsgroup, comp.sources.unix
1989-05-30
[2]
웹사이트
Ash (Almquist Shell) Variants
https://www.in-ulm.d[...]
[3]
웹사이트
TEST versus Portability
https://invisible-is[...]
2020-03-01
[4]
웹사이트
Android's shell and utilities
https://android.goog[...]
2020-02-29
[5]
웹사이트
COPYING
https://git.kernel.o[...]
2023-12-23
[6]
웹사이트
Non-interactive Shell
https://wiki.debian.[...]
2020-02-29
[7]
웹사이트
Dash as /bin/sh
https://wiki.ubuntu.[...]
2020-02-29
[8]
서적
Ubuntu: Powerful Hacks and Customizations
https://books.google[...]
John Wiley & Sons
[9]
서적
Ubuntu Linux Toolbox
https://books.google[...]
John Wiley & Sons
[10]
웹사이트
Script that are using bash could be broken with the new symlink
https://bugs.launchp[...]
Launchpad
2020-02-29
[11]
웹사이트
dash as #!/bin/sh introduces countless incompatibilities
https://bugs.launchp[...]
Launchpad
2020-02-29
[12]
웹사이트
10. Files
https://www.debian.o[...]
[13]
문서
checkbashisms
ManKier
[14]
웹인용
Android sh source
https://github.com/a[...]
2012-03-13
[15]
웹인용
Android sh source (android-4.4_r1.2 branch)
https://github.com/a[...]
[16]
웹인용
보관된 사본
http://packages.debi[...]
2012-07-05
[17]
URL
Release goals for Debian Lenny
http://release.debia[...]
[18]
URL
Release Update: architecture status, release goal status, BSPs
http://lists.debian.[...]
[19]
URL
Dash as /bin/sh
http://wiki.debian.o[...]
[20]
URL
Dash as /bin/sh in Ubuntu 6.10
https://wiki.ubuntu.[...]
[21]
URL
Ubuntu bug #61463: script that are using bash could be broken with the new symlink
https://bugs.launchp[...]
[22]
URL
Ubuntu bug #141481: dash as #!/bin/sh introduces countless incompatibilities
https://bugs.launchp[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com