Study Programming 103

MIDI

리눅스의 사운드카드 디바이스 드라이버 지원 프레임워크 ALSA에서 MIDI합성기능 제공한데서 궁금해짐. 악기 디지털 인터페이스 (영어: Musical Instrument Digital Interface, 줄여서 MIDI(미디, /ˈmɪdi/)) : 전자 악기끼리 디지털 신호를 주고 받기 위해 각 신호를 규칙화한 일종의 규약. 다시 말해 악기와 컴퓨터, 악기와 악기끼리 주고받을 수 있는 언어와 통로의 신호 체계 표준. Ex 어떤 전자 악기(건반, 신시사이저, 모듈 등)가 이 표준에 따라 만들어졌다면, 그 전자 악기가 미디를 지원한다고 할 수 있다. - 미디 안에는 업체별로 많은 규약들이 존재 ex) 대표적으로 일반 미디(General MIDI), GS 등 +) 하지만 지금은 미디라는 용어 자체가 하나의 상..

[Linux] 오픈소스와 오픈소스 라이센스들 (Opensource License)

오픈소스 (Opensource) : SW나 HW의 저작자 권리를 지키면서 코드를 누구나 열람할 수 있는 SW - 탄생 : 1998.02.03 캘리포니아 팔로 알토에서 열린 전략회의에서 넷스케이프 소스코드를 어떤 형태로 공개할지 논의 중 사용된 용어 -> 1998.02월 오픈소스 장려를 위해 (브루스 페렌스와 엘릭 레이먼드가) OSI(=오픈소스이니셔티브) 설립 - Free software와 비교) 비슷한 맥락이며 서로 일맥상통함을 인정하나 Free software진영에서 용어가 소스공개에 치중되어 모든 sw는 자유롭게 사용할 수 있는 취지반영을 위해 Free software를 사용해줄 것 주장 ㄴ 오픈소스 진영에서 GPL 등 Free software 라이센스 허용 ㄴ Free software 진영에서도 오..

[Linux] 리눅스 라이센스 (GNU GPL, GNU, Free software, Copyleft)

리눅스 라이센스 기초 개념 - 리눅스는 OS 무료/일반 저작권 반대가 아닌 '소스코드 공유를 통한 SW산업 발전'을 목적으로 함. - 리눅스는 유닉스에서 영향을 받아 유닉스의 POSIX 표준을 따르나, 진정한 3) 자유 소프트웨어 구현을 위해 Unix 소스코드를 일체 사용하지 않고 새롭게 작성됨 0ㅁ0 1) GNU GPL 라이센스 (General Public License) - "리눅스는 GNU GPL 라이센스를 갖는다." - 누구나 사용, 변경, 배포 가능하나, GNU GPS 소스코드 사용한 SW는 GPL 라이센스로 배포되어야 한다! 2) GNU (GNU's Not Unix) 란? - 재귀적 약어 'GNU는 유닉스가 아니다'라는 뜻 - 유닉스와 호환된다는 의미와 그렇지만 다른 OS라는 이중적 의미 - ..

[Linux] 리눅스의 기술적 특징(Technical features of Linux )

Why is'Linux' so special? 리눅스의 기술적 특징 ① 모놀리딕 커널 = Monolithic kernel, 모놀리식 커널, 단일형 커널 ('Monolithic'단어 뜻이 모든 것이 단단히 짜여 하나에 묶여있는 것 ~> Monolithic아키텍처 개념도 있다) : OS가 제공하는 서비스(HW자원관리)를 하나의 커널(Kernel)로 구현하여 제공하는 방식 - 단점 : 커널의 일부 기능 수정 시 커널을 다시 컴파일해야함 ㄴ 단점보완 : 동적 로드가 가능한 '커널모듈' & 동적 설정을 위한 '프로퍼티 기능'을 제공 >> 커널의 유연성 확보 - 모놀리딕 커널과 다른 커널들의 비교 이미지 ↓ ② 장치의 파일화 - "리눅스는 시스템의 자원을 모두 파일로 다룬다" - 1) 파일 1.1) 디렉터리 1.2..

[Linux] 리눅스란 (의미, 특징, 장단점)

Linux란? (정의) : 1991년 리누스 토발즈에 의해 오픈소스로 개발된 유닉스 호환 OS - 개발 당시에는 리눅스 커널만을 의미했음. - 현재는 FSF(Free Software Foundation, 자유 SW 재단)가 GNU프로젝트를 통해 리눅스 커널 기반의 다양한 라이브러리와 어플리케이션이 포함된 '리눅스 배포판'을 제공함 >> 이를 강조해 "GNU/Linux"라 부름 Linux가 왜 특별해? (특징) ① 이식성 (Portability) - C언어로 작성(최소한 플랫폼에 종속적인 부분만 어셈블리어)되어 다양한 HW에 이식 가능 - 다양한 CPU 지원함 (초기 인텔 x86를 기본 지원했으나, 현재 다양한 인텔, ARM 등 다양한 CPU 아키텍처에 적용됨) ② 자유 소프트웨어 (Free sofrwar..

[OS] (내가 관심있는) OS들 간략 설명 : 리눅스, 유닉스, 안드로이드

OS종류 그냥 읽고 넘어갈 부분이므로 그냥 개인적 관심 OS들만 적어보려 한다. 출처 이기적 리눅스마스터에 더 많은 OS사례가있다 좋은 책이다 :-) bb 리눅스 - 리누스 토발즈(Linus B. Torvalds)가 유닉스 호환되는 OS 개발 - 1991.09.17에 리눅스 0.01 버전 개발 (일반인 미공개) - 1991.10.05 리눅스 커널 첫 정식 버전 0.02 발표 - 전세계 커뮤니티 개발자들이 참여하는 공개 프로젝트 형식으로 진행 - 리차드 스톨만이 진행하던 'GNU 프로젝트'는 리눅스 커널에서 동작할 수 있는 다양한 어플리케이션을 개발 -> 이를 패키지로 묶은 "리눅스 배포판"이 릴리즈되기 시작 - 데스크톱용 리눅스 : Ubuntu(우분투), CentOS 등 유닉스 - 1969년 AT&T사 ..

[OS] 운영체제 운용기법 (발전과정,시스템종류)

OS 운용 기법들 [1세대 친구] - 1950년대 1) Batch Processing System = 일괄 처리 시스템 - 초기운영체제 - 여러 작업을 묶어서 한 번에 처리 - 단점 : 작업 처리중일 떄 시스템 이용불가 ex) 시스템 입출력 작업 시 CPU는 idle상태 >> 비효율적 [2세대 친구들] - 1960년대 2) Multi Programming System = 다중 프로그래밍 시스템 - 하나의 작업이 입출력 중일 때 CPU에 다른 작업을 할당해 CPU 사용률과 처리량을 향상 (1)Batch Processing System의 단점극복) - 시스템이 작업단위로 CPU를 스케줄링함 - 사용자에겐 (하나의 CPU지만) 여러 프로그램이 실행된 것처럼 보이기 시작 (∴ 이름이 "Multi Programm..

[OS] 운영체제(OS, Operating System, 運營 體制) 기본개념(정의,역할,기능,구조)

운영체제=OS 란? - 사용자와 하드웨어 사이의 상호작용을 위한 사용자 인터페이스 - 주로 HW자원¹을 효율적으로 관리하는 시스템 +) HW 자원¹ ⊃ CPU, 프로세스, 메모리, 파일, I/O(=입출력 장치), LAN카드, USB, 디스크 등 OS 무엇을 하는가? ① (HW 제어, 입력, 출력 등등 ⊂) 'HW 관리 기능' 제공 ② HW자원¹ 의 '공유' & 무분별 접근 방지하는 '자원 보호 기능' & '스케줄링' 기능 제공 ③ 파일, DB 등의 (데이터 생성, 저장, 조회 조직화 등등 ⊂) '데이터 관리 기능' 제공 ④ (원격 컴퓨터와 연결, 주소 할당, 생성, 경로 설정 등등 ⊂) 'NW 제어 기능' 제공 ⑤ '오류 검사&복구 기능' 제공 ⑥ 응용프로그램이 OS기능을 사용할 수 있도록 시스템 호출(..

코어 덤프(core dump), 메모리 덤프(memory dump), 또는 시스템 덤프(system dump)

코어 덤프(core dump), 메모리 덤프(memory dump), 또는 시스템 덤프(system dump) 다 같은 말인데 왜 3개야...ㅜㅜ - 개념 : 컴퓨터 프로그램이 특정 시점에 작업 중이던 메모리 상태를 기록한 것으로, 보통 프로그램이 비정상적으로 종료했을 때 만들어진다. 즉, 비정상적인 종료가 발생하는 경우 커널에서 해당 프로세스와 관련된 메모리 상태를 기록한 파일 - 포함 정보 : 실제로는, 메모리 상태(메모리 덤프) 외에 중요한 프로그램 상태도 같이 기록(프로그램 카운터, 스택 포인터 등 CPU 레지스터나, 메모리 관리 정보, 그 외 프로세서 및 운영 체제 플래그 및 정보 등) - 존재이유 : 프로그램 오류 진단과 디버깅에 쓰임 [궁금해진 원인] >> 리눅스 Signal 공부 중 "si..

[공부일기] 안드로이드 개발자가 리눅스마스터 1급을 따려는 이유

리눅스마스터 1급을 따려고 한다. 안드로이드 개발자가 왜??? 크게 3가지 이유가 있다. 1. 안드로이드 OS가 리눅스 기반이라 ADB명령어 등 의외로 쓸 일이 많다. 그렇다면 명령어 위주의 2급을 따면 되지 왜 1급인가? 아래 2,3번 이유가 이를 뒷받침 해준다ㅋㅋ 2. 스펙 경쟁 사회라서? ㅋㅋㅋ 스펙이 다가 아니지만 아무것도 아닌 것도 아니지 않은가... 이력서엔 이렇게 보일테니 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 이름 : 0.00 자격증 : “리눅스마스터 2급” ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 이름 : 00.0 자격증 : “리눅스마스터 1급” ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 오래된 말하는 감자지만 그래도 전공자니 1급 할 수 있다고 본다ㅎㅎ 할 수 있는 한 이력서엔 내 최선을 보여주고 싶으니 도전!!! 3. 모..