- 1장. 리눅스의 시작2023년 10월 23일 17시 15분 55초에 업로드 된 글입니다.작성자: 각수짱728x90반응형SMALL
리눅스 개요
- 리눅스(Linux)는 1991년 9월 17일 리누스 토르발스가 처음 출시한 운영 체제.
- 리눅스 커널에 기반을 둔 오픈 소스 유닉스 계열 운영체제 계열이다
- 배포판에는 리눅스 커널과 지원 시스템 소프트웨어, 그리고 라이브러리를 포함
- 자유 소프트웨어 재단은 GNU 소프트웨어의 중요성을 강조하기 위해 GNU/리눅스(GNU/Linux)라는 이름을 사용한다.
- 리눅스는 처음에는 인텔 x86 아키텍처에 기반한 개인용 컴퓨터용으로 개발
- 리눅스는 서버 시장에서 주도적인 운영 체제이며(상위 100만 대 웹 서버 운영 체제 중 96.4% 이상이 리눅스이다), 저명한 리눅스 배포판에는 데비안, 페도라, 우분투가 포함된다.
- 상용 배포판에는 레드햇 엔터프라이즈 리눅스(RHEL), 수세 리눅스 엔터프라이즈 서버가 포함된다.
- 데스크톱 리눅스 배포판에는 X11이나 웨이랜드 등의 윈도잉 시스템, 그리고 그놈, KDE 플라스마 등의 데스크톱 환경이 포함된다.
- 리눅스는 자유로이 재배포가 가능하므로 누구든지 어떠한 목적으로든 배포판을 만들 수 있다.
- 리눅스는 자유-오픈 소스 소프트웨어 협업의 매우 저명한 예시들 가운데 하나이다.
- 소스 코드는 누구든지 GNU GPL 등 개별 라이선스에 따라 상업적으로나 비상업적으로 이용, 수정, 배포가 가능하다.
장단점
- 이식성과 확장성이 용이하다.
- 리눅스는 거의 대부분의 C언어와, 어셈블리 언어로 작성되어 있습니다. C언어 자체가 특정 기계에 비의존적이기 때문에 프로그램을 다른 기계의 시스템으로 포팅하는 것이 쉽습니다. 이런 이유 때문에 OS 자체도 하드웨어에 적합하게 변형이 가능하며, x86 용으로 개발된 리눅스가 SPARC이나 맥의 Power PC, Alpha 등에 모두 적용될 수 있게 되었습니다. - 텍스트 모드 중심의 관리와 다양한 관리 환경의 제공
- 아직도 옛날 DOS처럼 텍스트 모드로 관리를 해아 하냐고 불평을 할 수 있으며, 편의성 측면에서 큰 단점으로 보일 수 있습니다. 그러나, 리눅스는 직접 설정 파일을 수정하여 세밀한 시스템의 설정이 가능하고 소스코드를 수정해 프로그램을 시스템에 최적화시킬 수 있습니다.
- 간단한 파일 수정 작업을 몇 개의 명령어 실행만으로도 간편하게 할 수 있다는 장점이 있습니다.
- 또한 간단한 스크립트 파일을 작성하여 자유롭게 시스템을 자동화시킬 수 있다는 큰 장점이 있습니다. - 풍부한 소프트웨어 개발 환경 제공
- 유닉스 시스템과, 리눅스 시스템은 거의 모든 프로그래밍 언어를 제공합니다.
- 특히 GNU 소프트웨어가 무료로 제공되면서 수백수천만 원의 프로그래밍 툴을 사용하지 않아도 되면서 모든 프로그래밍 툴이 무료로 제공되었습니다.
- 또한 모든 시스템의 소스가 개방되어 있기 때문에 소프트웨어 개발에 개방적입니다. - 다양한 네트워크 서비스 및 작업환경 지원
- 오픈 소스 소프트웨어 형태로 제공되는 많은 프로그램을 사용하여 다양한 웹서비스를 구축 및 서비스할 수 있고 웹을 통한 작업환경을 구축할 수 있다.
- Ex) 웹서버, 메일서버, 데이터베이스 서버, Proxy 서버, DNS, 파일서버, 프린트 서버, 라우터, 방화, 원격로그인, 브리지, FTP, PHP 프로그램 등이 지원된다. - 뛰어난 안정성
- 리눅스는 C언어 기반으므로 프로그래밍과 포팅에 용이하다. 또한 국제적이고 개방적인 개발 환경을 가지고 있으므로 커널 및 응용 프로그램에 중대한 버그가 있을 경우 상업적 소프트웨어에 비해서 신속하게 이에 대한 패치가 개발되어 공개됩니다. 또한 커널, 파일 시스템, 쉘(Shell), 웹서비스 프로그램 등 리눅스 시스템의 기반이 되는 모든 프로그램이 소스코드가 공개되어 있어 직접 시스템을 최적화할 수 있습니다. 이런 점에서 리눅스 시스템의 안정성이 매우 뛰어나다고 말할 수 있습니다. - 시스템 보안성
- 모듈 방식을 적재하여 사용할 수 있고, 소스코드가 공개되어 있기 때문에 최적화도 용이하다. 따라서 저수준 하드웨어를 갖춘 시스템에서 리눅스는 최적 성능 발휘가 가능하며 다양한 분야의 임베디드 및 휴대용 기기의 운영체제로 사용되고 있다. - 폭넓은 하드웨어 장치 지원
- 리눅스 커널 공개
- 전 세계 다양한 분야의 개발자들이 사용
- 하드웨어 관련 기업들의 참여 - 시스템의 높은 신뢰성
- 리눅스는 RAID 기능을 지원하고 로컬 또는 인터넷을 통한 다양한 백업 방식을 지원한다.
- ext3, ext4 등의 파일 시스템은 fsck 등의 명령을 통해 안정적인 시스템 복구 기능을 지원한다. 따라서 리눅스 시스템은 서버 시스템으로서 높은 신뢰성을 가지고 있다. - 가격 대비 탁월한 성능
- 리눅스는 비용을 들이지 않아도 Centos, Debian 등 다양한 종류의 리눅스를 다운로드하여 설치 및 사용이 가능하다.
- 이러한 리눅스 운영체제는 고가의 서버 운영체제와 비교하여 전혀 손색이 없고 리눅스 서버 관리자의 역량에 따라 유료 서비스를 받지 않더라도 서버 시스템의 운영이 가능하다.
- 단, 서버 시스템의 경우 상당한 가격에 거래가 되기도 하는데 이런 가격들은 주로 리눅스 시스템의 업데이트, 컨설팅 및 유지보수 서비스에 관한 비용으로 책정된 것이다.
/ : 파일 시스템이 있는 최상위 디렉터리. 루트 디렉터리 모든 디렉터리의 출발점, 다른 시스템과의 연결점. /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 (예약작업) 관련 파일
리눅스 역사
- 유닉스 운영 체제는 1969년 미국 AT&T의 벨 연구소에서 켄 톰프슨, 데니스 리치, 더글러스 매클로이, 조 오사나(Joe Ossanna)에 의해 착안되어 구현되었다.
- 1971년 처음 출시된 유닉스는 온전히 어셈블리어로 작성되었으며, 당시 어셈블리어로 작성하는 것은 일상적이었다.
- 1973년 주된 선구자적 접근으로 데니스 리치가 일부 하드웨어 및 입출력 루틴을 제외하고 C 프로그래밍 언어로 재작성하였다.
- 유닉스의 고급 프로그래밍 언어 구현체의 이용이 가능하게 되면서 다른 컴퓨터 플랫폼으로 이식이 더 용이해졌다.
- 유닉스의 컴퓨터 사업 진입을 금지하던 초기 미국의 독점금지법으로 인해 AT&T는 운영 체제의 소스 코드를 모든 요청자에게 라이선스 할 필요가 있었다.
- 1984년, AT&T는 벨 연구소와 분리되어 자유 라이선스를 요구하는 법적 책무를 면제하였고 벨 연구소는 유닉스를 사유 제품으로 판매하기 시작했으며 여기서 사용자는 유닉스 수정이 법적으로 허용되지 않았다.
- 1983년 리처드 스톨먼이 시작한 GNU 프로젝트는 온전히 자유 소프트웨어로 구성된 "완전한 유닉스 호환 소프트웨어 시스템"을 만드는 목표를 두었다. 작업은 1984년 시작되었다. 나중에 1985년, 스톨먼은 자유 소프트웨어 재단을 시작하였고 1989년 GNU 일반 공중 사용 허가서(GNU GPL)를 작성하였다.
- 법적 문제로 인해 1992년까지 출시되지 못했음에도 NetBSD, OpenBSD, FreeBSD의 기원이 된 386 BSD의 개발이 리눅스의 개발이 토대가 되어주었다.
- 미닉스는 컴퓨터 과학 교수 앤드루 타넨바움에 의해 개발되었으며 운영 체제의 원리를 학습하고자 한 학생들과 다른 사용자들을 대상으로 한 소형 유닉스 계열 운영 체제로서 1987년 출시되었다.
- 미닉스의 소스 코드 전체가 자유롭게 이용이 가능했음에도 라이선스 조항으로 인해 2000년 4월 라이선스 변경이 될 때까지 자유 소프트웨어로 자리 잡지는 못하였다.
- 1991년, 헬싱키 대학교의 재학생이었던 토르발스는 운영체제에 관한 호기심을 가지게 되었다.
- 당시 토르발스는 궁극적으로 리눅스 커널이 되었던 자신만의 운영 체제 커널에 대한 작업을 시작하였다.
- 토르발스는 미닉스에서 리눅스 커널의 개발을 시작했으며 미닉스용으로 개발된 응용 프로그램 또한 리눅스에서 사용되었다.
- 리누스 토르발스는 자신의 발명품이 Freax로 호칭하길 원했는데 이는 free, freak, x(Unix의 암시)의 혼성어였다.
- 헬싱키 공과 대학교(Helsinki University of Technology, HUT)의 토르발스의 동업자 아리 렘케(Ari Lemmke)는 당시 자발적인 FTP 서버 관리자들 가운데 한 명이었으며 Freax는 좋은 이름이라고 생각하지 않았다.
- 그는 이 프로젝트의 이름을 토르발스와 상의 없이 서버상에서 Linux로 명명했다. 그러나 나중에 토르발스는 리눅스의 명칭 사용에 동의하였다.
연도별
- 1960년대
- 1965년 MIT, AT&T 벨 연구소, General Electric에서 Multics라는 실험적인 운영체제를 공동으로 개발하는 프로젝트를 진행하였다.
- 멀티태스킹, 멀티유저를 지원하는 초기 형태의 시분할 운영체제 개발
- 1969년 프로젝트에 참여했던 벨 연구소의 켄 톰슨(Ken Thomson), 초기 형태의 UNIX 개발
- 1970년대
- 1971년 벨 연구소의 데니스 리치(Dennis Ritchie), C언어 개발
- UNIX가 어셈블리 언어에서 C언어로 재작성됨
→ 이식성, 호환성 - 소스(Source) 프로그램이 공개되어 있었던 UNIX는 Berkely Unix(BSD)와 SYSV로 분열되어 발전
- 1980년대
- MIT연구소의 리처드 스톨먼(Richard Stollman)은 소스를 공개하지 못하도록 하는 분위기와 기술을 상업화하려는 조류의 반감으로 GNU(GNU is NOT Unix) 프로젝트를 시작한다.
- 1985년 리처드 스톨먼은 FSF(Free Software Foundation, 자유 소프트웨어 재단)이라는 비영리 단체를 설립한 후, 'GNU 선언문'을 발표한다.
- 개발이 진행된 프로그램들은 GNU 프로그램들의 배포 라이선스인 GPL 하에 판매되었다.
- 1987년 앤드류 타넨바움(Andrew Tanenbaum), 교육용 유닉스 계열의 운영체제이자 자유/오픈 소스 소프트웨어 미닉스(MINIX) 개발
- 1990년대
- 핀란드 헬싱키 대학의 리누스 토발즈(Linus Torvalds)가 Minix의 커널 소스를 고쳐 GNU 시스템에 적합한 커널을 개발하였다.
- 스톨먼과 FSF는 유닉스 커널과 호환 가능한 커널인 리눅스를 GNU 시스템의 커널로 채택한다.
- 1994년, 리눅스 커널 버전 1.0 발표.
- 1996년, 리눅스 커널 버전 2.0 발표.
리눅스 철학 및 라이선스
GNU (GNU is NOT UNIX)
- 리처드 스톨먼이 자유 소프트웨어 재단(FSF)에서 진행하며 유지 중인 운영체제 프로젝트
- 1983년, 리처드 스톨먼 GNU 개발 시작
- 목표 : GNU 프로젝트를 통해 개발한 유닉스 계열 컴퓨터 운영체제로 '완전한 유닉스 호환 소프트웨어 시스템'이 되는 것
자유 소프트웨어 재단 (FSF, Free Software Foundation)
- 1985년 리처드 스톨먼이 설립한 재단
[특징]- 어떤 목적이든 원하는 대로 프로그램을 실행시킬 수 있는 자유
- 무료 또는 유료로 프로그램 복제물을 재배포할 수 있는 자유
- 필요에 따라 프로그램을 개작할 수 있는 자유
- 공동체 전체가 개선된 이익을 나눌 수 있게 개작한 프로그램을 배포할 수 있는 자유
- 자유는 금전적인 측면과 관계가 없기 때문에 자유 소프트웨어를 유료로 판매할 때 문제가 없다.
오픈 소스 소프트웨어 (Open Source Software)
- 1998년 일부 커뮤니티에서 '자유 소프트웨어' 대신 '오픈 소스 소프트웨어'라는 용어를 사용하기 시작했다. → 자유가 가진 '무료'라는 의미가 혼동을 일으켜 이를 피하기 위해서
GNU GPL (General Piblic License)
- GPL은 FSF에서 만든 무료 소프트웨어 라이선스이다.
- 1989년 1차 버전, 1991년 2차 버전, 2007년 3차 버전 발표
- 어떤 프로그램을 개발할 때 GPL 코드를 일부라도 사용하게 되면 해당 프로그램은 GPL이 된다.
- GPL을 가진 프로그램을 유료로 판매하는 것은 가능하다. 단, 반드시 소스코드는 무료롤 공개해야 한다.
GNU LGPL (Lesser General Public License)
GPL보다는 훨씬 완화된 조건의 공개 소프트웨어 라이선스
- LGPL이 적용된 라이브러리를 이용하여 개발하였을 경우 프로그램 소스코드는 공개하지 않아도 된다.
- LGPL 코드를 사용했음을 명시만 하면 된다.
- LGPL 코드를 단순히 이용하는 것이 아니라 이를 수정한 이로부터 파생된 라이브러리를 개발하여 배포하는 경우에는 전체 코드를 공개해야 한다.
BSD (Berkeley Software Distribution) 라이선스
버클리 캘리포니아 대학의 자유 소프트웨어 저작권의 한 가지.
BSD 계열의 소프트웨어를 포함한 많은 프로그램에서 사용된다.
소스코드 공개의 의무가 없으며 상용(상업적) 소프트웨어에서도 무제한 사용 가능한 라이선스.
OPenCV는 BSD 라이선스를 따른다.- 해당 소프트웨어는 아무나 개작할 수 있고, 수정한 것을 제한 없이 배포할 수 있다.
- BSD와 GPL의 차이점은 GPL은 파행된 소프트웨어여도 GPL과 같은 라이선스를 갖도록 의무화하고 있다.
아파치 (Apache) 라이선스
아파치 소프트웨어 재단에서 자체적으로 만든 소프트웨어에 대한 라이선스 규정.
아파치 2.0 라이선스는 누구나 해당 소프트우에어에서 파생된 프로그램을 제작할 수 있으며 저작권을 양도, 전송할 수 있는 라이선스 규정이다.- 누구든 자유롭게 아파치 소프트웨어를 다운로드하여 부분 또는 전체를 개인적 혹은 상업적 목적으로 사용할 수 있다.
- 재배포 시 원본 소스코드 또는 수정한 소스코드를 반드시 포함시켜야 하는 것은 아니지만 아파치 라이선스 버전 2.0을 포함시켜야 하며, 아파치 소프트웨어 재단에서 개발된 소프트웨어라는 것을 명확하게 밝혀 야 한다.
MIT (Messachusetts Institute of Technology) 라이선스
미국 매사추세츠 대학교에서 본교의 소프트웨어 공학도들을 돕기 위해 개발한 허가서.
BSD 라이선스를 기초로 작성된 BSD 계열 라이선스 중 하나.
해당 소프트웨어는 누구나 개작할 수 있고, 수정본의 재배포 시에 소스코드의 비공개가 가능하다.
MIT 라이선스가 적용된 소프트웨어에는 X Window System, JQuery, Node.js 등이 있다.
소프트웨어를 개조한 제품을 반드시 오픈소스로 배포해야 한다는 규정이 없으며, GPL의 엄격함을 피하려는 사용자들에게 인기가 있다.- GPL 등과 달리 카피 레프트는 아니며, 오픈소스 여부에 관계없이 재사용을 인정하고 있다.
MPL (Mozilla Public License)
- 오픈소스 + 자유 소프트웨어 라이선스
- 1.0 버전은 Netscape Communications cooperation의 변호사 미첼 베이커에 의해 작성되었고, 1.1 버전은 모질라 재단이 작성하였다.
- MPL의 특징은 소스코드와 실행파일의 저작권을 분리했다는 점이다.
- 수정한 2차 소스코드는 MPL로 공개하고 원저작자에게 수정한 부분에 대해 알려야 하지만, 실행 파일은 독점 라이선스를 가질 수 있다.
문제
문제 1
- 리눅스(Linux)는 리누스 토르발스가 몇 년도에 출시하였나?
- 1990년
- 1991년
- 1992년
- 1993년
더보기2. 1991년
문제 2
- 시스템 환경 설정 파일, 부팅 스크립트 파일 저장되는 디렉터리는?
- /bin
- /boot
- /dev
- /etc
더보기4. /etc
728x90반응형LIST'리눅스 > 리눅스 마스터 1급' 카테고리의 다른 글
6장. 리눅스의 기본명령어4 (1) 2023.12.01 5장. 리눅스의 기본명령어3 (0) 2023.12.01 4장. 리눅스의 기본명령어2 (1) 2023.10.26 3장. 리눅스의 기본명령어 1 (0) 2023.10.23 2장. 리눅스의 환경설정 (0) 2023.10.23 이전글이 없습니다.댓글