목차
1. 운영체제
2. 커널
3. 패키지
4. 시스템 호출
5. `스위스 군용 칼`같은 ioctl
6. 리눅스 프로세스간의 통신
7. 사운드 프로그래밍
8. 문자단위 그래픽스
9. I/O 포트 프로그래밍
10. 리눅스에 응용프로그램 포팅하기
2. 커널
3. 패키지
4. 시스템 호출
5. `스위스 군용 칼`같은 ioctl
6. 리눅스 프로세스간의 통신
7. 사운드 프로그래밍
8. 문자단위 그래픽스
9. I/O 포트 프로그래밍
10. 리눅스에 응용프로그램 포팅하기
본문내용
OCSERGWILD, TIOCSERSWILD, TIOCSERGSTRUCT, TIOCMBIS, TIOCMBIC, ...
POSIX 방법:
tcgetattr(), tcsetattr(), tcsendbreak(), tcdrain(), tcflush(), tcflow(), tcgetpgrp(), tcsetpgrp(),cfsetispeed(), cfgetispeed(), cfsetospeed(), cfgetospeed()
그외의 방법들:
하드웨어를 위한 outb,inb의 세밀한 프로그래밍에서는 프린터가 아닌 프린터 포트(port)를 사용하는 것을 좋아한다.
10. < 리눅스에 응용프로그램 포팅하기 (Porting Applications to Linux) >
리눅스 운영체제에 UNIX 응용프로그램을 포팅하는 것은 놀랄만큼 쉽다. 리눅스와 그것에 의해 사용되는 GNU C 라이브러리는 마음 속에 많은 응용프로그램들이 make라는 이슈(issue)에 의해 간단하게 컴파일될 수 있음을 의미하는 응용프로그램 호환성(portability)을 가지고 고안되어져 왔다. 일반적으로 특별한 구현이거나 문서화되지 않았거나 정의되지않은 행동들의 몇몇 모호한 특징을 사용하지 않는 것들을 특별한 시스템 호출이라 말한다.
리눅스는 대개 IEEE Std 1003.1-1988 (POSIX.1)에서 잘 수행지만, 실제로 그와같이 보증되지는 않았다. 똑같이 리눅스 또한 UNIX에서 걸러진 SVID와 BSD에서 발견되는 많은 특징들을 구현하지만, 모든 경우에 있어서 그것들에 집착할 필요는 없다. 대개, 리눅스는 다른 리눅스 구현들과 양립할 수 있고 응용프로그램의 포팅을 쉽게 할 수 있도록 고안되어왔고, 많은 예에서 그러한 구현들 안에서 발경할 수 있는 동작(behavior)을 수정하고 향상시켜왔다.
예제처럼, select 시스템 호출에 넘겨지는 timeout 아규먼트(argument)는 실제로 리눅스에 의해 poll operation을 수행하는 동안 감소되어진다. 다른 구현들은 이값을 전혀 수정하지 않고 이것을 기대하지 않고 있는 응용프로그램들은 리눅스에서 컴파일될 때 부서질 수 있다.select에 대한 BSD와 SunOS man 페이지는 "미래 구현(future implemetation)"에서 시스템 호출이 timeout 포인터를 수정할지 모른다고 경고하고 있다. 불행스럽게도, 많은 응용프로그램들은 여전히 그값이 변하지 않는다고 생각한다.
POSIX 방법:
tcgetattr(), tcsetattr(), tcsendbreak(), tcdrain(), tcflush(), tcflow(), tcgetpgrp(), tcsetpgrp(),cfsetispeed(), cfgetispeed(), cfsetospeed(), cfgetospeed()
그외의 방법들:
하드웨어를 위한 outb,inb의 세밀한 프로그래밍에서는 프린터가 아닌 프린터 포트(port)를 사용하는 것을 좋아한다.
10. < 리눅스에 응용프로그램 포팅하기 (Porting Applications to Linux) >
리눅스 운영체제에 UNIX 응용프로그램을 포팅하는 것은 놀랄만큼 쉽다. 리눅스와 그것에 의해 사용되는 GNU C 라이브러리는 마음 속에 많은 응용프로그램들이 make라는 이슈(issue)에 의해 간단하게 컴파일될 수 있음을 의미하는 응용프로그램 호환성(portability)을 가지고 고안되어져 왔다. 일반적으로 특별한 구현이거나 문서화되지 않았거나 정의되지않은 행동들의 몇몇 모호한 특징을 사용하지 않는 것들을 특별한 시스템 호출이라 말한다.
리눅스는 대개 IEEE Std 1003.1-1988 (POSIX.1)에서 잘 수행지만, 실제로 그와같이 보증되지는 않았다. 똑같이 리눅스 또한 UNIX에서 걸러진 SVID와 BSD에서 발견되는 많은 특징들을 구현하지만, 모든 경우에 있어서 그것들에 집착할 필요는 없다. 대개, 리눅스는 다른 리눅스 구현들과 양립할 수 있고 응용프로그램의 포팅을 쉽게 할 수 있도록 고안되어왔고, 많은 예에서 그러한 구현들 안에서 발경할 수 있는 동작(behavior)을 수정하고 향상시켜왔다.
예제처럼, select 시스템 호출에 넘겨지는 timeout 아규먼트(argument)는 실제로 리눅스에 의해 poll operation을 수행하는 동안 감소되어진다. 다른 구현들은 이값을 전혀 수정하지 않고 이것을 기대하지 않고 있는 응용프로그램들은 리눅스에서 컴파일될 때 부서질 수 있다.select에 대한 BSD와 SunOS man 페이지는 "미래 구현(future implemetation)"에서 시스템 호출이 timeout 포인터를 수정할지 모른다고 경고하고 있다. 불행스럽게도, 많은 응용프로그램들은 여전히 그값이 변하지 않는다고 생각한다.
추천자료
- 운영체제의 개념과 그 이해
- 운영체제 프로세스간의 통신
- 운영체제의 종류와 특징
- 운영체제란?
- 스마트폰 운영체제의 종류
- SCSI(스카시)와 BUS, SCSI(스카시)의 개념, SCSI(스카시)의 등장 배경, SCSI(스카시)의 장점,...
- [일본항공, 일본항공산업, 항공산업, 민영화, 노사관계]일본항공(일본항공산업)의 변천과정, ...
- 운영체제 hw os
- 지방정부의 BSC(Balanced Score Card) 운영체제 및 BSC의 실무적 체계와 운영상의 이슈
- [컴퓨터의 이해 공통] 1. 스마트 폰에 대하여 현재를 기준으로 아래의 사항을 A4 용지 2페이...
- 컴퓨터의이해1공통) 스마트폰 & QR코드에 대하여 서술 - 스마트폰의 정의와 대표적인 스...
- [영어영문학과 공통] 1. 본인이 사용 중이거나 또는 최신 스마트폰을 1개 선정하고 아래의 사...