공부한 이야기

    리눅스 - 주변기기

    리눅스 - 주변기기

    주변 장치 프린터 설치 및 설정 리눅스의 프린터 인쇄 시스템으로는 LPRng 와 CUPS 가 있다. LPRng Line Printer next generation 리눅스 초기에 사용되었던 인쇄 시스템 버클리 프린팅 시스템으로 BSD 계열 유닉스에서 사용하기 위해 개발되었다. 라인 프린터 데몬 프로토콜을 사용하여 프린터 스풀링과 네트워크 프린터 서버를 지원한다. LPRng 설정 파일은 /etc/printcap 이다. CUPS Common Unix Printing System 애플이 개발한 오픈 소스 프린팅 시스템 유닉스 계열 운영체제의 시스템을 프린터 서버로 사용 가능하게 해준다 HTTP 기반의 IPP (Internet Printing Protocol) 을 사용하여 프린터를 웹 기반으로 제어한다. LPRn..

    리눅스 - 소프트웨어 관리

    리눅스 - 소프트웨어 관리

    프로그램 설치 리눅스 시스템에서 소프트웨어를 설치하고 관리하는 방법에는 배포업체의 패키지를 설치하거나 소스코드를 컴파일하는 것이 있다. 일반적으로 리눅스는 데비안 계열과 레드햇 계열로 나뉘는데, 각 계열에서 사용하고 있는 패키지 관리 유틸리티는 다음과 같다. 데비안 계열 Debian, Ubuntu, Xandros, Linspire 패키지 툴로는 다음이 있다. dpkg apt-get aptitude 레드햇 계열 Fedora, CentOS, RHEL, openSUSE, mandirva 패키지 툴로는 다음이 있다. rpm yum RPM RedHat Package Manager 로서, 레드햇 사에서 만든 패키지 관리 툴이다. 새 패키지를 설치하거나 업그레이드, 삭제 시 사용한다. 패키지 파일 확장명은 *.rpm..

    리눅스 - 에디터

    리눅스 - 에디터

    리눅스의 에디터 리눅스에서 지원하는 편집기로는 vi, emacs, pico, gedit, xedit 등이 있다. 리눅스 편집기는 편집기를 통해 파일을 수정한다. 해당 파일의 복사판을 만들어 작업함으로서 잘못 편집 시 원본 파일을 보존한다. 외부 요인으로 편집기가 종료될 경우 변화된 내용을 모두 잃게 된다. PICO 워싱턴 대학의 Aboil Kasar 가 개발한 유닉스 기반의 텍스트 에디터이다. 기본 인터페이스가 윈도우의 메모장과 유사하다. 자유 소프트웨어 라이선스가 아니기 때문에 GNU 복제 버전인 nano 가 등장한다. vi 편집기처럼 입력모드와 명령모드가 존재하지 않고 바로 텍스트 입력이 가능하다. 사용법 $ pico [옵션] [파일명] 옵션 -w : 긴 라인에서 라인이 깨지는 경우에 사용 (Wrap..

    리눅스 - 프로세스 관리

    리눅스 - 프로세스 관리

    프로세스 프로세스는 CPU와 메모리를 할당받아 실행시키는 프로그램이다. 가장 먼저 실행되는 init 이라는 프로세스 (PID : 1) 에 의해 다른 모든 프로세스가 실행된다. 프로세스 유형 Foreground Process 사용자와 상호작용하는 프로세스 입출력을 주고받거나 수행 종료까지 기다려야 하는 프로세스 응용 프로그램, 명령어 등 Background Process 사용자와 직접적인 대화 없이 뒤에서 실행되는 프로세스 입력에 관계없이 실행되는 프로세스 시스템 프로그램, 데몬 등 fork() 사용자가 새로운 프로세스르르 생성하기 위해 사용하는 시스템 함수 기존 프로세스를 복제하는 방식을 사용한다. 새로운 프로세스를 위한 메모리를 할당한다. 원래의 프로세스와 똑같은 코드를 가지고 있다. exec() 호출..

    리눅스 - Shell

    리눅스 - Shell

    Shell 종류 본셸 (Bourne shell) 계열과 C셸 계열로 나뉘게 된다. BourneShell 계열 bourne shell /bin/sh 의 실행 파일을 가진다. 벨 연구소의 스티븐 본이 1979년에 개발 유닉스에서 기본 셸로 사용 korn shell /bin/ksh 의 실행 파일을 가진다. AT&T의 데이비드 콘이 1986년 개발 본셸을 확장해서 만들었다. 명령어 완성 기능, 히스토리 확장 기능을 가진다. bash shell /bin/bash 의 실행 파일을 가진다. 브레인 폭스가 1989년 개발 본셸을 기반으로 GNU 프로젝트에 의해 개발된다. Linux 표준 셸로 채탱된다. 다양한 운영체제에서 사용되며, 여러 기능들이 지원된다. POSIX 와 호환 가능하다. z shell /bin/zsh ..

    리눅스 - 파일시스템 운용

    리눅스 - 파일시스템 운용

    권한 및 그룹 설정 리눅스 시스템의 모든 파일과 디렉터리에는 접근권한과 소유권이 부여된다. chown 파일과 디렉터리의 사용자 소유권과 그룹 소유권을 변경한다. $ chown [옵션] 소유자[:그룹명] 파일명 $ chown -R root testDir $ chown -R :myGroup testFile 옵션 -R : 하위 디렉터리를 포함하여 디렉터리 내부의 모든 파일에 적용 chgrp 파일과 디렉터리의 그룹 소유권을 변경한다. $ chgrp [옵션] 그룹명 파일명 $ chgrp -R myGroup testFile 옵션 -R : 하위 디렉터리를 포함하여 디렉터리 내부의 모든 파일에 적용 permission file types 기호 파일 유형 - 일반 파일 d 디렉터리 파일 b 블록 단위의 블록 장치(저장 ..

    프로세스 기초

    프로세스 기초 프로그램은 저장장치에 저장된 명령문의 집합체를 의미한다. 프로세스는 메모리에 적재되어 실행중인 프로그램을 의미하고, 다음 구조로 이루어진다. Code 영역 자신을 실행하는 코드가 저장되어 있다. Data 영역 전역 변수와 정적(static) 변수가 저장되어 있다. Heap 영역 프로그래머가 런타임 시 동적으로 메모리를 할당하는 데에 쓰인다. Stack 영역 지역 변수와, 함수 호출을 했을 때 필요한 정보들이 저장된다. 멀티프로그래밍 & 멀티프로세싱 유니프로그래밍 (Uniprogramming) 메모리에 오직 하나의 프로세스가 올라온 것을 의미한다. 멀티프로그래밍 (Multiprogramming) 메모리에 여러 개의 프로세스가 올라온 것을 의미한다. 멀티프로세싱 (Multiprocessing)..

    운영체제 기초

    운영체제 기초 Windows, MacOS, Linux, UNIX(를 접하진 못했지만..) 등 다양한 운영체제가 우리 곁에 있다. 다양한 전자기기에 들어가는 임베디드 운영체제나, 안드로이드나 iOS또한 운영체제이다. 컴퓨터는 운영체제 없이도, 엄청난 제약이 걸리긴 하지만, 동작할 수 는 있다. 하지만 적합한 운영체제가 있어야 컴퓨터 하드웨어를 쓸모있게 만들어줄 수 있다. 하는 일 프로세스를 관리한다. 다양한 프로세스를 관리해서, 한 번에 다양한 일을 할 수 있게 해준다. 메모리를 관리한다. 모든 프로그램은 메모리에 올라와서 동작하는데, 이러한 멀티프로그래밍 환경에서 프로세스 메모리 관리는 필수이다. 하드웨어를 관리한다. 다양한 입출력 기기나 하드웨어에 대한 사용자의 직접적인 접근을 막고, 올바른 방법과 관..