리눅스마스터
리눅스의 시작
궁굼하다
2024. 3. 1. 00:54
728x90
반응형
1. 리눅스 개요
- 리눅스는 처음에는 인텔 x86 아키텍처에 기반한 개인용 컴퓨터용으로 개발
- 리눅스는 서버 시장에서 주도적인 운영 체제이며(상위 100만 대 웹 서버 운영 체제 중 96.4% 이상이 리눅스이다),
- 저명한 리눅스 배포판에는 데비안, 페도라, 우분투가 포함된다.
- 상용 배포판에는 레드햇 엔터프라이즈 리눅스(RHEL), 수세 리눅스 엔터프라이즈 서버가 포함된다.
- 데스크톱 리눅스 배포판에는 X11이나 웨이랜드 등의 윈도잉 시스템, 그리고 그놈, KDE 플라스마 등의 데스크톱 환경이 포함된다.
- 리눅스는 자유로이 재배포가 가능하므로 누구든지 어떠한 목적으로든 배포판을 만들 수 있다.
-
리눅스는 자유-오픈 소스 소프트웨어 협업의 매우 저명한 예시들 가운데 하나이다.소스 코드는 누구든지 GNU GPL 등 개별 라이선스에 따라 상업적으로나 비상업적으로 이용, 수정, 배포가 가능하다.
장, 단점
1. 이식성과 확장성이 용이
- 리눅스는 거의 대부분의 C언어와 어셈블리어로 작성
- C언어는 특정 기계에 비의존적, 프로그램을 다른 기계의 시스템으로 포팅하는 것이 쉬움
- x86 용 리눅스도 SPARC, 맥, Alpha 등에 모두 적용
2. 텍스트 모드 중심의 관리와 다양한 관리 환경의 제공
- 직접 설정 파일을 수정하여 세밀한 시스템의 설정 가능
- 소스코드를 수정해 프로그램을 시스템에 최적화 시킬 수 있음
- 몇 개의 명령어 실행으로 파일 수정 작업을 간편하게 할 수 있음
- 스크립트 파일을 작성하여 시스템 자동화
3. 풍부한 소프트웨어 개발 환경 제공
- 유닉스 시스템과, 리눅스 시스템은 거의 모든 프로그래밍 언어 제공
- 특히 GNU 소프트웨어가 무료로 제공
- 시스템의 소스가 개방되어 있기 때문에 소프트웨어 개발에 개방적
4. 다양한 네트워크 서비스 및 작업환경 지원
- 오픈 소스 소프트웨어 형태로 제공되는 프로그램을 사용하여 다양한 웹서비스를 구축 및 서비스 제공
- 웹서버, 메일서버, 데이터베이스, Proxy, DNS, 파일서버, 프린트 서버, 라우터, 방화벽, 원격로그인, 브릿지, FTP, PHP 프로그램 등 지원
5. 뛰어난 안정성
- C언어 기반이므로 프로그래밍과 포팅에 용이
- 국제적, 개방적인 개발 환경을 가지고 있으므로 커널 및 응용 프로그램에 중대한 버그가 있을 경우 신속하게 패치가 개발되어 공개됨
- 커널, 파일 시스템, 쉘, 웹서비스 프로그램이 소스코드가 공개되어 있어 직접 시스템을 최적화 할 수 있음
6. 시스템 보안성
- 모듈 방식을 적재하여 사용할 수 있음
- 소스코드 공개로 최적화 용이
- 저수준 하드웨어를 갖춘 시스템에서 리눅스는 최적 성능 발휘가 가능
- 다양한 분야의 임베디드 및 휴대용 기기의 운영체제로 사용
7. 폭넓은 하드웨어 장치 지원
- 커널 공개
- 다양한 분야 개발자들이 사용
- 하드웨어 관련 기업들 참여
8. 시스템의 높은 신뢰성
- RAID 기능을 지원
- 로컬 또는 인터넷을 통한 백업 방식 지원
- ext3, ext4 등의 파일 시스템은 fsck 등의 명령을 통해 안정적인 시스템 복구 기능 지원
9. 가격 대비 탁월한 성능
- 비용을 들이지 않아도 다양한 종류의 리눅스 다운로드하여 설치 및 사용 가능
- 고가의 서버 운영체제와 비교하여 전혀 손색이 없음
- 서버 관리자의 역량에 따라 유료 서비스를 받지 않더라도 서버 시스템의 운영이 가능
- 서버 시스템의 경우 상당한 가격에 거래가 되기도 하는데 이런 가격들은 주로 리눅스 시스템의 업데이트, 컨설팅 및 유지보수 서비스에 관한 비용으로 책정된 것
디렉토리
- / : 파일 시스템이 있는 최상위 디렉터리. 루트 디렉터리
모든 디렉터리의 출발점, 다른 시스템과의 연결점. - /bin : 기본적인 명령어 저장. root 사용자와 일반 사용자가 모두 사용할 수 있다.
- /boot : 부트 디렉터리. 커널 이미지, 부팅 정보 파일 저장
- /dev : 시스템 디바이스 디렉터리.
- /etc : 시스템 환경 설정 파일, 부팅 스크립트 파일 저장. 사용자 정보 및 암호 정보 파일, 보안 파일 등 저장
- /etc/rc.d/ : 부팅 레벨별 부팅 스크립트 파일
- /etc/rc.d/init.d/ : 시스템 초기화 파일
- /etc/mail/ : send메일 설정파일
- /etc/xinitd.d/ : 슈퍼 데몬에 의해 서비스되는 서비스 설정 파일
- /etc/ssh/ : sshd 데몬에서 실행되는 각종 설정 파일
- /etc/samba/ : 삼바 관련 설정 파일
- /etc/group : 그룹 정보
- /etc/passwd : 계정 정보
- /etc/shadow : /etc/passwd의 두 번째 필드인 패스워드 부분을 암호화 관리. 패스워드 만기일, 계정 만기일 등 저장.
- /home : 사용자 계정 디렉토리. 계정들의 홈 디렉터리가 위치.
- /lib : 공유 라이브러리 디렉토리. 커널 모듈 파일, 프로그램 실행을 지원해주는 라이브러리 저장
- /lost+found : 결함이 있는 파일에 대한 정보. fsck에 의해서 사용되는 디렉토리
- /mnt : 파일 시스템을 일시적으로 마운트 할 때 사용
- /proc :가상파일시스템 시스템 정보 디렉토리. 현재 실행중인 프로세스, 실제 사용하는 하드웨어 정보 저장
- /root : 시스템 관리자용 홈 디렉터리.
- /sbin : 시스템 명령어 저장
- /tmp : 임시로 생성되는 파일 저장
- /usr : 사용자 데이터나 어플리케이션 저장. 사용자 디렉터리.
- /usr/bin/ :
- /usr/X11R6/ :
- /usr/lib : /lib에 들어가지 않은 라이브러리
- /usr/local : MySQL, Apache, PHP등과 같은 어플리케이션들을 소스로 컴파일을 설치할 때 사용되는 디렉터리.
- /usr/share/man : 메뉴얼 페이지 디렉터리
- /var : 가변 자료(로그 파일, 스폴링(spooling), 캐싱(caching)) 저장 디렉터리. 로그 파일, 메일 데이터 저장
/var/tmp : 리눅스 시스템의 공용 디렉터리는 /tmp, /var/tmp. (퍼미션 : 1777) sticky bit 설정.
/var/log/ : 시스템 로그 파일
/var/named/ : DNS에서 사용하는 zone 파일
/var/spool/lpd/ : 프린트 임시 디렉터리 (spooling 디렉터리)
/var/spool/mqueue/ : 발송을 위한 메일 임시저장
/var/spool/cron/ : 각 사용자들의 cron 설정 파일
/var/spool/at/ : atd (예약작업) 관련 파일
2. 리눅스 역사
- 유닉스 운영 체제 1969년 미국 AT&T의 벨 연구소에서 켄 톰슨, 데니스 리치, 더글러스 매클로이, 조 오사나에 의해 착안되어 구현
- 1971년 어셈블리어로 작성
- 1973년 데니스 리치가 일부 하드웨어 및 입출력 루틴을 제외하고 C 프로그래밍 언오로 재작성
- 고급 프로그래밍 언어 구현으로 다른 컴퓨터 플랫폼으로 이식이 더 용이해짐
- 초기 미국의 독점금지법으로 인해 운영 체제의 소스 코드를 모든 요청자에게 라이선스할 필요가 있었음
- 1984년 벨 연구소와 분리되어 자유 라이선스를 요구하는 법적 책무를 면제하였고, 벨 연구소는 유닉스를 사유 제품으로 판매 시작 유닉스 수정이 법적으로 수정이 되지 않음
- 1983년 리처드 스토럼이 시작한 GNU 프로젝트는 온전히 자유 소프트웨어로 구성된 "완전한 유닉스 호환 소프트웨어 시스템"을 만드는 목표로 시작
- 1985년 스톨먼은 자유 소프트웨어 재단을 시작
- 1989년 GNU 일반 공중 사용 허가서 (GNU GPL) 작성
- 법적 문제로 인해 1992년까지 출시되지 못했음에도 NetBSD, OpenBSD, FreeBSD의 기원이 된 386BSD의 개발이 리눅스의 개발의 토대가 되어 줌
- 미닉스는 컴퓨터 과학 교수 "앤드류 타넨바움"에 의해 개발, 운영 체제의 원리를 학습하고자 한 학생들과 다른 사용자들을 대상으로 한 소형 유닉스 계열 운영 체제로 1987년 출시
- 미닉스의 소스 코드 전체가 자유롭게 이용이 가능했음에도 라이선스 조항으로 인해 2000년 4월 라이선스 변경이 될 때까지 자유 소프트웨어로 자리잡지 못함 (실행, 복제, 배포, 수정 가능)
- 1991년, 헬싱키 대학교 재학생 토르발스는 운영체제에 관한 호기심으로 미닉스 기반으로 운영 체제 커널에 대한 작업 시작
- 토르발스는 미닉스에서 리눅스 커널의 개발 시작
- 리누스 토르발스는 자신의 발명푸을 Freax로 호칭하길 원했음
1960년대
- 1965년 MIT, AT&T 벨 연구소, General Electric에서 Multics라는 실험적인 운영체제를 공동으로 개발하는 프로젝트 진행
- 멀티 태스킹, 멀티유저를 지원하는 초기 형태의 시분할 운영체제 개발
- 1969년 프로젝트에 참여했던 벨 연구소의 켄 톰슨, 초기 형태의 유닉스 개발
1970년대
- 1971년 벨 연구소의 데니스 리치 C언어 개발
- 유닉스 C언어로 재작성됨(일부는 어셈블리어로 되어있음)
- 소스 프로그램이 공개되어 있었던 유닉스는 Berkely Unix와 SYSV로 분열되어 발전
1980년대
- MIT 연구소의 리처드 스톨먼은 GNU 프로젝트 시작
- 1985년 스톨먼은 FSF이라는 비영리 단체를 설립 후 , GNU 선언문을 발표
- 개발이 진행된 프로그램들은 GNU 프로그램들의 배포 라이선스인 GPL 하에 판매
- 1987년 앤드류 타넨바움은 교육용 유닉스 미닉스 개발
1990년대
- 핀란드 헬싱키 대학 리누스 토발즈 미닉스 커널 소스를 고쳐 GNU 시스템에 적합한 커널 개발
- 스톨먼과 FSF는 유닉스 커널과 호환 가능한 커널인 리눅스를 GNU 시스템의 커널로 채택
- 1994년 1.0 발표
- 1996년 2.0 발표
반응형