- Mastering Linux Kernel Development
- Raghu Bharadwaj
- 278字
- 2021-07-08 09:47:20
Namespaces and cgroups
Users logged into a Linux system have a transparent view of various system entities such as global resources, processes, kernel, and users. For instance, a valid user can access PIDs of all running processes on the system (irrespective of the user to which they belong). Users can observe the presence of other users on the system, and they can run commands to view the state of global system global resources such as memory, filesystem mounts, and devices. Such operations are not deemed as intrusions or considered security breaches, as it is always guaranteed that one user/process can never intrude into other user/process.
However, such transparency is unwarranted on a few server platforms. For instance, consider cloud service providers offering PaaS (platform as a service). They offer an environment to host and deploy custom client applications. They manage runtime, storage, operating system, middleware, and networking services, leaving customers to manage their applications and data. PaaS services are used by various e-commerce, financial, online gaming, and other related enterprises.
For efficient and effective isolation and resource management for clients, PaaS service providers use various tools. They virtualize the system environment for each client to achieve security, reliability, and robustness. The Linux kernel provides low-level mechanisms in the form of cgroups and namespaces for building various lightweight tools that can virtualize the system environment. Docker is one such framework that builds on cgroups and namespaces.
Namespaces fundamentally are mechanisms to abstract, isolate, and limit the visibility that a group of processes has over various system entities such as process trees, network interfaces, user IDs, and filesystem mounts. Namespaces are categorized into several groups, which we will now see.
- Android項(xiàng)目開發(fā)入門教程
- Python金融數(shù)據(jù)分析
- 深度學(xué)習(xí):算法入門與Keras編程實(shí)踐
- Effective Python Penetration Testing
- C語(yǔ)言程序設(shè)計(jì)
- Getting Started with Greenplum for Big Data Analytics
- SQL基礎(chǔ)教程(第2版)
- Visual C++開發(fā)入行真功夫
- 深入淺出React和Redux
- Natural Language Processing with Python Quick Start Guide
- 零基礎(chǔ)學(xué)C++(升級(jí)版)
- 數(shù)據(jù)分析與挖掘算法:Python實(shí)戰(zhàn)
- 少兒編程輕松學(xué)(全2冊(cè))
- Moodle 3.x Developer's Guide
- 劍指大數(shù)據(jù):企業(yè)級(jí)電商數(shù)據(jù)倉(cāng)庫(kù)項(xiàng)目實(shí)戰(zhàn)(精華版)