한국 개발업체에서 절대 리눅스 전문가가 나올 수 없는 이유(2: 쓰레기 관리자들)
By Guillermo Austin Kim | 2018년 11월 12일 |
From한국 개발업체에서 절대 리눅스 전문가가 될 수 없는 이유(1) - SW문화 2. 쓰레기 관리자들운이 좋게 개발 능력을 키워가는 고참 개발자가 보이면 한국 개발 업체 조직 책임자들은 투명 완장을 채워준다.개발과 관리를 동시에 하라는 것이다. 개발자가 조직 책임자에게 개발만 집중하고 싶다라고 말하면 조직 책임자는 업무의 폭이 좁다라고 말한다.업무의 폭이라? 고참 개발자가 되면 개발과 관리를 동시에 진행해서 프로젝트를 리딩해야 한다는 소리다. 그럼 고참 개발자에게 관리를 시키는 이유가 뭘까? 그 이유는 간단한다.고참 개발자에게 관리 업무를 시키면 그 위 조직 책임자는 편하게 일할 수 있기 때문이다.고참 개발자가 관리를 하면 우선 자신은 최신 기술에 대해 파악할 필요가 없다. 고참 개발자에게 투명 완
[bash: grep] 파일 안에 섞인 바이너리(binary) 데이터 제거
By 반달가면 | 2018년 4월 20일 |
텍스트 파일에 뭔가 문제가 생겨서 중간에 바이너리(binary) 데이터가 포함된 경우 이를 제거하기 위한 방법이다. 간혹 텍스트 중간에 바이너리 바이트가 일부 삽입되어 있는 희한한 상태로 인하여 다른 부분에서 작업이 안되는 문제가 있어서 고육지책으로 셸 스크립트(shell script)를 만들어서 제거했다. 파일 내용을 한줄씩 읽어서 혹시라도 내용 중간에 바이너리가 있을 경우 이를 제외한 나머지만 모아서 별도의 파일로 다시 저장하도록 했다. 아래와 같이 작업. # 탭을 변수로 할당 tab=`echo -e "\t"` # 대상 파일: ~/my_file.txt target_file=~/my_file.txt # 결과 파일: ~/my_file.txt.result res_file=~/my_file.
도커(Docker) 컨테이너에서 변경한 사항을 다른 이미지로 저장하기
By 반달가면 | 2020년 4월 29일 |
도커(Docker) 이미지(image)를 실행하면 컨테이너(container)가 생성된다. 이미지를 실행한 후에 이런 저런 작업을 해서 변경할 경우 컨테이너의 내용이 변경되는 것이고 이미지는 변경되지 않는다. (컨테이너가 종료되면 변경사항은 모두 사라진다) 예를 들어 ubuntu 이미지를 실행하고 vim 에디터를 설치하는 상황을 가정해 보자. # 이미지 목록 확인 sudo docker images # ubuntu 이미지 실행(-it 옵션, bash 사용) sudo docker run -it ubuntu 위와 같이 실행하면 ubuntu 이미지로부터 컨테이너가 생성되고, -it 옵션을 주었기 때문에 bash 명령 프롬프트를 통해 컨테이너에 접속된다. 이제 이 상태에서 아래와 같이 입력해
[리눅스커널] 워크큐: 딜레이 워크는 누가 언제 호출할까?
By Guillermo Austin Kim | 2019년 2월 21일 |
이전 소절에서는 schedule_delayed_work() 함수를 호출하면 동적 타이머를 실행해서 지정한 지연 시각 후에 동적 타이머 핸들러인 delayed_work_timer_fn() 함수가 실행되도록 한다고 했습니다. 이번 소절에서는 delayed_work_timer_fn() 함수가 어떻게 호출되는지 살펴봅니다. delayed_work_timer_fn() 함수는 언제 실행할까요? 동적 타이머 만료 시각에 도달하면 Soft IRQ 컨택스트에서 delayed_work_timer_fn() 함수를 호출합니다. Soft IRQ 전체 구조와 흐름은 8장(커널 타이머)에서 상세히 다룹니다. Soft IRQ 개념이 익숙하지 않은 분은 8장을 먼저 읽고 오시면 됩니다. 먼저 delayed_work_ti