• Title/Summary/Keyword: 리눅스 커널

Search Result 318, Processing Time 0.023 seconds

Binary-level Dynamic Compiler for Driver Fault Isolation (드라이버 고장 분리를 위한 바이너리 수준 동적 컴파일러)

  • Lee, Dong-Woo;Kim, Jung-Han;Eom, Young-Ik
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2011.06b
    • /
    • pp.401-404
    • /
    • 2011
  • 운영체제와 같은 대규모 프로그램은 확장을 용이하게 하기 위해 장치 드라이버를 모듈 구조를 통해 동작시킨다. 그러나 이러한 드라이버 모듈은 커널과 분리되어 개발되기 때문에 상대적인 취약성을 가지고 있다. 이러한 취약성으로 인해 발생한 고장은 드라이버뿐만 아니라 커널 전체에 오류를 야기해 시스템의 안정성을 저하시키는 요인이 된다. 이러한 문제를 해결하기 위해 안전하지 않은 드라이버를 커널로부터 격리하고자 하는 논의가 진행되었고, 이후 많은 연구를 통해 여러 가지 접근 방식을 통한 해결방법이 제안되었다. 그러나 기존의 방법은 드라이버 소스코드의 수정이 필요하거나 드라이버 요청에 대한 응답속도가 매우 느린 현실적인 제약이 있었다. 본 논문에서는 기존방법의 한계를 극복하는 동적 컴파일러를 이용한 고장 분리 기법을 제안한다. 본 제안 기법은 기존 드라이버를 그대로 사용가능하며 기존 기법의 분리 정책을 모두 적용할 수 있다. 리눅스 커널에 본 제안기법을 적용하여 동적 컴파일러의 성능을 측정하고 본 제안 기법의 특성을 기존 기법과 비교함으로써 본 제안기법이 매우 적은 부하만으로 장치 드라이버의 고장 분리가 가능함을 확인하였다.

Caching and Prefetching Policies Using Program Page Reference Patterns on a File System Layer for NAND Flash Memory (NAND 플래시 메모리용 파일 시스템 계층에서 프로그램의 페이지 참조 패턴을 고려한 캐싱 및 선반입 정책)

  • Park, Sang-Oh;Kim, Kyung-San;Kim, Sung-Jo
    • The KIPS Transactions:PartA
    • /
    • v.14A no.4
    • /
    • pp.235-244
    • /
    • 2007
  • Caching and prefetching policies have been used in most of computer systems to compensate speed differences between primary memory and secondary storage devices. In this paper, we design and implement a Flash Cache Core Module(FCCM) on the YAFFS which operates on a file system layer for NAND flash memory. The FCCM is independent of the underlying kernel in order to support its stability and compatibility. Also, we implement the Dirty-Last memory replacement technique considering the characteristics of flash memory, and the waiting queue for pages to be prefetched according to page hit. The FCCM reduced the number of I/Os and the amount of prefetched pages by maximum 55%(20% on average) and maximum 55%(24% on average), respectively, comparing with caching and prefetching policies of Linux.

A Study for Task Detection Acquiring Abnormal Permission in Linux (리눅스의 비정상 권한 획득 태스크의 탐지방법 연구)

  • Kim, Won-Il;Yoo, Sang-Hyun;Kwak, Ju-Hyun;Lee, Chang-Hoon
    • KIPS Transactions on Computer and Communication Systems
    • /
    • v.3 no.11
    • /
    • pp.427-432
    • /
    • 2014
  • The Purpose of local system attacks is to acquire administrator's(root) privilege shell through the execution of the malicious program or change the flow of the program. This acquiring shell through attack is still valid approach method and it is difficult to cope with improving each of vulnerability because the attacker can select various forms of attack. Linux allocate a set of credentials when login, in order to manage user permissions. Credentials were issued and managed by the kernel directly, and also the kernel ensures that any change cannot be occurred outside of kernel. But, user's credentials that acquired root privilege through system attacks occurs a phenomenon that does not remain consistent. In this paper we propose a security module to detect a security threats that may cause to users and tasks by analysis user task execution and inconsistency credentials.

