An Introduction To Linux Development Environment

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    An Introduction To Linux Development Environment - Presentation Transcript

    1. An Introduction to Linux Development Environment S.M.H. Hamidi hamidi{ at }ce{ dot }sharif{ dot }edu Hamedan Linux Seminar, Fall 2004
    2. Outline
      • Introduction
      • Linux & Programming relationship
      • Applications and benefits
      • Embedded systems
      • Components of Linux development platform
      • Resources
      • Conclusion
    3. Introduction
      • Linux & Programming have inherit relationship.
      • Linux is an open “ source code” software .
      • Linux made by programmers, having in mind other programmers.
      • Best of the kind programming tools come free with Linux.
    4. How does it affect programmers’ life?
      • Make an unrefined idea to a big Open Source project.
      • Share your idea and code fragments.
      • Gather a team of volunteers from all over the word.
      • Get donations for your basic idea and team leadership.
    5. How does it affect programmers’ life? ( cont’d )
      • Take advantage of free testers, debuggers, documenters and developers.
      • Some users may see your work and become real customers:
        • Some may need support and training.
        • Sign a financial contract with those who need a customized version of your system.
    6. How does it affect programmers’ life? ( vice versa )
      • You are forced by your employer to do a huge project with an early deadline.
      • You search the web for similar previously done work.
      • You likely find a close work and make some changes and will be able to meet the deadline.
    7. How does it affect programmers’ life? ( cont’d )
      • You gain benefit of other efforts as others of yours: Cooperation
      • Learn from elegant codes of professionals.
      • Improve your coding and team working skills by joining big Open Source projects.
    8. Applications & benefits
      • Open Source returns freedom and authority to the customer.
      • Change software according to your desire.
      • Integrate existing software systems to a new one. (System Integration)
      • Add new features to your software. (e.g. Persian support)
    9. Applications & benefits ( cont’d )
      • Building applications from source has some advantages in comparison with binary distributions:
        • Performance tuning (e.g. compiling & customizing Linux kernel)
        • Hardware fitting
        • Minimizing size and features can lead to more security and better performance.
    10. Applications & benefits ( cont’d )
      • Some applications are normally distributed as source and should be build/ported on host machine.
      • Solve software bugs yourself instead of bug report and waiting to be fixed in later releases.
      • Write device driver for your specialized hardware embedded systems
    11. What are embedded systems?
      • A combination of computer hardware and software dedicated to specific tasks.
      • In contrast with general-purpose software/hardware
      • Limited hardware capabilities: generally lack of memory space, power supply and fast processors
      • Customized, minimized and crash-protected Operating System and applications are needed.
    12. Embedded systems market
      • Fast growing market and applications:
        • Mobile phones
        • Home and office appliances
        • Network devices (routers, firewalls, wireless access points)
        • PDA’s (Personal Digital Assistants) and Pocket PC’s
        • WebTV
        • Thin clients
        • Game devices (e.g. Xbox)
        • Robots
        • Real time applications
    13. Embedded systems and Linux
      • Linux as an operating system can act greatly as heart of Embedded system software.
      • Access to code make it easy to customize and minimize the Linux kernel so that it can be put on a ROM.
      • It can be changed to fit specific hardware. (e.g. through writing device drivers)
    14. Embedded systems and Linux ( cont’d )
      • Windows CE: not a great competitor
      • Linux architecture makes it a suitable choice:
        • Access to source code
        • Easy customization
        • Low memory consumption
        • No built-in GUI
        • Built-in firewall and router
        • Many freely availabe embedded applications
    15. And then?
      • Roll up your sleeves and get into Linux coding.
      • Write your course projects in the Linux environment:
      • Better understanding of different level of build process.
      • Its difficulty is once! (Learning time)
    16. Ready to start a quick tour?
    17. Components of a Development Platform
      • Editor
      • Compiler
      • Linker and loader
      • Project manager
      • Debugger
      • Version control and team collaboration
      • Documentation system
    18. Editor
        • Feature rich editors increase developer productivity:
          • Syntax Highlighting
          • Opening multiple windows
          • Rapid typing and code navigation
          • Support of tags
          • Folding code
          • Auto complete and easy coding
          • Extensibility and customizing
          • Code beautifying
    19. Editor ( cont’d )
      • Vim and Emacs are two professional editors with many features and extensions.
      • Support for many languages and file formats
    20. Vim (folding and highlighting)
    21. Vim (multiple windows)
    22. Compiler
      • gcc , best standard and fast C/C++ compiler in the world, claimed by many professionals
      • gcc was developed by Richard Stallman, founder of Free Software Foundation.
      • gcc is ported on many platforms more than any compiler.
      • ld , is default Linux linker but gcc can be used also.
    23. Project Management with make
      • Make is a well-designed utility for code project management and build automation.
      • Idea behind Make has become as a essential part of every development environment, including MS Visual Studio
      • autoconf and automake provide a nice way for porting softwares.
    24. Debugger
      • gdb and gdbserver
    25. Version Control System
      • CVS (Concurrent Version System) one of the first and best version control systems on the world.
      • CVS is widely used all over the world. Mostly all open source projects make use of CVS .
      • It has some features for team collaboration. Mailing lists are also a necessary part of every open source projects.
    26. Documentation System
      • Docbook
      • And many others that are not listed on this slide because lack of time!
    27. Integrated Development Environment
      • RHIDE
      • motor
      • Kdevelop
      • Eclips
      • Anjuta
      • Magic C++
    28. anjuta
    29. Eclipse
    30. Online Resources
      • YoLinux programming tutorials
      • Advanced Linux Programming
      • Linux Devices
      • Linux kernel sources
      • The Linux Development Platform
      • Linoleum Linux Programming Resources
      • RedHat Developer Courses
      • This Presentation : http://ce.sharif.edu/~hamidi/LP-intro.ppt
    31. Q & A Any question?
    SlideShare Zeitgeist 2009

    + S.M. Hossein HamidiS.M. Hossein Hamidi Nominate

    custom

    488 views, 0 favs, 0 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 488
      • 488 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 23
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories