유닉스는 The Open Group이라고 하는 컨소시움에서 관리하고 있다.
이미지를 보면 Linux는 Unix-like system으로 정리되어있음
하나의 프로그램은 한 가지 일을 잘해야 한다.
예시:
ls
는 파일 목록을 출력하는 역할만 수행하며, 정렬이나 필터링 같은 작업은sort
,grep
과 같은 다른 유틸리티와 함께 사용될 수 있다.
프로그램은 표준 입력과 출력을 사용하여 서로 연결될 수 있어야 한다.
예시:
cat file.txt | grep "hello" | sort | uniq
와 같이 여러 프로그램을 조합하여 사용할 수 있다.
텍스트를 기본적인 인터페이스로 사용해야 한다.
예시:
ps aux | grep python
처럼 텍스트 기반 출력을 다른 프로그램과 조합하여 사용할 수 있다.
간단하고 짧고 명확하며 이식성이 좋아야 한다.
예시:
find . -name *.txt"
같은 명령어는 직관적이고 이해하기 쉽다.
개발과 디버깅을 빠르게 할 수 있어야 한다.
예시:
strace
를 사용하여 시스템 호출을 확인하고 문제를 빠르게 파악할 수 있다.
➕ 확장된 원칙들
예시:
grep, awk, sed
같은 도구를 조합하여 데이터 처리 가능
예시:
nginx
는 정적파일 제공, 로드 밸런싱 등 여러 모듈을 추가할 수 있다.
예시:
man
페이지를 통해 각 명령어와 옵션을 명확하게 제공
💡 다중 유저 운영체제라는 아이디어가 유닉스에서 나왔음
다중 유저 운영체제?
한 컴퓨터의 운영체제에서 여러 유저가 로그인할 수 있는 아이디나 계층적 파일 시스템, 폴더 내부에 디렉토리를 계속 만들어가는 것 등이 해당된다.