프로그래밍 QnA + 설치 및 활용 QnA

wangmir의 이미지

ubuntu 10.10에서 gcc 2.95 버젼 깔기

예전 컴파일러를 쓸필요가있어 gcc 및 gpp, cpp 등등을 예전버전으로 다운그레이드 해서 gcc 3.36버젼을 설치했었는데,

3.36버전에서도 make할때 에러가나네요.. 받은 src에서 바로 make했을 때는 에러가나지않지만, make clean 후에 make를 하면 에러가나는...

하여간 그래서 원래 이 소스를 컴파일하라고 했던 2.95버전 컴파일러를 설치하려고하는데요...

ubuntu 10.10에서 이걸 설치할 방법이없을까요???

athxue의 이미지

Linux에서 상호배제 질문입니다~

지금 구현하려고 하는 프로그램이 여러개의 프로세스가 각각 쓰레드들을 만들고 시스템에 딱 하나만 있는 자원을 공유해서 사용하려고 합니다.
이때 상호배제를 하기 위해서 semop를 통해 상호 배제를 하면 상호배제가 가능할까요?
가령 pthread로 만든 쓰레드를 위해 추가적으로 mutex를 한번 더 잡아주어야 되는건지 궁금합니다.

그리고 한 프로세스가 세마포어를 잡고 있다 죽었을때 잡았던 세마포어가 자동으로 풀리는건가요? 아니면 잡은상태로 유지되어서 다른 프로세스가
세마포어를 잡을때 데드락이 발생할 수 있을까요?

dorado2의 이미지

특정 RAM 영역 mmap 제한 방법?


BIOS에 의해 reserved된 영역이 있습니다. (수 kB 정도. /proc/iomem 쪽을 보면 reserved로 보이는 상태)

해당 영역에는 특정 데이터가 존재하고, 이 데이터를 읽어서 사용합니다.
ioremap나 mmap(/dev/mem 사용) 모두 읽어오는데 문제는 없습니다.

문제는 이 영역의 접근을 제한하고 싶다는데 있습니다.
하나의 device driver만 해당 영역을 ioremap해서 쓰고 싶은데요.
그리고 ioctl을 사용한 데이터 접근시 capabilities를 사용해서 (CAP_SYS_ADMIN 등)
특정 권한을 가진 사용자만 읽을 수 있게 하려고 합니다.

문제는 해당 영역을 mmap하면 다른 응용프로그램에서도 읽어갈 수가 있는데, 이를 막을 방법이 있을까요?
STRICT_DEVMEM config는 제외하고요.

mmap할 때 해당 영역은 못하도록 kernel source를 고쳐야 할까요? side-effect나 속도 저하가 없을지 우려가 되어서..

xerak의 이미지

wav 파일에서 특정 바이트에 있는 16진수 값을 (리틀엔디안) 읽어와서 정수로 바꾸고 싶습니다.

안녕하세요. 부족한 제 실력때문에 몇일째 고생하고 있습니다. ㅠㅠ

wav파일을 헥사에디터(울트라에디터 사용)를 열어보면 그림과 같습니다.
(첨부한 그림 참고해주세요^^;)

여기서 예를들어서 37바이트 부터 4바이트( 64 61 74 61) 를 읽어서 정수로 변환하고 싶습니다.

fseek으로 포인터를 옮겨서 원하는 부분만 잘라내어서

char *buf; 를 선언하여 buf에다가 넣어두었습니다. (buf에는 data 라는 문자열이 들어가있음).
( buf 안에 들어간 data라는 값이 문자열 인가요? 16진수 인가요? )

제가 질문드리고 싶은 것은

이 data라는 문자가 리틀엔디안이기 때문에 61746164(16진수)를 10진수로 변환하면 1635017060 이 되는데

이 10진수 값을 구하고 싶습니다.

어떻게 구하면 좋을까요? 답변 부탁드립니다. 짧은 조언이라도 부탁드려요.