Dynamic Scheduling of Network Processes for Multi-Core Systems (멀티 코어 시스템에서 통신 프로세스의 동적 스케줄링)

  • Jang, Hye-Churn;Jin, Hyun-Wook;Kim, Hag-Young
    • Journal of KIISE:Computing Practices and Letters
    • /
    • v.15 no.12
    • /
    • pp.968-972
    • /
    • 2009
  • The multi-core processors are being widely exploited by many high-end systems. With significant advances in processor architecture, the network band-width required on the high-end systems is increasing drastically. It is therefore highly desirable to manage multiple cores efficiently to achieve high network band-width with minimum resource requirements. Modern operating systems, however, still have significant design and optimization space to leverage the network performance over multi-core systems. In this paper, we suggest a novel networking process scheduling scheme, which decides the best processor affinity of networking processes based on the processor cache layout, communication intensiveness, and processor loads. The experimental results show that the scheduling scheme implemented in the Linux kernel can improve the network bandwidth and the effectiveness of processor utilization by 20% and 59%, respectively.

Block Device Driver of Linux for Accessing the NRD (NRD 접근을 위한 리눅스 블록 디바이스 드라이버)

  • Son, Tae-Yeong;Rim, Seong-Rak
    • Journal of the Korea Academia-Industrial cooperation Society
    • /
    • v.16 no.5
    • /
    • pp.3399-3406
    • /
    • 2015
  • NRD(Network RamDisk) is a scheme which allows a system to use the memory of the remote systems just as his own block device via networking. Basically, it consists of a client requesting an NRD access and server providing the NRD. In this paper, we describe the design, implementation and experiment of the block device driver for accessing the NRD in the Linux kernel(2.6) level. First of all, we have analyzed the flow of processing the requests for accessing the block devices in the traditional Linux kernel and figured out the additional functions required for supporting the NRD. Then we have designed and implemented the device diver of NRD client and NRD server for providing these functions. Finally, we have established a NRD server system, and reviewed its functional feasibility by experimenting the requests of NRD access through the NRD device driver implemented on a NRD client.

Kernel-level Software instrumentation via Light-weight Dynamic Binary Translation (경량 동적 코드 변환을 이용한 커널 수준 소프트웨어 계측에 관한 연구)

  • Lee, Dong-Woo;Kim, Jee-Hong;Eom, Young-Ik
    • Journal of Internet Computing and Services
    • /
    • v.12 no.5
    • /
    • pp.63-72
    • /
    • 2011
  • Binary translation is a kind of the emulation method which converts a binary code compiled on the particular instruction set architecture to the new binary code that can be run on another one. It has been mostly used for migrating legacy systems to new architecture. In recent, binary translation is used for instrumenting programs without modifying source code, because it enables inserting additional codes dynamically, For general application, there already exists some instrumentation software using binary translation, such as dynamic binary analyzers and virtual machine monitors. On the other hand, in order to be benefited from binary translation in kernel-level, a few issues, which include system performance, memory management, privileged instructions, and synchronization, should be treated. These matters are derived from the structure of the kernel, and the difference between the kernel and user-level application. In this paper, we present a scheme to apply binary translation and dynamic instrumentation on kernel. We implement it on Linux kernel and demonstrate that kernel-level binary translation adds an insignificant overhead to performance of the system.

Improvement of Linux Schedulability Analysis for Simultaneous Support of Real-Time Task Groups and Deadline Task (실시간 태스크 그룹과 데드라인 태스크의 동시 지원을 위한 리눅스 스케줄링 가능성 분석 개선)

  • Yim, Yin-Goo;Jin, Hyun-Wook;Lee, Sang-Hun
    • KIISE Transactions on Computing Practices
    • /
    • v.23 no.7
    • /
    • pp.452-457
    • /
    • 2017
  • Linux is a general-purpose operating system that supports several schedulers, allowing different schedulers to coexist. In addition, Linux uses the Control Group (cgroup) to reserve CPU resources for task groups that follow the real-time (SCHED_FIFO, SCHED_RR) and non-real-time (SCHED_NORMAL) scheduler policies, except for the deadline scheduler (SCHED_DEADLINE). The cgroup performs the schedulability analysis to guarantee the reserved CPU resource as much as possible. However, current implementation of the schedulability analysis does not distinguish between deadline tasks and real-time tasks. Therefore, if these deadline tasks and real-time task groups coexist, there is a case where the resource reservation for the real-time task group is rejected. In this paper, we analyze the problems in the schedulability analysis for real-time task groups of Linux cgroups and propose patches to solve these problems.

