Skip to content
Minsing Log
Go back

English Edition

Selecting the Right OS

Founder Notes

Main Needs

These are the two main areas of the projects I want to pursue in the future. I would like to select and analyze Ubuntu, a widely used Linux distribution that is suitable for both of these areas.

Who developed the OS, when, and why?

Pros and Cons of the OS

Pros

Highly versatile OS

Ubuntu is a preferred OS for data science, AI, and ML development. In particular, its integration with tools such as NVIDIA AI Workbench enables GPU-accelerated workloads to be handled smoothly. As shown below, Canonical supports end-to-end MLOps and integrates tools that can accelerate model training, such as NVIDIA AI Enterprise, NVIDIA DGX, and Charmed Kubeflow, making AI development even more convenient.

Optimized for cloud and server operations

Ubuntu is a preferred OS for public clouds, offers excellent compatibility with cloud-based development tools, and provides specialized platforms such as Ubuntu Core for IoT development.

Excellent hardware compatibility

Ubuntu is compatible with a wide range of hardware from major manufacturers such as Dell, Lenovo, and HP, providing flexibility and compatibility across a broad range of devices.

Mature ecosystem

Ubuntu provides five years of stable support through its Long-Term Support (LTS) versions, along with strong community support. Although many other Linux operating systems are complex, lack compatibility, and are difficult to use, Ubuntu offers many utilities suitable for general users, including Ubuntu Software, making it accessible even to non-developers.

As can be seen in the image below, Ubuntu has a large user base, so there are many communities such as the Ubuntu Forum and the Ubuntu Korea Community, as well as abundant references available in Korean.

Reference:

  1. https://zorbathegeek.tistory.com/29

Cons

High resource requirements

Ubuntu may require more system resources than lightweight distributions such as Alpine Linux. This is something to consider, especially in resource-constrained environments. In exchange for ease of use and a wide range of features, Ubuntu may consume more system memory and CPU resources, which can lead to reduced performance in server environments or on older hardware.

Compatibility issues with specific hardware

Driver compatibility issues may occur with some specific hardware, potentially requiring additional configuration or adjustments. In particular, Ubuntu’s default drivers may not provide optimal performance on the latest hardware or equipment with specialized configurations. Users may need to manually install drivers provided by the manufacturer or seek help from the community to resolve these issues. In particular, if users want to use software such as Notion, KakaoTalk, and Kakao Work for development, Linux does not support these programs.

Complexity during upgrades

Ubuntu regularly releases new versions, and the process of upgrading from an older version to a newer one can sometimes be complex and time-consuming. In particular, when many custom settings or third-party software are in use, compatibility issues may arise during the upgrade process, requiring additional work such as reconfiguring system settings or reinstalling software.

Roadmap of the OS

The future roadmap for Ubuntu presented by Oliver Smith, Senior Product Manager for Ubuntu at Canonical, on the Ubuntu Blog is as follows.

This reflects Ubuntu’s strategic thinking as it evolves the desktop experience to meet users’ changing needs and align with the broader values of the open-source development community. To achieve these goals, Ubuntu is continuously exploring new technologies and use cases while rapidly expanding its desktop team to grow its user base.

[Reference]

  1. https://ubuntu.com/about/release-cycle
  2. https://ubuntu.com/blog/ubuntu-desktop-charting-a-course-for-the-future

Which companies use Ubuntu?

As shown in the image above, 11,138 companies use Ubuntu in their tech stacks. We can see familiar names such as Danggeun Market, Slack, and Reddit, and it is clear that Linux is gradually increasing its share of the market.

[Reference]

  1. https://openmetal.io/docs/product-guides/private-cloud/machine-learning-and-operating-systems/
  2. https://askubuntu.com/questions/50587/which-big-computer-companies-support-the-ubuntu-project-financially
  3. https://linuxsecurity.com/features/open-source-ai-projects-for-linux
  4. https://stackshare.io/ubuntu

Why do AI developers use Ubuntu?

Round 1: Ubuntu vs. macOS

1. Integration with NVIDIA AI Workbench

2. Optimized for cloud and server operations

3. Hardware compatibility and cost efficiency

4. Long-term support and management tools

Ubuntu provides five years of stable support through its Long-Term Support (LTS) versions, which can be extended to ten years through Ubuntu Pro. It also provides management tools such as integration with Active Directory and Azure AD, as well as cloud-init and Landscape, enabling IT administrators to manage development environments efficiently. Although macOS can be managed through tools such as Apple Business Manager and Jamf, its support period is generally shorter than that of Ubuntu LTS versions.

For these reasons, Ubuntu offers broader compatibility, greater cost efficiency, and superior performance in server and cloud environments for AI development compared with macOS’s closed ecosystem. However, if you primarily use Apple’s macOS and the environment you want to develop in is also within the Apple ecosystem, using macOS is a reasonable choice.

[Reference]

  1. https://ubuntu.com/blog/ubuntu-vs-macos-for-development

Round 2: Ubuntu vs. Alpine Linux

1. Hardware requirements and resource efficiency

2. Performance

3. Community and support

4. Package management and software installation

The choice between Alpine Linux and Ubuntu depends on the specific requirements and environment of the AI development project. Alpine Linux is suitable for resource-constrained environments, high security requirements, and situations requiring rapid deployment. However, Ubuntu provides broader software compatibility, stronger community support, and more features for complex AI development projects.

Therefore, for AI development, Ubuntu offers more features and flexibility and may be the better choice, especially when complex dependencies and a variety of development tools are required. On the other hand, Alpine Linux has particular advantages due to its lightweight nature and security in specific use cases

[Reference]

  1. https://anto.online/guides/alpine-linux-vs-ubuntu-comparison/

Impressions

The possibility of building a self-operated operating system for generative AI, mentioned by The Information in AI Times, along with Microsoft’s Copilot and the operating systems that will incorporate AI into various electronic devices such as mobile phones, is very exciting. I am really looking forward to seeing how AI-specific operating systems will emerge. I am curious about what kinds of AI-based OSs and AI-powered OSs will appear.

As I worked on projects involving open-source projects using LLMs and text mining, I experienced package compatibility issues on Windows OS and had to deal with various problems, such as switching to macOS, which led me to consider choosing a suitable OS. Through this research, I came to understand that OS selection goes beyond personal preference and involves many factors, including the project’s technical requirements, the business market, compatibility, and the scope of community support.

[Reference]

  1. https://www.aitimes.com/news/articleView.html?idxno=154015

📒 Reference

  1. Ubuntu is the GOAT for machine learning: https://openmetal.io/docs/product-guides/private-cloud/machine-learning-and-operating-systems/#best

공개 여정 구독

글이 올라오면 이메일로 보내드릴게요.

개발, 창업, 배움, 실패와 회고를 짧고 솔직하게 기록합니다. 검색으로 스쳐가는 독자가 아니라 여정을 따라오는 팬을 만들기 위한 뉴스레터입니다.

뉴스레터는 준비 중입니다. 그동안 RSS 로 구독하거나 이메일 로 알림을 요청해 주세요.


Share this post:

Comments

Sign in with GitHub to leave a comment.


Previous Post
Object lifecycle (whether the destructor is called depends on the object's lifetime)
Next Post
Those Ambiguous Pointers