-윈도우 환경에서 비주얼 스튜디오 2008을 사용하고 있습니다.

widgie의 이미지

OpenBSD 파이썬 경로가 이상한거 같습니다

안녕하세요.

OpenBSD 4.8을 설치하였는데요

Node.js 좀 테스트 해볼려구요..

./configure를 실행하면

env: Python; file not found <- 대충 이런.. 경로가 없다는 메시지가 나오네요

그러나 제가 alias로 python=python2.5 해놨구요

pkg_add로 설치했습니다(/usr/local/bin/python에 설치되어있더군요..)

다만 이상한거는 which python 하면 경로를 못 찾구요..

이럴땐 어떻게 해결해야 할까요

도움 좀 부탁드립니다~~

익명 사용자의 이미지

파일이 자꾸 깨집니다.

커널 컴파일을 하고 있는데 이상하게도 자꾸 segfault를 내면서 죽는 현상이 있더군요.

임시로 생성된 파일을 보면 그 내용이 깨져 있어서 지우고 다시 컴파일 하곤 했는데
이게 랜덤으로 발생하니 파일 시스템이 의심이 들더군요.
그냥 두는게 아니다 싶어서 간단한 테스트를 해봤습니다.

방법은 간단합니다.

cp -ap kernel.orig kernel.copy
diff -ru kernel.orig kernel.copy > copy.diff
lsdiff copy.diff

그러면 희안하게도 어쩔땐 멀쩡하고 어쩔땐 파일 한개정도가 망가져 있습니다. 다음과 같은 식입니다.
- else {
- if (target_pid != -1)
+ else k
+ if (|arget_pqd != -19

dingkyu의 이미지

사설 IP를 가진 일반 컴퓨터와 외부의 공인 IP를 가진 서버와의 UDP 통신상의 고민입니다.

위 그림과 같은 상황이 있습니다.

서버는 UDP통신만 지원하고 하나의 UDP소켓을 열어놓고 입력을 대기 중입니다.
각 노드들은 먼저 서버로 특정 데이터를 전송해서 (노드들은 서버의 주소를 미리 알고 있습니다.)자신의 존재를 서버에게 알립니다. 그 다음 서버는 위 그림에서 어느 한 노드가 데이터를 서버로 전송하면, 서버는 그 데이터를 받아 나머지 노드들에게 전달해야 합니다.

서버는 각 노드들의 IP 주소를 보관하고 있다가 데이터를 보낸 IP를 제외하고 나머지 리스트의 IP 주소들에게 받은 데이터를 다시 전송하도록 하면 되겠다 싶었는데, 제가 공부한 바로는 UDP통신은 상대방의 IP address 밖에 모르는 것으로 알고 있습니다. 즉, 위 상황에서는 제가 알기로는 3개의 노드들이 전부 서버에 접속하게 되면 서버에서는 전부 동일한 IP를 사용하는 노드로 인식할 것이라는 겁니다.

academic의 이미지

oom-killer가 나타났을 때 어떤 프로세스가 메모리를 많이 차지하고 있는지 알 수 있는 방법이 뭘까요?

잘 돌아가던 시스템이 최근 들어 몇번 oom-killer가 나타나서 시스템이 먹통이 되는 경우가 발생하네요.

뭐가 문제인지 알아내기가 힘드네요.

oom-killer가 나타났을 때 어떤 프로세스가 메모리를 많이 차지하고 있는지 알 수 있는 방법이 뭘까요?

red10won의 이미지

nginx 언제 대세가 될까요?

아직 현시장은 apache인거 같습니다
다들 nginx 좋다 좋다 하지만 왜이렇게 대세가 되지 못할가요?

[드루팔]이나 [카산드라도]도 아직까진 좀 기다려보지 인가요 ㅋ?

http://blog.webfaction.com/a-little-holiday-present

페이지

프로그래밍 QnA + 설치 및 활용 QnA 구독하기