'kernel'에 해당되는 글 2건

  1. 2010.09.21 Ubuntu Kernel Compile 버전 정보
  2. 2010.09.21 커널의 종류(kind of kernels)
Linux/Ubuntu2010. 9. 21. 01:20
시냅틱 패키지로 받아서 설치했는데, 어디서 이 버전 정보가 묻어 온걸까?

./.config:3:# Linux kernel version: 2.6.32.15+drm33.5
./.config:73:CONFIG_VERSION_SIGNATURE="Ubuntu 2.6.32-24.42-generic 2.6.32.15+drm33.5"
./Makefile:4:EXTRAVERSION = .15+drm33.5
./include/config/auto.conf:3:# Linux kernel version: 2.6.32.15+drm33.5
./include/config/auto.conf:955:CONFIG_VERSION_SIGNATURE="Ubuntu 2.6.32-24.42-generic 2.6.32.15 drm33.5"
./include/config/auto.conf.cmd:519:ifneq "$(KERNELVERSION)" "2.6.32.15+drm33.5"
./include/config/kernel.release:1:2.6.32.15+drm33.5
./include/linux/utsrelease.h:1:#define UTS_RELEASE "2.6.32.15+drm33.5"
./include/linux/autoconf.h:3: * Linux kernel version: 2.6.32.15+drm33.5
./include/linux/autoconf.h:956:#define CONFIG_VERSION_SIGNATURE "Ubuntu 2.6.32-24.42-generic 2.6.32.15+drm33.5"

아마.. 최초의 녀석인 Makefile에 기본으로 들어있던 정보 같은데.
이녀석 때문에 /lib/modules에 설치되는 경로도 달라졌고, 그로인해 mkinitramfs 까지 문제가 줄줄이 생겼다.

다음부터는 반드시.. Makefile 에서 EXTRAVERSION 이런걸 좀 확인해야겠다.
Posted by 구차니
Linux2010. 9. 21. 00:19
애플 빠돌이인 후배에게 MacosX가 좋아?
라는 질문에 문득 맥은 어떤 커널구조인가 호기심 발동.

일단 Mac의 커널은 NeXTstep의 영향으로 micro kernel을 받아들이고 있고,
퍼포먼스 측면의 문제로, 일부는 모노리딕 커널의 형태를 지닌, 결과론적으로 '하이브리드 커널' 형태를 지니고 있다.


모노리딕 커널은 현재 Linux 에서 채용하고 있는 커널의 구조이며,
모든 OS의 기능을 커널 영역(kernel space <-> user spcae)에서 관리자 모드(supervisor mode)로 구동한다.
 A monolithic kernel is a kernel architecture where the entire operating system is working in the kernel space and alone as supervisor mode.

이에 반해, 마하 커널은
최소한의 기능만을 커널 영역에서 관리자 모드로 실행하며, 나머지 기능들을 유저 모드에서 실행을 한다.
다르게 말하면, 사용자별로 분리되어 작동하므로 커널을 침범하지 않아 보안의 문제가 줄어들며
개별유저가 시스템 전체를 망가트릴 정도로 문제가 확대되지 않는 구조적인 장점을 갖는다.

하지만, 이는 프로세스 간의 통신(IPC)에 부하가 많아지므로 전체성능이 오히려 떨어질 수 있는 우려가 있다.
 The microkernel approach consists of defining a simple abstraction over the hardware, with a set of primitives or system calls to implement minimal OS services such as memory management, multitasking, and inter-process communication. Other services, including those normally provided by the kernel, such as networking, are implemented in user-space programs, referred to as servers. Microkernels are easier to maintain than monolithic kernels, but the large number of system calls and context switches might slow down the system because they typically generate more overhead than plain function calls.


간단하게 예를 들자면, 리눅스의 경우 Xwindow와 같은 그래픽 계열은
전부 User spcae에서 돌리는데 이로 인해 초기의 Xwindow는 MS Windows에 비하면 상당히 반응속도도 느렸는데
이는 리눅스는 monolithic kernel + user space Xwindow application 조합이었고
윈도우즈는 커널과 그래픽 부분이 결합되었기 때문에 통신에 대한 부하가 적었기 때문이다.
하지만, 이러한 구조적 차이로 리눅스는 가벼운 커널을 유지한 반면, MS Windows는 무거운 커널을 지니게 되었다.

머.. 현재의 시스템은 충분히 빨라졌고 알고리즘의 향상으로
Xwindow나 MS windows나 아주 큰 속도의 차이는 나지 않는것 같기 때문에 굳이 구분할 이유가 있나 싶기도 하다.
아무튼, 결국에는 하이브리드로 수렴하지 않을까 싶다.

[링크 : http://bugtruck.tistory.com/196]
[링크 : http://en.wikipedia.org/wiki/Kernel_%28computing%29]
    [링크 : http://en.wikipedia.org/wiki/Monolithic_kernel]
    [링크 : http://en.wikipedia.org/wiki/Hybrid_kernel]
    [링크 : http://en.wikipedia.org/wiki/Mach_kernel]
[링크 : http://en.wikipedia.org/wiki/Mac_OS_X]

'Linux' 카테고리의 다른 글

WOL on Linux - ether-wake  (0) 2010.10.05
POSIX - Portable Operating System Interface [for Unix]  (6) 2010.09.21
bash - 이전 디렉토리로 이동하기 move to previoud directory  (2) 2010.09.19
mkinitramfs  (0) 2010.09.19
top (1) - load average ?  (4) 2010.09.12
Posted by 구차니