Analysis of Linux Service Management System According to Boot Process Change (부트 프로세스 변화에 따른 리눅스 서비스 관리 시스템 분석)

  • Jung, Sung-Jae;Bae, Yu-Mi;Soh, Wooyoung
    • Journal of Advanced Navigation Technology
    • /
    • v.21 no.1
    • /
    • pp.78-83
    • /
    • 2017
  • Linux was born under the influence of Unix except for the kernel, Linux was used to bring the Unix system and relevant program package, commands, etc. However, the latest version of Enterprise Linux, RHEL 7 was adopted systemd instead of init to boot program and management services. The adoption of systemd was building its own Linux system, the system only. Also noteworthy point is that given the considerable number of features specific to a particular package and instructions. As Linux has been recognized as a subtype of Unix itself as a catch all this time the turn of the tide in the cloud era and there on their own to try various changes, the start of the adoption of these changes can be called systemd. Linux is the future beyond the confines of Unix is noteworthy not attempt any changes.

A Remote Debugging Scheme for Multi-process Applications in Linux Environments (리눅스 환경에서의 다중 프로세스 응용에 대한 원격 디버깅 기법)

  • 심현철;강용혁;엄영익
    • Journal of KIISE:Computing Practices and Letters
    • /
    • v.8 no.6
    • /
    • pp.630-638
    • /
    • 2002
  • Debugging for application Programs running in embedded Linux systems has mostly been done remotely due to the limited resources of the target systems. The gdb, which is one of the most famous debugger in Linux systems, does not support the debugging of the child processes which is created by the fork system call in local and remote environments. Therefore, by using gdb, developers can debug the application programs that have single-process structure in local and remote environments, but they cannot debug the application programs that have multi-process structures by using gdb in remote environments. Also, although developers can debug the application programs that have multi-process structures by using gdb in local environments, it needs additional and unnecessary codings. In this paper, we presents the remote debugging scheme that can be used for debugging multi-process structured applications. The proposed scheme is implemented by using the library wrapping scheme, and also uses the conventional system components such as gdb and gdbserver.

Improved Cache-hot Page Allocation Technique for Reducing Page Initialization Latency of Linux Based Systems (리눅스 기반 시스템의 페이지 초기화 지연 단축을 위한 향상된 캐시-핫 페이지 할당 기법)

  • Yang, Seokwoo;Noh, Sunhyeon;Hong, Seongsoo
    • Proceedings of the Korean Society of Computer Information Conference
    • /
    • 2019.01a
    • /
    • pp.415-418
    • /
    • 2019
  • 최근 사용자 대화형(user-interactive) 응용들은 OS에게 많은 양의 메모리를 빈번하게 요구한다는 특징을 보인다. 응용의 메모리 할당 요청이 발생하면 OS는 할당할 페이지의 초기화 작업을 필수적으로 수행하는데, 빈번하게 발생하는 페이지 초기화 작업이 응용의 성능을 저하시키고 있다. 기존 리눅스 기반 시스템은 페이지 초기화 지연을 단축하기 위해 CPU의 캐시에 매핑되어 있어서 초기 값을 빠르게 쓸 수 있는 페이지인 캐시-핫(cache-hot) 페이지를 우선적으로 할당한다. 하지만 기존 리눅스는 각 코어별로 캐시-핫 페이지를 인식하고 관리하며, 다른 코어가 관리하는 캐시-핫 페이지에는 접근할 수 없다. 이러한 정책 때문에 다른 코어가 공유 캐시(shared cache)에 매핑된 캐시-핫 페이지를 관리하고 있더라도, 이를 할당받지 못하고 캐시-콜드(cache-cold) 페이지를 할당받는 경우가 발생한다. 본 논문에서는 공유 캐시에 매핑된 것으로 추정되는 캐시-핫 페이지를 별도로 인식하고 공유 캐시에 매핑된 것으로 추정되는 캐시-핫 페이지를 모든 코어가 활용할 수 있게 하여, 응용이 캐시-핫 페이지를 할당받을 확률을 기존 기법보다 높이는 향상된 캐시-핫 페이지 할당 기법을 제안한다. 제안된 기법은 페이지 할당 요청이 발생하면 먼저 각 코어의 사유 캐시에 매핑된 것으로 추정되는 캐시-핫 페이지를 우선적으로 할당하고, 할당에 실패하면 공유 캐시에 매핑된 것으로 추정되는 캐시-핫 페이지를 할당한다. 이를 통해 캐시-핫 페이지를 할당받을 확률을 기존 기법보다 높이고, 결과적으로 평균 페이지 초기화 지연을 단축한다. 제안된 기법을 리눅스 커널 4.18.10버전 기반 환경에서 구현하여 실험한 결과, 평균 페이지 초기화 지연이 기존 리눅스 시스템과 비교하여 약 7% 단축되었다.

  • PDF