1 장 Unix/Linux 소개 1 Helpers
1 장 내용 1. 왜 유닉스인가 ? 2. 유닉스 시스템 구조 3. 유닉스 역사 및 버전 4. 리눅스 설치 ( 별도 2 시간 실습 ) 5. 사용 환경 6. 사용자 계정 관리 Unix/Linux 2
1.1 왜 유닉스인가 ? 3
동기 4 유닉스 운영체제 1970 년대 초에 AT&T 벨연구소에서 Ken Tomson 에 의해 개발된 이후 지속적으로 발전하고 있다 스마트폰, PC, 서버 시스템, 슈퍼컴퓨터에까지 사용되고 있다 소프트웨어 경쟁력의 핵심이 되고 있다 유닉스 기반 운영체제 1. 안드로이드 (Android) OS 2. iOS 3. 맥 (Mac) OS X 4. 리눅스 (Linux) 5. BSD 유닉스 (Unix) 6. 시스템 V 7. Sun 솔라리스 (Solaris) 8. IBM AIX 9. HP HP-UX 10. Cray 유니코스 (Unicos)
유닉스의 특징 5 단순성 MIT MULTICS 에 반대해서 최소한의 기능만 제공 자원에 대한 일관된 관점 제공 이식성 이식성을 위해 C 언어로 작성 다양한 플랫폼에 이식 가능 스마트폰, PC, 서버, 슈퍼컴퓨터 등 개방성 소스 코드 공개와 같은 개방성
유닉스의 특징 6 다중 사용자, 다중 프로세스 운영체제 여러 사용자가 동시에 사용 가능 여러 프로그램이 동시에 실행 관리자 슈퍼유저가 있음 쉘 프로그래밍 명령어나 유틸리티 등을 사용하여 작성한 프로그램 훌륭한 네트워킹 유닉스에서부터 네트워킹이 시작 ftp, telnet, WWW, X-window 등
1.2 유닉스 시스템 구조 7
유닉스 운영체제 구조 8 운영체제 컴퓨터의 하드웨어 자원을 운영 관리하고 프로그램을 실행할 수 있는 환경을 제공 커널 (kernel) 운영체제의 핵심으로 하드웨어 운영 및 관리 시스템 호출 (system call) 커널이 제공하는 서비스에 대한 프로그래밍 인터페이스 역할 쉘 (shell) 사용자와 운영체제 사이의 인터페이스 사용자로부터 명령어를 입력 받아 해석하여 수행해주는 명령어 해석기
커널 9 커널의 역할 하드웨어를 운영 관리하여 프로세스, 파일, 메모리, 통신, 주변장치 등을 관리하는 서비스를 제공한다
1.3 유닉스 역사 및 버전 10
유닉스 역사 및 표준 11 AT&T 벨 연구소 (Bell Lab) 에서 개발됨 Ken Thompson 이 어셈블리어로 개발함 D. Ritchie 가 C 언어로 다시 작성함 C 언어는 Unix 를 작성하기 위한 언어로 밀접하게 관련되어 있음 이론적으로 C 컴파일러만 있으면 이식 가능 소스 코드를 대학에 개방함 유닉스의 큰 흐름 시스템 V(System V) BSD(Berkeley Standard Distribution) 유닉스 리눅스 (Linux)
유닉스 버전 트리 [ 위키백과 ] 12
유닉스 시스템 V 13 벨 연구소에서 개발된 버전이 발전하여 시스템 V 가 됨 유닉스 버전 중의 최초의 대표적인 성공 사례 여러 유틸리티가 공개되면서 일반 사용자들에 확산 다양한 상업용 버전으로 발전 IBM 의 AIX, Sun 의 Solaris, HP 의 UP-UX
BSD 유닉스 14 공개 소스코드를 기반으로 버클리대학교에서 개선 지속적으로 발전하여 BSD 4.3 버전이 개발됨 주요 기능 개선 메모리 관리 기능 향상 네트워킹 기능 추가 TCP/IP 네트워킹, 소켓 (Socket) 등 상업용 운영체제의 기초 썬 OS(Sun OS), 맥 OS(Mac OS) 등
리눅스 15 PC 를 위한 효율적인 유닉스 시스템 1991 년 필란드 헬싱키 대학의 Linus B. Torvalds 에 의해 개발됨 소스코드가 공개 인터넷 상에서 자원자들에 의해서 기능 추가 및 확장됨 공용 도메인 상의 무료 OS 다양한 플랫폼에 포팅 가능 PC, 워크스테이션, 서버 등 GNU 소프트웨어와 함께 배포
리눅스 장점 16 풍부하고 다양한 하드웨어를 효과적으로 지원 대부분의 하드웨어를 지원하는 추세임 PC, 워크스테이션, 서버 등 놀라운 성능 및 안정성 Pentium 으로도 충분히 빠르며 안전하게 수행 인터넷에 맞는 강력한 네트워크 구축 다양한 응용 프로그램 개발됨 무료 배포판 레드햇 (RedHat): 상업용 우분투 (Ubuntu) 페도라 (Fedora) CentOS
솔라리스 (Solaris) 17 썬 (SUN) 에서 개발한 시스템 V 기반의 운영체제 썬 워크스테이션에서 전문가들이 주로 사용
맥 OS(Mac OS) 년 애플 매킨토시 컴퓨터용 운영체제로 개발 개인용 컴퓨터에 GUI 를 처음으로 도입 맥 OS X 2002 년에 NeXTSTEP 운영체제와 BSD 유닉스를 기반으로 개발 문서편집, 그래픽, 멀티미디어 등의 분야에서 많이 사용됨
모바일 기기용 운영체제 19 안드로이드 (Android) 리눅스 기반 모바일 기기용 주로 스마트폰, 태블릿 PC 등 개방형 운영체제로 소스 코드 등 공개 iOS 맥 OS X 를 기반으로 개발된 모 바일 기기용 운영체제 애플사의 iPhone, iPad, iPod
1.4 리눅스 설치 20
리눅스 설치 21 다양한 배포판 커널은 공유하고 배포판마다 조금씩 다른 데스크톱 환경이나 응용 프로그램 제공 레드햇 (RedHat) : 상업용 우분투 (Ubuntu), 데비안 (Debian), 페도라 (Fedora), CentOS 등 교재 참조 데스크톱 환경 사용하는 데스크톱 환경에 따라 사용방법이나 사용 가능한 응용 프 로그램이 조금씩 다르다. GNOME, KDE, Unity
리눅스 배포판 22 우분투 (Ubuntu) 데스크톱에서 쉽게 사용할 수 있 는 리눅스 배포판 MS 윈도우즈 상에서 인터넷으로 쉽게 직접 설치도 가능 CentOS RedHat Enterprise 배포판을 기반 으로 하는 무료 운영체제 주로 서버용으로 많이 사용되며 데스크톱용, 워크스테이션용도 제 공
1.5 사용 환경 23
로그인 직접 로그인 X- 윈도우 VMware 원격 로그인 telnet Windows Unix/Linux PuTTY Windows Unix Xmanager 또는 Xming ( 3 장 ) 24
직접 로그인 25 사용 가능한 유닉스 / 리눅스 시스템이 있는 경우 X- 윈도우 (X-window) 로 직접 로그인하여 바로 X- 윈도우 시스템을 사용할 수 있다 CentOS vs. Ubuntu 터미널 화면
원격 로그인 (telnet) 26 MS 윈도우에서 MS-DOS 명령 프롬프트 창에서 telnet 사용 C:\> telnet 윈도우 ‘ 시작 ’ 메뉴에서 ‘ 실행 ’ 에서 telnet 사용 열기 (O) telnet ☞ 윈도우에서 텔넷이 안될 때 : 제어판 프로그램 윈도우 기능 사용 텔넷 클라이언트 활성화
원격 로그인 (PuTTy) 27 PuTTy 사용 telnet, ssh 등 이용하여 원격 로그인
( 참고 ) Linux 서버 방화벽 정지 ※ 서버에 대한 외부 ip 접근을 허용하려면 ( 즉, 집에서도 로그인 하려면 ) telnet 23 번 포트를 개방해야 함 방화벽 정지 # /sbin/service iptables stop 또는 # /etc/init.d/iptables stop 23 번 (ssh) 포트 개방 # iptables –I INPUT 1 -p tcp --dport 23 -j ACCEPT /*I( 아이 )*/ # iptables -I OUTPUT 1 -p tcp --dport 23 -j ACCEPT /*I( 아이 )*/ 방화벽 시작 # /sbin/service iptables start 또는 # /etc/init.d/iptables start 28
리눅스 네트워크 설정 1. 윈도우 환경에서 컴퓨터 네트워크 설정 값을 확인한다 ☞ C:\WINDOWS\system32\ipconfig.exe IP: ~ 131 넷마스크 : 게이트웨이 : DNS 서버 : 메뉴의 시스템을 클릭한다 3. 네트워크 연결을 클릭한다 Unix/Linux29
리눅스 네트워크 설정 4. 리눅스 터미널에서 $ ifconfig 로 네트워크 장치이름을 확인하고, 유선 탭에서 해당 네 트워크 장치의 편집을 선택한 후, IPV4 탭 에 추가 또는 편집한다 ☞ # /sbin/ifconfig 5. 네트워크 설정 값들을 입력한 후 저장한다 IP: ~ 131 넷마스크 : 게이트웨이 : DNS 서버 : Unix/Linux30
리눅스 telnet 설치 telnet 설치 # /usr/bin/yum –y install telnet* xinetd.d 파일 수정 # vi /etc/xinetd.d/telnet disable = yes 를 disable = no 로 바꾼다 telnet service 시작 # service xinetd restart Unix/Linux31 (cf.) /bin/rpm
1.6 사용자 계정 관리 32
시스템 관리자 33 슈퍼유저 (superuser) 시스템을 관리할 수 있는 사용자로 슈퍼유저가 사용하는 계정이 root 이다 슈퍼유저 로그인 직접 root 계정으로 로그인 다른 계정으로 로그인 후 $ su [ 사용자명 ]
( 참고 ) 직접 root 계정으로 로그인이 안될 때 일반사용자로 로그인하여 터미널에서 su root 입력 ( 암호 입력 ) # vi /etc/pam.d/gdm gdm 파일을 열어 세번째 줄인 #auth required pam_succeed_if.so user != root_quiet 라는 줄 앞에 # 를 붙여 주석 처리 gdm: GNOME Display Manager pam_succeed_if.so: 인증 계정 테스트 quiet: 시스템 로그에 기록하지 않음 34
( 참고 ) 직접 root 계정으로 로그인이 안될 때 # vi gdm-password 이 파일도 gdm 파일과 동일하게 3 번째 줄인 #auth required pam_succeed_if.so user != root quiet 앞에 # 를 붙여 주석 처리 logout 또는 reboot 35
사용자 계정 추가 사용자 관리자 도구 [ 시스템 ] [ 관리 ] [ 사용자 및 그룹 ] 36
사용자 계정 추가 / 삭제 /usr/sbin/useradd, /usr/sbin/userdel 유틸리티 이용 # useradd [ 옵션 ] 사용자명 # userdel 사용자명 # passwd 사용자명 관련 파일 : /etc/passwd, /etc/shadow ( 연습 ) # /usr/sbin/useradd guest –d /home/guest [ –s /bin/bash ] # passwd guest # cat /etc/passwd | more 로그아웃 후 다시 로그인 시도 # /usr/sbin/userdel -r guest # cat /etc/passwd | more 37
그룹 추가 38 그룹 추가 / 삭제 # groupadd [-g gid] 그룹명 # groupdel 그룹명 관련 파일 : /etc/group
핵심 개념 유닉스 시스템의 가장 큰 특징은 단순성과 이식성과 개방성이다 운영체제는 컴퓨터의 하드웨어 자원을 운영 관리하고 프로그램을 실 행할 수 있는 환경을 제공한다 커널은 하드웨어를 운영 관리하여 프로세스, 파일, 메모리, 통신, 주변 장치 등을 관리하는 서비스를 제공한다 39
( 정리 ) 40 로그인 방법 수퍼유저 root 되기 사용자 계정 추가 / 삭제 리눅스 네트워크 설정 ( 설치 ) 리눅스 telnet ( 설치 ) 직접 로그인 X- 윈도우 VMware 원격 로그인 telnet Windows Unix/Linux PuTTY Windows Unix Xmanager 또는 Xming ( 3 장 )