본문 바로가기

리눅스

(26)
[리눅스] 리눅스포털 리눅스커널개발 과정 오늘, 리눅스 커널 개발과정 강의를 등록했습니다. 2개월 강의에 총 52개 강좌로 하루에 한강씩만 들을 예정입니다. 작년에 리눅스해킹보안관리과정과 운영체제론 과정을 완강했고, 컴퓨터과학 지식이였지만 개발할때도 도움이 많이 되었던것 같습니다. 최근 회사에서 C로된 서버라던가 윈도우 프로그래밍을 접하게 되면서 시스템에 대한 원론적인 이해가 필요하다는 생각이 들어, 작년까지만 해도 엄두를 못냈던 리눅스 커널 개발과정을 등록 하게 되었습니다. 커널프로그래밍이기때문에 결국 임베디드 프로그래밍하고도 연결이 되는데, 제가 SW 전공이라 실제로 임베디드 관련 개발을 해볼일은 없을것 같으나, 커널을 알아두면 개발을 할때 분명 많은 도움이 되리라 생각합니다. 개발에 있어서는 모르는것보다는 아는것이 늘 더 나은 법이라고 생..
[리눅스] 쉘을 이용한 프로그래밍 유닉스 프로그램을 만들 때 빠질 수 없는 쉘 프로그램에 대해 배워보도록 하겠습니다. 쉘프로그래밍은 많은 개발들이 그 중요성을 간과하고 넘어가지만 쉘 프로그램 만드는 법을 제대로 익히고 사용하면 비용과 시간을 많이 절약할 수 있는 아주 유용한 방법입니다. 외국에서 유닉스 프로그램을 만드는 사람들과 자주 같이 일을 해보면 쉘 프로그램을 많이 만들고 사용하는 것을 볼 수 있는데 그들에게 쉘 프로그램은 다른 기타 언어나 툴킷들과 동등한 수준의 툴로 인식되는 것 같았습니다. 다시 말해 쉘 프로그램이 문제를 해결하는데 적합할 것 같으면 그냥 그걸 쓴다는 것입니다. 그런 다음 C나 자바로 만든 다른 모듈들과 함께 그걸 사용하는 것입니다. 이번 포스팅에서는 쉘프로그램에서 사용하는 문법들을 먼저 소개한 다음 이를 이용하..
[리눅스] 쉘 명령어 유닉스 시스템과 사용자 사이의 인터페이스는 일반적으로 쉘이 담당하게 됩니다. 유닉스 시스템의 사용법을 익힌다는 것은 대체로 쉘에서 제공하는 각종 명령어들을 익힌다는 것이라 말할 수 있습니다. 이번 포스팅에서는 쉘에 대한 소개와 쉘에서 제공하는 각종 시스템 인터페이스를 소개하고 익히도록 하겠습니다. 쉘 명령어단일 명령을 실행하는 경우, 명령어 이름과 매개 변수(Argument)를 이용하게 되는데, 매개 변수의 경우 대부분 '-'와 알파벳 단어로 옵션을 부여한 다음 필요한 값들을 입력하게 됩니다. 명령어를 입력할 때, ;(세미콜론)을 이용하여 명령어들을 나열하게 되면 명령어가 순차적으로 실행이 됩니다. 그리고 명ㄹ령어 뒤에 &를 추가하면 프로그램이 백그라운드 프로세스로 실행이 되며, 명령어들을 &를 이용하여..
[리눅스] 유닉스의 발전 과정 및 리눅스 역사 리눅스의 개요리눅스는 1991년 핀란드 헬싱키 대학의 리누스 토발즈(Linus Benedict Torvalds)라는 학생에 의해 만들어진 운영체제입니다. 당시 21살의 학생이었던 리누스 토발즈는 앤디 타넨바움(Andy Tanebaum)교수가 학생들의 학습을 주목적으로 개발한 미닉스(MINIX)를 사용하던 중에 유닉스와 호환되는 공개된 운영체제의 개발 계획을 MINIX 사용자 모임에 발표하였습니다. 그는 개발한 운영체제가 "단지 취미이며 GNU처럼 거대하거나 전문적인 것은 아니다."라고 프로젝트 초기의 의도를 밝혔습니다. - 초기 리눅스의 특징 -초기의 리눅스는 이식성이 고려되지 않은, 다만 i386계열에서 운영되는 유닉스 호환 운영체제를 목표로 하는 프로젝트였다.초기 버전 0.01은 가장 기본적인 커널만..
[서버관리] SWAP 메모리 추가 할당 개발서버에서 애플리케이션 서버 2대에 버전관리서버, CI서버까지 동시에 구동하다 보니 간혹 버전관리서버에 소스코드가 업로드 될때나 CI서버에서 메모리 점유율이 높은 작업이 진행될때 우선순위가 낮은 작업이 중단되는 현상이 가끔 일어나곤 했습니다. 에러메시지를 가지고 원인을 찾다보니 할당된 SWAP 메모리가 부족할 경우, 그러한 현상이 일어난다고 합니다. 그럼 앞으로 이러한 문제가 다시 생기지 않도록 swap 메모리를 추가할당하는 방법을 알아보도록 하겠습니다. [root@localhost ~]# dd if=/dev/zero of=/home/swapfile bs=1024 count=10000001000000+0 records in1000000+0 records out1024000000 bytes (1.0 GB..