프로그래밍 QnA

익명 사용자의 이미지

커널 모드에서 커널 루틴이 호출되는 경우

커널 모드에서 커널 루틴이 호출되어 커널 소스가 실행되는 경우는
다음과 같다고 합니다

1. 프로세스에서 시스템 콜을 호출한 경우, 시스템 콜
2. 프로세스에서 예외를 발생시킨 경우, 예외 처리
3. 하드웨어가 CPU에 인터럽트 시그널을 보낸 경우, 인터럽트 핸들러
4. 커널 스레드를 실행한 경우

모듈 프로그램을 작성하여 실행시키면,

$ insmod test.ko

module_init()에 등록한,
test_init() 함수가 호출되면서
커널 모드에서 커널 루틴을 호출하여 커널 소스를 실행시킬 수 있습니다

이 경우는 위의 4가지 경우 중 어느 경우에 해당하나요?

답변 주시면 감사하겠습니다

gurumong의 이미지

어느정도 까지 데이터를 꼼꼼하게 검사해야할까요?

보통 프로그램 외부로 부터 받은 데이터가 유효한지에 대한 검사는 당연한것으로 알고있습니다
하지만 프로그램 내부적으로 처리되는 데이터는 어느정도까지 믿어야하는것인가요?

예를 들면 사용자로 부터 어떤 입력 값을 받고 그 데이터가 유효한지 체크한다음...
다음 작업을 위해 그 데이터를 어떤 함수로 넘겼습니다
그리고 그 함수 내부에서 조차 파라미터로 받은 데이터가 함수내부에서 처리하기 적절한지 또 값의 범위검사라던지 그런것들을 거칩니다

결과적으로는 똑같지는 안지만 비슷한 작업을 두번 세번 반복해서 처리하게 되는데요
이러한것이 프로그램과 프로그래머의 효율을(시간적, 에너지적!?) 낮추는것 같습니다

이것에 대해서 제가 알아야할것이 무엇이 있을까요?
작은 고민인데, 자꾸 신경이 쓰이는 문제라 답을 듣고 싶습니다 T.T

gate21의 이미지

centos에서... tomcat 7을 깔려는데..

깔고..

서비스 등록하고.. 환경변수 설정하고..

service tomcat start 하니까.. 그... catalina파일에.

gate21의 이미지

php관련 질문인데요...

요즘에.. php 프로그램 공부 하고 있는데요..

집에있는컴퓨터에 centos 설치하고..

php도 설치하고.. mysql도 설치 했거든요..?

근데.. 이상한게..

<? //내용 ?> 이렇게 쓰잖아요.. 그럼 그냥 빈페이지뜨고 <?php //내용 ?> 이렇게 쓰면 또 잘뜨더군요.. 차이점좀 알려주세요..!

그리고.. form 태그 사용해서..

submit.html 을

name :


대충이렇게 만들고... 입력한다음 result.php를
<?php
echo("my name is $name");
?>
이렇게 했더니 그냥 my name is 만뜨네요...

이것도 좀... 왜그런지 알려주세요....;;

gate21의 이미지

php관련 질문인데요...

요즘에.. php 프로그램 공부 하고 있는데요..

집에있는컴퓨터에 centos 설치하고..

php도 설치하고.. mysql도 설치 했거든요..?

근데.. 이상한게..

<? //내용 ?> 이렇게 쓰잖아요.. 그럼 그냥 빈페이지뜨고 <?php //내용 ?> 이렇게 쓰면 또 잘뜨더군요.. 차이점좀 알려주세요..!

그리고.. form 태그 사용해서..

submit.html 을

name :


대충이렇게 만들고... 입력한다음 result.php를
<?php
echo("my name is $name");
?>
이렇게 했더니 그냥 my name is 만뜨네요...

이것도 좀... 왜그런지 알려주세요....;;

익명 사용자의 이미지

RS232C 통신 관련

모터드라이버를 가지고 있습니다.

모터 제어를 하기 위해서 아두이노 보드와 TTL-RS232C 컨버터(MAX3232)를 사용하려고 합니다.

모터드라이버 제조사의 모니터링 프로그램을 사용하면 모터가 잘 작동됩니다.

간단한 시리얼 통신용 프로그램을 작성하여서 아두이노 보드와 TTL-RS232C 컨버터를 통해서 통신을 하면
PC와 통신이 잘 이루어집니다.

그런데 모터드라이버와 아두이노 보드를 연결하면 동작하지 않습니다.

아무래도 제가 잘 모르고 있는 부분이 있는 것 같습니다.
제가 놓치고 있는게 무엇인가요?

익명 사용자의 이미지

소켓 프로그래밍 관련 질문입니다.

소켓 프로그래밍을 입문해서 이제 막 공부를 시작했는데요,
궁금한게 생겨 이렇게 질문 드립니다.

TCP/IP를 이용하면 신뢰할 수 있는 데이터 전송이 보장되고,
Application level에서 프로그래밍을 할 때 서버와 클라이언트 간 프로토콜을 정의해야 한다고 배웠습니다.

만약 클라이언트에서 write(sock, buffer, 100);과 같이 데이터를 전송하고
처음 10 바이트에 헤더 정보가 있어서
서버에서 read(sock, buffer, 10)과 같이 헤더 데이터를 먼저 받는다고 할 때에

이렇게 read로 데이터를 읽는다고 하면 서버쪽 socket 버퍼에 클라이언트에서 보낸 데이터가 10바이트 이상 들어왔다는 가정이 있어야 하는데
이런건 따로 확인 안해도 되는건가요? 만약 아직 5바이트만 들어왔는데, read(sock, buffer, 10)이 호출되면 5바이트만 들어올텐데 이런 경우도 대비해서 코딩해야겠죠?

declspec의 이미지

netfilter 후킹

넷필터로 리눅스상의 네트워크체인에 후킹을 걸때
우선순위를 정할수가 있는데요

제가 올린 모듈이 PRE ROUTING 에다가 우선순위를 1 로 해서 걸었는데
다른 모듈도 똑같이 PRE ROUTING 에다가 1로 체인을 걸면
누구께 먼저 호출되나요??

declspec의 이미지

전역변수에 static

리눅스 커널모듈의 소스중에
전역변수에 static 을 붙이는 경우가 있는데
이걸 붙이는게 어떤 의미가 있는거죠??

또한 함수앞에 static 을 붙이는건 어떤 의미인가요?

페이지

프로그래밍 QnA 구독하기